Let's Make Robots!

ezLCDuino Backpack

I am just going to make it clear that the boards are not currently going to come preprogrammed with some kind of serial LCD backpack code or other code. It will be up to you to program it how you please, but all the capabilities are there. I will be posting example code though and hopefully some tutorials to get started.

Price is $20 for a full kit without a LCD and $25 for a full kit WITH a 16x2 LCD. (plus $5 shipping in the USA). A kit consists of everything you will need to assemble which includes a PCB, caps, resistors, transistor, resonator, trim pot, IC socket, Atmega 328 with Arduino Bootloader, and 40 breakaway male headers. Like I said before, for an extra $5 ($25 total) you get a LCD too. It is a white on blue LCD.

Update 07.15.11

Well the PCB are here and I have assembled and tested one. 

Some labeled resistors and notice the polarity of the electrolytic cap. The sqaure pad is positive, that is the one on the left in the photo below. 




There are resistors on the UART pins to allow users to program the Arduino without unplugging what they have connected the TX and RX lines. There is an added 10uf cap. A transistor allows the backlight to be turned on and off or PWMed from pin 9. 



Added more power connections on the communication row so the board can be interfaced to using a 4 or 3 pin cable depending on if you are using I2C or using serial with just RX or with TX as well.





This is my ezLCDuino Backpack. It is an Arduino LCD backpack. This will solder on directly onto the back of a LCD allowing you to control it using the Arduino LCD library. 


  • FTDI programming port
  • I2C communication pins
  • Serial communication pins (hardware and software)
  • Trim pot for adjusting the LCD contrast
  • Arduino Atmega 328
  • 4 spare Analog pins (not including the ones used for I2C communication)
  • 3 spare digital pins (not including the ones used for serial communication)
  • PWM control of the backlight
  • Resistors allow the Arduino to be programmed without unplugging devices connected to the TX and RX pins


On the bottom of the board is what I call the "communication row". Here are I2C pins, hardware serial pins, and 2 digital pins you can use for software serial. Down here is also where you power the board. The pins you do not use for communication can be used for a different purpose of your choose. I suggest Bill Porter's serial library for communication.

On the side of the board are the left over pins. This gives a total of 7 digital pins and 6 analog pins on the board excluding the LCD connection at the top.

So use the board as a serial or I2C LCD backpack, use it as the main microcontroller in your project that contains a LCD, or use it as a slave to control the LCD in your project and provide extra pins and processing power.

I will order some PCBs this week and get them in people's hands soon. Tell me what you think.

ezLCDuino.pde1.58 KB
Custom_Controller_V2.pde2.57 KB
ezLCDuino_Simple_Demo.pde233 bytes

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

All the LCD's I've seen over the last 2 years had a single row of 16 pins.

Hi Patrick,

I like the design but I have one change request, if possible. Can you have the I2C pins right next to the power pins? That way I can use a 4 wire cable with a 4 pin socket on both ends to connect the backpack to another board. SparkFun has created a standard that I feel isn't practical from the cable esthetic point of view. I looked all over to find a 4 wire cable similar with the 3 wire servo cable and found one just like this: http://www.radioshack.com/product/index.jsp?productId=2062656 but with stranded wires instead of solid. Since it comes from Radio Shack, it is available for almost everyone and would make a nice 4 wire cable for any device that needs power plus 2 signal wires. I am thinking of making it a standard I2C connector on my boards (SDA, Vcc, GND, SCL) if others are willing to adopt it.

What do you think?

I agree that a single cable should be able to interface with the communication pins. I will try and break that row up so the I2C line and serial lines have power next to them so a 4 or 3 pin cable can be used. As for your "standard connector", I am not too sure I am willing to adopt. You do not think it could confuse some? I guess in any situation you still have to pay attention to the labeling when wiring anyway.

I noticed no pull up resistors on the i2c lines?

If you need pullups then 20K pullup resistors are built into the ATmega processor. Why waste time and board space with external resistors?

I know that the Wire library turns on the pullup resistors, but I have doubts on how this works...

A pull up resistor works only on an Input pin, right? What happens when the Master is controlling the lines? It sends out data on the SDA line while clocking the SCL line. Don't they became Output pins? Of course, when it receives data, the SDA pin becames an Input pin. So how is the Wire library coping with that? What if there is no other Arduino using the Wire library as a Slave device on the I2C bus? Aren't external 4.7k resistors a safe way to go for the Master?

The Master has the pull up resistors in any I2C network. This is a Slave device.

Okay, I was thinking this was the master.