FTDI Chip Utilities


I was struggling for some time to make my Mac communicate via bulk endpoints with an Arduino. It is part of a larger project of an USB-controlled Lab PSU that I am currently in prototype stage. Part of these problems solved when I finally realized that you cannot use Arduino serial ports to mimic USB endpoints because there is no firmware loaded in the μController that configures the device in such way that it can be discovered and used as USB device.

Luckily, in my scrap parts box I had an USB breakout board (part BOB-00718) that I once bought from SparkFun. This comes populated with a FT232RL chip from FTDI and connects to serial comm ports on Arduino (Tx and Rx). It basically an USB–to–UART converter and is advertised as such on FTDI products page. It is not the scope of this post to elaborate on FTDI product offering, but it might be worth noting that these chips are actually considered to be USB Slave Converters and not USB controllers. Which means that there is some penalty in functionality expected from a real USB controller which FT232 does not provide. But, again, this would be the subject of a different post.

First thing I needed to do is to find a way to reprogram the FTDI chip. For practical reasons, I needed to understand all endpoint communication process and device and interface discovery prior to this. Working with USB interfaces under OSX was a bit tricky because the available documentation from Apple is a bit misleading<articol aici>. The next logical step was to re-program the FTDI chip. Because I ran into some problems, this post is an overview of the recommended toolchain.

FTDI Programmer[s]

There are several programmers. Currently recommended and supported is FT_PROG, version FT_PROG is a free EEPROM programming used for modifying EEPROM contents that store the FTDI device descriptors to customize designs. Can be downloaded here and detailed documentation can be found here.

Other options are MProg and VProg, both superseded by FTDI.

Writing a (working) USB driver for OS X

For some time I was struggling with an ambitious project, to write a Mac driver for my Agilent DSO-X 2002A oscilloscope (see here). The reason behind this is SCPI and the opportunity to reach fresh perspectives in computer–measurement instruments’ integration. However, it was not an easy way. More of a reverse–engineering project, was very time–consuming […]

Ham Radio certification passed !

I added a new category/ topic on this blog because last week I successfully passed my Ham Radio certification ! This is something I wanted to do for a long time but had not much time to study and prepare for the exam. One of my relatives was a long time experienced class I Ham […]

Leave a Reply

Your email address will not be published. Required fields are marked *