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.1.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.1-py3-none-any.whl (33.6 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for smpclient-7.0.1.tar.gz
Algorithm Hash digest
SHA256 332b3e891413413a412f69d3457b13f7b3678ef58f6ac4a0606697a8a52efc82
MD5 e09481556ff6c7e7d423f9c0e3d56234
BLAKE2b-256 549355a0883b5cd4a81263797c03e8646e2b105bbe810f90d290e8f05887e234

See more details on using hashes here.

Provenance

The following attestation bundles were made for smpclient-7.0.1.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.1-py3-none-any.whl.

File metadata

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

File hashes

Hashes for smpclient-7.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 cc9f7d465e77ce4ca1c13378a9aa7de10ecaff131e79c162ed17fb601661fe46
MD5 de599d4b34689847697614793a1c5a26
BLAKE2b-256 2cfd1e9df5a31463403e9251fb8d6f32414b9e98b4b5e995fb5a0961eabc2119

See more details on using hashes here.

Provenance

The following attestation bundles were made for smpclient-7.0.1-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