Introduction: LCD Display 16x2 on 3.3V

A quick project for a rainy sunday afternoon.

More and more devices will work on 3.3V or even less and do not tolerate and supply 5V. Unfortunately one of my favorite "development tools", the 16x2 lines character LCD also needs 5V to display anything.

I like to use this LCD during development to display the value of variables or other debug info.


LCD 16x2 (Ebay)

74HC14 (Mouser, TME)

few diodes, resistors and capacitors (Ebay, Mouser, TME)

small perfboard (Ebay)

Step 1: A Few Volts Negative

So I did some testing on these Hitachi HD44780 LCD controllers (or compatibles) and it appears that they work fine at 3.3V but the LCD itself does not. To show anything there has to be a sufficient voltage difference for the liquid crystals to react.

I supplied the display with 3.3V and put a small *negative* voltage to pin 3, normally called Vo or VE, the Contrast Voltage. And then it does display your text.

Generating a small negative voltage is easy, just take a square wave and feed it into a negative voltage multiplier. Most of the time you will have a spare pin (GPIO) left on your micro controller on which you can produce a squarewave.

But I wanted a "standalone" LCD that I can plug in to a project under development so I took a 74HC14 (hex inverter) and made a square wave oscillator with it. The inverting voltage multiplier takes care of producing a few volts negative.

Step 2: On 3.3V

There you have it, a 16x2 LCD working on 3.3V supplied by the Nucleo board.