pyOCD 0.43.0 released
Feb 23, 2026
Teo Mahnic
pyOCD v0.43.0 has been released and is available from PyPI. This version includes several improvements and bug fixes. The complete list of changes is provided below
To upgrade pyOCD, just run pip:
pip install --upgrade pyocd
A major enhancement in this version is the extension of the run subcommand to support SEGGER’s Real-Time Transfer (RTT)
and SystemView. RTT channels can now be configured
individually through *.cbuild-run.yml, enabling flexible routing of target communication. Channels may operate as
standard I/O bridges, forwarding target output to the console while relaying user input back to the device, or as
Telnet endpoints, where a dedicated TCP server bridges a remote client directly to a selected RTT channel.
For trace-oriented workflows, specific channels can be configured for SystemView capture, allowing trace data to be
written to a file for post-run analysis.
SystemView integration includes automatic handling of start and stop commands, streamlining trace capture without
manual synchronization. The generated *.SVDat files can be opened directly in SEGGER’s SystemView tool,
tool for inspection and analysis.
Double buffering has been re-enabled for internal targets, with STM32H7xx devices excluded due to known issues.
Internal flash algorithms have been unified around the page_buffers mechanism, and legacy template elements have
been removed to simplify maintenance and ensure consistent behavior across targets.
Improvements also include better log messages in GDB Server, when client disconnects from the server and non-blocking reading of the STDIO console.
Thanks again to all the contributors who helped make this release possible! ❤️
v0.43.0 on GitHub
v0.43.0 on PyPI
New Features
runsubcommand:- Add support for SEGGER’s RTT and SystemView (configured via
*.cbuild-run.yml) - Support per-channel RTT configuration with the following modes:
- Standard I/O: All data received from the target on this channel will be printed to the
sdtout, and all user input from thestdinwill be sent to the target - Telnet: A Telnet server is started on the specified port, creating a bridge between the TCP connection and the corresponding RTT channel
- SystemView: Capture the trace data from the specified RTT channel and save it to a user-defined file
- Standard I/O: All data received from the target on this channel will be printed to the
- SystemView integration:
- Support for automatic start and stop command handling
- Captured trace data (
*.SVDatfile) can be directly opened using SEGGER’s SystemView analysis tool
- Add support for SEGGER’s RTT and SystemView (configured via
Improvements
- Flash programming:
- Re-enable double buffering mechanism for internal targets, except STM32H7xx (known to have issues)
- Migrate all internal target support to use
page_buffersinstead ofbegin_datain flash algorithms - Remove
begin_datafrom the algorithm template
- GDB Server:
- Improve log message when client gets disconnected from the server
- Standard I/O:
- Enable non-blocking read of the STDIO console
- CMSIS-DAP v2:
- Send ZLP instead of a dummy byte to terminate OUT transfer
- CoreSight:
- Always unlock ITM (do not check SLI and SLK bits in LSR register)
Cortex-M7 (AT610) and Cortex-M7 with FPU (AT611) Software Developer Errata Notice
513195: Lock Status Indication incorrectly reads as one
- Always unlock ITM (do not check SLI and SLK bits in LSR register)
Fixes
- Flash programming:
- Fix LPC4088 flash algorithm
page_size
- Fix LPC4088 flash algorithm
- CMSIS-Packs:
- Fix raised exception on
filenameproperty access when using extracted packs (@timll-mchp)
- Fix raised exception on
- RTT:
- Fix retrieval of available/free bytes for up/down channels
- Fix
control-blocknot found when the first character of thecontrol-block IDwas not present in the read memory (@HaoYDai)
Other
- CI: add nightly workflow that builds PyInstaller artifacts from the
developbranch
New Contributors
- @MiloradCvjetkovic made their first contribution in https://github.com/pyocd/pyOCD/pull/1882
- @timll-mchp made their first contribution in https://github.com/pyocd/pyOCD/pull/1901
- @HaoYDai made their first contribution in https://github.com/pyocd/pyOCD/pull/1730
Full Changelog: https://github.com/pyocd/pyOCD/compare/v0.42.0…v0.43.0