This tutorial is for information only, anybody can take these actions at his own risk! No guarantee that it will work out-of-the-box!
Basically, if the flashing process goes wrong, your camera can go softbrick. That is what happened me with an ASI120MC. Luckily, the firmware file itself is available in the downloads from the ZWO site, the only thing to be done is the flashing process to the EEPROM chip (next the U5 mark on the IC) of the camera. I used a Raspberry Pi 3 to interface the chip.
Items needed:
- Raspberry Pi
- Clip for the EEPROM chip (search for "SOP8 Test Clip EEPROM 25CXX" on aliexpress or ebay)
- Some cables to connect the Raspberry's GPIO ports to the clip.
Steps:
1. Don't connect the ZWO camera to USB during the whole process.
2. Don't turn the Raspberry Pi on yet.
3. Connect the clip to the EEPROM chip and the clip outputs to the Raspberry Pi GPIO pins according to this diagram: http://www.gallot.be/wp-content/uploads/2012/06/24C64-Connection.png
4. Turn on the Raspberry. Make sure that I2C communication is enabled in the Raspberry Pi in raspi-config. Reboot the Raspberry is needed.
5. The i2c bus must show up automatically. Verify with "ls /dev/i2c*" that /dev/i2c-1 exists.
6. Make sure that the EEPROM shows up with "sudo i2cdetect -y 1". The "51" or similar address must appear there.
7. Download the ZWO firmwares to the Raspberry with the update tool from the ZWO website.
8. Download to the Raspberry, unpack and compile with "make" the eeprog application from https://www.richud.com/wiki/Rasberry_Pi_I2C_EEPROM_Program#eeprog
9. Read the current EEPROM content to a file: "sudo ./eeprog -f /dev/i2c-1 0x51 -16 -r 0x00 -o eeprom_dump"
10. Flash the correct firmware for your bricked camera. In my case, it was the ASI120MC-compatible.iic file: "sudo ./eeprog -f -i ASI120MC-compatible.iic -16 -t 5 -w 0x00 /dev/i2c-1 0x51"
11. Disconnect the clip from the ZWO camera.
12. Connect the camera to USB and enjoy!