Skip to content
Espen Hovland edited this page Nov 3, 2026 · 8 revisions

PyCommander Wiki

PyCommander logo

PyCommander wraps Simplicity Commander into a pip-installable Python package. It gives you both a drop-in pycommander command-line tool and a native Python API for driving Simplicity Commander from your automation scripts and production-test rigs.

PyCommander can talk to Silicon Labs adapters — the Wireless Starter Kit (WSTK), Wireless Pro Kit (WPK) and the Simplicity Link Debugger — as well as generic J-Link adapters and probes. Silicon Labs adapters unlock extra conveniences (VCOM configuration, supply-voltage control, Advanced Energy Monitor, and more).

pip install "silabs-pycommander"
from pycommander import Adapter

adapter = Adapter(serial_number="440055955", target_device="EFR32MG24")
adapter.target.flashApplication(filenames=[Path("firmware.hex")])

Where to start

If you want to… Read
Install PyCommander and pick a flavor Installation
Run your first command or script Getting-Started
Understand how the packages fit together Architecture-and-Packages
Use the pycommander terminal command Command-Line-Interface
Drive Commander from Python Python-API-Overview
Look up a specific Commander command Command-Reference
Stream energy measurements AEM-and-Energy-Measurement
Capture SWO, RTT, VCOM, or VUART console output Console-Streams
Contribute or build from source Contributing-and-Development

The Python API at a glance

PyCommander provides a CLI mirror, task-oriented helpers, and live streams:

  • Commander — a low-level wrapper for supported Simplicity Commander commands. Command suites are sub-objects (commander.flash, commander.device, …), and their methods return command output as a dict.
  • Adapter — a high-level interface for Silicon Labs adapters (kits/debuggers): adapter info, firmware upgrade, supply voltage, VCOM, and energy analysis.
  • Target — a high-level interface for the target device (the MCU/SoC): flashing, erasing, reading memory, CTUNE, security, key provisioning, region configuration, and more.
  • AemStream — a Pythonic, unbounded stream of Advanced Energy Monitor measurements.
  • Console streams — SwoConsoleStream, RttConsoleStream, VcomConsoleStream, and VuartConsoleStream capture target output as it arrives.

Structured results from the high-level helpers and AEM stream use the dataclasses in Data-Types. Console streams yield string chunks.


Project facts

  • Python: 3.10 or newer
  • Platforms: macOS (arm64), Windows (x86), Linux (x86_64 / aarch64 / aarch32)
  • External requirement: SEGGER J-Link drivers (used by Simplicity Commander to talk to the adapter)
  • Source: SiliconLabsSoftware/pycommander
  • License: Silicon Labs Master Software License Agreement (MSLA)

This wiki was generated from the in-source documentation, docstrings, and READMEs of the PyCommander repository. When in doubt, the official Simplicity Commander documentation is the authoritative reference for command semantics — PyCommander deliberately mirrors its command names and options.

Clone this wiki locally