Connect 1602 I2C LCD with ESP8266, NodeMCU, WeMos

Using low cost 1602 (16 chars and 2 line display) LCD in your IOT projects may cause a lot of trouble if you are trying it for the first time. The main issue is wrong I2C address which is documented in various examples over the internet. I2C address may vary depending upon driver used in a particular I2C module. Here is, How we can make this little low cost LCD display work for us.



Finding I2C Address:

I2C Display ESP8266 Logic Converter
+5V +5V AVCC
+3.3V BVCC
ESP8266 = GPIO 0

NodeMCU | Wemos etc. = D3

ESP8266 = GPIO 2

NodeMCU | Wemos etc. = D4

  • Open Serial monitor and Press reset button, Note down I2C address (0x3F is I2C address in example shown below), which will be used later


HelloWorld Example:

  • Under example, Open ESP8266-I2C-LCD1602 > HelloWorld sketch
  • Go to line 13, and change “0x3F” with your own I2C address
  • Upload sketch to ESP8266 and You are done!!


  • GPIO16 (D0) is not capable of I2C. Never use GPIO16 (D0) for connecting to any of I2c device (Visit Startup Guide for ESP8266 NodeMCU WeMos for more information).
  • 1602 LCD is 5V logic device while ESP8266 is 3.3V logic device. Never connect 1602 LCD directly to any of ESP8266 SMD or Development Board.


One thought on “Connect 1602 I2C LCD with ESP8266, NodeMCU, WeMos

Leave a Reply

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

For better user experience, please clear your browser cookies and cache at least for once. Dismiss