LBUtils

Background

This library is designed to install all of the common drivers, library code, and helper code used within modules at Leeds Beckett University. It is principally targeted at MicroPython on the Pico H/W micro-controllers: but compatibility is also maintained with CPython 3.10 where possible (or relevant).

Examples for how to use the library can be found in the 'examples' folder: or in the documentation. Otherwise the library is organised as follows

  • drivers: Classes aimed at low-level support of I2C, SPI and other devices requiring board-level support.
  • graphics: Classes providing basic drawing and font support for display drivers.
  • helpers: Functions and classes which help replace boiler-plate code for tasks such as setting up network access.
  • pmods: Drivers and support for the Digilent peripheral modules.

Installation

A package of this library is provided on PyPi as lbutils. This can be installed with the normal Python tools, and should also install to boards running MicroPython under Thonny.

For manual installation, everything under the lbutils directory should be copied to the appropriate directory on the MicroPython board, usually /lib. The library, or individual drivers, can then be imported as normal: see the documentation for the examples for more detailed guidance on the use of the library. This code is also available in the lbutils/examples folder, or as the library lbutils.examples when the package is installed.

Notes

  • This library is principally a teaching library, so the Documentation should be at least as important as the 'code'. Where possible all algorithms and implementation techniques should also be explained as fully as possible, or at least linked to reference standards/implementations

  • All documentation should be organised according to the Diátaxis framework: ideally with examples that do not require specific board set-ups.

  • For consistency, all code should also be in the format standardised by the Black library. This makes it easier to co-ordinate external code and documentation with the implementation documented here.

  • Documentation is generated by MkDocs, using the embedded comments in the code. All documentation strings should be in the Markdown format accepted by MkDocs, and should be automatically rebuilt on commit.

Known Implementations

  • Raspberry Pi Pico W (MicroPython 3.4)
  • CPython (3.10)