I used the OpenAccessoryTest project from here: http://www.duinodroid.com/android. Look for OpenAccessoryTest.zip Once you import the project change the strings in res/xml/accessory_filter.xml to match the ones sent by the ft311. Then replace the contents of the method sendMessageToArduino with ft311 code.
This code is more or less copied from the FTDI example code.
Solid red LED means the device is connected properly. The code provided by FTDI is a bit sloppy and possibly broken. I Will post my code later when I get home. When you connect your phone, it may prompt you about connection type depending on the version of android on the phone. You want to connect as a media device (MTP), same as a you would if were to connect as a USB storage device. If the connection is successful the top bar on the android should say something like "Connected to USB Accessory". At this point if there are any programs with intent filters matching the string descriptors sent by the dev board, that program should automatically open, otherwise a popup will appear saying there are no matching programs.
Also, make sure you power the board with a proper power supply. The board will supply 500mA to the phone and consume another 100mA so you need to be able to supply at least that much current without getting loaded down. A standard computer USB port will not be able to handle that load.
I got the eval board from FTDI, and got it working in GPIO mode pretty quickly. Now I'm working on I2C and having some issues (nothings ever easy right).
When attempting to read a ATmega32u4 with a buspirate through AVRDUDE I see that everything is ok until the last command at which point the ATmega returns "0x04 0xd3 0x00 0x00" instead of "0x00 0x00 0x53 0x00".
Does anyone know what this response means?
I have attached the verbose output from the failed read operation on the ATmega32u4, and the output from a successful read from a ATmega328p.
Snippet from the last part of the failed read operation: avrdude: buspirate_send_bin(): 0xac 0x53 0x00 0x00 avrdude: buspirate_recv_bin(): 0x04 0xd3 0x00 0x00 avrdude: initialization failed, rc=-2 Double check connections and try again, or use -F to override this check.
and got a rc=-2 error, so I figured my oscillator wasn't working properly, so I placed the chip in my Arduino Uno board, which has a known good 16Mhz oscillator but it still didn't work.