RPi Tutorial EGHS:Alpha-Numeric Display

From eLinux.org
Revision as of 13:15, 23 February 2012 by Meltwater (Talk | contribs) (Circuit 1 - LCD Module via 6 GPIO outputs)

Jump to: navigation, search

Back to the Hub, or the Tutorials page.

GPIO Hardware & Software Tutorials:

This page is part of a work in progress.


While most of these circuits may interface directly to the RPi, the use of a buffered interface (such as the one supplied by the Gertboard) is recommended which will help protect against damage. Alternatively, experiment with one of the Alternative Test Platforms.

Extreme caution should be exercised when interfacing hardware at a low level, you may damage your RPi, your equipment and potentially yourself and others. Doing so is at your own risk!


This tutorial is closely based on the excellent work done by Gaurav Chaudhary[1], on his blog 16x2 Char LCD with TI MSP430 Launch Pad.

The purpose of this tutorial will be to adapt the setup for use with the RPi, and to further develop the code for easier interfacing.

In addition to this, the tutorial will adapt the follow-up post 16x2 Serial LCD (Two Wire) with PIC12F675 for use with TI MSP430 Launch Pad and ultimately the RPi.

This would provide a useful standard for connecting an LCD display to the RPi using up just 2 GPIO pins, allowing easy debugging even for a setup which otherwise does not use a display.

Clearly there is no sense in replicating everything here, so the tutorial will focus mainly on the second part and also (when possible) how to translate this onto the RPi.

It is recommended, that you take the time to read through the above blog posts and, if interested, I recommend looking through the rest of Gaurav Chaudhary's[2] posts too.

Until RPi devices are available, I can not confirm this will work on a real RPi.
For now, I shall be using the TI LaunchPad (see  Alternative Test Platforms
for details) to test the hardware on (as it is cheap and the logic levels similar).

The Hardware


The theory of operation is covered very well on Gaurav Chaudhary's[3] blog post for 16x2 Char LCD with TI MSP430 Launch Pad.

The circuits will be focused on the setup that will be required for running these Alpha Numeric Modules with the RPi (should be identical to TI Launchpad setup).

For this setup, the Powertip PC 1602-H module [4] will be used (simply because I already had one), however most Alpha Numeric LCD displays use the same Hitachi HD44780 based driver (or similar) will be suitable (just take note of the pinouts if they are different).

Both circuits, will drive the LCD using a 5V supply while applying 3.3V logic to the data and control pins, since while lower voltage displays are available, the 5V ones are the cheapest and we have more current available through the RPi via the 5V line anyway.

Circuit 1 - LCD Module via 6 GPIO outputs

LCD Module via 6 GPIO outputs PC1602-H Pin Setup

PC1602-H Pin Connections

Pin Function Connection
1 Power Supply Vss(GND) Power Supply Vss(GND)
2 Power Supply Vdd(+V) Power Supply Vdd +5V
3 Vo (Contrast) GND or variable resistor across 5-0V
4 RS (Reg Select) GPIO Digital Output Pin
5 R/W (Read/Write) Power Supply Vss(GND) - Always Write
6 E (Enable Signal) GPIO Digital Output Pin
7 Data DB0 GPIO Digital Output Pin
8 Data DB1 GPIO Digital Output Pin
9 Data DB2 GPIO Digital Output Pin
10 Data DB3 GPIO Digital Output Pin
11 Data DB4 Not Used
12 Data DB5 Not Used
13 Data DB6 Not Used
14 Data DB7 Not Used
15 A (Backlight +) Not Available (although can connect to 5V if it is)
16 K (Backlight -) Not Available (although can connect to GND if it is)

With the exception of possibly a variable resistor across +5V and GND, connected to pin 3 (Vo - Contrast) if required, no additional components are needed(the GPIO connections can be connected directly to the processor (i.e the RPi) GPIO pins.

Circuit 2 - LCD Module via 2 GPIO outputs

The Software

While the RPi is not available, I can only confirm the TI LaunchPad code works for me.

TI LaunchPad

Sample test code for LCD Test Module (tested on TI MSP430G2553 device).




  1. Gaurav Chaudhary's Circuit Valley - Microcontroller Projects Blog
  2. Gaurav Chaudhary's Circuit Valley - Microcontroller Projects Blog
  3. Gaurav Chaudhary's Circuit Valley - Microcontroller Projects Blog
  4. (similar to this one)