MicroPython package to control HD44780 LCD displays 1602 and 2004 via I2C
MicroPython package to control HD44780 LCD displays 1602 and 2004 via I2C
📚 The latest documentation is available at MicroPython I2C LCD ReadTheDocs 📚
Python3 must be installed on your system. Check the current Python version with the following command
python --version
python3 --version
Depending on which command Python 3.x.y
(with x.y as some numbers) is
returned, use that command to proceed.
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
Connect the MicroPython device to a network (if possible)
import network
station = network.WLAN(network.STA_IF)
station.active(True)
station.connect('SSID', 'PASSWORD')
station.isconnected()
Install the latest package version of this lib on the MicroPython device
import mip
mip.install("github:brainelectronics/micropython-i2c-lcd")
For MicroPython versions below 1.19.1 use the upip
package instead of mip
import upip
upip.install('micropython-i2c-lcd')
Install a specific, fixed package version of this lib on the MicroPython device
import mip
# install a verions of a specific branch
mip.install("github:brainelectronics/micropython-i2c-lcd", version="feature/initial-implementation")
# install a tag version
mip.install("github:brainelectronics/micropython-i2c-lcd", version="0.1.0")
For MicroPython versions below 1.19.1 use the upip
package instead of mip
import upip
upip.install('micropython-i2c-lcd==0.1.0')
Install a specific release candidate version uploaded to Test Python Package Index on every PR on the MicroPython device. If no specific version is set, the latest stable version will be used.
import mip
mip.install("github:brainelectronics/micropython-i2c-lcd", version="0.1.0-rc3.dev1")
For MicroPython versions below 1.19.1 use the upip
package instead of mip
import upip
# overwrite index_urls to only take artifacts from test.pypi.org
upip.index_urls = ['https://test.pypi.org/pypi']
upip.install('micropython-i2c-lcd==0.1.0rc3.dev1')
Copy the module to the MicroPython board and import them as shown below using Remote MicroPython shell
Open the remote shell with the following command. Additionally use -b 115200
in case no CP210x is used but a CH34x.
rshell --port /dev/tty.SLAB_USBtoUART --editor nano
Perform the following command inside the rshell
to copy all files and
folders to the device
mkdir /pyboard/lib
mkdir /pyboard/lib/lcd_i2c
cp lcd_i2c/* /pyboard/lib/lcd_i2c
cp examples/main.py /pyboard
cp examples/boot.py /pyboard
from lcd_i2c import LCD
from machine import I2C, Pin
# PCF8574 on 0x50
I2C_ADDR = 0x27 # DEC 39, HEX 0x27
NUM_ROWS = 2
NUM_COLS = 16
# define custom I2C interface, default is 'I2C(0)'
# check the docs of your device for further details and pin infos
i2c = I2C(0, scl=Pin(13), sda=Pin(12), freq=800000)
lcd = LCD(addr=I2C_ADDR, cols=NUM_COLS, rows=NUM_ROWS, i2c=i2c)
lcd.begin()
lcd.print("Hello World")
For further examples check the examples
folder or the Example chapter in the
docs.
Based on Frank de Brabanders Arduino LiquidCrystal I2C Library.