Monday, November 21, 2016

Restoring bricked Eachine ProDVR after firmware update


If your ProDVR is bricked after 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)

Software

Steps
Flashing 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.
5.    Connect ProDVR 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):
6.    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.

7.    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. You should see something similar to this:

Insert SD card and you good to go!

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


26 comments:

  1. Can I use the same procedure and firmware hex file to recover a HMDVR?

    ReplyDelete
    Replies
    1. Yes, you can! HMDVR and Eachine ProDVR are hardware compatible, software is the same and the procedures for restoring bricked DVR are the same. One RCG user has reported sucessfully restoring of bricked HMDVR with this method.

      Delete
  2. Thanks for this article, you saved my ProDVR. I've done the flashing under macOS and shared the commands/details here https://ledrone.club/2017/02/22/debriquer-le-module-eachine-prodvr/ (in Fr but commands and outputs self explanatory :))

    ReplyDelete
  3. Cheers! I'm happy that it helped!

    ReplyDelete
  4. why using an arduino mini/nano? can i use an arduino 1?

    ReplyDelete
    Replies
    1. You can use any Arduino, just have in mind that you need to supply 3.3V power to the EEPROM chip and in theory signal lines should not exceed 3.3V.

      Delete
    2. thanks montis. I think that the problem was that when the article was posted XLoader didn't suppoort arduino one, only nano/mini. But On XLoaeder website i've seen that now it supports arduino one too.

      Delete
    3. Good to know! Thanks for info. I will correct my previous reply - You can use almost any Arduino with an Atmega328 chip. Firmware (frser-duino.hex) was compiled for Atmega328.

      Delete
  5. How long does the reading take? Flashrom always seems to get stuck at "Reading flash..." But great tutorial so far

    ReplyDelete
    Replies
    1. Reading takes a while, a couple of minutes if I recall correctly.

      Delete
  6. I'm stuck at the first command:
    mingw32-w64-flashrom-r1781.exe --programmer serprog:dev=COM4:115200 -c MX25L1605 --read test.hex

    i get -> no eeprom/flash device found. I'm using an arduino UNO, should i change something else other than the serial port?

    ReplyDelete
    Replies
    1. solved, it was the cabling. Now i'm stuck at erasing and writing though. It's been like an hour. is it normal?

      Delete
  7. How can I use Flashrom, I can not start it
    Please help me

    ReplyDelete
  8. HI,
    Do you have maybe flash for newer HMDVR HD? I think mine is bricked, but i couldn't find any topic about problems with this DVR. Mayby there is option to recorver FLASH memory from update file?

    ReplyDelete
  9. Hi, patryck
    (We are talking about the DVR that has camera attached, right ?)
    Did you try to flash the lastest file on banggood (to remove 1min auto save) and got yours bricked ?
    I'm also interested in this DVR

    ReplyDelete
  10. I think so, because i didn't have fpv googles that time and i couldn't start recording. If You buy this this DVR and gonna upgrade firmware, wait couple minutes even after process is done.
    Right now I'm waiting for flasher from ebay. I hope that writing firmware directly to flash memory will recorver my DVR.

    ReplyDelete
  11. Patryk, you can use arduino instead of the dedicated serial memory flasher. HMDVR and Eachine ProDVR are the same hardware (well, almost). Both devices use the same firmware.
    Good tip about waiting decent extra time after flashing. I always wait extra minute and never had a problem in bricking the DVR again.

    ReplyDelete
  12. Ch341A costs under 3 dollars so why not to try? Also software looks more user friendly and its support 128mbit flash from my DVR.

    Second think i have HMDVR HD which is totally different DVR with 128mbit memory(dont remember number right now) and only firmware which i have is update file. I hope that update process Is so oldschool that it writes byte after byte direcly to flash memory without processing it.

    ReplyDelete
  13. Hi Montis,
    If you can help me.
    I am using Ardu nano V3 which has USB and 3.3V pin so I don't have to use additional USB-TTL converter.
    I've uploaded fser-duino.hex successfully on Ardu nano.
    Ardu nano is recognised as a COM port but when i connect pins from DVR chip to ardu nano it's not recognised as a COM port any more but as Unknown device.
    So I can't flash new FW as you can imagine.
    Do you have any idea what is causing this?

    ReplyDelete
    Replies
    1. Most probably you have connected something wrong. We need to see the photos of your wiring. Could you upload some photos, how you have wired everything up?
      You could also post the issue on the RCGroups thread: https://www.rcgroups.com/forums/showthread.php?2682952-Eachine-ProDVR-Mini-Video-Audio-Recorder-incredible-price - I'm active there also.

      Delete
    2. Thank you Montis, I've posted a post on RCGroups.

      Delete
  14. This comment has been removed by the author.

    ReplyDelete
  15. I am sorry,but I don't understand where can I put the commandline and see the output?

    ReplyDelete
  16. This comment has been removed by the author.

    ReplyDelete
  17. Hi,montis ,thank you for your post , but I had a problom when I was trying to save my eachineprodvr . When I was following your instructions and everything went fine till
    the last step => erase/write . It came out the lines : 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... FAILED at 0x00001000! Expected=0xff, Found=0x2
    b, failed byte count from 0x00000000-0x0000ffff: 0xed13
    ERASE FAILED!
    Reading current flash chip contents... done.

    Is there something I've done wrong ? Could you tell me what should I do ? thanks for your helping!

    ReplyDelete
  18. Hello. Could this work to unlock eachine ev300d's onboard DVR?

    ReplyDelete

Featured Post

Racerstar RF2205 (RF2205S) motor review and thrust test

   I have recently  received  a set of Racerstar RF2205 2300Kv motors  from Banggood  for a review . Motors came well packed in a carton...