FTDI-EEPROM(1)

🌸 NAME 🌸

okay bestie, meet ftdi_eeprom β€” the tool for reading, erasing and flashing FTDI USB chip eeproms ✨ it's a page from the General Commands Manual, aka FTDI-EEPROM(1), and it's literally your little glow-up wand for FTDI eeproms πŸ’…


πŸŽ€ SYNOPSIS πŸŽ€

ftdi_eeprom [commands] config-file

πŸ¦‹ DESCRIPTION πŸ¦‹

so ftdi_eeprom is a small tool β€” tiny, but it ate β€” for reading, erasing and flashing FTDI USB chip eeproms πŸ’– it uses libftdi to get at the chip, which means you need to have the required permissions on the device. no permissions, no slay. 😭

the ftdi_sio module should not be loaded. you can stop it from being loaded automatically by adding it to /etc/modprobe.d/blacklist. girl, just blacklist it and move on 🫢

also, and this is the part everyone forgets: you have to unplug and replug your device to get the new values to be read. otherwise you'll still get the old values, and you'll be sitting there like "why is nothing changing" πŸ™ˆ so unplug it, plug it back in, main character energy.


πŸ‘‘ COMMANDS πŸ‘‘

  • --device description β€” pick which device to open, using a description string. it's one of these:
d:<device node>
i:<vendor>:<product>
i:<vendor>:<product>:<index>
s:<vendor>:<product>:<serial>
  • --read-eeprom β€” read the eeprom and write it to ‐filename‐ from config-file πŸ“–
  • --build-eeprom β€” build the eeprom image ✨
  • --erase-eeprom β€” erase the eeprom 🧹
  • --flash-eeprom β€” flash the eeprom πŸ”₯
  • --verbose β€” print more information πŸ“’

🌈 CONFIGURATION FILE 🌈

the config file is just a list of key-value pairs, and those get used to flash an FTDI USB chip eeprom πŸ’œ comments start with #. the beginning of such a file might look like this, no cap:

vendor_id=0x0403        # Vendor ID
product_id=0x6001       # Product ID

max_power=0             # Max. power consumption: value * 2 mA. Use 0 if self_powered = true.

###########
# Strings #
###########
manufacturer="ACME Inc"                 # Manufacturer
product="USB Serial Converter"          # Product
serial="08-15"                          # Serial

the example configuration file that could be found in /usr/share/doc/ftdi-eeprom/ is quite well commented, so you should be able to use it as a basis πŸŽ€ it's giving tutorial, it's giving support system.

the following keys are supported:

πŸ’« the keys πŸ’«

  • vendor_id β€” set the vendor ID of the device. this value could be entered in decimal or hexadecimal form, and should be in the range 0-65535 or 0x0000-0xffff, respectively.
  • product_id β€” set the product ID of the device. this value could be entered in decimal or hexadecimal form, and should be in the range 0-65535 or 0x0000-0xffff, respectively.
  • max_power β€” set the maximum current the device will use, in 2 mA unit. use 0 if self_powered = true.
  • manufacturer β€” set the manufacturer string, which normally holds the name of the manufacturer.
  • product β€” set the product string, which normally holds the name of the product.
  • serial β€” set the serial string, which normally holds the serial number of the product.
  • self_powered β€” specify if the device is self-powered or not. the value should be true or false.
  • remote_wakeup β€” specify if the device supports remote wake-ups. the value should be true or false.
  • use_serial β€” if this value is set to true, the serial string will be used. otherwise the default serial string will be used.
  • BM_type_chip β€” this value have to be set to true if you are using a BM chip. (yes bestie, "have to", the manpage said it like that, and we respect it πŸ’…)
  • in_is_isochronous β€” if set to true, this option specify that the input endpoint is in isochronous mode.
  • out_is_isochronous β€” if set to true, this option specify that the output endpoint is in isochronous mode.
  • suspend_pull_downs β€” if this value is set to true, the pull downs are enabled during suspend for lower power consumption.
  • change_usb_version β€” this value has to be set to true if you want to force the USB version using the usb_version key. otherwise the default USB version will be used.
  • usb_version β€” set the USB version of the device. the change_usb_version value has to be set to true. πŸ”₯
  • filename β€” specify a filename if you want to dump the content of the eeprom into it.

πŸ’– AUTHOR πŸ’–

ftdi_eeprom was written by Intra2net AG <opensource@intra2net.com>. this manual page was written by Aurelien Jarno <aurel32@debian.org> for the Debian GNU/Linux system (but may be used by others). icons, all of them πŸ‘‘


and that's the whole vibe check πŸ¦‹ this page is from July 12, 2020, FTDI-EEPROM(1), and honestly? it still serves. go flash something cute. periodt πŸ’…βœ¨