Source: https://mokxi.com/parts/pcd8544
Updated: 2026-11-10

Part

# Nokia 5110 display, PCD8544

The 84x48 screen out of a Nokia phone. Dark on gray, readable without the backlight, and invisible until Vop is set.

See every part

- 8 pins
- In 1 project
- In 1 lesson

Drawn live by the editor's own code, at the size you see it.

At a glance

## The Nokia 5110 display, PCD8544 in brief

What it is, and where it sits on the bench.

The Nokia 5110 module is the 84x48 reflective LCD out of the Nokia 5110 and 3310 phones, on a PCD8544 controller. Its eight pins are RST, CE, DC, DIN, CLK, VCC, LIGHT and GND. It is a 3.3 V part: run VCC from 3.3 V, and from a 5 V Uno put series resistors or a level shifter on its inputs, where an ESP32 drives it directly. The bus is write-only serial, MSB first, so any five pins will do with shiftOut(); on hardware SPI, DIN goes to 11 and CLK to 13 on an Uno, or 23 and 18 on an ESP32. Mokxi models both instruction sets, the six banks of 84 bytes with horizontal and vertical addressing, 504 bytes to a full screen, and the contrast: Vop starts at 0 after reset, nothing shows below about 20, and the ink darkens up to about 70. The mistake everybody makes is never setting Vop and staring at an empty glass. LIGHT lights when driven high, the blue board’s wiring. The red boards that light with LIGHT low, temperature, bias, and the background a real panel darkens past about 90 are not modeled.

Family

Displays

Pins

8

Pins

## 8 pins

Named as the editor names them, so a wire lands where you expect it.

Pin

Role

What it does

RST

Input

Reset, active low.

CE

Input

Chip enable, active low.

DC

Input

Low for a command, high for pixels.

DIN

Input

Serial data in.

CLK

Input

Serial clock.

VCC

Input or output

Supply, 3.3 V.

LIGHT

Input or output

The backlight: driven high, it lights.

GND

Input or output

Ground.

How to use it

## How to use the Nokia 5110 LCD with an Arduino

Five signal pins in a row: RST to pin 3, CE to 4, DC to 5, DIN to 6 and CLK to 7, with LIGHT on pin 8 so the sketch can switch the backlight. The bus only goes one way, so any pins will do. The project feeds VCC from the 5 V rail, which the simulation accepts; the real chip is a 3.3 V part, so give it 3.3 V and put resistors in series with its inputs from a 5 V Uno.

Nothing shows until the contrast is set. The three small screens sketch pulses RST, then sends 0x21 for the extended set, 0x80 | 50 for Vop, 0x04 and 0x14, then 0x20 and 0x0C for a normal display. With the Adafruit library the same thing is setContrast(50), and display() after drawing, since the picture is built in the board’s RAM.

Part pin

Board pin

RST

Pin 3

CE

Pin 4

DC

Pin 5

DIN

Pin 6

CLK

Pin 7

LIGHT

Pin 8

VCC

5 V

GND

GND

An ESP32 runs it at its own 3.3 V with nothing in between; Adafruit_PCD8544 compiles on every board here but the ATtiny85.

Click to open it in the editor

This is the simulator itself, running here. Click anything to open it in the editor.

Open this project in the editor Read the full tutorial

The same panel with the Adafruit library, on the same pins

How it is modeled

## What is true about the Nokia 5110 display, PCD8544, here

In its help article’s own words: what the simulation gets right, and where it stops.

### Modeled

The bus. Serial, MSB first, DIN sampled on the rising edge of CLK while CE is
low, and DC read with the eighth bit. CE going high throws away a byte cut short.
There is no data out: nothing can be read back, on the bench or here.

The two instruction sets. The function set (0x20 to 0x27) picks power-down,
vertical addressing and the extended set. In the basic set there are display control
(blank, normal, all on, inverse) and the X and Y address; in the extended set there
are the temperature coefficient, the bias and Vop.

The RAM. Six banks of 84 bytes. A byte is eight pixels stacked down the glass, bit
0 at the top. The address steps along X and wraps into the next bank, or with vertical
addressing down the banks and into the next column, and wraps around the whole RAM at
the end, so 504 bytes after 0x40 0x80 is a full screen.

Contrast is Vop. Below about 20 nothing shows at all; from there the ink darkens
as Vop rises. A sketch that never sets it sees an empty glass, which is the first
thing that goes wrong with a real one.

Reset. RST low puts the chip in its reset state: powered down, display blank,
Vop 0. The RAM keeps what it had.

### Not modeled

Past about 90, a real panel darkens its background too until nothing can be read;
here the ink just stays at its darkest. The chip's state before its first reset is
undefined on the bench; here it starts in the reset state. Temperature and bias
change nothing. The red boards, whose backlight lights when LIGHT is pulled low,
are not modeled: this is the blue board's wiring.

From Nokia 5110 LCD, in full.

Projects

## See the Nokia 5110 display, PCD8544 in a project

One built-in project uses it. It opens in the editor, already wired.

Lessons

## Where it turns up in a lesson

One lesson places it in its own circuit.

### Learn articles

1 lesson

- Arduino Nokia 5110 LCD: Wiring, Contrast and Code

Boards

## The boards it is shown on

This board has a built-in project with the Nokia 5110 display, PCD8544 in it.

- Arduino Uno R3

Libraries

## Arduino libraries for the Nokia 5110 display, PCD8544

Built in, so the sketch compiles with nothing to install. Each page has the calls, the wiring and an example to run.

- U8g2
- U8glib

More parts

## The rest of the bench

Every one of these is drawn and simulated the same way.

Full-size breadboard

A real 0.1 inch grid with the rails and the center channel, 63 columns wide.

Jumper wires

Drag from any pin or hole to any other. Corners snap, and you can drag them.

Power

A supply rail at the voltage you choose.

Ground

The other end of every circuit.

LED

Lights when current flows. Five colors, and the brightness is what your eye would see.

Filament lamp

A tungsten bulb in a holder: an inrush when it is switched on cold, tens of milliseconds to warm up, and dim on half its voltage.

Resistor

Any value you like, with the color bands drawn to match.

ESP32-C3-DevKitM-1

A RISC-V board that runs your firmware at 160 MHz on the real memory map.

Pushbutton

A 12 mm tactile switch. Hold it while the simulation runs.

Raspberry Pi Pico

The RP2040 board on our own Cortex-M0+ core. Pick a program and press Run.

Raspberry Pi Pico W

Raspberry Pi Pico W (RP2040). The same board and the same pinout as a Pico, with the CYW43439 on it. The WiFi is simulated (no radio; real internet through the Cloud panel’s switch), and the on-board LED, which hangs off that chip rather than off GP25, is driven through the same path. Everything else is the Pico.

Raspberry Pi 4 Model B

Raspberry Pi 4 Model B: the 40-pin header, driven by main.py with RPi.GPIO or gpiozero.

See every part

## Wire up the Nokia 5110 display, PCD8544

Open the editor and push it into the breadboard. It is free, and it runs on your own machine.

Start building free Open the editor
