Case Study

B3YOND

The Free DJI FPV Unlock Tool.

What is B3YOND?

B3YOND Is a free DJI FPV Drone unlocker. The recently released DJI FPV Drone is limited to 25mw in every country but the US, which gets 1200mw leaving many with lacklustre experiences, having dropouts within close proximity or when flying behind objects.

B3YOND serves to unlock your digital DJI System to allow the full 1400mw power, over 2.4Ghz in any country!

Unique Problems to Solve.

WebSerial

We used the cutting edge WebSerial API to communicate with the DJI FPV Drone, allowing us to unlock the drone without the need for any additional software installed on the users computer.
When scoping out this project, WebSerial was in the final stages of being implemented in Chromium browsers, and was so new that there was extremely limited documentation on how to use it.

Reverse engineering

We used a suite of open source tools, including Jadx and Ghidra to reverse engineer the DJI FLY app originally found on the DJI Smart Controller to find the correct commands to send to the drone that configure the region parameters.
We then developed custom tools to help with the debugging and development of the project, such as our DUML Builder that allows you to quickly build the DUML commands to send to the drone.

What We Did
Technology Stack
  • WebSerial
  • Bootstrap 4
  • Jadx
  • Ghidra

Research

Research is the first step in any project, and this was no different.
We started by identifying how the DJI Drone was being limited by DJI to 25mw. To begin with we suspected that this was a hardware revision specifically for the EU market, but after some research we found that this was not the case. We were able to identify that the drone is put into a low power state when the DJI FLY app is connected to the drone.

Knowing that the drone was being limited by the DJI FLY app, we then started to look at how the app was communicating with the drone. We found that the app was using the DUML protocol to communicate with the drone. DUML is a proprietary protocol developed by DJI to communicate with their drones and inbetween components inside the drone, much like the CANBUS network found in your car but with a much more complex structure.

Thankfully, some amazing tools had been released by the DJI reverse engineering community that allowed us to quickly gain an in depth understanding of how DUML communication works, of note is the DJI Firmware Tools by the "o-gs".

Development

Development was an integrated part of the project, from the very first day we were writing conceptual code to test our ideas. Starting with a simple NodeJS script to communicate between the drone and our computer, this allowed us to validate the concept of being able to communicate with the drone and change the region settings. We quickly realised that packaging a NodeJS application for end users to use was not going to be a viable solution, so we started to look at other options.

A few weeks before starting, the Chromium team released a new feature called WebSerial with Chrome 89 which allows web applications to communicate with serial devices. This was perfect for our project and couldn't have been timed any better. It allowed us to create a web application that could be used by anyone with a Chromium web browser, regardless of operating system.

Cutting edge feature, and working unlock command in hand, we started to work on the web application.
We wanted to create a simple, easy to use application that would help even the most tech illiterate unlock Their drone. A simple step by step process was quickly decided on, with animated images to help guide the user through the process.

The Result

We are very proud of the results, and they truly speak for themselves.
Since the launch of B3YOND, tens of thousands of unlocks have been performed, with an overwhelmingly positive amount of support from the community, who have had Their products unlocked to thier full output power.

You can try the interactive unlocker below, or by visiting the B3YOND website.


Please be aware, you'll need a DJI drone connected to progress past the device connection screen!

The Future

We'll be releasing open source modules on Our GitHub for JavaScript that will allow developers to easily implement DUML communication into their own projects, we hope this will lower the barrier to entry for developers to create their own tools for DJI drones.

Additionally, we're working on a new version of the B3YOND (B3YOND 2.0) that will increase the scope of the project, and allow for more advanced features to be implemented, and for many more DJI devices!

LAUNCH YOUR PROJECT WITH US

Contact Us
logo

© D3VL 2023
From The Blog