Skip to content

brainelectronics/micropython-i2c-lcd

Repository files navigation

MicroPython I2C LCD

Downloads Release MicroPython License: MIT codecov CI

MicroPython package to control HD44780 LCD displays 1602 and 2004 via I2C


General

MicroPython package to control HD44780 LCD displays 1602 and 2004 via I2C

📚 The latest documentation is available at MicroPython I2C LCD ReadTheDocs 📚

Installation

Install required tools

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

Setup

Install package with upip

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()

General

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')

Specific version

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')

Test version

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')

Manually

Upload files to board

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

Usage

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.

Credits

Based on Frank de Brabanders Arduino LiquidCrystal I2C Library.

About

Micropython package to control HD44780 LCD displays 1602 and 2004 via I2C

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages