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.2.0.tar.gz (4.3 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.2.0-py3-none-any.whl (51.3 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for smpclient-7.2.0.tar.gz
Algorithm Hash digest
SHA256 cbd111a61b42fc6ce39454fee0ceec17ba3670eaf6fe126b9fef9764d8e5bb6d
MD5 91c545bc426da7d241e30911d5a29c69
BLAKE2b-256 d8b697dfe4c50f56fafcf64302832ef14d6648df47907f2e971362f2c03459e8

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: smpclient-7.2.0-py3-none-any.whl
  • Upload date:
  • Size: 51.3 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.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 aabcc974d608555cef3b40142f6deb106fcbacda783e31a604d56d297a330540
MD5 c5b9c6f7622a502cd6b5d77c6ed996fb
BLAKE2b-256 7d689bdab2fbbcfb1c5a4d6a8f0b4355a10632b037c86f7bfe69eff965f54813

See more details on using hashes here.

Provenance

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