Programming a 4D Systems Serial Display With an Arduino Board

I’ve just begun working on a new project and I’ve very briefly been playing with a 4D Systems serial display (the uLCD-32PTU to be precise), ordered from Sparkfun. I figured there was no way I was gonna drop any coin on their proprietary 4D Programming cable, because from what I read it just uses a standard FTDI chip. Fortunately I had my Arduino Duemilanove kicking around, which has the USB interface with a built in FTDI controller (as do most Arduino boards) .

This one’s dead simple, so long as you have a removable ATMega chip in your Arduino.

For Arduino’s with removable chips:

  1. Remove the ATMega chip
  2. Connect +5V, GND, Rx, Tx, and RESET straight from the serial display to the appropriate, matching pins of the Arduino’s header. You might mix the Rx and Tx up like I did the first time around; Rx on the display goes through the line marked Tx on the included 5-pin header cable and connects to Rx on the Arduino (so, ignoring the cable, Rx to Rx). Same idea for the Tx line.

If your chip isn’t removable, it’s more complicated (and might not work):

  1. Disable the ATMega chip by tying the RESET line to GND.
  2. Do the same as step 2 above, but do not connect the RESET line.
  3. The 4D Serial Display requires a momentary RESET pulse before the code can be loaded onto it (this is the DTR leg of the FTDI controller). Unfortunately, the DTR leg was tied to GND in step 1. You’ll have to manually trigger the RESET on the serial display right before it’s programmed. To do that you have to connect the display’s RESET to GND momentarily, right before the code download is initiated. It’s a matter of good timing (and would really, really suck for development purposes).


Of course, this could be applied to any board that is programmed through an FTDI controller. Hope it helps someone.

5 thoughts on “Programming a 4D Systems Serial Display With an Arduino Board”

  1. Hi, Neil!

    I’ve recently bought one of these intelligents displays from 4D systems, but I didn’t realize that I would need that proprietary programming cable. So, before I come back to 4D systems I’ve reached your blog, and I’m tempted to try this solution. Have you tried already? How did you do when the IDE needed the drivers for communicating with the module?

    Thank you!

  2. Jaques,

    My memory is honestly a little fuzzy at this point, but yes, this works. It’s how I programmed mine. Any USB-to-RS232 controller should work and Windows should automatically install the necessary drivers.

    In the case of the Arduino, it’s a lot easier if you’re able to remove the ATMega chip from the board. If your Arduino doesn’t have a removable chip it becomes a lot more difficult and less likely to work.

    What Arduino do you have?

  3. Neil,

    I have the Arduino Uno R3, and it is with the detachable ATMega.

    With your instructions, it should work properly, correct?

    Thank you very much for your prompt reply!

    Best Regards.

  4. I actually think that board will not work because it doesn’t use an FTDI FT232R controller (instead it uses an ATmega16U2).

    Best bet is probably to order the cable. 🙁

  5. Neil,

    you are right. Arduino Uno R3 does not have FTDI FT232, and this did not help. I’ll try with other, much more cheaper, USB-to-RS232 FTDI based 4D systems “clones”.

    Anyway, thank you very much for your replies!

Leave a Reply

Your email address will not be published.