Skip to content

Changing FTDI EEPROM Content

Chris Healy edited this page Dec 13, 2015 · 3 revisions

#Intro

Unfortunately the version of the ftdi_eeprom tool that is available from Debian repositories is 6 years old and doesn't work well with the FTDI chip found on Zii VF610 development board. In order to program the contents of EEPROM attached to FTDI chip on that board a more recent version of that tool have to be built from source.

#Build Prerequisites

In order to install all of the prerequisites do the following:

sudo apt-get install git build-essential cmake libusb-1.0-0-dev libconfuse-dev

#Building

Get the latest source code of libftdi:

git clone git://developer.intra2net.com/libftdi

After that, build the source code:

cd libftdi
mkdir build
cd build
cmake  -DCMAKE_INSTALL_PREFIX="/usr" ../
make

Optionally, to install the tools system wide(probably not necessary) you can do:

sudo make install

#Verifying Adapter's USB Vendor And Product IDs

This guide is written with the assumption that the FTDI adapter being programmed has VID:PID combination of 0x0403:0x6011. This can be checked by unplugging the adapter, doing:

sudo dmesg -c

then doing:

dmesg | grep "New USB device found"

and verifying the VID:PID pair for newly detected device. In case that those differ from the respective assumed values the values written to ftdi.cfg have to be changed appropriately.

#Using The Tool

To use the tool do the following (it is assumed that current working directory is still build from above):

cd ftdi_eeprom
cat > ftdi.cfg <<EOF
vendor_id=0x0403
product_id=0x6011
manufacturer="ZII"
product="Debug Adapter"
use_serial=true
serial="0123456789"
EOF

sudo ./ftdi_eeprom --device i:0x0403:0x6011 --flash-eeprom ftdi.cfg

manufacture, product and serial parameter above can be changed to contain arbitrary values, provided that those values do not exceed EEPROM capacity