I'm trying to build a device that can print something on my I2C LCD display. I wanted to use the ESP-01 module initially but it was not giving the desired output, just printing random digits.

So I switched to another module with the same chip inside; I took this ESP8266 12E from a Bolt IoT WiFi module.

As of now there is no damage done to the module, but I'm not able to write sketches into it using an Arduino Uno, though the serial monitor is printing something when I press the reset button.

This is part of another project; without making this show something on an I2C display (because we already have a small I2C OLED screen) we can't proceed.

I would be really grateful if anyone could solve this issue - I just want to flash a sketch into it.

enter image description here

The image above was result of the ESP-01 module.

enter image description here

Can anybody give a proper circuit diagram to flash a sketch into this ESP8266 module using Arduino UART interface as port?

UPDATE 1:07/08/2022: @Jens Thank you for your valuable advice I will post it soon. I'm drawing it in proteus. I also bought an FT232RL USB to TTL converter using this I was easily able to flash firmware into an ESP 01 module now I'm trying for 12E module. Edit flashing with the converter didn't make much difference for the ESP01 module.enter image description here

UPDATE 2:07/08/2022: @Jens here is the circuit diagram you asked. I have include how i connected the FT232RL converter. Please tell me how to connect ESP 12E with FT232RL USB to TTL converterenter image description here

enter image description here

Code as asked by YGreater // Interfacing ESP8266 (ESP-01) WiFi module with 16x2 I2C LCD

#include <Wire.h> // Include Wire library (required for I2C devices) #include <LiquidCrystal_I2C.h> // Include LiquidCrystal_I2C library

LiquidCrystal_I2C lcd(0x27, 16, 2); // Configure LiquidCrystal_I2C library with 0x27 address, 16 columns and 2 rows

void setup() {

Wire.begin(2, 0); // Initialize I2C LCD module (SDA = GPIO2, SCL = GPIO0)

lcd.backlight(); // Turn backlight ON lcd.setCursor(0, 5 ); // Go to column 6, row 1 lcd.print("123456");


void loop() {


  • 2
    \$\begingroup\$ There are two problems here, the interface issue between ESP01 and the display, and the firmware transfer to the 12E module. If you fix the second, you will most likely face the first again. Please provide a schematic of your wiring to get help. \$\endgroup\$
    – Jens
    Aug 5 at 17:33
  • \$\begingroup\$ why not buy an esp8266 development board like the Wemos D1 mini? \$\endgroup\$
    – Juraj
    Aug 6 at 6:04
  • \$\begingroup\$ @Juraj i had this 12 e module lying around. For study purposes \$\endgroup\$ Aug 7 at 5:41
  • \$\begingroup\$ I don't understand if the problem is loading a program in or LCD not working, but there should not be 5 data lines connected to LCD. \$\endgroup\$
    – Justme
    Aug 7 at 8:15
  • \$\begingroup\$ im using a converter like this one on its website schematic was like that handsontec.com/dataspecs/module/I2C_1602_LCD.pdf page 3 \$\endgroup\$ Aug 7 at 13:18


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.