Hi,
I wish to use such LCD on both ESP32 and ESP8266.
I've found dhylands github - https://github.com/dhylands/python_lcd.
but I need some help to install it on my device, since using instuction on README.MD file, didn't work for me.
Guy
LCD 2X16 I2c on ESP32
-
- Posts: 363
- Joined: Sun Apr 17, 2016 1:55 pm
Re: LCD 2X16 I2c on ESP32
I'm going to assume you are using a 1602 LCD with one of these I2C backpacks:
https://www.aliexpress.com/item/LCD1602 ... 14933.html
Git clone or download the repo: https://github.com/dhylands/python_lcd
Open the lcd folder.
You simply need to copy 2 of these files to your board.
You can use rshell, ampy, etc.
Depending on how many free IO pins you have, and whether you are using the PCF8574 I2C backpack or connecting directly to the LCD determines which files to copy across.
For ESP8266 -> PCF8574 backpack -> LCD, copy these files to your board:
* esp8266_i2c_lcd.py
* lcd_api.py
For ESP8266 -> LCD, copy these files to your board:
* nodemcu_gpio_lcd.py
* lcd_api.py
The ESP32 can use the same examples.
There is an ESP32 example, esp32_gpio_lcd.py, which is basically identical to nodemcu_gpio_lcd.py.
When connecting via GPIO, you have the option to use 4 or 8 data lines.
If you want to use an MCP23008 IO expander, have a look at pyb_i2c_adafruit_lcd.py
Once you have uploaded the drivers to your board, have a look at the associated _test.py files, which show you how to interact with them.
https://www.aliexpress.com/item/LCD1602 ... 14933.html
Git clone or download the repo: https://github.com/dhylands/python_lcd
Open the lcd folder.
You simply need to copy 2 of these files to your board.
You can use rshell, ampy, etc.
Depending on how many free IO pins you have, and whether you are using the PCF8574 I2C backpack or connecting directly to the LCD determines which files to copy across.
For ESP8266 -> PCF8574 backpack -> LCD, copy these files to your board:
* esp8266_i2c_lcd.py
* lcd_api.py
For ESP8266 -> LCD, copy these files to your board:
* nodemcu_gpio_lcd.py
* lcd_api.py
The ESP32 can use the same examples.
There is an ESP32 example, esp32_gpio_lcd.py, which is basically identical to nodemcu_gpio_lcd.py.
When connecting via GPIO, you have the option to use 4 or 8 data lines.
If you want to use an MCP23008 IO expander, have a look at pyb_i2c_adafruit_lcd.py
Once you have uploaded the drivers to your board, have a look at the associated _test.py files, which show you how to interact with them.
Re: LCD 2X16 I2c on ESP32
Also, have a read of this thread: viewtopic.php?f=14&t=1422
Re: LCD 2X16 I2c on ESP32
1) Yes this is exactly the item I use.mcauser wrote: ↑Mon Oct 08, 2018 3:06 amI'm going to assume you are using a 1602 LCD with one of these I2C backpacks:
https://www.aliexpress.com/item/LCD1602 ... 14933.html
Git clone or download the repo: https://github.com/dhylands/python_lcd
Open the lcd folder.
You simply need to copy 2 of these files to your board.
You can use rshell, ampy, etc.
Depending on how many free IO pins you have, and whether you are using the PCF8574 I2C backpack or connecting directly to the LCD determines which files to copy across.
For ESP8266 -> PCF8574 backpack -> LCD, copy these files to your board:
* esp8266_i2c_lcd.py
* lcd_api.py
For ESP8266 -> LCD, copy these files to your board:
* nodemcu_gpio_lcd.py
* lcd_api.py
The ESP32 can use the same examples.
There is an ESP32 example, esp32_gpio_lcd.py, which is basically identical to nodemcu_gpio_lcd.py.
When connecting via GPIO, you have the option to use 4 or 8 data lines.
If you want to use an MCP23008 IO expander, have a look at pyb_i2c_adafruit_lcd.py
Once you have uploaded the drivers to your board, have a look at the associated _test.py files, which show you how to interact with them.
2) I'm using the exact lcd library as mentioned.
3) copied those files
4) what gpio's should be for i2c ?
5) what to do if lcd screen needs 5v and from ESP8266 I'm getting 3.3v ?
6) this is the one I use https://www.aliexpress.com/item/ESP8266 ... 66224.html
Re: LCD 2X16 I2c on ESP32
Normally people use pins D1 and D2 for I2C.
D1 GPIO5 for SCL
D2 GPIO4 for SDA
There’s a problem though. I2C requires pull up resistors on the SCL+SDA pins. You’ll need some external 10k resistors connecting both to 3V3. “Pulling them up” instead of leaving them floating.
There is a trick you can use. Most ESP8266 boards have onboard 10k pull up resistors, on the D3+D4 pins, for setting the correct boot mode. You can use these for I2C if you can live with the onboard led (on D4) flickering.
https://wiki.wemos.cc/products:d1:d1_mini
D3 GPIO0 SCL
D4 GPIO2 SDA
The LCD does require 5V Vcc, so power it from your 5V pin. The SCL and SDA pins are 5V tolerant.
If you are adding your own external pull ups, I’d connect them to 3V3, just to be paranoid.
You can get 3V LCDs, but they usually cost more and are harder to find. You should be fine with a 5V LCD.
D1 GPIO5 for SCL
D2 GPIO4 for SDA
There’s a problem though. I2C requires pull up resistors on the SCL+SDA pins. You’ll need some external 10k resistors connecting both to 3V3. “Pulling them up” instead of leaving them floating.
There is a trick you can use. Most ESP8266 boards have onboard 10k pull up resistors, on the D3+D4 pins, for setting the correct boot mode. You can use these for I2C if you can live with the onboard led (on D4) flickering.
https://wiki.wemos.cc/products:d1:d1_mini
D3 GPIO0 SCL
D4 GPIO2 SDA
The LCD does require 5V Vcc, so power it from your 5V pin. The SCL and SDA pins are 5V tolerant.
If you are adding your own external pull ups, I’d connect them to 3V3, just to be paranoid.
You can get 3V LCDs, but they usually cost more and are harder to find. You should be fine with a 5V LCD.
Re: LCD 2X16 I2c on ESP32
Hi,
thank you for your answer.
lets leave the 5v issue for later.
1) can I decide that D3, D4 will be i2c ? I thought it is a dedicated hardware ( as I know In RPI boards ).
2) my motivation to use ESP8266 is to be much simpler and reliable than RPI zero -over there I have my system working properly, but it seems ( adding the voltage issue ), let fit. Am I correct ?
thank you for your answer.
lets leave the 5v issue for later.
1) can I decide that D3, D4 will be i2c ? I thought it is a dedicated hardware ( as I know In RPI boards ).
2) my motivation to use ESP8266 is to be much simpler and reliable than RPI zero -over there I have my system working properly, but it seems ( adding the voltage issue ), let fit. Am I correct ?