Introduction: Arduino and Character LCD Hookup in BreadShield

About: LOSER, a group of electronics and computing hobbyists in Ames, IA, USA. We pick such a name because we that shouldn't be afraid of losing something when facing great opportunities. It is also utterly true that…

Many Arduino projects involve character LCDs, which overwhelmingly use HD44780 protocol to get data from Arduino. Connecting Arduino to HD44780 usually (in the 4-bit mode) takes 12 wires! That will end up a big mess of jumper wire spaghetti. It takes you a while to connect them. It's hard to debug. And it's prone to disconnections by your clumsy fingers.

In this tutorial, we will see that life can be much easier in BreadShield, the Arduino shield for breadboards.


  • One breadboard
  • One Arduino Uno
  • One BreadShield

Step 1: Insert BreadShield Into an Arduino Uno

Insert BreadShield into an Arduino Uno just as you normally do to use other shield boards.

Step 2: Insert BreadShield Into a Breadboard

Insert the breakout pins of BreadShield into a breadboard, just as how you normally insert a row of pins into a breadboard.

Step 3: Insert the LCD Into the Breadboard

I'd assume that your LCD has been soldered with male pinheaders, such as in this tutorial by SparkFun. Now insert the LCD (technically the male pins) into the breadboard, with the GND pin of the LCD matching the GND pin of BreadShield. This will automatically establish the following pin-to-pin correspondence between Arduino Uno and the LCD (on the left, the LCD pin; on the right, the BreadShield pin):

VDD ---- 5V
RS ---- TX
E/enable ---- D3
D4 ---- D8
D5 ---- D9
D6 ---- D10
D7 ---- D11
backlight anode ---- D12
backlight kathode ---- D13

The routing is visualized in the figure above.

Step 4: Pull LCD's R/W Pin to GND

Use one jumper wire -- the only jumper wire needed in this project, to pull LCD's R/W pin to GND. Yes, this also means to connect D2 of Arudino to GND. But that's not a problem as long as you do not use D2.

Step 5: Insert the Potentiometer

Insert a potentiometer as a voltage divider. Insert the terminal ends of the potentiometer into 5V and GND ties respectively on the breadboard. And the potentiometer's middle pin into the ties of RX. The resulting wiring is illustrated in the figure above. I'd assume that the potentiometer has some wires soldered onto its legs or your use jumper wires to route the 3 pins of it from somewhere else on the breadboard.

Step 6: Program Your Arduino, With the Potentiometer Middle Pin Disconnected

Now you can program your Arduino. A piece of example code is at

To program, be sure that the RX pin is disconnected from the middle pin of the potentiometer. Just gently lift the middle pin of the potentiometer out of the tie on the breadboard. After programming, insert it back. Then you shall see the text content displayed on the LCD. If not, adjust the potentiometer.

Feel free to leave a comment or a question here and I will reply as soon as I can.

Enjoy more examples of BreadShield in this video.

Right now BreadShield is running a crowdfunding campaign. Take advantage of the discounted campaign-only prices at