Restoring bricked Eachine ProDVR after failed firmware update

If your ProDVR is bricked after failed firmware update process, you can easily restore it by flashing firmware directly to the serial flash ship.

What you will need:

  • Arduino Mini Pro atmega328 board. (16Mhz 5V, about 1.30$)

It is also possible to use Arduino Nano with atmega328 16Mhz  (Possible variants on ebay: https://goo.gl/zd0twR, Banggood: https://goo.gl/MDmy3E)

  • USB to Serial adapter. It can be FTDI, CH340G  (just look for ones that support 3.3V , about 1.30$) (Possible variants on ebay: https://goo.gl/Ru7BXF)
  • Thin wires for connecting Arduino and Serial Flash

Next parts are needed if Arduino outputs more than 3.3V on signal pins:

  • Resistors for level divider 5k and 10k both (2 pcs of each value)
  • Breadboard (not necessary, but very convenient)

Alternatively you can use SOP8 programming clip, so you will not have to solder the wires to the chip.

Software

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 right com port and hit “Upload”.

Now You have Flashrom compatible programmer.

Connect ProDVR serial flash IC to the Arduino. Use supplied connection schematics. For this you need to lift a bit VCC pin of the serial flash to disconnect from the rest of the board electronics and solder 5 wires: VCC, GND, CS, CLK MOSI and MISO. Try to keep them as short as possible, about 10cm. Use small diameter wire.

Connection table:

FLASH CHIP – ARDUINO

VCC (pin 8 ) to Arduino  3.3V output (5V would likely kill the chip, be carefull)

GND (pin 4) to Arduino GND pin

CS (pin 1) to Arduino pin 10

DO (pin 2) to Arduino pin 12

DI (pin 5) to Arduino pin 11

Clock (pin 6) to Arduino pin 13

Schematics (only if Arduino outputs 3.3V signal levels):

Once connected, try reading the contents of flash IC by running this command:

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

You should get similar output to this:

E:\My\RC\Flashrom>mingw32-w64-flashrom-r1781.exe --programmer serprog:dev=COM10:115200 -c MX25L1605 --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 "MX25L1605" (2048 kB, SPI) on serprog.Reading flash... done.
 

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=COM16:115200 -c MX25L1605 --write flash.hex
 

You should get similar output to this:

E:\My\RC\Flashrom>mingw32-w64-flashrom-r1781.exe --programmer serprog:dev=COM16:115200 -c MX25L1605 --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 "MX25L1605" (2048 kB, SPI) on serprog.

Reading old flash chip contents... done.

Erasing and writing flash chip... Erase/write done.

Verifying flash... VERIFIED.
 

You are done! Now reconnect serial flash chip Power pin to the PCB and try to power your ProDVR. Insert SD card and you good to go!

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

Tags:
Comments
  1. Thomas Edwards
    • montis

Leave a Reply

Your email address will not be published. Required fields are marked *

*