spsdk
Open Source Secure Provisioning SDK for NXP MCU/MPU
What it is and what it does
SPSDK is NXP's official open-source toolkit for secure provisioning and programming of their microcontroller and microprocessor devices. It provides both a Python library API and command-line applications, enabling developers to automate device configuration, firmware flashing, and security provisioning workflows. The package wraps low-level device communication protocols and bootloader interfaces, abstracting away the complexity of direct hardware interaction.
The library depends on 33 runtime packages covering cryptography (cryptography, pyasn1, oscrypto), binary manipulation (bincopy, bitstring, hexdump), serial communication (pyserial), USB access (libusbsio, libuuu), and configuration parsing (ruamel.yaml, fastjsonschema). It is actively maintained, supports modern Python versions (3.10–3.13), and runs on Windows, Linux, and macOS. The permissive BSD-3-Clause license permits commercial use.
Use it for:
- Automate batch provisioning of NXP MCUs in manufacturing workflows using the Python API
- Program and configure NXP devices from CI/CD pipelines for embedded product testing
- Develop custom provisioning tools that wrap SPSDK for device-specific workflows
- Secure-boot configuration and key provisioning on NXP microprocessors
- Firmware update and recovery operations on deployed NXP devices via serial or USB
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
SPSDK is a Python library and CLI toolkit for connecting to and securely provisioning NXP microcontroller and microprocessor devices, handling firmware programming and device configuration.
Yes, if you develop with NXP microcontrollers or microprocessors. SPSDK is the official, actively maintained provisioning toolkit from NXP with no known vulnerabilities, low install friction, and permissive licensing. Install it when you need to automate device programming, secure provisioning, or bootloader interaction; skip it if you target non-NXP hardware.
Install
spsdk on PyPI
pip
pip install spsdkuv
uv add spsdkpoetry
poetry add spsdkInstalling spsdk
Before you install
Low install friction; pure Python wheel with no compiled dependencies. Actively maintained with a recent release (56 days ago) and ongoing repository activity. Supports Python 3.10 through 3.13.
License in practice
BSD-3-Clause permissive license allows commercial and private use with minimal restrictions; you may use, modify, and distribute the package provided you include the license notice.
Quickstart
pip install spsdk
from spsdk import apps
from spsdk.mcu import get_mcu
# Connect to and communicate with an NXP device
mcu = get_mcu('device_name')
Requires Python 3.10 or later. Target device must be physically connected and accessible via USB or serial interface.
Verify before relying
- Specific NXP device models and bootloader versions supported by this release
- Whether libusbsio and libuuu (native USB/UUU protocol libraries) are bundled or require separate system installation
- Real-world provisioning workflow examples beyond the GitHub examples directory
Package facts
| License | BSD-3-Clause (permissive) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 33 — asn1crypto, bincopy, bitstring, chardet, click-command-tree, click-option-group, click, colorama, crcmod, cryptography, deepmerge, fastjsonschema, filelock, hexdump, importlib-metadata, libusbsio, libuuu, oscrypto, packaging, platformdirs, prettytable, pyasn1, pyserial, requests, ruamel.yaml, ruamel.yaml.clib, setuptools_scm, setuptools, sly, spsdk-mcu-link |
| Maintenance | actively maintained — 56 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 545,933/month — #6,071 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: spsdk-3.10.0-py3-none-any.whl
Tags
More Scientific/Engineering packages
NumPy provides an N-dimensional array object…
permissive · top 100 on PyPI
pandaspandas provides fast, flexible data structures…
permissive · top 100 on PyPI
scipyscipy provides numerical algorithms for…
permissive · top 100 on PyPI
scikit-learnscikit-learn provides a comprehensive Python…
permissive · top 1,000 on PyPI
dilldill extends Python's pickle module to…
permissive · top 1,000 on PyPI
multiprocessMultiprocess is an enhanced fork of Python's…
permissive · top 1,000 on PyPI
PyPowerStorePyPowerStore is a Python library for managing…
permissive · top 15,000 on PyPI
spsdk-mcu-linkA plugin for SPSDK that adds support for NXP…
permissive · top 15,000 on PyPI
spsdk-pyocdIntegrates PyOCD as a debugger probe interface…
permissive · top 15,000 on PyPI
libusbsioProvides a Python wrapper around NXP's…
permissive · top 15,000 on PyPI
tockloaderTockloader is a command-line tool for…
unclear · top 15,000 on PyPI
libuuuPython wrapper for libuuu, a library for NXP…
permissive · top 15,000 on PyPI
esptoolesptool is a serial utility for flashing,…
copyleft · top 5,000 on PyPI
adafruit-circuitpython-busdeviceProvides I2CDevice and SPIDevice helper classes…
permissive · top 15,000 on PyPI
pypemicroProvides a Python interface to PEMicro debug…
permissive · top 15,000 on PyPI
smpSerializes and deserializes the Simple…
permissive · top 15,000 on PyPI