MicroPython libraries¶
Warning
Important summary of this section
- MicroPython implements a subset of Python functionality for each module.
- To ease extensibility, MicroPython versions of standard Python modules
usually have
u
(“micro”) prefix. - Any particular MicroPython variant or port may miss any feature/function described in this general documentation (due to resource constraints or other limitations).
This chapter describes modules (function and class libraries) which are built into MicroPython. There are a few categories of such modules:
- Modules which implement a subset of standard Python functionality and are not intended to be extended by the user.
- Modules which implement a subset of Python functionality, with a provision for extension by the user (via Python code).
- Modules which implement MicroPython extensions to the Python standard libraries.
- Modules specific to a particular
MicroPython port
and thus not portable.
Note about the availability of the modules and their contents: This documentation in general aspires to describe all modules and functions/classes which are implemented in MicroPython project. However, MicroPython is highly configurable, and each port to a particular board/embedded system makes available only a subset of MicroPython libraries. For officially supported ports, there is an effort to either filter out non-applicable items, or mark individual descriptions with “Availability:” clauses describing which ports provide a given feature.
With that in mind, please still be warned that some functions/classes
in a module (or even the entire module) described in this documentation may be
unavailable in a particular build of MicroPython on a particular system. The
best place to find general information of the availability/non-availability
of a particular feature is the “General Information” section which contains
information pertaining to a specific MicroPython port
.
Beyond the built-in libraries described in this documentation, many more
modules from the Python standard library, as well as further MicroPython
extensions to it, can be found in micropython-lib
.
Python standard libraries and micro-libraries¶
The following standard Python libraries have been “micro-ified” to fit in with
the philosophy of MicroPython. They provide the core functionality of that
module and are intended to be a drop-in replacement for the standard Python
library. Some modules below use a standard Python name, but prefixed with “u”,
e.g. ujson
instead of json
. This is to signify that such a module is
micro-library, i.e. implements only a subset of CPython module functionality.
By naming them differently, a user has a choice to write a Python-level module
to extend functionality for better compatibility with CPython (indeed, this is
what done by the micropython-lib
project mentioned above).
On some embedded platforms, where it may be cumbersome to add Python-level
wrapper modules to achieve naming compatibility with CPython, micro-modules
are available both by their u-name, and also by their non-u-name. The
non-u-name can be overridden by a file of that name in your library path (sys.path
).
For example, import json
will first search for a file json.py
(or package
directory json
) and load that module if it is found. If nothing is found,
it will fallback to loading the built-in ujson
module.
- Builtin functions and exceptions
array
– arrays of numeric datacmath
– mathematical functions for complex numbersgc
– control the garbage collectormath
– mathematical functionssys
– system specific functionsubinascii
– binary/ASCII conversionsucollections
– collection and container typesuerrno
– system error codesuhashlib
– hashing algorithmsuheapq
– heap queue algorithmuio
– input/output streamsujson
– JSON encoding and decodinguos
– basic “operating system” servicesure
– simple regular expressionsuselect
– wait for events on a set of streamsusocket
– socket moduleustruct
– pack and unpack primitive data typesutime
– time related functionsuzlib
– zlib decompression_thread
– multithreading support
MicroPython-specific libraries¶
Functionality specific to the MicroPython implementation is available in the following libraries.
Libraries specific to the OpenMV Cam¶
The following libraries are specific to the OpenMV Cam.
pyb
— functions related to the board- class ADC – analog to digital conversion
- class CAN – controller area network communication bus
- class DAC – digital to analog conversion
- class ExtInt – configure I/O pins to interrupt on external events
- class I2C – a two-wire serial protocol
- class LED – LED object
- class Pin – control I/O pins
- class PinAF – Pin Alternate Functions
- class RTC – real time clock
- class Servo – 3-wire hobby servo driver
- class SPI – a master-driven serial protocol
- class Timer – control internal timers
- class TimerChannel — setup a channel for a timer
- class UART – duplex serial communication bus
- class USB_VCP – USB virtual comm port
time
— tracking elapsed timesensor
— camera sensorimage
— machine vision- class HaarCascade – Feature Descriptor
- class Similarity – Similarity Object
- class Histogram – Histogram Object
- class Percentile – Percentile Object
- class Threshold – Threshold Object
- class Statistics – Statistics Object
- class Blob – Blob object
- class Line – Line object
- class Circle – Circle object
- class Rect – Rectangle Object
- class QRCode – QRCode object
- class AprilTag – AprilTag object
- class DataMatrix – DataMatrix object
- class BarCode – BarCode object
- class Displacement – Displacement object
- class kptmatch – Keypoint Object
- class ImageWriter – ImageWriter object
- class ImageReader – ImageReader object
- class Image – Image object
nn
— neural networks- class nn_class – nn dection result
- class Net – Neural Network
gif
— gif recording- class Gif – Gif recorder
mjpeg
— mjpeg recording- class Mjpeg – Mjpeg recorder
lcd
— lcd shield driverfir
— thermopile shield driver (fir == far infrared)tv
— tv shield drivercpufreq
— CPU Frequency Controlomv
— OpenMV Cam Information