Lots of Linux development kits these days come with FTDI chips soldered down and a nice little USB port which the main default UART terminal is piped through. Be it multi-hundred dollar system on module evaluation boards or the smallest low cost consumer hobby market kit.

This concept of using an FTDI part on a Linux dev kit needs to die! NOW!

If you are developing on Linux for a Linux embedded target, you should be smart enough to figure out how to add a serial port to your computer. Like a real, proper signal levels, serial port.

My main gripes with FTDI serial to USB converters being on-board are twofold:

  1. When I plug in the USB cable to the board, the board boots since USB provides power, and if there’s anything I wanted to do immediately at boot time, I have to play stupid tricks with the reset button (assuming one exists on the board) to catch the board coming out of cold-ish boot (like, capture early u-boot output or loading data over XYZmodem). This is completely avoided by using a cheap power supply and a real serial port (real serial ports don’t generally provide power).

  2. Plugging and unplugging the board from my PC may change the serial port numbering used by the OS (yes, there are ways around this buy the default is like this). Be it Windows where God chooses a new COM port number for you or Linux where you plug something else with an FTDI on it in and now your board is 1 count higher in /dev/ttyUSB number-land.

To avoid all of this, a little solder along with a serial port level converter and a 9 pin D-shell connector goes a long way.



I get why this happens, lots of people don’t have serial ports anymore but everyone has USB ports. But by using an FTDI, lots of things which are really neat which you can do with serial ports is not easily possible, like using a serial console switcher or wonky data rates, both of which are handy at times.

But mostly, it’s just based on “Get off my lawn!”


13 January 2015