o-gs / dji-firmware-tools

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

Flashing Adv firmware over Pro - is it possible ? #65

Open petr222 opened 6 years ago

petr222 commented 6 years ago

Hi, we have several Phantom 3 Advanced drones which were upgraded to Pro by changing gimbals or camera control boards and flashing Pro firmware. After a several hours flashing of firmware, all Pro camera control boards NAND died. Therefore we bought some Advanced control boards where is no NAND memory to fail. But there is our problem:

It was possible to change from Adv to Pro by SD card with P3X firmware, which was flashed. But Phantom 3 with Professional firmware ignore P3S (Advanced) BIN file and it ignore all known debug files.

Is there a way how to flash Advanced BIN file to board which was flashed with Pro BIN file? If it works from Adv to Pro, it should work from Pro to Ad.

In DJI Go there is no error, only message that camera firmware update is required.

mefistotelis commented 6 years ago

Have you tried copying the file, providing both "P3X.bin" and "P3S.bin" on the sd-card?

If this won't be enough, extract the "P3X.bin" file with dji_fwcon.py, and in "_head.ini" change model "P3S" to "P3X".

Note: Hex editor won't work, there are checksums.

EDIT: but wait. You did replaced gimbal top board with P3S version, right? This effectively changes the whole drone to Advanced, no software changes are required (other than the need to put all components on compatible FW version).

You would have to upgrade P3X board with P3S FW only if you're modifying the Pro boards to become Adv, ie. removing 0Ohm resistors from DaVinci to USB and soldering then on a path from Ambarella to USB.

petr222 commented 6 years ago

First drone - which I am trying to repair now - is genuine Professional with gimbal where control board is replaced by Advanced version (Pro control board died, bad NAND). It look like camera is not correctly recognized - no picture, no camera control and it look like drone does not see SD card either.

Is there a picture available which resistors must be desoldered and where they must be soldered ?

Is it possible that without moving these resistors camera does not work ? All three Advanced cameras have same problem, therefore I think it is not a problem of bad Advanced control board.

Second drone - which we will try tomorrow - is genuine Advanced with Pro firmware flashed in (that's when two Professional control boards died). I will try same Advanced cameras on it tomorrow.

mefistotelis commented 6 years ago

These boards can be switched and it causes no issues, as long as FW on the new top board is the same as on the rest of the drone.

Which resistors - you'd have to compare photos of the boards. The resistors are near USB multiplexer chips. I made partial schematics of it here: https://github.com/mefistotelis/dji-hardware-schematics

petr222 commented 6 years ago

I tried Advanced control board on second drone (Advanced converted to Professional) and there is same problem - no picture, no camera control, no sd card recognised.

As camera upgrade is required, I will try to lower drone firmware (using damaged Pro control board) to try if it help.

petr222 commented 6 years ago

Look like Adv control board nr 1. have a problem, as nr 2, started to flash Advanced firmware to Advanced body (with Pro firmware installed).

Is there way to diagnose gimbal control boards ? Drone say camera firmware is required, but camera and sd card is not recognized, therefore flashing firmware is not possible. Green LED is flashing on gimbal, red start to flash after a while. No error in DJI Go, only message that camera firmware update is required.

Firmware version in gimbal control board is unknown, drone firmware is 1.10.

mefistotelis commented 6 years ago

I'm pretty sure the camera will update its own firmware, even if not connected to the rest of the drone.

To diagnose, solder to serial interface of the Ambarella chip.

petr222 commented 6 years ago

Is serial interface similar to this guide ? https://phantompilots.com/threads/fixing-flash-in-dm365-chip-within-ph3-pro-gimbal.127310/

mefistotelis commented 6 years ago

Is serial interface similar to this guide ?

Serial interface similar to a guide? no.

Please read my wiki on m0100, especially the "interfaces" section.

petr222 commented 6 years ago

Now I propably get it - U0_T and U0_R (3.3V UART of Ambarella chip; allows access to Ambarella system console)?

About these resistors near USB and Ambarella and DaVinci - does it mean that Pro control board can be turned to Advanced by moving these resistors ? As faulty NAND is used to boot DaVinci which is not used in Advanced ersion.

mefistotelis commented 6 years ago

About these resistors near USB and Ambarella and DaVinci - does it mean that Pro control board can be turned to Advanced by moving these resistors ?

I believe yes. I never tried it though. I've seen two resistors, but there may be more.

petr222 commented 6 years ago

Is in necessary to assemble whole gimbal to flash firmware? Or it look like Pro control board does not like Advanced firmware.

[00000821][01 00] Firmware upgrade finished failed (step = 3, err = 0xffffffff).

mefistotelis commented 6 years ago

Is in necessary to assemble whole gimbal to flash firmware?

I don't know. Very likely yes, because without the rest of the drone Ambarella is continuously restarting.

petr222 commented 6 years ago

With serial port output it look like it does endless circle without visible error - boot, flash, reboot, boot, flash, reboot, boot, flash, reboot.....

---------------------------------------------
    Cortex Boot-Up Success

Cortex freq: 504000000
ARM    freq: 17600000
DDR    freq: 396000000
Core   freq: 216000000
iDSP   freq: 264000000
AXI    freq: 168000000
AHB    freq: 108000000
APB    freq: 54000000
UART   freq: 1846153
SD0    freq: 30857142
SD1    freq: 24000000
---------------------------------------------

Start WDT timer OK.
Magic: 0x87651234 0x4 0x789aedcf
System WARM boot.
Detecting done ......

[00000000][CA9_0] [DJI] Start WDT of 20 seconds for boot up......

[00000000][CA9_0] [Version 1.0.11824], Oct 16 2015, 14:06:46

[00000000][CA9_0] [DJI] SD Updater Version [v01.23.4920] Build Mar  4 2016 16:57:05

[00000328][CA9_0] [DJI] Stop WDT.

[00000328][CA9_0] [DJI] Firmware updating......

[00000329][CA9_0] Card In Slot.
[00000630][CA9_0] SD clock source, frequency = 216000000
[00000630][CA9_0] SDCalcClk for SD card initiation:: Actual Clk = 140625, pCLK = 128
[00000648][CA9_0] start to check media
[00000654][CA9_0] AmbaSD_InitCard - SD_CARD OK
[00000659][CA9_0] Packet Detected / c:\P3S_FW_V01.11.0020.bin /.

[00000761][CA9_0] [DJI] Try Ddr Param 0.

[00000762][CA9_0] Back up partion data ......
[00036810][CA9_0] Image "System Software" is found!
[00036810][CA9_0] Image "DSP uCode" is found!
[00036810][CA9_0] Image "System ROM Data" is found!
[00036810][CA9_0] Image "Linux Kernel" is found!
[00036810][CA9_0] Image "Linux Root FS" is found!
[00036810][CA9_0] Start firmware CRC check...

[00036810][CA9_0] Checking System Software
[00040190][CA9_0] Verifying image CRC ... done
[00040190][CA9_0]       length:         9154368
[00040190][CA9_0]       crc32:          0x845822c8
[00040190][CA9_0]       ver_num:        1.0
[00040190][CA9_0]       ver_date:       2016/9/23
[00040190][CA9_0]       img_len:        9154112
[00040190][CA9_0]       mem_addr:       0x0e600000

[00040190][CA9_0] Checking DSP uCode
[00041624][CA9_0] Verifying image CRC ... done
[00041624][CA9_0]       length:         3889408
[00041624][CA9_0]       crc32:          0x4f07273c
[00041624][CA9_0]       ver_num:        1.0
[00041624][CA9_0]       ver_date:       2016/9/23
[00041624][CA9_0]       img_len:        3889152
[00041624][CA9_0]       mem_addr:       0x0ff00000

[00041624][CA9_0] Checking System ROM Data
[00045916][CA9_0] Verifying image CRC ... done
[00045916][CA9_0]       length:         11624704
[00045916][CA9_0]       crc32:          0xc6dfedab
[00045916][CA9_0]       ver_num:        1.0
[00045916][CA9_0]       ver_date:       2016/9/23
[00045916][CA9_0]       img_len:        11624448
[00045916][CA9_0]       mem_addr:       0x03c00000

[00045916][CA9_0] Checking Linux Kernel
[00047776][CA9_0] Verifying image CRC ... done
[00047776][CA9_0]       length:         5038864
[00047776][CA9_0]       crc32:          0xf6a51577
[00047776][CA9_0]       ver_num:        1.0
[00047776][CA9_0]       ver_date:       2016/9/23
[00047776][CA9_0]       img_len:        5038608
[00047776][CA9_0]       mem_addr:       0x00508000

[00047776][CA9_0] Checking Linux Root FS
[00057734][CA9_0] Verifying image CRC ... done
[00057734][CA9_0]       length:         27001088
[00057734][CA9_0]       crc32:          0x65014d0d
[00057734][CA9_0]       ver_num:        1.0
[00057734][CA9_0]       ver_date:       2016/9/23
[00057734][CA9_0]       img_len:        27000832
[00057734][CA9_0]       mem_addr:       0x00001000

[00058212][CA9_0] Program "System Software" to NAND flash ...
[00061439][CA9_0] Done
[00061642][CA9_0] Program "DSP uCode" to NAND flash ...
[00062992][CA9_0] Done
[00063597][CA9_0] Program "System ROM Data" to NAND flash ...
[00067624][CA9_0] Done
[00067889][CA9_0] Program "Linux Kernel" to NAND flash ...
[00069650][CA9_0] Done
[00071077][CA9_0] Program "Linux Root FS" to NAND flash ...
[00080420][CA9_0] Done
[00080753][CA9_0] [DJI] Done!

[00080753][CA9_0] [DJI] Reboot......

---------------------------------------------
    Cortex Boot-Up Success

Cortex freq: 504000000
ARM    freq: 17600000
DDR    freq: 396000000
Core   freq: 216000000
iDSP   freq: 264000000
AXI    freq: 168000000
AHB    freq: 108000000
APB    freq: 54000000
UART   freq: 1846153
SD0    freq: 43200000
SD1    freq: 24000000
---------------------------------------------

Start WDT timer OK.
Magic: 0x87651234 0x0 0x789aedcb
System WARM boot.
Continue to booting up ......

---------------------------------------------
    Cortex Boot-Up Success

Cortex freq: 504000000
ARM    freq: 17600000
DDR    freq: 396000000
Core   freq: 216000000
iDSP   freq: 264000000
AXI    freq: 168000000
AHB    freq: 108000000
APB    freq: 54000000
UART   freq: 1846153
SD0    freq: 30857142
SD1    freq: 24000000
---------------------------------------------

Start WDT timer OK.
Magic: 0x87651234 0x1 0x789aedca
System WARM boot.
Continue to booting up ......

---------------------------------------------
    Cortex Boot-Up Success

Cortex freq: 504000000
ARM    freq: 17600000
DDR    freq: 396000000
Core   freq: 216000000
iDSP   freq: 264000000
AXI    freq: 168000000
AHB    freq: 108000000
APB    freq: 54000000
UART   freq: 1846153
SD0    freq: 30857142
SD1    freq: 24000000
---------------------------------------------

Start WDT timer OK.
Magic: 0x87651234 0x2 0x789aedc9
System WARM boot.
Continue to booting up ......

---------------------------------------------
    Cortex Boot-Up Success

Cortex freq: 504000000
ARM    freq: 17600000
DDR    freq: 396000000
Core   freq: 216000000
iDSP   freq: 264000000
AXI    freq: 168000000
AHB    freq: 108000000
APB    freq: 54000000
UART   freq: 1846153
SD0    freq: 30857142
SD1    freq: 24000000
---------------------------------------------

Start WDT timer OK.
Magic: 0x87651234 0x3 0x789aedc8
System WARM boot.
Continue to booting up ......

---------------------------------------------
    Cortex Boot-Up Success

Cortex freq: 504000000
ARM    freq: 17600000
DDR    freq: 396000000
Core   freq: 216000000
iDSP   freq: 264000000
AXI    freq: 168000000
AHB    freq: 108000000
APB    freq: 54000000
UART   freq: 1846153
SD0    freq: 30857142
SD1    freq: 24000000
---------------------------------------------

Start WDT timer OK.
Magic: 0x87651234 0x4 0x789aedcf
System WARM boot.
Detecting done ......

[00000000][CA9_0] [DJI] Start WDT of 20 seconds for boot up......

[00000000][CA9_0] [Version 1.0.11824], Oct 16 2015, 14:06:46

[00000000][CA9_0] [DJI] SD Updater Version [v01.23.4920] Build Mar  4 2016 16:57:05

[00000328][CA9_0] [DJI] Stop WDT.

[00000329][CA9_0] [DJI] Firmware updating......

[00000329][CA9_0] Card In Slot.
[00000630][CA9_0] SD clock source, frequency = 216000000
[00000630][CA9_0] SDCalcClk for SD card initiation:: Actual Clk = 140625, pCLK = 128
[00000648][CA9_0] start to check media
[00000654][CA9_0] AmbaSD_InitCard - SD_CARD OK
[00000659][CA9_0] Packet Detected / c:\P3S_FW_V01.11.0020.bin /.

[00000663][CA9_0] [DJI] Try Ddr Param 0.

[00000663][CA9_0] Back up partion data ......
[00037581][CA9_0] Image "System Software" is found!
[00037582][CA9_0] Image "DSP uCode" is found!
[00037582][CA9_0] Image "System ROM Data" is found!
[00037582][CA9_0] Image "Linux Kernel" is found!
[00037582][CA9_0] Image "Linux Root FS" is found!
[00037582][CA9_0] Start firmware CRC check...

[00037582][CA9_0] Checking System Software
[00040962][CA9_0] Verifying image CRC ... done
[00040962][CA9_0]       length:         9154368
[00040962][CA9_0]       crc32:          0x845822c8
[00040962][CA9_0]       ver_num:        1.0
[00040962][CA9_0]       ver_date:       2016/9/23
[00040962][CA9_0]       img_len:        9154112
[00040962][CA9_0]       mem_addr:       0x0e600000

[00040962][CA9_0] Checking DSP uCode
[00042396][CA9_0] Verifying image CRC ... done
[00042396][CA9_0]       length:         3889408
[00042396][CA9_0]       crc32:          0x4f07273c
[00042396][CA9_0]       ver_num:        1.0
[00042396][CA9_0]       ver_date:       2016/9/23
[00042396][CA9_0]       img_len:        3889152
[00042396][CA9_0]       mem_addr:       0x0ff00000

[00042396][CA9_0] Checking System ROM Data
[00046688][CA9_0] Verifying image CRC ... done
[00046688][CA9_0]       length:         11624704
[00046688][CA9_0]       crc32:          0xc6dfedab
[00046688][CA9_0]       ver_num:        1.0
[00046688][CA9_0]       ver_date:       2016/9/23
[00046688][CA9_0]       img_len:        11624448
[00046688][CA9_0]       mem_addr:       0x03c00000

[00046688][CA9_0] Checking Linux Kernel
[00048548][CA9_0] Verifying image CRC ... done
[00048548][CA9_0]       length:         5038864
[00048548][CA9_0]       crc32:          0xf6a51577
[00048548][CA9_0]       ver_num:        1.0
[00048548][CA9_0]       ver_date:       2016/9/23
[00048548][CA9_0]       img_len:        5038608
[00048548][CA9_0]       mem_addr:       0x00508000

[00048548][CA9_0] Checking Linux Root FS
[00058505][CA9_0] Verifying image CRC ... done
[00058505][CA9_0]       length:         27001088
[00058505][CA9_0]       crc32:          0x65014d0d
[00058505][CA9_0]       ver_num:        1.0
[00058505][CA9_0]       ver_date:       2016/9/23
[00058505][CA9_0]       img_len:        27000832
[00058506][CA9_0]       mem_addr:       0x00001000

[00058983][CA9_0] Program "System Software" to NAND flash ...
[00062210][CA9_0] Done
[00062414][CA9_0] Program "DSP uCode" to NAND flash ...
[00063764][CA9_0] Done
[00064369][CA9_0] Program "System ROM Data" to NAND flash ...
[00068394][CA9_0] Done
[00068659][CA9_0] Program "Linux Kernel" to NAND flash ...
[00070419][CA9_0] Done
[00071846][CA9_0] Program "Linux Root FS" to NAND flash ...
[00081188][CA9_0] Done
[00081521][CA9_0] [DJI] Done!

[00081521][CA9_0] [DJI] Reboot......
petr222 commented 6 years ago

Tried second Adv board - there is nothing on serial output from Ambarella,

Measured all Voltage test pads - correct Voltage is here.

mefistotelis commented 6 years ago

With serial port output it look like it does endless circle without visible error - boot, flash, reboot,..

Do you have SD-card with firmware update inserted, or is the endless update circle going on its own, without sd-card?

It looks like the update was successful, so all we need to do is to end the circle.

petr222 commented 6 years ago

Yes, there is a bin on the SD card.

Without firmware, it does this:

---------------------------------------------
    Cortex Boot-Up Success

Cortex freq: 504000000
ARM    freq: 17600000
DDR    freq: 396000000
Core   freq: 216000000
iDSP   freq: 264000000
AXI    freq: 168000000
AHB    freq: 108000000
APB    freq: 54000000
UART   freq: 1846153
SD0    freq: 30857142
SD1    freq: 24000000
---------------------------------------------

Start WDT timer OK.
Magic: 0x87651234 0x4 0x789aedcf
System WARM boot.
Detecting done ......

[00000000][CA9_0] [DJI] Start WDT of 20 seconds for boot up......

[00000000][CA9_0] [Version 1.0.11824], Oct 16 2015, 14:06:46

[00000000][CA9_0] [DJI] SD Updater Version [v01.23.4920] Build Mar  4 2016 16:57:05

[00000328][CA9_0] [DJI] Stop WDT.

[00000328][CA9_0] [DJI] Firmware updating......

[00000328][CA9_0] Card In Slot.
[00000629][CA9_0] SD clock source, frequency = 216000000
[00000629][CA9_0] SDCalcClk for SD card initiation:: Actual Clk = 140625, pCLK = 128
[00000647][CA9_0] start to check media
[00000653][CA9_0] AmbaSD_InitCard - SD_CARD OK
[00000658][CA9_0] Can't detect firmware.
[00000699][CA9_0] Firmware  program fail--- ARM DATA ABORT EXCEPTION ---
Oops: CPU Exception!
pc : [<0001134c>]    lr : [<00000000>]
sp : 0006f328  ip : 00000000  fp : 00000000
r10: 0006b400  r9 : 00000000  r8 : 00000000
r7 : 00000000  r6 : 00000000  r5 : 00000000
r4 : 0006f394  r3 : 00000000  r2 : 00000000
r1 : fff90c5b  r0 : ffffffa4
Flags: NzCv
IRQs on  FIQs on  M
---------------------------------------------
petr222 commented 6 years ago

Look like there is a problem with the firmware in control board, as it try to flash every version on the SD card, not knowing which version is installed:

---------------------------------------------
    Cortex Boot-Up Success

Cortex freq: 504000000
ARM    freq: 17600000
DDR    freq: 396000000
Core   freq: 216000000
iDSP   freq: 264000000
AXI    freq: 168000000
AHB    freq: 108000000
APB    freq: 54000000
UART   freq: 1846153
SD0    freq: 30857142
SD1    freq: 24000000
---------------------------------------------

Start WDT timer OK.
Magic: 0x87651234 0x4 0x789aedcf
System WARM boot.
Detecting done ......

[00000000][CA9_0] [DJI] Start WDT of 20 seconds for boot up......

[00000000][CA9_0] [Version 1.0.11824], Oct 16 2015, 14:06:46

[00000000][CA9_0] [DJI] SD Updater Version [v01.23.4920] Build Mar  4 2016 16:57:05

[00000328][CA9_0] [DJI] Stop WDT.

[00000328][CA9_0] [DJI] Firmware updating......

[00000328][CA9_0] Card In Slot.
[00000629][CA9_0] SD clock source, frequency = 216000000
[00000629][CA9_0] SDCalcClk for SD card initiation:: Actual Clk = 140625, pCLK = 128
[00000647][CA9_0] start to check media
[00000653][CA9_0] AmbaSD_InitCard - SD_CARD OK
[00000658][CA9_0] Packet Detected / c:\P3S_FW_V01.02.0007.bin /.

[00000760][CA9_0] [DJI] Try Ddr Param 0.

[00000760][CA9_0] Back up partion data ......
[00038021][CA9_0] Image "System Software" is found!
[00038021][CA9_0] Image "DSP uCode" is found!
[00038021][CA9_0] Image "System ROM Data" is found!
[00038021][CA9_0] Image "Linux Kernel" is found!
[00038021][CA9_0] Image "Linux Root FS" is found!
[00038021][CA9_0] Start firmware CRC check...

[00038021][CA9_0] Checking System Software
[00041353][CA9_0] Verifying image CRC ... done
[00041353][CA9_0]       length:         9035584
[00041353][CA9_0]       crc32:          0x43e88314
[00041353][CA9_0]       ver_num:        1.0
[00041353][CA9_0]       ver_date:       2015/6/13
[00041353][CA9_0]       img_len:        9035328
[00041353][CA9_0]       mem_addr:       0x0e600000

[00041353][CA9_0] Checking DSP uCode
[00042787][CA9_0] Verifying image CRC ... done
[00042787][CA9_0]       length:         3889408
[00042787][CA9_0]       crc32:          0xd6c85dda
[00042787][CA9_0]       ver_num:        1.0
[00042787][CA9_0]       ver_date:       2015/6/13
[00042787][CA9_0]       img_len:        3889152
[00042787][CA9_0]       mem_addr:       0x0ff00000

[00042787][CA9_0] Checking System ROM Data
[00047072][CA9_0] Verifying image CRC ... done
[00047072][CA9_0]       length:         11624704
[00047072][CA9_0]       crc32:          0xc6dfedab
[00047072][CA9_0]       ver_num:        1.0
[00047072][CA9_0]       ver_date:       2015/6/13
[00047072][CA9_0]       img_len:        11624448
[00047073][CA9_0]       mem_addr:       0x03c00000

[00047073][CA9_0] Checking Linux Kernel
[00049026][CA9_0] Verifying image CRC ... done
[00049026][CA9_0]       length:         5301856
[00049026][CA9_0]       crc32:          0xec552c27
[00049026][CA9_0]       ver_num:        1.0
[00049026][CA9_0]       ver_date:       2015/6/13
[00049026][CA9_0]       img_len:        5301600
[00049026][CA9_0]       mem_addr:       0x00508000

[00049026][CA9_0] Checking Linux Root FS
[00059025][CA9_0] Verifying image CRC ... done
[00059025][CA9_0]       length:         27132160
[00059025][CA9_0]       crc32:          0xd546d3e8
[00059025][CA9_0]       ver_num:        1.0
[00059025][CA9_0]       ver_date:       2015/6/13
[00059025][CA9_0]       img_len:        27131904
[00059025][CA9_0]       mem_addr:       0x00001000

[00059498][CA9_0] Program "System Software" to NAND flash ...
[00062694][CA9_0] Done
[00062900][CA9_0] Program "DSP uCode" to NAND flash ...
[00064256][CA9_0] Done
[00064860][CA9_0] Program "System ROM Data" to NAND flash ...
[00068865][CA9_0] Done
[00069143][CA9_0] Program "Linux Kernel" to NAND flash ...
[00071008][CA9_0] Done
[00072426][CA9_0] Program "Linux Root FS" to NAND flash ...
[00081866][CA9_0] Done
[00082199][CA9_0] [DJI] Done!

[00082199][CA9_0] [DJI] Reboot......

---------------------------------------------
mefistotelis commented 6 years ago

The messages Can't detect firmware. and Firmware %s program fail come from module m0101 - they don't exist in m0100.

I don't know for sure what the relation is between these modules - I assumed that m0100 is the proper Ambarella firmware, and m0101 is just a loader.

But here the board rewrites all partitions, and after a reboot it still only has the m0101 accessible... maybe the issue is that it writes m0101 over and over, not m0100?

Try extracting modules from the firmware, and putting m0100 alone on sd-card, renaming it to PFC300XFw3.bin.

petr222 commented 6 years ago

PFC300XFw3.bin - cannot detect firmware FC300XFw.bin - cannot detect firmware

mefistotelis commented 6 years ago

Oh right, I forgot it's Advanced - PFC300SFw3.bin. You can try it, thoug I don't think there will be much difference:

After looking at the m0101 code, I think the loader is damaged and cannot end the flashing circle. After Firmware %s program fail the next message should be [DJI] Reboot...... - but the firmware crashes before it is able to display it.

So, the loaders function is to do the following actions, in order:

  1. Finds FW update on sd-card
  2. updates the application FW (m0100)
  3. marks next boot to be to application
  4. reboot

Looks like something bad happens at point 3 - the loader is not able to switch back to application, and crashes.

So the firmware is probably updated successfully, and would work if only the loader would let it run. But the loader isn't able to do this.

How to fix that - I have no idea.

petr222 commented 6 years ago

Actually, there is a difference.

PFC300SFw3.bin was flashed only once, after reboot it cannot detect firmware on card, but ended in reboot loop like this - without flashing m100 firmware again:

[00000659][CA9_0] Can't detect firmware. is repeated after reboot.

---------------------------------------------
    Cortex Boot-Up Success

Cortex freq: 504000000
ARM    freq: 17600000
DDR    freq: 396000000
Core   freq: 216000000
iDSP   freq: 264000000
AXI    freq: 168000000
AHB    freq: 108000000
APB    freq: 54000000
UART   freq: 1846153
SD0    freq: 30857142
SD1    freq: 24000000
---------------------------------------------

Start WDT timer OK.
Magic: 0x87651234 0x4 0x789aedcf
System WARM boot.
Detecting done ......

[00000000][CA9_0] [DJI] Start WDT of 20 seconds for boot up......

[00000000][CA9_0] [Version 1.0.11824], Oct 16 2015, 14:06:46

[00000000][CA9_0] [DJI] SD Updater Version [v01.23.4920] Build Mar  4 2016 16:57:05

[00000328][CA9_0] [DJI] Stop WDT.

[00000328][CA9_0] [DJI] Firmware updating......

[00000328][CA9_0] Card In Slot.
[00000629][CA9_0] SD clock source, frequency = 216000000
[00000629][CA9_0] SDCalcClk for SD card initiation:: Actual Clk = 140625, pCLK = 128
[00000647][CA9_0] start to check media
[00000653][CA9_0] AmbaSD_InitCard - SD_CARD OK
[00000658][CA9_0] [DJI] Try Ddr Param 0.

[00000658][CA9_0] Back up partion data ......
[00036387][CA9_0] Image "System Software" is found!
[00036387][CA9_0] Image "DSP uCode" is found!
[00036387][CA9_0] Image "System ROM Data" is found!
[00036387][CA9_0] Image "Linux Kernel" is found!
[00036387][CA9_0] Image "Linux Root FS" is found!
[00036387][CA9_0] Start firmware CRC check...

[00036387][CA9_0] Checking System Software
[00039762][CA9_0] Verifying image CRC ... done
[00039762][CA9_0]       length:         9154368
[00039762][CA9_0]       crc32:          0x845822c8
[00039762][CA9_0]       ver_num:        1.0
[00039762][CA9_0]       ver_date:       2016/9/23
[00039762][CA9_0]       img_len:        9154112
[00039762][CA9_0]       mem_addr:       0x0e600000

[00039762][CA9_0] Checking DSP uCode
[00041197][CA9_0] Verifying image CRC ... done
[00041197][CA9_0]       length:         3889408
[00041197][CA9_0]       crc32:          0x4f07273c
[00041197][CA9_0]       ver_num:        1.0
[00041197][CA9_0]       ver_date:       2016/9/23
[00041197][CA9_0]       img_len:        3889152
[00041197][CA9_0]       mem_addr:       0x0ff00000

[00041197][CA9_0] Checking System ROM Data
[00045485][CA9_0] Verifying image CRC ... done
[00045485][CA9_0]       length:         11624704
[00045485][CA9_0]       crc32:          0xc6dfedab
[00045485][CA9_0]       ver_num:        1.0
[00045485][CA9_0]       ver_date:       2016/9/23
[00045485][CA9_0]       img_len:        11624448
[00045485][CA9_0]       mem_addr:       0x03c00000

[00045485][CA9_0] Checking Linux Kernel
[00047342][CA9_0] Verifying image CRC ... done
[00047342][CA9_0]       length:         5038864
[00047342][CA9_0]       crc32:          0xf6a51577
[00047342][CA9_0]       ver_num:        1.0
[00047342][CA9_0]       ver_date:       2016/9/23
[00047342][CA9_0]       img_len:        5038608
[00047342][CA9_0]       mem_addr:       0x00508000

[00047342][CA9_0] Checking Linux Root FS
[00057303][CA9_0] Verifying image CRC ... done
[00057303][CA9_0]       length:         27001088
[00057303][CA9_0]       crc32:          0x65014d0d
[00057303][CA9_0]       ver_num:        1.0
[00057303][CA9_0]       ver_date:       2016/9/23
[00057303][CA9_0]       img_len:        27000832
[00057303][CA9_0]       mem_addr:       0x00001000

[00057776][CA9_0] Program "System Software" to NAND flash ...
[00060980][CA9_0] Done
[00061186][CA9_0] Program "DSP uCode" to NAND flash ...
[00062526][CA9_0] Done
[00063129][CA9_0] Program "System ROM Data" to NAND flash ...
[00067128][CA9_0] Done
[00067389][CA9_0] Program "Linux Kernel" to NAND flash ...
[00069137][CA9_0] Done
[00070545][CA9_0] Program "Linux Root FS" to NAND flash ...
[00079809][CA9_0] Done
[00080834][CA9_0] [DJI] Done!

[00080834][CA9_0] [DJI] Reboot......

---------------------------------------------
---------------------------------------------
    Cortex Boot-Up Success

Cortex freq: 504000000
ARM    freq: 17600000
DDR    freq: 396000000
Core   freq: 216000000
iDSP   freq: 264000000
AXI    freq: 168000000
AHB    freq: 108000000
APB    freq: 54000000
UART   freq: 1846153
SD0    freq: 30857142
SD1    freq: 24000000
---------------------------------------------

Start WDT timer OK.
Magic: 0x87651234 0x4 0x789aedcf
System WARM boot.
Detecting done ......

[00000000][CA9_0] [DJI] Start WDT of 20 seconds for boot up......

[00000000][CA9_0] [Version 1.0.11824], Oct 16 2015, 14:06:46

[00000000][CA9_0] [DJI] SD Updater Version [v01.23.4920] Build Mar  4 2016 16:57:05

[00000329][CA9_0] [DJI] Stop WDT.

[00000329][CA9_0] [DJI] Firmware updating......

[00000329][CA9_0] Card In Slot.
[00000630][CA9_0] SD clock source, frequency = 216000000
[00000630][CA9_0] SDCalcClk for SD card initiation:: Actual Clk = 140625, pCLK = 128
[00000648][CA9_0] start to check media
[00000654][CA9_0] AmbaSD_InitCard - SD_CARD OK
[00000659][CA9_0] Can't detect firmware.
[00000700][CA9_0] Firmware  program fail.RM DATA ABORT EXCEPTION ---
Oops: CPU Exception!
pc : [<0001134c>]    lr : [<00000000>]
sp : 0006f328  ip : 00000000  fp : 00000000
r10: 0006b400  r9 : 00000000  r8 : 00000000
r7 : 00000000  r6 : 00000000  r5 : 00000000
r4 : 0006f394  r3 : 00000000  r2 : 00000000
r1 : fff90c5b  r0 : ffffffa4
Flags: NzCv
IRQs on  FIQs on  M
---------------------------------------------
    Cortex Boot-Up Success

Cortex freq: 504000000
ARM    freq: 17600000
DDR    freq: 396000000
Core   freq: 216000000
iDSP   freq: 264000000
AXI    freq: 168000000
AHB    freq: 108000000
APB    freq: 54000000
UART   freq: 1846153
SD0    freq: 43200000
SD1    freq: 24000000
---------------------------------------------

Start WDT timer OK.
Magic: 0x87651234 0x0 0x789aedcb
System WARM boot.
Continue to booting up ......

---------------------------------------------
mefistotelis commented 6 years ago

Now the issue it - I don't know how the messages look on a fully working board. Without anything to compare to, I can't be sure when it goes wrong.

Either the m0101 module should switch boot to m0100 and reboot, or should execute m0100 by itself.

petr222 commented 6 years ago

I now know why one of Advanced gimbal boards reset itself:

[00073665][CA9_0] Program "System Software" to NAND flash ... [00076911][CA9_0] Done [00077119][CA9_0] Program "DSP uCode" to NAND flash ... [00078483][CA9_0] Done [00079100][CA9_0] Program "System ROM Data" to NAND flash ... [00083164][CA9_0] Done [00083433][CA9_0] Program "Linux Kernel" to NAND flash ... [00085213][CA9_0] Done [00086650][CA9_0] Program "Linux Root FS" to NAND flash ... [00092676][CA9_0] Initial bad block. <block 642> [00096084][CA9_0] Done [00096418][CA9_0] [DJI] Done!

Is there a way to fix it, or is in necessary to replace whole board ?

mefistotelis commented 6 years ago

This doesn't seem to match subject of this issue.

Anyway, if it persists after several tries, looks like the NAND is damaged in a wrong place (most NAND errors can be recovered, as long as they don't touch initial blocks). We don't know much about Ambarella, so it would be hard to recover.

On the other hand, I don't know whether Ambarella even uses the Linux part - in GoPros, this part is mostly used for GUI on LCD screen. Video processing and update code are located within System Software, and that uses RTOS which does not need RootFS.

So - it it won't work, replace the board.

Nekenieh commented 6 years ago

Hi, I succesfully dowgraded and reanimated a P3P with module 1500/800 problem through the cheap USB-TTL converter method thanks to you guys and Mr. Sunsetcatcher. The only thing i still have is a vage brown spot in my pictures so i am wondering if i can interchange the camera board(not the gimbal topboard) with an P3 advanced one? Are they compatible? Thanks

mefistotelis commented 6 years ago

can interchange the camera board(not the gimbal topboard) with an P3 advanced one

They're identical. The difference between pro and adv is only in the top board.

Nekenieh commented 6 years ago

That’s very good to know! Anyway i took the camera sensor off and showed a dirty spot. Cleaned it and problem solved. Thanks!!

valbewe commented 4 years ago

Hi. @petr222 could you fix your gimbal board? I have a phantom 3 advanced with exactly the same issue (No camera, gimbal is moving at initalisation then it switches off and is hanging loose. In DJI Go there is no error, only message that camera firmware update is required, ...). I've attached an uart to usb converter to the serial interface (U0_T and U0_R pins) and the log looks the same like yours: boot, flash, reboot, boot, flash, reboot, boot, flash, reboot.....

Is this mabye the behavior when the firmware versions of the different modules are not compatible to each other?

szupi commented 4 years ago

Hi, @mefistotelis, At first, this repo is excellent, plenty of useful material - 20200107_124836 great job I have to say. I would like to convert my p3 pro gimbal board to p3 advanced, since I have one with damaged goldpins for NAND of DM365 chip. I can read that it is a matter of moving two 0ohm resistors. I tried to compare my p3 proboard with advanced ones pictures found in your hardware specification as well as ones found on the Internet, however no significant success. I located USB multiplexers, as aforementioned resistors are supposed to be next to, but I also found on phantom pilots thread with differences between these two boards, and it seems to be diffrent what I expected. Is it possible you can give me a hand here and mark what to be moved and where? I attached a good quality picture of my board focused on the are I supposed to find the resistors. Thanks, Łukasz

mefistotelis commented 4 years ago

I once considered changing one of my boards, and then described some of it to someone from PhantomPilots; but I never really did that.

First, about differences in the thread: those show elements which exist on Pro and are not populated on Adv. You don't have to care too much about these. If the conversion succeeds, you may remove one chip - buck converter - to make sure those elements won't consume any power; but it isn't even necessary.

For the elements you need to change - I think the two resistors are enough, but I never confirmed that. Which resistors - I can't remember exactly, but I remember the resistors needed to be rotated 90 degrees. So the footprint was like:

■ ■ ■

And resistor was places across two contacts, different two on Pro and Adv.

I marked that on the partial schematic here: https://github.com/o-gs/dji-hardware-schematics/tree/master/phantom_3_pro_gimbal_top_board Though only on schematic - not on footprint; you'll have to find the proper connection yourself.

Also, to make the "transformation", you will really need two changes: resistors, and software. You will have to burn Ph3 Adv module on Ambarella chip. You will have to do a slight modification to headers of the firmware, otherwise Ph3 Pro will refuse to burn it.

EDIT: I do see a pattern of 3 pads like above on the photo you've provided, just below the "DM-" text. I can't remember if that's it though. Check with multimeter what is connected to these.

szupi commented 4 years ago

@mefistotelis I did reistors modification, would you give me some clues regarding fw burning, shall I do it using sd card? I suppose I have to extract individual modules and put it back together to one bin file afterwards, right? Best regards, Ł.

mefistotelis commented 4 years ago

You only need Ambarella module. You can compare modules from the same FW version from Pro and Adv to get more info.

You will have to change header of the Ambarella module. Extract it, change header in *.a9h file, then re-pack. But don't re-pack to complete package, burn only Ambarella. Info on burning individual modules is on the wiki.

szupi commented 4 years ago

I was struggling with corrupted python installation whole day, but eventually managed it. so, basically I extracted latest fw for p3s and p3x, then extracted m0100 module, compared, modified p3s to pretend p3x, then merged all p3s ambarella files into one m0100 module using amba_fwpak.py and what do I do now? I could not find anything about burning individual modules in wiki :(

mefistotelis commented 4 years ago

Good progress. The wiki: https://github.com/o-gs/dji-firmware-tools/wiki/Flashing-firmware-via-SD-card#by-firmware-module-in-camera

szupi commented 4 years ago

Damn... I was there (reading this part) several times yesterday... 2 AM is definetly not advantageous for logic thinking ;) I even found this article where author clearly writes about name change https://dji.retroroms.info/howto/modp3params

I am getting back to work, thanks :)

szupi commented 4 years ago

Ok, seems to be succesful. Thank you a lot. I have several more boards, where amba does not seem to be responding. Do you have any experience with bringing them alive? I suppose it is not so easy, right? Cheers, Ł.

mefistotelis commented 4 years ago

Great to hear that; congrats!

For Ambarella - I don't have experience with fixing it - I never got one which was damaged. Also, the public information about that chip is limited - no datasheet nor programming guide. You can find documentation for older Ambarella chips, I'm sure the flashing methods didn't change much.

You definitely should start by tapping to serial interface and checking whether it displays anything.

In case you'll figure out anything - please share, so that other people may get further with this.

szupi commented 4 years ago

Ok, so I dug my boards and I found ones that I spoke of. Most of them after powering up, are uart silent (tx and rx on another side of board where ambarella sits). However there is one that is reacting, led is blinking, ambarella has access to sd card, however the live feed has horizontal lines. It is P3S. I tried to upgrade the firmware using dji container file and it failed on m0100 module, then I used extracted module, given it proper name and tried SD upgrade, it failed as well:

[00012475]========== remo-con disconnect. boot(15) ============
 [00012522]Firmware [C:\PFC300SFw3.bin] detected, card sn [0xb06f61aa].
 [00012573][01 00] Firmware upgrade start...
 [00012408]========== remo-con disconnect. boot(1) ============
 [00012461]Firmware [C:\PFC300SFw3.bin] detected, card sn [0xb06f61aa].
 [00012511][01 00] Firmware upgrade start...
 [00012423]========== remo-con disconnect. boot(1) ============
 [00012474]Firmware [C:\PFC300SFw3.bin] detected, card sn [0xb06f61aa].
 [00012524][01 00] Firmware upgrade start...
 [00012413]========== 2020.01.17 22:28:05. boot(1) ============
 [00012472]Firmware [C:\PFC300SFw3.bin] detected, card sn [0xb06f61aa].
 [00012524][01 00] Firmware upgrade start...
 [00012397]========== 2020.01.17 22:29:24. boot(1) ============
 [00012454]Firmware [C:\PFC300SFw3.bin] detected, card sn [0xb06f61aa].
 [00012511][01 00] Firmware upgrade start...

and so on.

Interestingly, I cannot see anything upgrade releted being printed on uart interface during upgrade. UART, board alone without SD card:

---------------------------------------------
    Cortex Boot-Up Success

Cortex freq: 504000000
ARM    freq: 132000000
DDR    freq: 396000000
Core   freq: 216000000
iDSP   freq: 264000000
AXI    freq: 168000000
AHB    freq: 108000000
APB    freq: 54000000
UART   freq: 1846153
SD0    freq: 24000000
SD1    freq: 24000000
---------------------------------------------

Start WDT timer OK.
Magic: 0x18c8d012 0x5888c81c 0xa40d814
System COLD boot.
Continue to booting up ......

---------------------------------------------
    Cortex Boot-Up Success

Cortex freq: 504000000
ARM    freq: 17600000
DDR    freq: 396000000
Core   freq: 216000000
iDSP   freq: 264000000
AXI    freq: 168000000
AHB    freq: 108000000
APB    freq: 54000000
UART   freq: 1846153
SD0    freq: 24000000
SD1    freq: 24000000
---------------------------------------------

Start WDT timer OK.
Magic: 0x87651234 0x1 0x789aedca
System WARM boot.
Continue to booting up ......

---------------------------------------------
    Cortex Boot-Up Success

Cortex freq: 504000000
ARM    freq: 17600000
DDR    freq: 396000000
Core   freq: 216000000
iDSP   freq: 264000000
AXI    freq: 168000000
AHB    freq: 108000000
APB    freq: 54000000
UART   freq: 1846153
SD0    freq: 24000000
SD1    freq: 24000000
---------------------------------------------

Start WDT timer OK.
Magic: 0x87651234 0x2 0x789aedc9
System WARM boot.
Continue to booting up ......

---------------------------------------------
    Cortex Boot-Up Success

Cortex freq: 504000000
ARM    freq: 17600000
DDR    freq: 396000000
Core   freq: 216000000
iDSP   freq: 264000000
AXI    freq: 168000000
AHB    freq: 108000000
APB    freq: 54000000
UART   freq: 1846153
SD0    freq: 24000000
SD1    freq: 24000000
---------------------------------------------

Start WDT timer OK.
Magic: 0x87651234 0x3 0x789aedc8
System WARM boot.
Continue to booting up ......

---------------------------------------------
    Cortex Boot-Up Success

Cortex freq: 504000000
ARM    freq: 17600000
DDR    freq: 396000000
Core   freq: 216000000
iDSP   freq: 264000000
AXI    freq: 168000000
AHB    freq: 108000000
APB    freq: 54000000
UART   freq: 1846153
SD0    freq: 24000000
SD1    freq: 24000000
---------------------------------------------

Start WDT timer OK.
Magic: 0x87651234 0x4 0x789aedcf
System WARM boot.
Detecting done ......

---------------------------------------------
    Cortex Boot-Up Success

Cortex freq: 504000000
ARM    freq: 17600000
DDR    freq: 396000000
Core   freq: 216000000
iDSP   freq: 264000000
AXI    freq: 168000000
AHB    freq: 108000000
APB    freq: 54000000
UART   freq: 1846153
SD0    freq: 24000000
SD1    freq: 24000000
---------------------------------------------

Start WDT timer OK.
Magic: 0x87651234 0x5 0x789aedce
System WARM boot.
Detecting done ......

---------------------------------------------
    Cortex Boot-Up Success

Cortex freq: 504000000
ARM    freq: 17600000
DDR    freq: 396000000
Core   freq: 216000000
iDSP   freq: 264000000
AXI    freq: 168000000
AHB    freq: 108000000
APB    freq: 54000000
UART   freq: 1846153
SD0    freq: 24000000
SD1    freq: 24000000
---------------------------------------------

Start WDT timer OK.
Magic: 0x87651234 0x6 0x789aedcd
System WARM boot.
Detecting done ......

---------------------------------------------
    Cortex Boot-Up Success

Cortex freq: 504000000
ARM    freq: 17600000
DDR    freq: 396000000
Core   freq: 216000000
iDSP   freq: 264000000
AXI    freq: 168000000
AHB    freq: 108000000
APB    freq: 54000000
UART   freq: 1846153
SD0    freq: 24000000
SD1    freq: 24000000
---------------------------------------------

Start WDT timer OK.
Magic: 0x87651234 0x7 0x789aedcc
System WARM boot.
Detecting done ......

---------------------------------------------
    Cortex Boot-Up Success

Cortex freq: 504000000
ARM    freq: 17600000
DDR    freq: 396000000
Core   freq: 216000000
iDSP   freq: 264000000
AXI    freq: 168000000
AHB    freq: 108000000
APB    freq: 54000000
UART   freq: 1846153
SD0    freq: 24000000
SD1    freq: 24000000
---------------------------------------------

Start WDT timer OK.
Magic: 0x87651234 0x8 0x789aedc3
System WARM boot.
Detecting done ......

---------------------------------------------
    Cortex Boot-Up Success

Cortex freq: 504000000
ARM    freq: 17600000
DDR    freq: 396000000
Core   freq: 216000000
iDSP   freq: 264000000
AXI    freq: 168000000
AHB    freq: 108000000
APB    freq: 54000000
UART   freq: 1846153
SD0    freq: 24000000
SD1    freq: 24000000
---------------------------------------------

Start WDT timer OK.
Magic: 0x87651234 0x9 0x789aedc2
System WARM boot.
Detecting done ......

---------------------------------------------
    Cortex Boot-Up Success

Cortex freq: 504000000
ARM    freq: 17600000
DDR    freq: 396000000
Core   freq: 216000000
iDSP   freq: 264000000
AXI    freq: 168000000
AHB    freq: 108000000
APB    freq: 54000000
UART   freq: 1846153
SD0    freq: 24000000
SD1    freq: 24000000
---------------------------------------------

Start WDT timer OK.
Magic: 0x87651234 0xa 0x789aedc1
System WARM boot.
Rolling Back done ......

---------------------------------------------
    Cortex Boot-Up Success

Cortex freq: 504000000
ARM    freq: 17600000
DDR    freq: 396000000
Core   freq: 216000000
iDSP   freq: 264000000
AXI    freq: 168000000
AHB    freq: 108000000
APB    freq: 54000000
UART   freq: 1846153
SD0    freq: 24000000
SD1    freq: 24000000
---------------------------------------------

Start WDT timer OK.
Magic: 0x87651234 0xb 0x789aedc0
System WARM boot.
Rolling Back done ......

---------------------------------------------
    Cortex Boot-Up Success

Cortex freq: 504000000
ARM    freq: 17600000
DDR    freq: 396000000
Core   freq: 216000000
iDSP   freq: 264000000
AXI    freq: 168000000
AHB    freq: 108000000
APB    freq: 54000000
UART   freq: 1846153
SD0    freq: 24000000
SD1    freq: 24000000
---------------------------------------------

Start WDT timer OK.
Magic: 0x87651234 0xc 0x789aedc7
System WARM boot.
Rolling Back done ......

---------------------------------------------
    Cortex Boot-Up Success

Cortex freq: 504000000
ARM    freq: 17600000
DDR    freq: 396000000
Core   freq: 216000000
iDSP   freq: 264000000
AXI    freq: 168000000
AHB    freq: 108000000
APB    freq: 54000000
UART   freq: 1846153
SD0    freq: 24000000
SD1    freq: 24000000
---------------------------------------------

Start WDT timer OK.
Magic: 0x87651234 0xd 0x789aedc6
System WARM boot.
Rolling Back done ......

---------------------------------------------
    Cortex Boot-Up Success

Cortex freq: 504000000
ARM    freq: 17600000
DDR    freq: 396000000
Core   freq: 216000000
iDSP   freq: 264000000
AXI    freq: 168000000
AHB    freq: 108000000
APB    freq: 54000000
UART   freq: 1846153
SD0    freq: 24000000
SD1    freq: 24000000
---------------------------------------------

Start WDT timer OK.
Magic: 0x87651234 0xe 0x789aedc5
System WARM boot.
Rolling Back done ......

---------------------------------------------
    Cortex Boot-Up Success

Cortex freq: 504000000
ARM    freq: 17600000
DDR    freq: 396000000
Core   freq: 216000000
iDSP   freq: 264000000
AXI    freq: 168000000
AHB    freq: 108000000
APB    freq: 54000000
UART   freq: 1846153
SD0    freq: 24000000
SD1    freq: 24000000
---------------------------------------------

Start WDT timer OK.
Magic: 0x87651234 0xf 0x789aedc4
System WARM boot.
Rolling Back done ......

---------------------------------------------
    Cortex Boot-Up Success

Cortex freq: 504000000
ARM    freq: 17600000
DDR    freq: 396000000
Core   freq: 216000000
iDSP   freq: 264000000
AXI    freq: 168000000
AHB    freq: 108000000
APB    freq: 54000000
UART   freq: 1846153
SD0    freq: 24000000
SD1    freq: 24000000
---------------------------------------------

Start WDT timer OK.
Magic: 0x87651234 0x10 0x789aeddb
System WARM boot.
Rolling Back done ......

---------------------------------------------
    Cortex Boot-Up Success

Cortex freq: 504000000
ARM    freq: 17600000
DDR    freq: 396000000
Core   freq: 216000000
iDSP   freq: 264000000
AXI    freq: 168000000
AHB    freq: 108000000
APB    freq: 54000000
UART   freq: 1846153
SD0    freq: 24000000
SD1    freq: 24000000
---------------------------------------------

Start WDT timer OK.
Magic: 0x87651234 0x11 0x789aedda
System WARM boot.
Rolling Back done ......

---------------------------------------------
    Cortex Boot-Up Success

Cortex freq: 504000000
ARM    freq: 17600000
DDR    freq: 396000000
Core   freq: 216000000
iDSP   freq: 264000000
AXI    freq: 168000000
AHB    freq: 108000000
APB    freq: 54000000
UART   freq: 1846153
SD0    freq: 24000000
SD1    freq: 24000000
---------------------------------------------

Start WDT timer OK.
Magic: 0x87651234 0x12 0x789aedd9
System WARM boot.
Rolling Back done ......

---------------------------------------------
    Cortex Boot-Up Success

Cortex freq: 504000000
ARM    freq: 17600000
DDR    freq: 396000000
Core   freq: 216000000
iDSP   freq: 264000000
AXI    freq: 168000000
AHB    freq: 108000000
APB    freq: 54000000
UART   freq: 1846153
SD0    freq: 24000000
SD1    freq: 24000000
---------------------------------------------

Start WDT timer OK.
Magic: 0x87651234 0x13 0x789aedd8
System WARM boot.
Rolling Back done ......

Here is the same situation but with SD card with m0100 inside the board:


---------------------------------------------
    Cortex Boot-Up Success

Cortex freq: 504000000
ARM    freq: 132000000
DDR    freq: 396000000
Core   freq: 216000000
iDSP   freq: 264000000
AXI    freq: 168000000
AHB    freq: 108000000
APB    freq: 54000000
UART   freq: 1846153
SD0    freq: 24000000
SD1    freq: 24000000
---------------------------------------------

Start WDT timer OK.
Magic: 0x1ac8d816 0x58c8d81c 0xa4ad814
System COLD boot.
Continue to booting up ......

---------------------------------------------
    Cortex Boot-Up Success

Cortex freq: 504000000
ARM    freq: 17600000
DDR    freq: 396000000
Core   freq: 216000000
iDSP   freq: 264000000
AXI    freq: 168000000
AHB    freq: 108000000
APB    freq: 54000000
UART   freq: 1846153
SD0    freq: 30857142
SD1    freq: 24000000
---------------------------------------------

Start WDT timer OK.
Magic: 0x87651234 0x1 0x789aedca
System WARM boot.
Continue to booting up ......

---------------------------------------------
    Cortex Boot-Up Success

Cortex freq: 504000000
ARM    freq: 17600000
DDR    freq: 396000000
Core   freq: 216000000
iDSP   freq: 264000000
AXI    freq: 168000000
AHB    freq: 108000000
APB    freq: 54000000
UART   freq: 1846153
SD0    freq: 30857142
SD1    freq: 24000000
---------------------------------------------

Start WDT timer OK.
Magic: 0x87651234 0x2 0x789aedc9
System WARM boot.
Continue to booting up ......

---------------------------------------------
    Cortex Boot-Up Success

Cortex freq: 504000000
ARM    freq: 17600000
DDR    freq: 396000000
Core   freq: 216000000
iDSP   freq: 264000000
AXI    freq: 168000000
AHB    freq: 108000000
APB    freq: 54000000
UART   freq: 1846153
SD0    freq: 30857142
SD1    freq: 24000000
---------------------------------------------

Start WDT timer OK.
Magic: 0x87651234 0x3 0x789aedc8
System WARM boot.
Continue to booting up ......

---------------------------------------------
    Cortex Boot-Up Success

Cortex freq: 504000000
ARM    freq: 17600000
DDR    freq: 396000000
Core   freq: 216000000
iDSP   freq: 264000000
AXI    freq: 168000000
AHB    freq: 108000000
APB    freq: 54000000
UART   freq: 1846153
SD0    freq: 30857142
SD1    freq: 24000000
---------------------------------------------

Start WDT timer OK.
Magic: 0x87651234 0x4 0x789aedcf
System WARM boot.
Detecting done ......

---------------------------------------------
    Cortex Boot-Up Success

Cortex freq: 504000000
ARM    freq: 17600000
DDR    freq: 396000000
Core   freq: 216000000
iDSP   freq: 264000000
AXI    freq: 168000000
AHB    freq: 108000000
APB    freq: 54000000
UART   freq: 1846153
SD0    freq: 30857142
SD1    freq: 24000000
---------------------------------------------

Start WDT timer OK.
Magic: 0x87651234 0x5 0x789aedce
System WARM boot.
Detecting done ......

---------------------------------------------
    Cortex Boot-Up Success

Cortex freq: 504000000
ARM    freq: 17600000
DDR    freq: 396000000
Core   freq: 216000000
iDSP   freq: 264000000
AXI    freq: 168000000
AHB    freq: 108000000
APB    freq: 54000000
UART   freq: 1846153
SD0    freq: 30857142
SD1    freq: 24000000
---------------------------------------------

Start WDT timer OK.
Magic: 0x87651234 0x6 0x789aedcd
System WARM boot.
Detecting done ......

---------------------------------------------
    Cortex Boot-Up Success

Cortex freq: 504000000
ARM    freq: 17600000
DDR    freq: 396000000
Core   freq: 216000000
iDSP   freq: 264000000
AXI    freq: 168000000
AHB    freq: 108000000
APB    freq: 54000000
UART   freq: 1846153
SD0    freq: 30857142
SD1    freq: 24000000
---------------------------------------------

Start WDT timer OK.
Magic: 0x87651234 0x7 0x789aedcc
System WARM boot.
Detecting done ......

---------------------------------------------
    Cortex Boot-Up Success

Cortex freq: 504000000
ARM    freq: 17600000
DDR    freq: 396000000
Core   freq: 216000000
iDSP   freq: 264000000
AXI    freq: 168000000
AHB    freq: 108000000
APB    freq: 54000000
UART   freq: 1846153
SD0    freq: 30857142
SD1    freq: 24000000
---------------------------------------------

Start WDT timer OK.
Magic: 0x87651234 0x8 0x789aedc3
System WARM boot.
Detecting done ......

---------------------------------------------
    Cortex Boot-Up Success

Cortex freq: 504000000
ARM    freq: 17600000
DDR    freq: 396000000
Core   freq: 216000000
iDSP   freq: 264000000
AXI    freq: 168000000
AHB    freq: 108000000
APB    freq: 54000000
UART   freq: 1846153
SD0    freq: 30857142
SD1    freq: 24000000
---------------------------------------------

Start WDT timer OK.
Magic: 0x87651234 0x9 0x789aedc2
System WARM boot.
Detecting done ......

---------------------------------------------
    Cortex Boot-Up Success

Cortex freq: 504000000
ARM    freq: 17600000
DDR    freq: 396000000
Core   freq: 216000000
iDSP   freq: 264000000
AXI    freq: 168000000
AHB    freq: 108000000
APB    freq: 54000000
UART   freq: 1846153
SD0    freq: 30857142
SD1    freq: 24000000
---------------------------------------------

Start WDT timer OK.
Magic: 0x87651234 0xa 0x789aedc1
System WARM boot.
Rolling Back done ......

---------------------------------------------
    Cortex Boot-Up Success

Cortex freq: 504000000
ARM    freq: 17600000
DDR    freq: 396000000
Core   freq: 216000000
iDSP   freq: 264000000
AXI    freq: 168000000
AHB    freq: 108000000
APB    freq: 54000000
UART   freq: 1846153
SD0    freq: 30857142
SD1    freq: 24000000
---------------------------------------------

Start WDT timer OK.
Magic: 0x87651234 0xb 0x789aedc0
System WARM boot.
Rolling Back done ......

---------------------------------------------
    Cortex Boot-Up Success

Cortex freq: 504000000
ARM    freq: 17600000
DDR    freq: 396000000
Core   freq: 216000000
iDSP   freq: 264000000
AXI    freq: 168000000
AHB    freq: 108000000
APB    freq: 54000000
UART   freq: 1846153
SD0    freq: 30857142
SD1    freq: 24000000
---------------------------------------------

Start WDT timer OK.
Magic: 0x87651234 0xc 0x789aedc7
System WARM boot.
Rolling Back done ......

---------------------------------------------
    Cortex Boot-Up Success

Cortex freq: 504000000
ARM    freq: 17600000
DDR    freq: 396000000
Core   freq: 216000000
iDSP   freq: 264000000
AXI    freq: 168000000
AHB    freq: 108000000
APB    freq: 54000000
UART   freq: 1846153
SD0    freq: 30857142
SD1    freq: 24000000
---------------------------------------------

Start WDT timer OK.
Magic: 0x87651234 0xd 0x789aedc6
System WARM boot.
Rolling Back done ......

---------------------------------------------
    Cortex Boot-Up Success

Cortex freq: 504000000
ARM    freq: 17600000
DDR    freq: 396000000
Core   freq: 216000000
iDSP   freq: 264000000
AXI    freq: 168000000
AHB    freq: 108000000
APB    freq: 54000000
UART   freq: 1846153
SD0    freq: 30857142
SD1    freq: 24000000
---------------------------------------------

Start WDT timer OK.
Magic: 0x87651234 0xe 0x789aedc5
System WARM boot.
Rolling Back done ......

---------------------------------------------
    Cortex Boot-Up Success

Cortex freq: 504000000
ARM    freq: 17600000
DDR    freq: 396000000
Core   freq: 216000000
iDSP   freq: 264000000
AXI    freq: 168000000
AHB    freq: 108000000
APB    freq: 54000000
UART   freq: 1846153
SD0    freq: 30857142
SD1    freq: 24000000
---------------------------------------------

Start WDT timer OK.
Magic: 0x87651234 0xf 0x789aedc4
System WARM boot.
Rolling Back done ......

---------------------------------------------
    Cortex Boot-Up Success

Cortex freq: 504000000
ARM    freq: 17600000
DDR    freq: 396000000
Core   freq: 216000000
iDSP   freq: 264000000
AXI    freq: 168000000
AHB    freq: 108000000
APB    freq: 54000000
UART   freq: 1846153
SD0    freq: 30857142
SD1    freq: 24000000
---------------------------------------------

Start WDT timer OK.
Magic: 0x87651234 0x10 0x789aeddb
System WARM boot.
Rolling Back done ......

---------------------------------------------
    Cortex Boot-Up Success

Cortex freq: 504000000
ARM    freq: 17600000
DDR    freq: 396000000
Core   freq: 216000000
iDSP   freq: 264000000
AXI    freq: 168000000
AHB    freq: 108000000
APB    freq: 54000000
UART   freq: 1846153
SD0    freq: 30857142
SD1    freq: 24000000
---------------------------------------------

Start WDT timer OK.
Magic: 0x87651234 0x11 0x789aedda
System WARM boot.
Rolling Back done ......

---------------------------------------------
    Cortex Boot-Up Success

Cortex freq: 504000000
ARM    freq: 17600000
DDR    freq: 396000000
Core   freq: 216000000
iDSP   freq: 264000000
AXI    freq: 168000000
AHB    freq: 108000000
APB    freq: 54000000
UART   freq: 1846153
SD0    freq: 30857142
SD1    freq: 24000000
---------------------------------------------

Start WDT timer OK.
Magic: 0x87651234 0x12 0x789aedd9
System WARM boot.
Rolling Back done ......

---------------------------------------------
    Cortex Boot-Up Success

Cortex freq: 504000000
ARM    freq: 17600000
DDR    freq: 396000000
Core   freq: 216000000
iDSP   freq: 264000000
AXI    freq: 168000000
AHB    freq: 108000000
APB    freq: 54000000
UART   freq: 1846153
SD0    freq: 30857142
SD1    freq: 24000000
---------------------------------------------

Start WDT timer OK.
Magic: 0x87651234 0x13 0x789aedd8
System WARM boot.
Rolling Back done ......

---------------------------------------------
    Cortex Boot-Up Success

Cortex freq: 504000000
ARM    freq: 17600000
DDR    freq: 396000000
Core   freq: 216000000
iDSP   freq: 264000000
AXI    freq: 168000000
AHB    freq: 108000000
APB    freq: 54000000
UART   freq: 1846153
SD0    freq: 30857142
SD1    freq: 24000000
---------------------------------------------

Start WDT timer OK.
Magic: 0x87651234 0x14 0x789aeddf
System WARM boot.
Rolling Back done ......

---------------------------------------------
    Cortex Boot-Up Success

Cortex freq: 504000000
ARM    freq: 17600000
DDR    freq: 396000000
Core   freq: 216000000
iDSP   freq: 264000000
AXI    freq: 168000000
AHB    freq: 108000000
APB    freq: 54000000
UART   freq: 1846153
SD0    freq: 30857142
SD1    freq: 24000000
---------------------------------------------

Start WDT timer OK.
Magic: 0x87651234 0x15 0x789aedde
System WARM boot.
Rolling Back done ......

I've just found this site http://dc.p-mc.eu/tools/a7tool with ambarela A7 programming tools, I try to have a look at it.

TaruTaruKing commented 3 years ago

How exactly do I obtain "FC300XFw.bin" to flash the m0100 only? Thanks

szupi commented 3 years ago

You need to use python fw dissector available in published tools here. It is well described about how to use.Br, Temat: Re: [o-gs/dji-firmware-tools] Flashing Adv firmware over Pro - is it possible ? (#65)Data: 2020-09-03 12:41Nadawca: "TaruTaruKing" Adresat: "o-gs/dji-firmware-tools" ; DW: "szupi" ; "Comment" ; How exactly do I obtain "FC300XFw.bin" to flash the m0100 only? Thanks

—You are receiving this because you commented.Reply to this email directly, view it on GitHub, or unsubscribe.

TaruTaruKing commented 3 years ago

You need to use python fw dissector available in published tools here. It is well described about how to use.Br, Temat: Re: [o-gs/dji-firmware-tools] Flashing Adv firmware over Pro - is it possible ? (#65)Data: 2020-09-03 12:41Nadawca: "TaruTaruKing" Adresat: "o-gs/dji-firmware-tools" ; DW: "szupi" ; "Comment" ; How exactly do I obtain "FC300XFw.bin" to flash the m0100 only? Thanks —You are receiving this because you commented.Reply to this email directly, view it on GitHub, or unsubscribe.

So it isn't as simple as dropping the file on the SD card and putting it in the gimbal board?

TaruTaruKing commented 3 years ago

You need to use python fw dissector available in published tools here. It is well described about how to use.Br, Temat: Re: [o-gs/dji-firmware-tools] Flashing Adv firmware over Pro - is it possible ? (#65)Data: 2020-09-03 12:41Nadawca: "TaruTaruKing" Adresat: "o-gs/dji-firmware-tools" ; DW: "szupi" ; "Comment" ; How exactly do I obtain "FC300XFw.bin" to flash the m0100 only? Thanks —You are receiving this because you commented.Reply to this email directly, view it on GitHub, or unsubscribe.

So it isn't as simple as dropping the file on the SD card and putting it in the gimbal board?

Why can't I just download the file somewhere if so? Haha

szupi commented 3 years ago

Flashing is exactly so simple, however you asked about obtaining this module thus I answered how to derive it from a few file :)Temat: Re: [o-gs/dji-firmware-tools] Flashing Adv firmware over Pro - is it possible ? (#65)Data: 2020-09-03 12:57Nadawca: "TaruTaruKing" Adresat: "o-gs/dji-firmware-tools" ; DW: "szupi" ; "Comment" ;

You need to use python fw dissector available in published tools here. It is well described about how to use.Br, Temat: Re: [o-gs/dji-firmware-tools] Flashing Adv firmware over Pro - is it possible ? (#65)Data: 2020-09-03 12:41Nadawca: "TaruTaruKing" Adresat: "o-gs/dji-firmware-tools" ; DW: "szupi" ; "Comment" ; How exactly do I obtain "FC300XFw.bin" to flash the m0100 only? Thanks —You are receiving this because you commented.Reply to this email directly, view it on GitHub, or unsubscribe.

So it isn't as simple as dropping the file on the SD card and putting it in the gimbal board?

—You are receiving this because you commented.Reply to this email directly, view it on GitHub, or unsubscribe.

TaruTaruKing commented 3 years ago

Flashing is exactly so simple, however you asked about obtaining this module thus I answered how to derive it from a few file :)Temat: Re: [o-gs/dji-firmware-tools] Flashing Adv firmware over Pro - is it possible ? (#65)Data: 2020-09-03 12:57Nadawca: "TaruTaruKing" Adresat: "o-gs/dji-firmware-tools" ; DW: "szupi" ; "Comment" ; You need to use python fw dissector available in published tools here. It is well described about how to use.Br, Temat: Re: [o-gs/dji-firmware-tools] Flashing Adv firmware over Pro - is it possible ? (#65)Data: 2020-09-03 12:41Nadawca: "TaruTaruKing" Adresat: "o-gs/dji-firmware-tools" ; DW: "szupi" ; "Comment" ; How exactly do I obtain "FC300XFw.bin" to flash the m0100 only? Thanks —You are receiving this because you commented.Reply to this email directly, view it on GitHub, or unsubscribe. So it isn't as simple as dropping the file on the SD card and putting it in the gimbal board? —You are receiving this because you commented.Reply to this email directly, view it on GitHub, or unsubscribe.

Lmfao, very true. I haven't slept, so I'm just trying to find the file and give it a shot before I call it quits lol

szupi commented 3 years ago

I think I might have this file somewhere, however I cannot assure you that I will be able to pick the correct one.Temat: Re: [o-gs/dji-firmware-tools] Flashing Adv firmware over Pro - is it possible ? (#65)Data: 2020-09-03 12:59Nadawca: "TaruTaruKing" Adresat: "o-gs/dji-firmware-tools" ; DW: "szupi" ; "Comment" ;

You need to use python fw dissector available in published tools here. It is well described about how to use.Br, Temat: Re: [o-gs/dji-firmware-tools] Flashing Adv firmware over Pro - is it possible ? (#65)Data: 2020-09-03 12:41Nadawca: "TaruTaruKing" Adresat: "o-gs/dji-firmware-tools" ; DW: "szupi" ; "Comment" ; How exactly do I obtain "FC300XFw.bin" to flash the m0100 only? Thanks —You are receiving this because you commented.Reply to this email directly, view it on GitHub, or unsubscribe.

So it isn't as simple as dropping the file on the SD card and putting it in the gimbal board?

Why can't I just download the file somewhere if so? Haha

—You are receiving this because you commented.Reply to this email directly, view it on GitHub, or unsubscribe.

TaruTaruKing commented 3 years ago

I think I might have this file somewhere, however I cannot assure you that I will be able to pick the correct one.Temat: Re: [o-gs/dji-firmware-tools] Flashing Adv firmware over Pro - is it possible ? (#65)Data: 2020-09-03 12:59Nadawca: "TaruTaruKing" Adresat: "o-gs/dji-firmware-tools" ; DW: "szupi" ; "Comment" ; You need to use python fw dissector available in published tools here. It is well described about how to use.Br, Temat: Re: [o-gs/dji-firmware-tools] Flashing Adv firmware over Pro - is it possible ? (#65)Data: 2020-09-03 12:41Nadawca: "TaruTaruKing" Adresat: "o-gs/dji-firmware-tools" ; DW: "szupi" ; "Comment" ; How exactly do I obtain "FC300XFw.bin" to flash the m0100 only? Thanks —You are receiving this because you commented.Reply to this email directly, view it on GitHub, or unsubscribe. So it isn't as simple as dropping the file on the SD card and putting it in the gimbal board? Why can't I just download the file somewhere if so? Haha —You are receiving this because you commented.Reply to this email directly, view it on GitHub, or unsubscribe.

Nothing like Russian roulette at seven in the morning lol I have a Phantom 3 Pro if that matters lol

TaruTaruKing commented 3 years ago

I read somewhere that the guy flashed firmwares backwards and then forwards and it fixed his gimbal board with undetected devices 8 and 15, but it's taking forever...

szupi commented 3 years ago

Just state what you are up to, describe what you've done so far and where you are, I will try to help.Temat: Re: [o-gs/dji-firmware-tools] Flashing Adv firmware over Pro - is it possible ? (#65)Data: 2020-09-03 13:06Nadawca: "TaruTaruKing" Adresat: "o-gs/dji-firmware-tools" ; DW: "szupi" ; "Comment" ;

I think I might have this file somewhere, however I cannot assure you that I will be able to pick the correct one.Temat: Re: [o-gs/dji-firmware-tools] Flashing Adv firmware over Pro - is it possible ? (#65)Data: 2020-09-03 12:59Nadawca: "TaruTaruKing" Adresat: "o-gs/dji-firmware-tools" ; DW: "szupi" ; "Comment" ; You need to use python fw dissector available in published tools here. It is well described about how to use.Br, Temat: Re: [o-gs/dji-firmware-tools] Flashing Adv firmware over Pro - is it possible ? (#65)Data: 2020-09-03 12:41Nadawca: "TaruTaruKing" Adresat: "o-gs/dji-firmware-tools" ; DW: "szupi" ; "Comment" ; How exactly do I obtain "FC300XFw.bin" to flash the m0100 only? Thanks —You are receiving this because you commented.Reply to this email directly, view it on GitHub, or unsubscribe. So it isn't as simple as dropping the file on the SD card and putting it in the gimbal board? Why can't I just download the file somewhere if so? Haha —You are receiving this because you commented.Reply to this email directly, view it on GitHub, or unsubscribe.

Nothing like Russian roulette at seven in the morning lol I have a Phantom 3 Pro if that matters lol

—You are receiving this because you commented.Reply to this email directly, view it on GitHub, or unsubscribe.

TaruTaruKing commented 3 years ago

[01026609]Version checking[3]... [01026741][03 05][05] v34.2.0.9 -> v34.2.0.9 need upgrade. [01026860][03 06][05] v2.4.14.5 -> v2.4.14.5 need upgrade. [01026938][04 00][05] v1.44.0.0 -> v1.44.0.0 need upgrade. [01027078][11 00][05] v1.7.15.1 -> v1.7.15.1 need upgrade. [01027244][12 00][05] v1.10.0.0 -> v1.10.0.0 need upgrade. [01027345][12 01][05] v1.10.0.0 -> v1.10.0.0 need upgrade. [01027472][12 02][05] v1.10.0.0 -> v1.10.0.0 need upgrade. [01027608][12 03][05] v1.10.0.0 -> v1.10.0.0 need upgrade. [01040184][15 00][00] device not detected. [01040307][17 00][05] v1.1.1.7 -> v1.1.1.7 need upgrade. [01040466][17 01][05] v1.0.2.7 -> v1.0.2.7 need upgrade. [01040564][19 00][00] v255.255.255.254 -> v1.0.8.96 [01040633][01 00][05] v1.30.5036 -> v1.30.5036 need upgrade [01040708][01 01][05] v1.30.5036 -> v1.30.5036 need upgrade [01053283][08 00][00] device not detected. [01053378][09 00][05] v3.0.0.10 -> v3.0.0.10 need upgrade. [01053524]Packet upgrade failed at version checking.

Trying to fix these lol

szupi commented 3 years ago

Have you resoldered jumpers/resistors on the board?Temat: Re: [o-gs/dji-firmware-tools] Flashing Adv firmware over Pro - is it possible ? (#65)Data: 2020-09-03 13:08Nadawca: "TaruTaruKing" Adresat: "o-gs/dji-firmware-tools" ; DW: "szupi" ; "Comment" ; I read somewhere that the guy flashed firmwares backwards and then forwards and it fixed his gimbal board with undetected devices 8 and 15, but it's taking forever...

—You are receiving this because you commented.Reply to this email directly, view it on GitHub, or unsubscribe.