Packages
Provides Python abstractions and utilities for Controller Area Network (CAN) communication, supporting multiple hardware backends and message logging formats.
Install it if you need to communicate with CAN buses from Python.
Provides quaternion representation, manipulation, and rotation operations for 3D geometry and animation, with support for smooth interpolation between orientations.
Calculates CRC and checksum values from binary data using parametrized algorithms from the CRC catalogue, supporting dozens of standard CRC variants and additive/XOR checksums.
Install it if you need standard CRC calculations; avoid it only if you require active feature development or real-time performance guarantees.
esptool is a serial utility for flashing, provisioning, and interacting with Espressif microcontroller SoCs over a serial connection.
Install it if you develop or deploy firmware on Espressif SoCs.
Provides kconfig language support and IDE tooling for configuring Espressif ESP-IDF embedded projects, including configuration parsing, validation, and documentation generation.
pyOCD is a Python-based debugger and programmer for Arm Cortex-M microcontrollers that works with many debug probes across Linux, macOS, Windows, and FreeBSD.
Retrieves and analyzes core dumps from ESP32 and related microcontrollers, providing register dumps, call stacks, task lists, and memory inspection via CLI or Python API.
Install it if you develop on ESP32 or use Espressif chips and need to debug crashes; skip it if you don't work with those platforms.
Analyzes statically allocated RAM and binary size of ESP-IDF firmware images for Espressif devices, helping developers optimize firmware to fit within flash memory constraints.
Install it if you need to analyze or optimize Espressif device firmware; skip it if you don't work with ESP-IDF.
Queries and manages device information from CMSIS PACKs, providing processor type, flash algorithm, and memory layout data through Python API or command-line interface.
littlefs-python provides a Python interface to littlefs, a filesystem designed for small embedded systems, allowing creation, inspection, and modification of littlefs filesystem images.
However, verify the license status before use in proprietary contexts, and ensure the bundled littlefs version matches your target system's requirements.
Pwntools is a CTF framework and exploit development library providing tools for writing exploits, assembling/disassembling code, interacting with remote services, and analyzing binaries.
Install it if you work on exploit development, security research, or CTF challenges; skip it if you don't need those capabilities.
fatfs-ng wraps ChaN's FatFS library to create, mount, and manipulate FAT filesystems in memory or on disk, with extended directory traversal, file operations, and ESP32 wear-leveling support.
Calculates LPC firmware checksums for embedded systems, usable as a standalone command-line tool or as a Python module integrated into build pipelines.
However, be aware that the package is abandoned—no updates since 2022—so verify compatibility with your current LPC toolchain and Python version before committing to it.
A Python library for controlling BlueZ Bluetooth adapters on Linux via the Management API, supporting both synchronous and event-driven command patterns.
Provides shared logging, error handling, configuration management, and serial/IDE integration utilities for Espressif Systems' Python projects.
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.
Provides a Python wrapper around NXP's libusbsio binary library to control SPI, I2C, and GPIO interfaces over USB on LPCLink2 and MCUlink Pro debug probes.
Install only if you have the required NXP hardware; it is not useful as a standalone library.
Generates binary NVS (Non-Volatile Storage) partition files from CSV key-value data for ESP32 devices, enabling manufacturers to flash customized device parameters during production.
Provides serial communication monitoring and interaction for Espressif microcontrollers, handling input/output in ESP-IDF projects with support for address decoding, chip reset, and bootloader control.
Parses ESP-IDF panic handler output (registers and stack dumps) and presents the information to GDB as a server, enabling backtrace generation from raw stack dumps on architectures where on-target backtracing is not possible.
Install it if you work with ESP-IDF projects and encounter panic output you need to decode.
A pure-Python DBus library for Linux desktop and mobile environments that supports asyncio and GLib main loops, enabling applications to call DBus methods, access properties, listen to signals, and export services.
However, be aware it is dormant—no active maintenance since July 2021—so expect no updates for new Python versions or DBus protocol changes.
Collects ESP-IDF environment, system, and project information into a diagnostic report directory, with optional redaction of sensitive data and zip archive export for sharing.
Install it if you develop with ESP-IDF and want to streamline bug reporting or troubleshooting.
Python bindings for the Joulescope DC energy analyzer driver, enabling communication with JS110, JS220, and JS320 Joulescope devices to configure operation and receive measurement data.
Provides a bytearray-like class that stores sparse chunks of data in a virtual memory space with non-contiguous addressing, useful for emulating microcontroller memory or other sparse data structures.
Loads, edits, and saves hexadecimal record files (Intel HEX and Motorola S-record formats) commonly used in embedded systems to represent binary data for non-volatile memory.
Provides I2CDevice and SPIDevice helper classes that manage bus transactions, locking, chip select, and protocol state for CircuitPython microcontroller projects.
Provides type annotation definitions for CircuitPython code that extend the standard typing module with additional types not available in the base library.
uModbus is a pure Python implementation of the Modbus protocol that provides both client and server functionality for Modbus TCP and RTU communication.
A requests-like HTTP library for CircuitPython and microcontroller environments, enabling web requests on embedded systems running Adafruit Blinka or CircuitPython.
SpeeDict is a Python key-value storage library backed by RocksDB that persists arbitrary Python objects (via Pickle) or raw bytes to disk, supporting dictionary-like access with batch operations.
However, avoid it for mission-critical systems requiring active support or frequent updates.
Provides a Python interface to PEMicro debug probe libraries, enabling control and communication with PEMicro Multilink/FX and Cyclone/FX probes for ARM microcontroller debugging.
Install only if you have the required hardware and PEMicro libraries already set up on your system.
A PyOCD plugin that adds support for PEMicro debug probes (Multilink/FX, Cyclone/FX) to enable embedded debugging on NXP ARM microcontrollers.
However, proceed with caution: it is abandoned as of 2023, so compatibility with the latest PyOCD or Python versions is not guaranteed.
Prophy is a binary serialization protocol with a code generator that produces Python and C++ codecs from a schema definition language, enabling efficient cross-language message encoding and decoding.
Manages sockets and connections for CircuitPython devices using a urllib3-like interface, handling pooling and lifecycle for embedded network communication.
Reads and writes JLS (Joulescope) files, a specialized format for storing high-frequency time-series signal data with built-in summaries, annotations, and multi-source support.
Parses, manipulates, and converts between Device Tree binary (.dtb) and source (.dts) formats, with support for reading, writing, merging, and diffing device tree structures.
Joulescope is a Python driver for the Joulescope DC energy analyzer hardware, enabling automated measurement and logging of current, voltage, power, and energy in your applications.
Analyzes binary size and memory footprint of embedded firmware by extracting symbol-level details from ELF files and linker scripts, with support for multiple architectures and source file mapping.
However, verify the actual license before use, as the metadata does not specify one.
A CI build system for testing Simulink/TargetLink model configurations with signal consistency checks, code generation, and ASIL variable handling for embedded automotive systems.
Pythonic interface to FTDI USB devices via libftdi, providing serial and parallel IO with file-like read/write operations and support for multiple devices.