Nokia 3310/5110 LCD Display

The Nokia 3310/5110 LCD display is an 84×84 monochrome device. There are several versions of it that have slightly different pin arrangements. They are all 3.3V units and so extreme care should be taken if they are used with 5V processors.

This is the Sparkfun version

Connexions

The display device has eight connections to the processor…

For the Sparkfun Graphic LCD 84×48 – Nokia 5110 device these are…

  • LED – the back light LEDs
  • SCLK – data clock
  • DNK (MOSI) – data in
  • D/C – Display/Command toggle
  • RST – device reset
  • SCE – device select
  • GND – 0V ground
  • VCC – 3.3V supply

For the Adafruit Nokia 5110/3310 Monochrome LCD these are…

  • GND – 0V ground
  • VCC – 3.3V supply
  • CLK – data clock
  • DIN – data in
  • D/C – Display/Command toggle
  • CS  – device (chip) select
  • RST – reset
  • LED – the back light LEDs

To connect the device to the Adafruit feather 32u4 connect…

  • pin 2 -> RST
  • pin 3 -> SCE or CS
  • pin 5 -> D/C
  • pin 6 -> DNK(MOSI) or DIN
  • pin 9 -> SCLK or CLK
  • GND -> GND
  • 3V    -> VCC

If you want the back light at full brightness then connect 3V to LED as well. This is easy to arrange by soldering a wire between the VCC and LED pads on the second row of connections on the display device. If you want the ability to dim the display then you will need to connect a PWM pin to LED instead and set the brightness in the software. I suggest using pin 10 on the feather 32u4 and  then in the Arduino sketch add the following line in the global declarations section (before void setup())…

uint8_t ledPin;

… and then the following line in the void setup() procedure…

analogWrite(ledPin, 127);

You may need to adjust the value used, 127 above, to get the brightness you want.
Dimming the backlight in this way may cause some strobing due to an interaction with the display refresh rate. If this is annoying then it may be better to resort to a resistor in the LED supply line.

Library

Use the Adafruit PCD8544 library along with SPI and Adafruit GFX…

#include <SPI.h>
#include <Adafruit_GFX.h>
#include <Adafruit_PCD8544.h>

To instantiate the display use the following on an Adafruit feather 32u4 Basic…

#define CLK 9
#define DIN 6
#define DC 5
#define CS 3
#define RST 2
Adafruit_PCD8544 display = Adafruit_PCD8544(CLK, DIN, DC, CS, RST);

You will have to redefine the pin numbers for other processors.