Skip to main content

Simple Management Protocol (SMP) Client for remotely managing MCU firmware

Project description

Simple Management Protocol (SMP) Client

smpclient implements the transport layer of the Simple Management Protocol. This library can be used as a dependency in applications that use SMP over serial (UART or USB), Bluetooth (BLE), or UDP connections. Some abstractions are provided for common routines like upgrading device firmware.

If you don't need a library with the transport layer implemented, then you might prefer to use smp instead. The SMP specification can be found here.

If you'd like an SMP CLI application instead of a library, then you should try smpmgr.

Install

smpclient is distributed by PyPI and can be installed with uv, pip, and other dependency managers.

Build with all transports:

smpclient[all]

Or none (UDP transport only):

smpclient

Or build with only the transports you need:

smpclient[serial] # Serial (UART, USB, CAN)
smpclient[ble] # Bluetooth Low Energy
smpclient[serial,ble] # Serial + BLE

The UDP transport has no additional dependencies and is always available.

User Documentation

Documentation is in the source code so that it is available to your editor. An online version is generated and available here.

Development Quickstart

Assumes that you've already setup your development environment.

  1. run uv sync when pulling in new changes
  2. run uv run task fix after making changes (fast)
  3. run uv run task all after making changes (thorough)
  4. add library dependencies with uv:
    uv add <my_new_dependency>
    
  5. add test or other development dependencies:
    uv add --group dev <my_dev_dependency>
    
  6. run tests for all supported python versions:
    uv run task matrix
    

Development Environment Setup

Install Dependencies

Create the venv

uv sync

Verify Your Setup

uv run task all

Enable the githooks

git config core.hooksPath .githooks

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

smpclient-7.0.0.tar.gz (4.1 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

smpclient-7.0.0-py3-none-any.whl (33.1 kB view details)

Uploaded Python 3

File details

Details for the file smpclient-7.0.0.tar.gz.

File metadata

  • Download URL: smpclient-7.0.0.tar.gz
  • Upload date:
  • Size: 4.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for smpclient-7.0.0.tar.gz
Algorithm Hash digest
SHA256 3bd9731176746c4b82c1bfc3d906f32900d43f8b1006bcbc89e92addf3cab467
MD5 bcee0abd6bb8ac3ea15f5165507d1c3d
BLAKE2b-256 c342dc6aa92f52705c6433fc7dbefec87de615d0147b2c88c115da657bcf2994

See more details on using hashes here.

Provenance

The following attestation bundles were made for smpclient-7.0.0.tar.gz:

Publisher: release.yaml on intercreate/smpclient

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file smpclient-7.0.0-py3-none-any.whl.

File metadata

  • Download URL: smpclient-7.0.0-py3-none-any.whl
  • Upload date:
  • Size: 33.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for smpclient-7.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e570defc262f8c8ae5f2b2b4687bab461a8b431317a10e41f581c79c24cfcd22
MD5 0b380bd3921d053638b58960070d7bc0
BLAKE2b-256 209e0ecbfe0b65f1cf7d49699704bbc9dcd6955ff3c14e1bc9ed44528a5c2804

See more details on using hashes here.

Provenance

The following attestation bundles were made for smpclient-7.0.0-py3-none-any.whl:

Publisher: release.yaml on intercreate/smpclient

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page