pycs
FreePython Based ARM CoreSight Debug and Trace Tools
FreeFree tier
About pycs
PyCS is an open-source Python-based JTAG/SWD debugger for ARM Cortex-M microcontrollers. It reads SoC SVD (System View Description) files to provide full peripheral and register decodes for a wide variety of Cortex-M based chips, including STM32, nRF, EFM32, and Atmel SAM series. The tool features an interactive command-line interface with command completion, memory display and disassembly, CPU halt/go, flash programming, a Segger RTT client, and counter frequency measurement. It supports multiple debug interfaces such as ST-Link, J-Link, and CMSIS-DAP. PyCS is licensed under the MIT license and requires Python3 with dependencies like python3-lxml and python3-hid.
Key Features
JTAG/SWD debug interface support for ARM Cortex-M microcontrollers
Reads SoC SVD (System View Description) files for full peripheral and register decodes
Interactive command-line interface (CLI) with tab completion and help
Memory display and disassembly (ARM Thumb/Thumb-2)
CPU halt/go and single-step control
Flash programming capability
Segger RTT (Real-Time Transfer) client support
Counter frequency measurement
Support for multiple debug probes (ST-Link, J-Link, CMSIS-DAP)
Supports a wide variety of target devices (STM32, nRF, EFM32, Atmel SAM, etc.)
Pros & Cons
Pros
- Free and open source (MIT license) with no proprietary software requirements
- Reads SVD files for detailed register-level debugging without manual lookup
- Supports a wide range of common Cortex-M development boards and chips
- Interactive CLI with command completion and help makes it user-friendly
- Works with popular and affordable debug probes (ST-Link, J-Link, CMSIS-DAP)
- Active development on GitHub with community contributions
Cons
- Requires Python3 and additional system packages (python3-lxml, python3-hid)
- Linux-focused; USB permissions may require udev rules or sudo
- No graphical user interface (command-line only)
- Limited to ARM Cortex-M devices; does not support other ARM architectures like Cortex-A
- No pre-built releases or packages; must clone and build from source
- Documentation is limited to the README file and source code comments
Best For
Embedded systems development and debuggingFirmware reverse engineering of ARM Cortex-M devicesEducational tool for learning ARM CoreSight debug and trace technologiesHobbyist electronics projects involving STM32, nRF, or other Cortex-M MCUsAutomated testing and verification of microcontroller firmware
FAQ
What hardware debug interface is needed?
PyCS supports SWD debug interfaces such as ST-Link, J-Link, and CMSIS-DAP compatible probes. It communicates via USB using the HID or custom protocols.
Which target microcontrollers are supported?
PyCS supports a variety of Cortex-M based chips, including STM32, nRF, EFM32, Atmel SAM, and more. Run './pycs -l' to list all currently supported targets.
Is pycs free to use?
Yes, pycs is open source under the MIT license, so it is free to use, modify, and distribute.