Hi everyone,
I’d like to share a project I’ve been working on: ChipWhisperer Studio, a free, open-source (Apache 2.0) desktop application for ChipWhisperer hardware. It runs in its own window on Linux, Windows and macOS. It’s built on top of the official chipwhisperer Python library, so it works alongside your existing notebooks and scripts rather than replacing them.
I built it because I wanted the speed of clicking through a capture and seeing it live, without giving up the flexibility of Python when I need it. Version 0.5.0 just came out, and I’d love for people here to try it.
ChipWhisperer Studio
What it can do
- Scope setup for every model: Husky, Husky Plus, Pro, Lite and Nano. The settings only offer what your connected scope supports, and anything unavailable says why.
- Capture and analysis: live waveforms (overlay, mean, min/max, cursors, zoom), capture campaigns with fixed or random key and text, CPA key recovery and glitch parameter sweeps.
- Interfaces tab:
- target communication: a UART terminal (text or hex), SimpleSerial 1.x and 2.x (including v2 over the scope’s USB-CDC port), and an SPI master with flash helpers;
- pins and buses: GPIO, USERIO, the bit-banger and 1-Wire;
- all trigger types: Pro decode trigger, Husky UART pattern, edge counter, ADC level, sequencer and SAD;
- JTAG/SWD through OpenOCD, which Studio installs on demand.
- Logic analyser for any ChipWhisperer:
- sources: the Husky’s built-in analyser, analog-to-logic through the ADC on any scope, sigrok devices, and VCD/CSV/.sr files from PulseView or Saleae;
- decoders: UART, SPI, I2C, 1-Wire, JTAG, SWD, CAN and SimpleSerial, with search, measurements and a results table.
- Code on the waveform: give Studio your firmware’s ELF and it emulates the code (Cortex-M, RISC-V, AVR/XMEGA) and lays functions and source lines over the power trace. Drag across part of the waveform and it shows which code ran there, with the source and disassembly. Click a line and every sample where it executed lights up.
- One-click firmware builds: builds the NewAE firmware for any platform with GCC or clang. The compilers download automatically, with no toolchain setup.
- Notebooks inside the app: open several as tabs or side by side, each with its own kernel and all sharing the scope. The NewAE tutorials download in one click.
- Simulator: it can pose as any ChipWhisperer model and runs your real firmware, so you can try the full workflow, CPA included, with no hardware connected. That’s handy for teaching or for trying Studio before plugging in.
- MCP server: 106 tools, so AI assistants like Claude can drive captures, analysis and builds for you.
Try it
- Downloads (no Python needed): Release ChipWhisperer Studio v0.5.0 · keyuraghao/chipwhisperer-studio · GitHub
- Or with Python: pip install chipwhisperer-studio, then cw-studio
- Video tour (under 4 minutes): https://github.com/keyuraghao/chipwhisperer-studio/releases/download/v0.5.0/chipwhisperer-studio-demo.mp4
- Repository: GitHub - keyuraghao/chipwhisperer-studio: Desktop app for ChipWhisperer side-channel and fault-injection hardware: live waveforms, capture, CPA, glitch sweeps, UART/SPI/JTAG/SWD interfaces, a logic analyser with protocol decoders, firmware code mapped onto the power trace, notebooks, one-click firmware builds and an MCP server for AI agents. Linux, Windows, macOS. · GitHub
- Documentation: Home · keyuraghao/chipwhisperer-studio Wiki · GitHub
Run cw-studio --simulate to explore without any hardware.
Feedback wanted
Studio is tested on all three operating systems on every release. Some hardware paths, though, would really benefit from people with different boards and setups:
- JTAG/SWD through MPSSE and OpenOCD
- Husky logic analyser timing
- SWO PC sampling on Arm targets
- CW308 targets I haven’t tried yet
If something doesn’t work, looks wrong, or you have an idea for a feature, please reply here or open an issue on GitHub. Feature requests from people using ChipWhisperer for real research or coursework are exactly what I’m looking for.
Thanks to NewAE for ChipWhisperer and for encouraging this as a standalone project. I hope it’s useful to some of you!
Keyur