Skip to content

brainelectronics/micropython-i2c-lcd

Repository files navigation

MicroPython package template

Downloads Release MicroPython License: MIT codecov CI

MicroPython PyPi package template project with auto deploy


General

MicroPython PyPi package template with GitHub Action based testing and deploy

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.connect('SSID', 'PASSWORD') station.isconnected()

General

Install the latest package version of this lib on the MicroPython device

import upip upip.install('micropython-package-template')

Specific version

Install a specific, fixed package version of this lib on the MicroPython device

import upip upip.install('micropython-package-template==0.1.1')

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 upip # overwrite index_urls to only take artifacts from test.pypi.org upip.index_urls = ['https://test.pypi.org/pypi'] upip.install('micropython-package-template==0.2.0rc1.dev6')

See also brainelectronics Test PyPi Server in Docker for a test PyPi server running on Docker.

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/be_upy_blink cp be_upy_blink/* /pyboard/lib/be_upy_blink cp examples/main.py /pyboard cp examples/boot.py /pyboard

Usage

from be_upy_blink import flash_led from machine import Pin led_pin = Pin(4, Pin.OUT) flash_led(pin=led_pin, amount=3) # flash_led(pin=led_pin, amount=3, on_time=1, off_time=3)

Create a PyPi (micropython) package

Setup

Install the required python package with the following command in a virtual environment to avoid any conflicts with other packages installed on your local system.

python3 -m venv .venv source .venv/bin/activate pip install twine

Create a distribution

This module overrides distutils (also compatible with setuptools) sdist command to perform pre- and post-processing as required for MicroPython's upip package manager. This script is taken from pfalcon's picoweb and updated to be PEP8 conform.

python setup.py sdist

A new folder dist will be created. The sdist_upip will be used to create everything necessary.

Upload to PyPi

Be aware: pypi.org and test.pypi.org are different

You can NOT login to test.pypi.org with the pypi.org account unless you created the same on the other. See invalid auth help page of test pypi

For testing purposes add --repository testpypi to upload it to test.pypi.org

twine upload dist/micropython-package-template-*.tar.gz -u PYPI_USERNAME -p PYPI_PASSWORD

Contributing

Unittests

Run the unittests locally with the following command after installing this package in a virtual environment

# run all tests nose2 --config tests/unittest.cfg # run only one specific tests nose2 tests.test_blink.TestBlink.test_flash_led

Generate the coverage files with

python create_report_dirs.py coverage html

The coverage report is placed at reports/coverage/html/index.html

Credits

Based on the PyPa sample project.

About

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

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Packages

No packages published

Languages