floppes / RTD266xFlash

67 stars 34 forks source link

Help with flashing #19

Closed sonik-br closed 2 years ago

sonik-br commented 2 years ago

Hi!

Not really an issue...

I've flashed a wrong firmware on my device, on windows using the RTDTool... Device is rtd2550 and the flashed firmware is for rtd2556.

But I've made an backup of the original firmware before flashing!

Now the device won't power up anymore.

Then I found about this project. Set up an rpi3 and used the py script to dump the firmware. Compared it to the file I used to flash and it's not the same. Then I when I try to flash my backup it gives me crc error and aborts.

My controller board is bricked? :-(

floppes commented 2 years ago

In my tests, the RTD266x was very robust. I am not sure, but it seems that firmware reading and flashing works without a valid firmware in flash. I once even deleted the firmware, rebooted and flashed the original firmware to get it working again. I think you still have chances to revive your display. If you have an Arduino, try this method. There may be problems with the HDMI interface on the RPi.

sonik-br commented 2 years ago

I will wire the arduino and try with it. Just need to find an spare hdmi cable to adapt it. Closing for now but I will report back the results. Thanks.

sonik-br commented 2 years ago

My board have hdmi and vga inputs. Do you know if it's also possible to flash via vga using the arduino? I don't think I can solder those small hdmi pins :(

floppes commented 2 years ago

It depends on your board, but in general the VGA port should have DDC as well. SCL should be pin 15, SDA pin 12 and GND should be pin 5.

sonik-br commented 2 years ago

@floppes

Connection only the vga does not work but by also connecting the hdmi port to my pc it works!

Connecting...
Connection successful!
Reading status info... done
Manufacturer ID: 0x85 (STMicroelectronics)
Device ID: 0x12 (Unknown)
JEDEC Manufacturer ID: 0x85 (STMicroelectronics)
JEDEC Memory Type: 0x60
JEDEC Capacity: 0x13 (Unknown)
Status: 0x00BC

When I try to write a firmware it gives a CRC error.

Erasing sector at address 0... done
Writing 256 bytes to address 0... CRC error

Edit: I can dump the firmware to a file and can write it back to the device. But I can't flash any other firmware. can't even flash my old backup. There's any way to skip the crc check?

Edit again: I think it's not writing at all. Even the "Erase function" does not work. It says it erased but all data is still there.

floppes commented 2 years ago

In your first post you wrote that you have an RTD2550. I checked the datasheet and one of the differences to the RTD2660 is, that it doesn't have an integrated MCU. Therefore some different commands or other CRCs may be required for flashing the firmware.

Do you have any documentation of your board? Are there additional chips on the board? Can you tell us what's printed on these chips? A high-resolution photo of your board would be helpful as well.

sonik-br commented 2 years ago

The onboard chip does not have any printed info. It's purposely removed out at factory.

Controller board have printed RTD2556. But when the board was working (with the original FW) when entering the info screen it was showing RTD2550. Really hard to know what's going on.

Unfortunately I don't have any documentation on it. I will try to take some good pictures with an cellphone zoom lens.

Those are older pics from my board just for an overview 1 2

floppes commented 2 years ago

I can't find a comprehensive datasheet for RTD2556 online. This means that we don't know if the flashing protocol is the same as for RTD2660.

One of the smaller chips on your board should be the EEPROM. If you can identify the type, you can try to flash it directly. There are two options:

  1. If you have access to an EEPROM programmer: Desolder the EEPROM and flash it with an EEPROM programmer
  2. Solder wires to the EEPROM pins and connect them to an Arduino or another simple microcontroller. Get familiar with the flashing protocol and write your own firmware to flash the EEPROM. This is quite complicated, but if the EEPROM type is common, there should be Arduino sketches available online.
sonik-br commented 2 years ago

Another option is to buy one of the usb flashers with the tool. I used it via GPU's DisplayPort/HDMI to flash (the wrong firmware) and it worked. Problem is that now my GFX Card won't detect it anymore and the flasher won't work. USB flasher is the price of another new board. So I might just get a new board.

Thank you very much for taking your time and trying to help. If I ever manage to fix this board I will let you know. :)

floppes commented 2 years ago

Good luck! I would be interested to know about the result.