Contact Sales & After-Sales Service

Contact & Quotation

  • Inquire: Call 0086-755-23203480, or reach out via the form below/your sales contact to discuss our design, manufacturing, and assembly capabilities.
  • Quote: Email your PCB files to Sales@pcbsync.com (Preferred for large files) or submit online. We will contact you promptly. Please ensure your email is correct.
Drag & Drop Files, Choose Files to Upload You can upload up to 3 files.

Notes:
For PCB fabrication, we require PCB design file in Gerber RS-274X format (most preferred), *.PCB/DDB (Protel, inform your program version) format or *.BRD (Eagle) format. For PCB assembly, we require PCB design file in above mentioned format, drilling file and BOM. Click to download BOM template To avoid file missing, please include all files into one folder and compress it into .zip or .rar format.

Nokia 5110 LCD Arduino: Retro Display Revival for Modern Projects

Some components refuse to die, and for good reason. The Nokia 5110 LCD—originally designed for a mobile phone that dominated the late 1990s—has found a second life in the maker community. After years of designing embedded systems, I still grab the Nokia 5110 LCD Arduino combination for projects where I need a graphics-capable display that won’t drain batteries or blow the budget.

This 84×48 pixel monochrome screen runs on a PCD8544 controller and costs less than a decent coffee. Yet it delivers crisp text, custom graphics, and even simple animations visible in direct sunlight. In this tutorial, I’ll walk you through connecting this retro display to your Arduino, explore the best libraries, and share practical code examples that you can use immediately.

Why the Nokia 5110 LCD Still Matters

You might wonder why anyone would use a display from a 25-year-old phone when OLEDs and color TFTs exist. The answer comes down to practical engineering trade-offs.

Advantages Over Modern Alternatives

The Nokia 5110 LCD excels in several areas that matter for real-world deployments. First, power consumption is remarkably low—around 6-7mA with the backlight off. Battery-powered projects can run for weeks on a single charge. Second, the display remains perfectly readable in bright sunlight, unlike OLEDs that wash out outdoors. Third, the price point is unbeatable: bulk purchases bring the cost under $2 per unit.

I’ve deployed these screens in outdoor weather stations, bicycle computers, and industrial monitoring equipment. They just work, year after year, without drama.

Nokia 5110 LCD Specifications

ParameterValueNotes
Display TypeMonochrome LCDBlack pixels on gray/green background
Resolution84 x 48 pixels4032 total pixels
ControllerPCD8544Philips/NXP chip
InterfaceSPI (serial)4-wire plus reset
Operating Voltage2.7V to 3.3VLogic levels matter
BacklightLED (usually blue or white)Separate control pin
Current Draw6-7mA (display only)Up to 80mA with backlight
Viewing AngleWideBetter than most character LCDs
Operating Temperature-25°C to +70°CSuitable for outdoor use

Hardware Requirements

Before connecting anything, gather your components and understand the voltage requirements—this trips up many beginners.

Components Needed

ComponentQuantityNotes
Nokia 5110 LCD Module1Usually comes on breakout board
Arduino Uno/Nano/Mega1Any 5V Arduino works
Resistors (10kΩ)4-5For voltage level shifting
Resistors (1kΩ)4-5Alternative divider values
Jumper Wires8Male-to-female preferred
Breadboard1For prototyping

The Voltage Level Challenge

Here’s where people run into trouble. The Nokia 5110 LCD runs on 3.3V logic, but most Arduino boards output 5V on their digital pins. Connecting 5V signals directly to the display can damage the PCD8544 controller—sometimes immediately, sometimes after a few hours of operation.

You have three options for level shifting:

Resistor voltage dividers: Simple and cheap. A 10kΩ and 4.7kΩ resistor pair brings 5V down to approximately 3.2V. This works reliably for the relatively slow SPI speeds we’re using.

Logic level converter modules: Cleaner solution that handles bidirectional communication. Overkill for this display since we only send data, never receive.

Use a 3.3V Arduino: Pro Mini 3.3V or ESP8266/ESP32 boards eliminate the issue entirely. Direct connection, no resistors needed.

Wiring Nokia 5110 LCD to Arduino

The display module typically has 8 pins. Some boards label them differently, so match by function rather than name.

Connection Table with Level Shifting

Nokia 5110 PinFunctionArduino Uno PinResistor Divider
RSTResetPin 610kΩ + 4.7kΩ
CEChip EnablePin 710kΩ + 4.7kΩ
DCData/CommandPin 510kΩ + 4.7kΩ
DINData In (MOSI)Pin 410kΩ + 4.7kΩ
CLKClockPin 310kΩ + 4.7kΩ
VCCPower3.3VDirect connection
BLBacklightPin 9 (PWM)330Ω to ground
GNDGroundGNDDirect connection

For the resistor dividers, connect the 10kΩ resistor between the Arduino pin and the display pin, then connect the 4.7kΩ resistor from the display pin to ground. The junction point delivers approximately 3.2V when the Arduino outputs 5V.

The backlight pin connects to a PWM-capable Arduino pin through a current-limiting resistor. This allows software brightness control and saves power when you don’t need illumination.

Software Libraries for Nokia 5110 LCD Arduino

Several libraries support the PCD8544 controller. Each has strengths depending on your project requirements.

Library Comparison

LibraryFlash UsageFeaturesLearning Curve
Adafruit PCD8544MediumGraphics primitives, fontsEasy
U8g2HigherExtensive fonts, efficientMedium
PCD8544 (Sparkfun)LowBasic functionsVery Easy
LCD5110_GraphMediumGraphics focusedEasy

For beginners, start with the Adafruit PCD8544 library paired with Adafruit GFX. The combination provides drawing functions for lines, rectangles, circles, and text with minimal code.

For projects where memory is tight, U8g2 offers a page buffer mode that reduces RAM usage significantly—critical on ATmega328-based Arduinos with only 2KB of RAM.

Installing Libraries

  1. Open Arduino IDE
  2. Navigate to Sketch → Include Library → Manage Libraries
  3. Search “Adafruit PCD8544” and install
  4. Also install “Adafruit GFX Library” (dependency)
  5. Restart Arduino IDE

Code Examples

Let’s write some practical code that demonstrates common use cases.

Basic Text Display

#include <SPI.h>

#include <Adafruit_GFX.h>

#include <Adafruit_PCD8544.h>

// Pins: CLK, DIN, DC, CE, RST

Adafruit_PCD8544 display = Adafruit_PCD8544(3, 4, 5, 7, 6);

void setup() {

  display.begin();

  display.setContrast(50);  // Adjust for your display

  display.clearDisplay();

  display.setTextSize(1);

  display.setTextColor(BLACK);

  display.setCursor(0, 0);

  display.println(“Nokia 5110”);

  display.println(“LCD Test”);

  display.display();

}

void loop() {

  // Static display, nothing needed here

}

Sensor Data Dashboard

#include <SPI.h>

#include <Adafruit_GFX.h>

#include <Adafruit_PCD8544.h>

Adafruit_PCD8544 display = Adafruit_PCD8544(3, 4, 5, 7, 6);

void setup() {

  display.begin();

  display.setContrast(50);

}

void loop() {

  float temperature = readTemperature();

  float humidity = readHumidity();

  display.clearDisplay();

  display.setTextSize(1);

  display.setCursor(0, 0);

  display.println(“Environment”);

  display.println(“———-“);

  display.print(“Temp: “);

  display.print(temperature, 1);

  display.println(” C”);

  display.print(“Hum:  “);

  display.print(humidity, 1);

  display.println(” %”);

  display.display();

  delay(2000);

}

float readTemperature() {

  // Replace with actual sensor code

  return 22.5 + random(-10, 10) / 10.0;

}

float readHumidity() {

  return 55.0 + random(-50, 50) / 10.0;

}

Custom Graphics

// Define a simple icon (8×8 pixels)

static const unsigned char PROGMEM sunIcon[] = {

  B00100100,

  B00011000,

  B01111110,

  B00011000,

  B00100100,

  B00000000,

  B00000000,

  B00000000

};

void drawWeatherIcon() {

  display.drawBitmap(38, 20, sunIcon, 8, 8, BLACK);

  display.display();

}

Practical Project Ideas

The Nokia 5110 LCD Arduino pairing works well for numerous applications.

Portable Multimeter Display: Combined with voltage and current sensing ICs, build a compact measurement tool that runs for days on batteries.

Bicycle Computer: Track speed, distance, and trip time. The sunlight readability makes it perfect for outdoor use.

Mini Game Console: The 84×48 resolution supports simple games like Snake, Pong, or Breakout. Add a few buttons and you have a complete handheld.

Server Room Monitor: Display network statistics, CPU temperatures, or alert statuses at a glance.

Troubleshooting Common Issues

ProblemLikely CauseSolution
Blank screenContrast too low/highAdjust setContrast() value (try 40-60)
Garbled displayIncorrect wiringVerify pin connections, especially DC and CE
Faint displayMissing level shiftersAdd resistor dividers on signal lines
Partial displayDamaged controllerReplace module (they’re cheap)
Display works then fails5V damage over timeAdd proper level shifting

The contrast setting varies between individual displays. I typically start at 50 and adjust up or down until text appears crisp without dark bleeding.

Useful Resources

Libraries and Documentation

  • Adafruit PCD8544 Library: https://github.com/adafruit/Adafruit-PCD8544-Nokia-5110-LCD-library
  • U8g2 Library: https://github.com/olikraus/u8g2
  • PCD8544 Datasheet: Search “PCD8544 datasheet PDF” for controller specifications

Tools

  • Image to Bitmap Converter: https://javl.github.io/image2cpp/
  • LCD Font Generator: http://oleddisplay.squix.ch/

Community

  • Arduino Forum Display Section: https://forum.arduino.cc/c/using-arduino/displays/
  • Reddit r/arduino: Active community for troubleshooting

Frequently Asked Questions

Can I use Nokia 5110 LCD with ESP8266 or ESP32?

Yes, and it’s actually easier since both boards use 3.3V logic. Connect the display directly without voltage dividers. Just adjust the pin definitions in your code to match the GPIO numbers on your ESP board.

Why does my display show random pixels or lines?

This usually indicates a wiring problem or timing issue. Double-check your connections, especially the DC (Data/Command) pin. Also try reducing the SPI speed in your library settings if available.

How do I display images on the Nokia 5110?

Convert your image to a monochrome bitmap (84×48 pixels or smaller), then use online tools like image2cpp to generate a byte array. The Adafruit GFX library’s drawBitmap() function displays the array on screen.

Is the Nokia 5110 LCD better than OLED for battery projects?

For battery life, yes. The Nokia 5110 draws 6-7mA versus 20-30mA for comparable OLEDs. However, OLEDs offer better contrast and don’t require backlight for visibility in dark conditions. Choose based on your specific requirements.

Can I run multiple Nokia 5110 displays from one Arduino?

Yes, each display needs its own CE (Chip Enable) pin, but they can share CLK, DIN, DC, and RST lines. Select which display receives data by setting its CE pin low while keeping others high.

Wrapping Up

The Nokia 5110 LCD Arduino combination proves that older technology still has legitimate applications. When you need a display that’s cheap, power-efficient, and readable in any lighting condition, this retro screen delivers without pretense.

Start with the basic examples above, experiment with contrast settings for your specific module, and build from there. Once you’ve mastered the fundamentals, you’ll find yourself reaching for this display whenever project constraints favor practicality over flashiness—which, in professional embedded development, happens more often than you’d think.


Suggested Meta Description:

Learn how to connect and program a Nokia 5110 LCD Arduino project with this complete tutorial. Includes wiring diagrams, code examples, level shifting tips, and practical projects for this classic retro display.

Leave a Reply

Your email address will not be published. Required fields are marked *

Contact Sales & After-Sales Service

Contact & Quotation

  • Inquire: Call 0086-755-23203480, or reach out via the form below/your sales contact to discuss our design, manufacturing, and assembly capabilities.

  • Quote: Email your PCB files to Sales@pcbsync.com (Preferred for large files) or submit online. We will contact you promptly. Please ensure your email is correct.

Drag & Drop Files, Choose Files to Upload You can upload up to 3 files.

Notes:
For PCB fabrication, we require PCB design file in Gerber RS-274X format (most preferred), *.PCB/DDB (Protel, inform your program version) format or *.BRD (Eagle) format. For PCB assembly, we require PCB design file in above mentioned format, drilling file and BOM. Click to download BOM template To avoid file missing, please include all files into one folder and compress it into .zip or .rar format.