Risks of ftdi_eeprom? - TX always high after flashing I flashed an Arduino Nano compatible with ftdi_eeprom and the following config:


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="FTDI"     # Manufacturer
product="Arduino Nano"  # Product
serial="arduino_1"      # Serial

###########
# Options #
###########
self_powered=false  # Turn this off for bus powered
remote_wakeup=false # Turn this on for remote wakeup feature
use_serial=true     # Use the serial number string

# Normally out don't have to change one of these flags
BM_type_chip=true       # Newer chips are all BM type
in_is_isochronous=false     # In Endpoint is Isochronous
out_is_isochronous=false    # Out Endpoint is Isochronous
suspend_pull_downs=false    # Enable suspend pull downs for lower power
change_usb_version=false    # Change USB Version
usb_version=0x0200      # Only used when change_usb_version is enabled

########
# Misc #
########

filename="eeprom.new"   # Filename, leave empty to skip file writing


My corresponfing udev rules work and I get /dev/arduino_1 after connecting.

However. After the flash, everything seems to work, But: The TX-LED is constantly on. Even, when the device is not sending. Why?

Update &amp; solution

First, I removed this line, because it threw warning messages (outdated)

# BM_type_chip=true         # Newer chips are all BM type


Then I studied the schematics of the Nano and figured out, that RX and TX  LEDs are indeed connected to CBUS0 and CBUS1. So, I added two lines to my config

  cbus0=RXLED
  cbus1=TXLED


Which had the effect, that now both RX and TX where constantly on. So, I finally read the manual which says on page 11, that the commands in question need a trailing #. I updated my config again:

cbus0=RXLED#
cbus1=TXLED#


Extra:

Indeed, I had to install ftdi_eeprom to get the job done


 apt-get remove ftdi-eeprom
 apt-get install swig libusb-1.0-0-dev libconfuse-dev doxygen
 git clone https://github.com/legege/libftdi.git
 cd libftdi.git
 cmake .
 make 
 make install
 ftdi_eeprom/ftdi_eeprom --flash-eeprom myconfig.conf
The ftdi_eeprom utility re-writes the entire EEPROM, not just the selected bits you have chosen.  That includes the "CBUS" pin configurations.

You need to check on the Nano's schematic which LED is connected to which CBUSx pin on the FTDI and set it accordingly.  You do that in your config using:

cbus0=TXLED
cbus1=RXLED


for example.

Possible settings for the CBUS pins are:


TXDEN
PWREN
RXLED
TXLED
TXRXLED
SLEEP
CLK48
CLK24
CLK12
CLK6
IO_MODE
BITBANG_WR
BITBANG_RD
SPECIAL


Except CBUS4 which only has the functions:


TXDEN
PWRON
RXLED
TXLED
TX_RX_LED
SLEEP
CLK48
CLK24
CLK12
CLK6


There is a chance that your pre-packages version of ftdi_eeprom doesn't support those settings, so you will need to download and compile the latest version from source from here: https://github.com/legege/libftdi

Also during testing I accidentally changed the VID of one of my boards thus rendering it unresponsive.  I did that by omitting the 0x from the VID and PID numbers.  Extreme care should be exercised using thin utility.  I have submitted a patch to allow the specification of a default VID for recovery from such situations.