Switch branches/tags
Nothing to show
Find file History
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


Read and write the FX2LP's RAM and EEPROM.

The default FX2LP firmware (i.e with EEPROM isolated) enumerates as VID=0x04B4 (Cypress) and
PID=0x8613 (FX2LP), and provides support for loading firmware into RAM. In order to write the EEPROM
you need to load a firmware which supports EEPROM writes (e.g the provided firmware) into RAM first.

You can use any file type (.hex/.ihx, .bix or .iic) as a source or destination, and it will be
converted if necessary. The EEPROM native format is .iic and the RAM native format is .hex. The
conversion between different representations is potentially lossy (e.g there may be some
configuration data beyond the end of the I2C records in an EEPROM or .iic file, which will be lost
if you convert it to a .hex file).

If you're unsure about the suitability of a new firmware (wherever you got it from), it's a good
idea to load it into RAM first to make sure it's not totally broken.

If you manage to brick your device, you will have to isolate the EEPROM (possibly by removing a
jumper or cutting a PCB track), then load a good firmware into RAM, reconnect the EEPROM (replace
the jumper) and load the good firmware into EEPROM.

Uploading your own SDCC-compiled firmware:
    Write SDCC-generated I8HEX file to FX2LP's RAM:
        sudo fx2loader/fx2loader -v 0x1443 -p 0x0005 firmware/firmware.hex
        fx2loader\Debug\fx2loader.exe -v 0x1443 -p 0x0005 firmware\firmware.hex
    Write SDCC-generated I8HEX file to FX2LP's EEPROM (assuming current firmware supports EEPROM writes):
        sudo fx2loader/fx2loader -v 0x1443 -p 0x0005 firmware/firmware.hex eeprom
        fx2loader\Debug\fx2loader.exe -v 0x1443 -p 0x0005 firmware\firmware.hex eeprom

Backup and restore the existing firmware:
    Backup FX2LP's existing 128kbit (16kbyte) EEPROM data:
        sudo fx2loader/fx2loader -v 0x1443 -p 0x0005 eeprom:128 backup.iic
        fx2loader\Debug\fx2loader.exe -v 0x1443 -p 0x0005 eeprom:128 backup.iic
    Restore FX2LP's 128kbit (16kbyte) EEPROM data from backup I2C file (assuming current firmware supports EEPROM writes):
        sudo fx2loader/fx2loader -v 0x1443 -p 0x0005 backup.iic eeprom
        fx2loader\Debug\fx2loader.exe -v 0x1443 -p 0x0005 backup.iic eeprom

Convert between .hex files, .bix files and .iic files:
    sudo fx2loader/fx2loader -v 0x1443 -p 0x0005 myfile.iic myfile.bix
    fx2loader\Debug\fx2loader.exe -v 0x1443 -p 0x0005 myfile.iic myfile.bix