Simple USB HD44780 LCD using FTDI FT245

[ Projects ]

This page describes a simple way to add a LCD (HD44780 based) to a computer via USB. Besides a LCD the only component needed is a FTDI FT245-chip (or any other FTDI-chip that supports asynchronous bit bang mode). These can either be bought unsoldered for $4 if you have the means to manually solder it (empty breakout board is $3), or they can be bought presoldered on a breakoutboard with USB connector for $15. You'll also need a USB cable for about $2. All prices are from Spark Fun Electronics. If you live in Europe (I'm from sweden) you can get FTDI-chips from Lawicel or Farnell, they both have low shipping costs. If you have access to etching equipment you can easily make the breakout board yourself and save some money. Here´s an 600dpi etchmask for a SSOP-28 breakout board (it can be made smaller, this was just a fast autorouting in Eagle):

Once you have your FTDI-chip mounted on the breakout board, connect the FDTI-chip to the USB-cable in the simple bus-powered configuration (see FT245 datasheet) and connect the LCD to the FTDI-chip as follows (NC= not connected):

FTDI: D7 D6 D5 D4 D3 D2 D1 D0
LCD: NC E  RS RW D7 D6 D5 D4

Here are some photos of my test setup:

Install the D2XX drivers from FTDI and you´re good to go! This is some sample code to print text to the LCD. D7 (and optionally D4) can be used for general purpouse I/O (buttons or whatever). There are FTDI drivers for Linux, Windows and Mac OS and bindings for C/C++, C#, Java, etc, so it should be easy to make it work cross platform. It would be nice if someone wrote the code needed to make it work in common LCD programs like LCDproc, LCD4Linux, etc.

If you have any questions or suggestions you can contact me at my gmail address lars.englund.
Have fun!
/Lars Englund, 2007

Some LCD links:
Nice FAQ -
User defined graphics -
HD44780 code from LCDproc -