smp implements serialization and deserialization of the Simple Management Protocol.
The SMP specification can be found here.
If you'd like a library that implements the serial (UART or USB), Bluetooth (BLE), and UDP transport layers for SMP, take a look at smpclient.
If you need an SMP CLI application to interact with device firmware, then try smpmgr.
smp is distributed by PyPI and can be installed with uv, pip, and other dependency managers.
Documentation is in the source code so that it is available to your editor. An online version is generated and available here.
Assumes that you've already setup your development environment.
Tasks are defined in tasks.py and run with camas.
- run
uv syncwhen pulling in new changes - run
uv run camas fixto auto-format and apply lint fixes - run
uv run camasto run the default checks - run
uv run camas matrixto check against all supported Python versions - add library dependencies with
uv:uv add <my_new_dependency> - add development dependencies:
uv add --group dev <my_dev_dependency>
uv sync
uv run camas
git config core.hooksPath .githooks