Restoring bricked Caddx Turtle after failed firmware update

If you have failed to update the Caddx Turtle firmware, then you’ll probably have “bricked” device that refuses to work (black screen, no video out, no reaction to buttons, etc). Don’t be upset and don’t throw it away – it is relatively easy to restore the firmware by using the Arduino board.

Hardware

USB to TTL adapter. Better get one with 3.3V option. I have tested the cheap CH340G adapters and they work flawlessly, therefore I recommend them.

(Possible variants on ebay: https://www.ebay.com/sch/i.html?_nkw=USB+to+TTL+CH340G+3.3V)

Arduino Mini Pro with Atmega328P. Probably any Atmega328 based Arduino board should fit, just have in mind that we need 3.3V power supply and logic levels.

(possible variants on ebay: https://www.ebay.com/sch/i.html?_nkw=Arduino+Mini+Pro+atmega328)

Software

You can download all the software in one package here: http://bit.ly/Google-Drive-Caddx-Turtle-Firmware-Flashing or you can download the individual packages from the list down below:

Note! It seems that the Caddx has changed the Turtle Cam sensor board for the latest batches and you should pay attention what firmware you are uploading. There are two firmware files: for old sensor board and the new sensor board. The provided firmware may not work for particular your version of Caddx Turtle. Do the firmware backup!

Procedure step by step

First you need to flash Serprog firmware to Arduino Mini Pro:

  1. Connect USB – TTL converter to Arduino Mini Pro board
  2. If everything is ok, You should see “FTDI” or “USB-SERIAL CH340” device in device manager
  3. Connect Arduino Mini Pro to USB-TTL adapter (check that your FTDI or USB Serial adapter uses 3v for powering)
  4. Start Xloader, open [fser-duino.hex] file, set the  COM port and hit “Upload” (tip: Press and hold Reset button on the Arduino board and release right before you hit the “Upload” button).

Now You have Flashrom compatible programmer.

Connect the Turtle serial flash IC to the Arduino. Use supplied connection schematic. Solder 6 wires: VCC, GND, CS, CLK, MOSI and MISO. Try to keep them as short as possible, better about 10cm. Use small diameter wire.

Connection table:

FLASH CHIP ARDUINO BOARD
VCC (pin 8 ) 3.3V output (5V can kill the board!)
GND (pin 4) GND pin
CS (pin 1) pin 10
MISO (pin 2) pin 12
MOSI (pin 5) pin 11
Clock (pin 6) pin 13

Connection schematic:

Caddx Turtle Flash chip connected to the Arduino board should look like that:

Do not power the Caddx Turtle board with alternative power source. It should be left only connected to Arduino board.

Once you have everything connected, try reading the contents of flash IC by running this command in Windows Command prompt:

mingw32-w64-flashrom-r1781.exe --programmer serprog:dev=COM7:115200 -c MX25L6445E --read test.hex

Here in the parameter --programmer serprog:dev=COM7:115200 change COM7 to whatever COM number your USB-TTL adapter has.

You should get similar output to this:

E:\My\RC\Flashrom\Caddx.Turtle>mingw32-w64-flashrom-r1781.exe --programmer serprog:dev=COM7:115200 -c MX25L6445E --read test.hex
flashrom v0.9.7-r1781 on Windows 6.2 (x86)
flashrom is free software, get the source code at http://www.flashrom.org

Calibrating delay loop... OK.
serprog: Programmer name is "frser-duino"
Found Macronix flash chip "MX25L6445E" (8192 kB, SPI) on serprog.
Reading flash... done.

Be patient – reading 8Mbytes of the data takes ~ 10 min.

If everything goes OK by this far, you are ready to flash the firmware. To flash the device, start this command:

mingw32-w64-flashrom-r1781.exe --programmer serprog:dev=COM7:115200 -c MX25L6445E --write flash.hex

You should get similar output to this:

E:\My\RC\Flashrom\Caddx.Turtle>mingw32-w64-flashrom-r1781.exe --programmer serprog:dev=COM7:115200 -c MX25L6445E --write flash.hex
flashrom v0.9.7-r1781 on Windows 6.2 (x86)flashrom is free software, get the source code at http://www.flashrom.org 
Calibrating delay loop... OK.

serprog: Programmer name is "frser-duino"
Found Macronix flash chip "MX25L6445E" (8192 kB, SPI) on serprog.

Reading old flash chip contents... done.
Erasing and writing flash chip... Erase/write done.
Verifying flash... VERIFIED.

Note: Flashing 8Mbytes of the data takes a lot of time – be patient. Arduino flashing device uses slow SPI connection with 115200 baud rate. (approx 14kb per second, or 840kb per minute) so it takes about 10 min to read, 20 min to erase-write and 10 min to verify…

Note: Caddx Turtle can not boot normally while the Arduino board is connected. Options – you can disconnect the wires after the flashing or you can hold the reset button on the Arduino board while the Caddx Turtle is booting to check if everything is working after the flash process.

Note: Windows command prompt can be opened by selecting the File – Open command prompt from the file explorer menu.

You are done! You have successfully restored the firmware.

If you have questions or you need more details, then leave a comment below.

Mandatory disclaimer: Do it on your own risk. Flashing the firmware can result in bricking your device.

Comments
  1. Michael
    • montis
  2. Michael Knor
    • montis
      • montis
  3. Michael
    • montis
  4. Jason
    • montis
      • Jason
        • montis
          • GrumlyFPV
          • montis
  5. Jason Cross
    • montis
  6. Jason Cross
    • montis
  7. Jason Cross
  8. Jason Cross
    • montis
      • Jason Cross
        • montis
  9. utha remo
    • montis
      • Utharemo
        • montis
          • Utharemo
          • Utharemo
          • montis
          • Utharemo
          • montis
  10. GrumlyFPV
    • montis
  11. Robby
    • montis
      • Rhenno
        • montis
  12. DocNsanE
    • montis
      • DocNsanE
        • montis
  13. DocNsanE
    • montis
      • Romy
        • montis
          • Niels Kockelmann
  14. Romy
    • Romy
      • montis
  15. Niels
  16. Romy
    • montis
  17. Alex
    • montis
  18. Simone
  19. Simone
    • Simone
  20. Thomas Daudelin
    • montis
  21. Jürgen M.
    • montis
  22. Richard Revell
  23. Richard Revell
    • montis
  24. Josh
    • montis
    • Adrian Andrei
  25. Andre
    • montis
  26. Kevin
  27. Ray
    • montis
  28. Mike
    • montis
  29. ali
  30. x3no
    • montis
  31. zen
    • montis
  32. zen
    • montis
  33. ipunk
    • montis
  34. Stefan
  35. Stefan
  36. LinHuang
    • montis
  37. Matt
    • montis
  38. Francesco Serra
  39. Thomas Graham
    • montis
  40. Thomas Graham
    • montis
  41. FELIPE MARTINS
    • montis
  42. FELIPE MARTINS
  43. FELIPE MARTINS
  44. FELIPE MARTINS
  45. FELIPE MARTINS
    • montis
  46. Bawono Andy
    • montis
      • Sergey
        • montis
        • saifudin
  47. REMZİ ERDEM BARIŞ
    • montis
  48. Ali
    • montis
  49. Sam
    • montis
  50. Philip Clarke
    • montis

Leave a Reply

Your email address will not be published.

*