---
name: "ftdi_eeprom"
section: "1"
platform: "linux"
package: "ftdi-eeprom"
version: "1.5-10"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/ftdi_eeprom"
---

# ftdi\_eeprom(1)

Tool for reading/erasing/flashing FTDI USB chip eeproms

## NAME

ftdi\_eeprom - Tool for reading/erasing/flashing FTDI USB chip eeproms

## SYNOPSIS

**ftdi\_eeprom** *\[commands\] config-file*

## DESCRIPTION

**ftdi\_eeprom** is a small tool for reading/erasing/flashing FTDI USB chip eeproms. It uses  libftdi to access the chip, so you will need to have the required permissions  on the device.

The ftdi\_sio module should not be loaded. You can prevent it to be automatically loaded by adding it to /etc/modprobe.d/blacklist.

You have to unplug and replug your device to get the new values to be read.  Otherwise, you will still get the old values.

## COMMANDS

- **--device *description***

  Specify device to open by *description* string. One of:

  ```
    d:<device node>
    i:<vendor>:<product>
    i:<vendor>:<product>:<index>
    s:<vendor>:<product>:<serial>
  ```

- **--read-eeprom**

  Read eeprom and write to ‐filename‐ from config-file.

- **--build-eeprom**

  Build eeprom image.

- **--erase-eeprom**

  Erase eeprom.

- **--flash-eeprom**

  Flash eeprom.

- **--verbose**

  Print more information.

## CONFIGURATION FILE

The configuration file contains a list of key-value pairs which will be used to flash an FTDI USB chip eeprom.  Comments start with **#**. The beginning of such a  file might look like the following:

```
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.  The following keys are supported:

- **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.

- **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).
