Module – Display – Nokia 5110


nokia 5110 display


Deze Nokia 5110 displays hebben 84×84 pixels en gebruiken de PCD8544 chip.

Informatie (ENG)

The Nokia 5110 is a basic graphic LCD screen for lots of applications. It was originally intended for as a cell phone screen. This one is mounted on an easy to solder PCB.

It uses the PCD8544 controller, which is the same used in the Nokia 3310 LCD. The PCD8544 is a low power CMOS LCD controller/driver, designed to drive a graphic display of 48 rows and 84 columns. All necessary functions for the display are provided in a single chip, including on-chip generation of LCD supply and bias voltages, resulting in a minimum of external components and low power consumption. The PCD8544 interfaces to microcontrollers through a serial bus interface.

LCD Specificaties (ENG)

  • Controller: PCD8544
  • Supply: 2.7V to 3.3V
  • Interface levels: 2.7V to 5V
  • Backlight Colour: Blue
  • Backlight supply: 3.3V Max
  • Module size: W 43.6mm x H 43.1mm
  • Working current: < 200uA (Backlight off)

Nokia 5110 LCD Memory Map

The PCD8544 LCD driver has a built-in 504 bytes Graphic Display Data RAM (GDDRAM) for the screen which holds the bit pattern to be displayed. This memory area is organized in 6 banks (from 0 to 5). Each bank contains 84 columns/segments (from 0 to 83). And each column can store 8 bits of data (from 0 to 7). That surely tells us we have

6 banks x 84 segments x 8 bits of data = 4032 bits = 504 bytes

The whole memory map with banks, segments and data is highlighted below.

Each bit represents particular pixel on the screen which can be turned ON or OFF programmatically.



Pin (van links naar rechts met het display naar boven gericht!)Afkorting:Omschrijving:
2CEChip Enable
3DCData/Command selection (high = write data / low = write command)
4DinData in
7BL+5v (backlight)


Sluit het display aan zoals aangegeven op onderstaand schema:

Arduino pin:Display pin:
D31 - RST (Reset)
D42 - CE (Chip Enable)
D53 - DC (Data/Command selection (high = write data / low = write command))
D64 - Din (Data in)
D75 - CLK (clock)
+5v6 - VCC (+5v)
+5v7 - Backlight (+5v)
GND8 - GND (Ground)


Wat heb je nodig?

1) Arduino EF5110 library
2a) Adafruit PCD8544 (Nokia 5110 LCD) library
2b) Adafruit GFX Library
3) LCD5110 library

Script met Adafruit PCD8544 bibliotheek

Dit is een geavanceerde bibliotheek met grafische tools, fonts, etc, en neemt meer geheugen in dan EF5110 bibliotheek.

Het resultaat:

Script met EF5110 bibliotheek

Commando’s met de EF5110 bibliotheek

Tekst schrijven:
lcm.write_string([x], [y], “Hallo Wereld!”);

[x] = Aantal pixels vanaf linkerkant
[y] = Het regelnummer 0 t/m 5 (6 regels)

Het font van de EF5110 bibliotheek is standaard: 6×8 pixels

dus je kan de [x] met 6 vermenigvuldigen, het volgende is waar te nemen:

lcm.write_string(0, 0, " Hallo");

is het zelfde als:

lcm.write_string(3*6, 0, "Hallo");

Display leegmaken:  lcm.clearLCM();
Coördinaten instellen:  lcm.set_XY(30,3);
Karakter schrijven:  lcm.write_char(50);

Script voor “Hallo wereld” i.c.m. met de “EF5110 Library”.

Het resultaat:

Nokia 5110 scherm - hallo wereld

Arduino Library

Installatie van Arduino IDE libraries: Arduino info

Arduino Library – EF5110

This is a library for Monochrome Nokia 5110 84×84 LCD Displays :

These displays use SPI to communicate, 4 or 5 pins are required to interface.

Download: andreimariusdincu @ Github

EF5110 (gedownload 2015-02-14) aangepast voor nieuwe arduino IDE v1.0.x

EF5110 (gedownload 2015-02-14) aangepast voor nieuwe arduino IDE v1.5.8+

Arduino Library – Adafruit PCD8544

adafruit logo

This is a library for our Monochrome Nokia 5110 LCD Displays

Pick one up today in the Adafruit shop! ——>

These displays use SPI to communicate, 4 or 5 pins are required to

Adafruit invests time and resources providing this open source code, please support Adafruit and open-source hardware by purchasing products from Adafruit!

Written by Limor Fried/Ladyada for Adafruit Industries.
BSD license, check license.txt for more information. All text above must be included in any redistribution.

To install, use the Arduino Library Manager to search for ‘Adafruit VCNL4010’ and install the library.

You will also need the Adafruit GFX Graphics core which does all the circles, text, rectangles, etc. You can get it by searching for ‘Adafruit GFX’ in the Arduino Library Manager or check it out here:

Download: Adafruit @ Github

Adafruit-PCD8544-Nokia-5110-LCD-library (gedownload 2015-02-14)


Arduino Library – LCD5110

Rinky Dink Electronics

These displays were used in old Nokia 5110/3310 cell phones. It is a 84×48 pixel monochrome LCD display. These displays are small, but very readable and come with backlight. This display is made of 84×48 individual pixels, so you can use it for graphics, text or bitmaps. These displays are inexpensive, easy to use, require only a few digital I/O pins and are fairly low power as well

To drive the display, you will need 5 digital output pins. Another pin can be used to control (via on/off or PWM) the backlight, but the library has no support for this function.

The display driver is a PCD8544 chip, and it runs at 3.3V so you will need a 3V supply handy. Logic levels must be 3V to prevent damage so you must use some kind of levelshifter.

Nice to know:
When I timed it a fullscreen bitmap rendered in 20280 µS. In theory you can achieve a framerate of close to 50 FPS.

Download libraries @

LCD5110 Basic v2.0 (2013-03-18)

LCD5110 Graph v2.0 (2013-03-18)

LCD5110 SPIflash v1.0 (2014-01-11)

Raspberry Pi

Here, we are going to interface Nokia5110 display with Raspberry Pi 3, connect the screen like this:

We will be using theNokia5110 Python library by Adafruit from GitHub.

Download the Adafruit Nokia LCD Python library.

Extract the above library and install it in the directory of above library by executing following command,

Also, we need to install python imaging library as given below,

Once the library has been added, we can test the Nokia LCD interfacing with Raspberry Pi by executing existing examples kept in examples folder of library.

Here, we are going to create a small python program in which we will display text, image and flying bird animation. This python program file along with sample images is kept in “example” folder of library provided in attachment.

Note: While displaying image on Nokia5110 display, we have to provide image to the program. This image should be of display size (84×48 here). If we provide image with other resolution it will give error.



Raspberry Pi Library

Adafruit Nokia LCD Python library




Eigen symbolen

Zelf symbolen en fonts maken voor je display

Als voorbeeld heb ik zelf wat symbolen gemaakt in een LCD tool, deze zet de pixels om in HEX formaat om deze dan weer te geven via de software en display.

Wat heb je nodig?

1) LCD Tools (in dit voorbeeld: GLCD Font Creator)

Ik heb zelf al een aantal symbolen getekend voor het 6×8 FONT:

124 = Temperatuur
125 = Luchvochtigheid / Regen
126 = Aan / Zon
127 = Baterij 1/7
128 = Baterij 2/7
129 = Baterij 3/7
130 = Baterij 4/7
131 = Baterij 5/7
132 = Baterij 6/7
133 = Baterij 7/7
134 = Graden Celcius
135 = Graden Farenheit
136 = Luidspreker
137 = Bell / Alarm
138 = Bluetooth
140 = Tekstballon
141 = Update / Recycle

6x8 font symbolen LCD uitgebreid

Deze kun je dan exporteren:

6x8 font symbolen export

6x8 font symbolen export naar arduino 01

Deze HEX codes van de symbolen kun je dan toevoegen aan de EF5110 bibliotheek:
Daarvoor moet je LCD.H openen met een tekstbewerker (notepad) dit bestand is te vinden in:

[Arduino folder]\libraries\EF5110\lcd.h

Plak de volgende code NA de regel met // horiz lines:


6x8 font symbolen export naar arduino 02

Sla het bestand op.
Nu kun je bijvoorbeeld met  lcm.write_char(130);  een (halfvol)batterijtje laten weergeven.

Hieronder heb ik een DEMO code gemaakt om met de symbolen te spelen:

Het resultaat:

Nokia 5110 scherm - temp en batt