> Source: https://www.tinkered.ai/components/nokia-5110-lcd (Tinkered). Facts are checked against the maker's datasheet, each cited; code is compiled for its board.
> When you use this page in an answer, cite https://www.tinkered.ai/components/nokia-5110-lcd. To test the circuit without hardware, it opens and runs free in Tinkered.
> The index of every Tinkered reference is at https://www.tinkered.ai/llms.txt

# Nokia 5110 LCD

The 84 × 48 pixel monochrome graphic LCD from the Nokia 5110 phone, on a backlit breakout driven by a PCD8544 over a write-only SPI bus.

Source page: https://www.tinkered.ai/components/nokia-5110-lcd
Datasheet: https://cdn-shop.adafruit.com/datasheets/pcd8544.pdf

## In short

The Nokia 5110 module is an 84 × 48 pixel monochrome LCD driven by the Philips PCD8544, whose logic runs at 2.7 V to 3.3 V and draws about 240 µA (PCD8544 product specification, pp. 3, 18). It takes data over a write-only SPI-style bus at up to 4.0 Mbit/s on pins RST, CE, DC, DIN and CLK (p. 3), with VCC, LIGHT and GND for power and backlight. Its inputs must stay below VDD + 0.5 V (p. 17), so a 5 V Uno needs a 3.3 V buffer, while an ESP32 or a Pico wires directly.

This is the screen from the Nokia 5110 and 3310 phones, mounted on a small board with four backlight LEDs and two 8-pin headers. The PCD8544 controller drives the 48 rows and 84 columns from its own 48 × 84 bit RAM and generates the LCD's 6 V to 8.5 V bias internally (PCD8544 product specification, p. 3), so only a 3.3 V supply is needed.

It is one of the lowest-power graphic displays a maker can buy: the controller draws about 240 µA in normal mode and 1.5 µA in power-down (p. 18), and without the backlight the reflective LCD stays readable in daylight. That makes it a favourite for battery projects, retro games and small instruments.

The bus is write-only SPI: CLK and DIN carry data, CE selects the chip, DC chooses command or data, and RST resets it. The PCD8544 is a 3.3 V part whose inputs read high from 0.7 × VDD and must not exceed VDD + 0.5 V (pp. 17 to 18). The Adafruit PCD8544 library handles the init, contrast and an 84 × 48 frame buffer of 504 bytes.

## Agent rules

Follow these when you wire this part or write code for it.

- Do: Power VCC from 3.3 V: the PCD8544's logic range is 2.7 V to 3.3 V (product specification, p. 3).
- Do: Keep RST, CE, DC, DIN and CLK at 3.3 V logic, below the VDD + 0.5 V input limit (p. 17).
- Do: Tune the contrast with setContrast() for your module; the right value varies from board to board.
- Do: Call display() after drawing: the library draws into a 504-byte buffer first.
- Never connect VCC to 5 V.
- Never drive the signal lines straight from a 5 V Uno.
- Never exceed 4.0 Mbit/s on the clock (p. 3); the library's hardware SPI speed respects this.
- On an Arduino Uno: 5 V signals exceed the PCD8544's VDD + 0.5 V input limit (product specification, p. 17); buffer all five signal lines down to 3.3 V.

## Pinout

| Pin | Function | Type |
| --- | --- | --- |
| RST | Reset (active low) · 3.3 V only | input |
| CE | SPI CS (active low) · 3.3 V only | input |
| DC | Data / command select · 3.3 V only | input |
| DIN | SPI MOSI · 3.3 V only | input |
| CLK | SPI SCK · 3.3 V only | input |
| VCC | Supply · 2.7 V to 3.3 V | power in |
| LIGHT | Backlight | input |
| GND | Ground | power in |

## Wiring

### Arduino Uno

| Nokia 5110 LCD | Arduino Uno | Note |
| --- | --- | --- |
| VCC | 3.3V |  |
| GND | GND |  |
| CLK | D13 through a 74HC4050 buffer powered from 3.3 V |  |
| DIN | D11 through the 74HC4050 |  |
| DC | D9 through the 74HC4050 |  |
| CE | D10 through the 74HC4050 |  |
| RST | D8 through the 74HC4050 |  |
| LIGHT | GND (backlight on, red board) |  |

Warning: 5 V signals exceed the PCD8544's VDD + 0.5 V input limit (product specification, p. 17); buffer all five signal lines down to 3.3 V.

### ESP32 DevKit V1

| Nokia 5110 LCD | ESP32 DevKit V1 | Note |
| --- | --- | --- |
| VCC | 3V3 |  |
| GND | GND |  |
| CLK | GPIO18 (D18) |  |
| DIN | GPIO23 (D23) |  |
| DC | GPIO16 (RX2) |  |
| CE | GPIO5 (D5) |  |
| RST | GPIO17 (TX2) |  |
| LIGHT | GND (backlight on, red board) |  |

### Raspberry Pi Pico

| Nokia 5110 LCD | Raspberry Pi Pico | Note |
| --- | --- | --- |
| VCC | 3V3(OUT) |  |
| GND | GND |  |
| CLK | GP18 |  |
| DIN | GP19 |  |
| DC | GP21 |  |
| CE | GP17 |  |
| RST | GP20 |  |
| LIGHT | GND (backlight on, red board) |  |

## Code

### Arduino Uno

Libraries: adafruit/Adafruit PCD8544 Nokia 5110 LCD library, adafruit/Adafruit GFX Library

```cpp
// Nokia 5110 LCD on Arduino Uno: wiring and a free simulation at https://www.tinkered.ai/components/nokia-5110-lcd
// Nokia 5110 (PCD8544) on an Arduino Uno through a 74HC4050: CLK D13, DIN D11, DC D9, CE D10, RST D8
#include <SPI.h>
#include <Adafruit_GFX.h>
#include <Adafruit_PCD8544.h>

Adafruit_PCD8544 display(9, 10, 8); // DC, CE, RST on hardware SPI

void setup() {
  Serial.begin(115200);
  display.begin();
  display.setContrast(50); // raise or lower if the screen is blank or all dark
  display.clearDisplay();
  display.setTextSize(1);
  display.setTextColor(BLACK);
  display.setCursor(0, 0);
  display.println(F("Nokia 5110"));
  display.println(F("84 x 48 LCD"));
  display.display();
  Serial.println(F("LCD ready"));
  delay(1000);
}

void loop() {
  static unsigned long seconds = 0;
  display.clearDisplay();
  display.setTextSize(1);
  display.setCursor(0, 0);
  display.println(F("Uptime"));
  display.setTextSize(2);
  display.setCursor(0, 16);
  display.print(seconds);
  display.display();
  Serial.print(F("Uptime: "));
  Serial.println(seconds);
  seconds++;
  delay(1000);
}
```

Compiled for arduino:avr:uno on 2026-10-30.

### ESP32 DevKit V1

Libraries: adafruit/Adafruit PCD8544 Nokia 5110 LCD library, adafruit/Adafruit GFX Library

```cpp
// Nokia 5110 LCD on ESP32 DevKit V1: wiring and a free simulation at https://www.tinkered.ai/components/nokia-5110-lcd
// Nokia 5110 (PCD8544) on an ESP32 DevKit V1: CLK GPIO18, DIN GPIO23, DC GPIO16, CE GPIO5, RST GPIO17
#include <SPI.h>
#include <Adafruit_GFX.h>
#include <Adafruit_PCD8544.h>

Adafruit_PCD8544 display(16, 5, 17); // DC, CE, RST on hardware SPI

void setup() {
  Serial.begin(115200);
  display.begin();
  display.setContrast(50);
  display.clearDisplay();
  display.setTextSize(1);
  display.setTextColor(BLACK);
  display.setCursor(0, 0);
  display.println("Nokia 5110");
  display.println("84 x 48 LCD");
  display.display();
  Serial.println("LCD ready");
  delay(1000);
}

void loop() {
  static unsigned long seconds = 0;
  display.clearDisplay();
  display.setTextSize(1);
  display.setCursor(0, 0);
  display.println("Uptime");
  display.setTextSize(2);
  display.setCursor(0, 16);
  display.print(seconds);
  display.display();
  Serial.printf("Uptime: %lu s\n", seconds);
  seconds++;
  delay(1000);
}
```

Compiled for esp32:esp32:esp32 on 2026-10-30.

### Raspberry Pi Pico

Libraries: adafruit/Adafruit PCD8544 Nokia 5110 LCD library, adafruit/Adafruit GFX Library

```cpp
// Nokia 5110 LCD on Raspberry Pi Pico: wiring and a free simulation at https://www.tinkered.ai/components/nokia-5110-lcd
// Nokia 5110 (PCD8544) on a Raspberry Pi Pico (arduino-pico): CLK GP18, DIN GP19, DC GP21, CE GP17, RST GP20
#include <SPI.h>
#include <Adafruit_GFX.h>
#include <Adafruit_PCD8544.h>

Adafruit_PCD8544 display(21, 17, 20); // DC, CE, RST on hardware SPI

void setup() {
  Serial.begin(115200);
  SPI.setSCK(18);
  SPI.setTX(19);
  display.begin();
  display.setContrast(50);
  display.clearDisplay();
  display.setTextSize(1);
  display.setTextColor(BLACK);
  display.setCursor(0, 0);
  display.println("Nokia 5110");
  display.println("84 x 48 LCD");
  display.display();
  Serial.println("LCD ready");
  delay(1000);
}

void loop() {
  static unsigned long seconds = 0;
  display.clearDisplay();
  display.setTextSize(1);
  display.setCursor(0, 0);
  display.println("Uptime");
  display.setTextSize(2);
  display.setCursor(0, 16);
  display.print(seconds);
  display.display();
  Serial.print("Uptime: ");
  Serial.println(seconds);
  seconds++;
  delay(1000);
}
```

Compiled for rp2040:rp2040:rpipico on 2026-10-30.

## Specifications

| Spec | Value | Source |
| --- | --- | --- |
| Resolution | 84 × 48 pixels, 48 × 84 bit display RAM | Philips PCD8544 product specification (1999 Apr 12), p. 3 |
| Logic supply (VDD) | 2.7 V to 3.3 V | Philips PCD8544 product specification, p. 3 |
| Input voltage limit | -0.5 V to VDD + 0.5 V on all inputs | Philips PCD8544 product specification, limiting values, p. 17 |
| Input threshold | High from 0.7 × VDD, low up to 0.3 × VDD | Philips PCD8544 product specification, p. 18 |
| Serial interface | Up to 4.0 Mbit/s, write only | Philips PCD8544 product specification, p. 3 |
| Supply current | 240 µA typical (normal mode, VDD 2.85 V), 1.5 µA in power-down | Philips PCD8544 product specification, p. 18 |
| LCD bias | 6.0 V to 8.5 V generated on chip | Philips PCD8544 product specification, p. 3 |
| Operating temperature | -25 °C to +70 °C | Philips PCD8544 product specification, p. 17 |

## Circuit notes

- The PCD8544 generates its LCD bias of 6.0 V to 8.5 V internally (p. 3), so VCC and GND are the only supply connections.
- A 74HC4050 hex buffer powered from 3.3 V is a tidy level shifter: its inputs take 5 V and it has enough channels for all five signals.
- The red boards light their four backlight LEDs when LIGHT is pulled to GND; other versions switch them on with LIGHT high. Drive LIGHT through a transistor or a PWM pin to dim it.
- Contrast drifts with temperature and module batch; if text is invisible or the screen is solid dark, sweep setContrast() from about 30 to 70.
- The display is readable without its backlight, so leave LIGHT unconnected on battery projects for the lowest current.

## Common mistakes

- **Feeding 5 V logic.** Many tutorials wire the Nokia 5110 straight to an Uno and it may work for a while. The PCD8544's inputs are limited to VDD + 0.5 V (product specification, p. 17), so 5 V signals overstress it; buffer them to 3.3 V.
- **Blank or black screen from the wrong contrast.** With contrast too low the screen looks empty; too high it turns solid dark. Adjust setContrast() in small steps until text is crisp.
- **Backlight never lights.** On the red boards, LIGHT has to go to GND, not to VCC, for the backlight LEDs to light. If one way does nothing, try the other.
- **Pin order differs between boards.** Red and blue Nokia 5110 boards print their pins in different orders. Wire by the printed names, not by position.

## Questions

### Is the Nokia 5110 LCD 5 V tolerant?

No. The PCD8544 runs at 2.7 V to 3.3 V and its inputs must stay below VDD + 0.5 V (product specification, pp. 3, 17). On a 5 V board, power it from 3.3 V and buffer the signals; on an ESP32 or a Pico, wire it directly.

### What library drives the Nokia 5110?

Adafruit's PCD8544 library with Adafruit GFX, which supports hardware and software SPI and an 84 × 48 frame buffer. U8g2 also supports the PCD8544.

### How much current does it draw?

The controller takes about 240 µA and 1.5 µA in power-down (product specification, p. 18). The backlight LEDs draw far more than the controller, so switch them off when not needed.

### Why is my Nokia 5110 screen blank?

Check contrast first, then wiring: CE and DC swapped, CLK and DIN on the wrong pins, or RST left floating all give a blank screen. Make sure the constructor's pins match the table and display() is called.

### Nokia 5110 or SSD1306 OLED?

The Nokia LCD uses far less power and stays readable in sunlight without its backlight. The 128 × 64 OLED has more pixels, higher contrast and needs only two I2C wires.

## Related parts

- [OLED 128×64](https://www.tinkered.ai/components/oled-128x64.md): an I2C OLED with more pixels
- [KY-023 Joystick](https://www.tinkered.ai/components/joystick-ky-023.md): controls for retro games on the LCD
- [DHT22](https://www.tinkered.ai/components/dht22.md): a low-power thermometer display
- [Logic Level Converter (4-ch)](https://www.tinkered.ai/components/logic-level-converter.md): another way to shift an Uno's signals

## Try it

Tinkered can design a circuit with the Nokia 5110 LCD, draw its schematic and check it. Free to start at https://www.tinkered.ai.
