by Floris Wouterlood – The Netherlands – January 13, 2021
Compared with Arduinos the ESP8266 microprocessor boards offer a lot more memory, more pins, 3.3V architecture, on board I2C and SPI and, most of all, on board WiFi. ESP8266s are fully compatible with Arduino’s. For continuous display of data the Nokia 5510 LCD may be handy. Its screen: a modest 84 pixels wide, 48 pixels high, is based on proven Philips monochrome LCD technology. It offers both alphanumerical and graphical functions, thus competing directly with standard 16×2 and 20×4 LCDs. The Arduino library “Adafruit_PCD8544.h” created by Adafruit Industries offers all the functionality one can assign to such a small and humble monochrome device. Because this display is so durable while pixels do not burn in so fast as with pixels in OLEDs it is attractive to combine it with permanently information producing devices such as IOT-reporting temperature and humidity sensors. A touch of graphical decoration is possible. The Nokia 5510 is cheap, has a small footprint, is durable and does not consume much energy. Previously I have experimented with the Arduino Nano as ‘engine’ powering a Nokia display*. Here we wire a Nokia 5510 LCD with an ESP8266 Lolin NodeMCU, as prelude to IOT projects that are in the planning. Fortunately the “Adafruit_PCD8544.h” library fully supports ESP8266 based microprocessor boards.
figure 1. Wiring of a Nokia 5510 LCD with a Lolin NodeMCU ESP8266 board.
Figure 1 shows the pin-to-pin wiring of the Nokia 5510 and a NodeMCU ESP8266 board. The Nokia uses the SPI serial protocol so there are five wires to take care of: CLK, DIN (equal to MOSI), DC, CE and RST. The wiring is soft-SPI wiring, that is we do not use the NodeMCU’s dedicated SPI pins (SCLK, D5 and MOSI, D7) but instead the ‘standard’ pins seen in many sketches in conjunction with the Adafruit_PDCD8455 library. The back light (pin BL) can be wired via a push button switch to the 3.3V pin of the NodeMCU.
Wiring the Nokia to a NodeMCU
A Nokia 5510 breakout board has 8 pins (fig 1):
Besides being an actual example of wiring, figure 2 illustrates the graphical capabilities of the Nokia 5510. Here an animation is (literally) running; that created of Muybridge’s photo series made with series of wooden plate camera’s in 1878 of a running horse named ‘Sallie Gardner’. The animation loads ten bitmap frames in memory. Each bitmap is 80 pixels wide and 48 pixels high (450 bytes). The frames are then in the loop () section displayed on screen in rapid succession such that the human eye gets the impression of a galloping horse.
The refresh rate of the Nokia 5510 controller chip is fast. The pixels in the LCD panel have their own pixel fade time. This fade time appears longer than the controller response time. This difference causes a blur phenomenon when the image refresh speed exceeds pixel fade time. To suppress blur a delay needs to be introduced between the projections of each individual frame. This delay was quite considerable: 150 milliseconds was optimal. With shorter delays the legs of the animal were not very well appreciable and with zero delay they disappear in a blurry mess.
Compared with 16×2 and 20×4 LCDs and even with graphical 128×64 LCD screens controlled by the ST7920 chip the response time of the PCB8455 controller in the Nokia5510 is much better.
Figure 2. Nokia 5510 LCD wired to an ESP8266 NodeMCU and running Muybridge’s galloping horse sketch.
Note: the libraries “Adafruit_PCD8544.h” and “Adafruit_GFX.h” are required to compile this sketch. These libraries can be installed via Library manager in the Arduino IDE or else located on the internet downloaded as .zip file and installed via Sketch and Include Library.
There are two sketches:
The file “NodeMCU_Nokia_5510.zip” contains the ‘Hello World!” sketch and the sketch with the running horse
sketches are packed in ZIP compression