o-gs / dji-firmware-tools

Tools for handling firmwares of DJI products, with focus on quadcopters.
GNU General Public License v3.0
1.43k stars 402 forks source link

Lifting the software limit of 4k video camera on Mini 2 SE #356

Open gunplar opened 10 months ago

gunplar commented 10 months ago

From the list of enums in comm_og_service_tool I guess the Mini 2 SE is not yet supported. But can anyone help me find the end goal step to enable 4k video (for example say in the original Mini SE)? At least then I can try to find a way to reverse engineer the other steps by checking the required input. I have the Mini 2 SE, so if anyone can instruct me where I can contribute to this project, I would help. Thanks.

mefistotelis commented 10 months ago

The steps would be:

  1. Analyze the hardware, look for what chip does the video encode https://github.com/o-gs/dji-firmware-tools/wiki/WM1605-Main-Processing-Core-Board

  2. Extract firmware, extract content of the specific module for the chip you've identified

  3. Look into the file/partition which contains code for the function you want. -- If you want to modify bitrate tables within FW, find the right tables -- If you want to change the values through DUML, look at the code receiving packets

  4. When stuck, search the web - there were people already tinkering with the same or similar chip, what did they figured out? The DJI firmware is a modification of manufacturers SDK for the chip, like in all products - maybe you can find the SDK, or some info on it?

  5. Apply results -- If you found a way to do this through DUML, you can update dissectors in this project to include your findings. And possibly add a function to the service tool. -- If you found that hard-coded tables have to be modified, then you still need a way of flashing your changes back to the drone. While our tools support re-signing the FW, private keys are required to do that without further changes. These are not public, so - further changes.

fedecarpi commented 3 months ago

From the list of enums in comm_og_service_tool I guess the Mini 2 SE is not yet supported. But can anyone help me find the end goal step to enable 4k video (for example say in the original Mini SE)? At least then I can try to find a way to reverse engineer the other steps by checking the required input. I have the Mini 2 SE, so if anyone can instruct me where I can contribute to this project, I would help. Thanks.

Hey @gunplar was you able to interact with the mini 2 SE ? As you mentioned, looking into comm_og_service_tool is not yet supported but just wondering if we could use the enum for mavic/mini 2 to send the gimbal calibration instructions. Best! Fede