in Arduino

Connecting ESP8266 (ESP-01) and Nokia 5110 LCD

Recently, I made a Bitcoin price ticker, which uses ESP8266 module that retrieves the current price of Bitcoin with the use of the CoinDesk API. That project only displays the price on the serial monitor of the Arduino IDE and I wanted to make this project a standalone by connecting a LCD on it.

A Nokia 5110 LCD was my choice because I don’t see a lot of tutorial on how to connect the ESP8266 ESP-01 and the Nokia 5110 LCD on the web.

This LCD uses the PCD8544 controller chip from Philips which was used in Nokia 5110 and 3310 cell phones. This LCD runs on 3.3V and has 3V communication levels, which is great for ESP8266 which also uses the same communication level. The display is small, only about 1.5″ in diameter and it’s made of 84×48 individual pixels.

In able to control the LCD, we need a 3 to 5 digital output pins. In the case of ESP8266 ESP-01, there are 8 pins which are: VCC, GND, RX, TX, RST, CH_PD, GPIO0 and GPIO2. So if you are wondering how it is possible, yet ESP-01 has only two GPIOs and the LCD needed 3 to 5 pins?

If you will look to the datasheet of the ESP8266, the pins TX and RX are also GPIO1 and GPIO3. We can then use these two pins to control the LCD. Check the breadboard setup below how did I connect those two.

As I have said, you can use 3 to 5 pins to control the LCD, in my case I used four pins. I saved the RST pin by connecting it to the VCC, you can also save another pin by connecting the CE pin of the LCD to the ground, and in that case you are controlling the LCD using only three pins.

To upload the code, you need to remove first the ESP8266 to the breadboard connection, and set it to program mode. By the way, I’m using the Arduino IDE in programming the ESP8266. I also have a tutorial on how to program the ESP8266 using the Arduino IDE.

Here’s my code:

By the way, when you upload this code you will see some warnings on the IDE like the image below.

But the code works fine! 🙂