proper wiring for LCD1602 without I2C?

All ESP32 boards running MicroPython.
Target audience: MicroPython users with an ESP32 board.
Post Reply
oyster
Posts: 26
Joined: Tue Feb 16, 2021 1:21 pm

proper wiring for LCD1602 without I2C?

Post by oyster » Sun Mar 28, 2021 8:00 am

My wiring between ESP32 and LCD1602 without I2C is
LCD1602 - ESP32 board
VSS - GND
VDD - 5V of ESP32 board
VO - GPIO34

RS - GPIO13
RW - GPIO12
E - GPIO14

DB0 - GPIO27
DB1 - GPIO26
DB2 - GPIO25
DB3 - GPIO33

DB4 - GPIO32
DB5 - GPIO34
DB6 - GPIO23
DB7 - GPIO22

BLK - GPIO21
BLA - GND
However, when I launch Thonny Editor, the error message says
rst:0x10 (RTCWDT_RTC_RESET),boot:0x33 (SPI_FAST_FLASH_BOOT)
flash read err, 1000
ets_main.c 371
ets Jun 8 2016 00:22:57
If I disconnect 5V from LCD1602, the mpy's REPL can be launched.

So, what is the problem with my wiring?

Thanks

User avatar
Roberthh
Posts: 3667
Joined: Sat May 09, 2015 4:13 pm
Location: Rhineland, Europe

Re: proper wiring for LCD1602 without I2C?

Post by Roberthh » Sun Mar 28, 2021 9:03 am

A few comments:
- You can run LCD in 4 bit mode. Then, only DB34-DB7 have to be connected.
- GPIO34 is input only. So you cannot use it for output.
- In your wiring you have assigned GPIO34 twice.
- I guess that V0 is the LCD contrast pin. That has to be set to a level between 0 and 5 V for best contrast. For most of the cases I had the proper value was about 1V.
- BLK should be GND, BLA at high level. But at first I would leave that off and tell, whether the board starts. Depending on the current needs, you may have to add an external driver. Some LCD's have that on board. Then BLA is just a logic input.
- The RW is usually not actively driven, since you only write to the device. So you can tie that to GND.

The ESP32 is not guaranteed to be 5V tolerant. Although it works, as long as the LCD pins are in input mode. That makes it IMPORTANT to connect RW to GND.

P.S.: The error message you show comes up all the time, even on a good boot. You may not have noticed it before.

Post Reply