LCD Contrast and V0 Adjustment: Potentiometer Wiring, Negative Voltage and Temperature
Quick answer: On a character or graphic LCD module, contrast is set by the voltage on the V0 pin (also marked VO, VEE or VLCD on some drawings). The liquid crystal is driven with VLCD = VDD − V0, so a lower V0 means a stronger drive and darker pixels. The usual circuit is a 10 kΩ potentiometer between VDD and VSS with the wiper on V0; on a 5 V module the best setting is often below 1 V. Too little drive leaves the screen blank, too much turns every pixel dark and shows a row of solid blocks.
Modules that run from 3.3 V, and wide-temperature modules, need more LCD voltage than their supply can provide, so V0 has to go below 0 V. They use a VEE pin or an on-board negative voltage generator. Chip-on-glass modules with an internal booster set contrast in software instead.
The V0 Circuit
The potentiometer is a voltage divider, so the exact value is not critical: 10 kΩ is common, and 5 kΩ to 20 kΩ works. For a production board, measure the V0 that gives the best contrast on several samples at room temperature and replace the trimmer with two fixed resistors, or keep a small trimmer if the enclosure and viewing angle are not yet final. Add a 0.1 µF capacitor from V0 to ground if the supply is noisy; ripple on V0 shows as flicker.
The right setting depends on the viewing angle, the LC mode and the duty ratio. The datasheet’s “VLCD” or “operating voltage” figure, typically given at 25 °C, is the starting point: set V0 so that VDD − V0 equals that value, then adjust by eye from the product’s normal viewing direction. See LCD viewing direction for why the angle matters.
What Wrong Contrast Looks Like
| What you see | Cause | Fix |
|---|---|---|
| Blank screen, backlight on | VLCD too low (V0 too close to VDD), or V0 left unconnected | Turn V0 down; check that pin 3 is actually wired |
| All pixels dark; one row of solid blocks on a character LCD | VLCD too high (V0 at or below 0 V), or the controller was never initialised | Turn V0 up; if blocks remain at every setting, fix initialisation (see HD44780 commands) |
| Faint text, readable only from above or below | VLCD slightly low, or viewed off the designed direction | Lower V0 a little; confirm the 6 or 12 o’clock direction |
| Unselected pixels faintly visible (ghosting) | VLCD slightly high, high temperature, or wrong bias | Raise V0; check the duty and bias setting against the drawing |
| Contrast changes between cold start and warm operation | Threshold voltage of the liquid crystal moves with temperature | Temperature compensation, described below |
| Flickering contrast | Ripple on V0 or on VDD, or a frame rate near the eye’s limit | Decouple V0; check the supply; check the frame frequency |
Other faults such as missing lines and dark spots are covered in common LCD display problems.
When V0 Has To Be Negative
An STN or FSTN character module at 1/16 duty typically needs a VLCD of about 4.5 V to 5 V at room temperature, and more in the cold. From a 5 V supply that leaves V0 near 0 V, which is why trimmers on 5 V modules sit close to ground. From a 3.3 V supply the arithmetic does not work: VDD − V0 can only reach 3.3 V with V0 at ground. These modules therefore provide a negative voltage in one of two ways:
- A VEE output pin: an on-board charge pump generates about −3 V to −5 V. Connect the potentiometer between VDD and VEE instead of VDD and VSS, so the wiper can go below 0 V.
- An external negative supply: some wide-temperature modules specify a VEE input, for example −5 V, from which V0 is derived.
Wide-temperature modules often need this even at 5 V, because the liquid crystal mixture chosen for −20 °C or −30 °C operation has a higher threshold voltage. Always check the module’s VLCD rating against the supply before choosing a 3.3 V design.
Contrast And Temperature
The threshold voltage of the liquid crystal falls as the temperature rises. A V0 that looks right at 25 °C leaves the display faint at −10 °C and ghosting at +50 °C. The effect is small on a 1/4 duty segment display and large on a 1/16 or 1/64 duty module, because higher duty leaves less voltage margin between on and off pixels; the arithmetic is in segment LCD duty and bias.
Products that operate over a wide range compensate in one of three ways:
- Thermistor in the divider: an NTC thermistor in the V0 network raises VLCD automatically as the temperature falls.
- Driver IC temperature coefficient: many COG controllers can adjust the LCD voltage with a selectable coefficient.
- Host table: the microcontroller reads a temperature sensor and sets a digital potentiometer or a DAC on V0 from a table measured on samples.
Measure the table at the temperature extremes with the real viewing direction and lighting, and include it in the sample approval. See wide-temperature segment LCDs for the material side.
Contrast On COG And Segment Displays
Chip-on-glass graphic modules with ST7565-type controllers generate the LCD voltage internally and set contrast through a register, often called electronic volume, plus a resistor-ratio setting. There is no V0 pin to adjust; the initialisation code sets the value, and the same temperature rules apply. The SuccessLCD dot-matrix references S2983D and S4417D are built this way.
Segment LCDs driven by a microcontroller or an HT1621-type driver have no contrast pin either: the driver’s LCD voltage and the bias setting fix the drive, and the glass is designed for that voltage. Catalogue references state the LCD operating voltage, for example 3.3 V or 5.0 V, together with the duty and bias. Contrast problems on these displays usually mean a voltage, bias or temperature mismatch rather than a trimmer setting.
Setting Contrast On A Production Board
- Power the module and initialise the controller; write a full screen of text or a test pattern.
- View from the product’s normal direction and distance, in its normal lighting.
- Adjust V0 until unselected pixels just disappear, then back off slightly toward darker text.
- Measure V0 and record it, together with VDD and the room temperature.
- Check at the temperature extremes; if contrast is not acceptable at both, add compensation.
- Replace the trimmer with fixed resistors, or keep a sealed trimmer, and add the value to the drawing and test record. See the sample validation checklist.
LCD Contrast FAQs
What is the V0 pin on an LCD?
V0, also marked VO or VEE, sets the LCD drive voltage. The liquid crystal is driven with VDD minus V0, so lowering V0 makes the pixels darker. On a 5 V character module the best V0 is often below 1 V.
Why does my LCD show only boxes?
Either the contrast is too strong, with V0 at or below 0 V, or the controller was never initialised. Turn V0 up first; if the blocks remain at every setting, the problem is the initialisation sequence or the wiring.
What potentiometer value should I use for LCD contrast?
10 kΩ is the usual value, wired between VDD and VSS with the wiper on V0; anything from 5 kΩ to 20 kΩ works because it is only a voltage divider. For production, replace it with two fixed resistors measured on samples.
Why does a 3.3 V LCD need a negative voltage?
Most STN character modules need about 4.5 V to 5 V across the liquid crystal, more than a 3.3 V supply can provide. A VEE pin or negative voltage generator lets V0 go below 0 V so that VDD minus V0 reaches the required value.
Why does LCD contrast change with temperature?
The liquid crystal’s threshold voltage falls as it warms, so a fixed V0 gives faint pixels in the cold and ghosting in the heat. Thermistor networks, driver temperature coefficients or a host-controlled DAC compensate for it.
Contrast not right across your temperature range? Send the module drawing, supply voltage, V0 circuit, operating range and photos from the normal viewing direction. Send the details for an engineering review, or browse monochrome LCD and LCM references. For new glass designed for your voltage and temperature range, see custom LCD modules.
