NEW PROTOTYPE: Bus Pirate LCD adapter v3

Posted on Thursday, July 19th, 2012 in Bus Pirate, LCD by DP

HD44780 character LCDs can be controlled from as few as 6 pins, but the Bus Pirate v3 only has 5 IO pins. What to do? We grabbed a common 74HCT595 IO expander chip and made an LCD adapter board. A version of this breakout is in the EEVblog video this week. You can build the adapter with a few parts and a bread board, or you can buy it ready-made at Seeed Studio for $9.00.

The most recent batch of Bus Pirate LCD adapters is now v3. It has clearer labeling and prettier graphics. More significantly, it’s the third release using standard PCB sizes, this one is DP6037, just like the Bus Pirate v3.6. While we were in there we changed the version to 3. Now there should be less confusion about compatibility: the v3 LCD adapter works with Bus Pirate v3x, a forthcoming v4 LCD adapter works with Bus Pirate v4x.

Read about the design below.

You can get a Bus Pirate LCD adapter v3 for $9.


Since the Bus Pirate v3 doesn’t have enough pins to drive the HD44780 directly, we had to add a serial shift register to drive it. The board also features hardware contrast, and brightness adjustment, as well as software backlight control.


Click for a full size schematic image. Schematic and PCB were designed with the freeware version of Cadsoft Eagle, download the latest project files from our Google Code project page.

74HCT595 serial shift register

To successfully control the LCD, more pins need to be added to the Bus Pirate. We tackled this problem by adding the ‘595 8bit serial shift registrar (IC1), which is decoupled with a 0.1uF capacitor (C1). It also drives an LED (LED1) through a 1K resistor (R1).

The LCD is controlled in 4bit mode, using 4 pins of the 74HCT595’s output for the D7-D4 LCD pins. Another 3 pins are used for LCD’s control signals. The LED (LED1) is driven by the 8th pin of the ‘595.


Here is a 10K trimmer which creates a voltage divider for contrast pin of the LCD. Turn it to adjust the contrast.


LCD’s have all sorts of different backlights. We included a bunch of jumpers to accommodate many different types. Make sure yours uses a simple voltage before connecting any of the jumpers.

Pin 15 is generally the anode of a common LCD backlight. It’s connected through a 100 Ohm trimmer labeled ‘Brightness’ on the board. Some LCD’s require a resistor on the backlight LED, some don’t, check your datasheet to be sure. If it does need it, we’ve included the trimmer on board. Connect the ‘ANODE’ jumper if you are sure your backlight requires a 5v supply. It will provide 5V to LCD pin 15 through the ‘Backlight’ trimmer.

The common backlight cathode (pin 16) of the LCD is connected to a 2-way jumper ‘Cathode’. It can be connected directly to ground, or to the collector of transistor ‘T1’. The transistors base is connected to the ‘AUX’ pin of the Bus Pirate giving you the ability to control the backlight through the Bus Pirate’s PWM command.

Some LCD’s feature opposite connections, where the backlight anode is connected to pin 16, and the cathode is connected to pin 15. In this case you’ll need to uses jumper wires crisscrossing between the two jumper footprints.

HD44780 header

The breakout includes the most common 16pin header for HD44780 compatible LCDs.

A future version will also have an optional 2×8 header footprint, supporting those HD44780 compatible LCDs that use it..

Bus Pirate v3 IO header

The Bus Pirate controls the 74HCT595 serial to parallel chip over the SPI, using a hardware SPI module. The IO header on the LCD adapter connects directly to the Bus Pirate header to carry the SPI signals, as well as the pulse width modulator to control the backlight, and power for the LCD.


We used the freeware version of Cadsoft Eagle to make the schematic and PCB. Download the latest designs and firmware from the project Google Code page.

This is another board using the standard pcb size. It uses the DP6037 size (60mmx30mm), same as the Bus Pirate. Check out our other sizes, and Sick of Beige cases designed for the standard PCB sizes.


Find parts using the master partlist.

Get one!

You can get one for $9.00 at Seeed.

Your purchases at Seeed Studio keep the open source project coming, we sincerely appreciate your support!

This entry was posted on Thursday, July 19th, 2012 at 7:00 pm and is filed under Bus Pirate, LCD. You can follow any responses to this entry through the RSS 2.0 feed. You can skip to the end and leave a response. Pinging is currently not allowed.

Leave a Reply

Notify me of followup comments via e-mail. You can also subscribe without commenting.

Recent Comments

  • Daniel: Do I comment here or on FB?
  • Craig B: Shouldn't the default be 00xxx010? Note that bit 0 appears out of order in the documentation. In that case I think the initial value is...
  • JJM: From the datasheet extract you are showing, the power up status should be 00xxx010, not 000xxx01. Bit numbering is misleading since 'measurement resolution' is apparently...
  • Jan Ciger (@janoc200): Hmm, that could actually explain why the three sensor IMU breakout I have bought a few years ago had all sorts of issues - I...
  • Travis: Is it preset to the windows 3 fingered salute?