-
Notifications
You must be signed in to change notification settings - Fork 0
Installation
ChipWhisperer Studio comes as a self-contained download for Windows, macOS and Linux that needs nothing else installed. You can also install it as a Python package if you already work in Python.
| Option | Best for | Needs Python? |
|---|---|---|
| Standalone bundle | Most users, classrooms, machines without Python | No |
| Python package | People who already use Python and the chipwhisperer library, or want to use Studio's notebook with their own packages |
Yes, Python 3.10 to 3.12 |
| From source | Contributors and people who want the latest main
|
Yes, Python 3.10 to 3.12 |
Every release offers two builds for each platform. They are the same Studio; they differ only in how the interface opens:
| Build | Opens in | Choose it when |
|---|---|---|
ChipWhisperer Studio (ChipWhispererStudio-<platform>.zip) |
Its own application window, like any desktop program | You want a normal desktop app that does not depend on your browser |
ChipWhisperer Studio Web (ChipWhispererStudio-Web-<platform>.zip) |
Your web browser, with a console window showing its address | You prefer the browser, use Studio remotely, or your Linux system has no WebKitGTK |
The window uses the web engine that comes with the operating system: Microsoft Edge WebView2 on Windows 10 and 11, WebKit on macOS, and WebKitGTK on Linux (see Linux for the one package it may need). Either build can still do the other: start the window build with --browser to use the browser, or the Web build with --app-window for the window.
| Platform | Files | Notes |
|---|---|---|
| Windows 10 and 11 (64-bit Intel/AMD) |
ChipWhispererStudio-windows-x86_64.zip, ChipWhispererStudio-Web-windows-x86_64.zip
|
Needs the WinUSB driver for ChipWhisperer devices |
| macOS on Apple Silicon (M1 and newer) |
ChipWhispererStudio-macos-arm64.zip, ChipWhispererStudio-Web-macos-arm64.zip
|
Intel Macs are not supported by the bundle yet; use the Python package |
| Linux (64-bit Intel/AMD) |
ChipWhispererStudio-linux-x86_64.zip, ChipWhispererStudio-Web-linux-x86_64.zip
|
Built on Ubuntu 22.04, so it needs glibc 2.35 or newer (Ubuntu 22.04, Debian 12, Fedora 36 and later) |
Each zip contains one folder (ChipWhispererStudio or ChipWhispererStudio-Web) with:
-
Windows:
ChipWhispererStudio.exe, the application. The window build also hascw-studio.exe, the same program as a console application for the command line, scripts and the MCP server.ChipWhispererStudio-simulator.batstarts Studio with the simulator preselected. -
macOS:
ChipWhisperer Studio.app(orChipWhisperer Studio Web.app), a normal macOS application with the Studio icon. -
Linux:
ChipWhispererStudio, the application,chipwhisperer-studio.sh, a small launcher script, andChipWhispererStudio.png, the icon for desktop shortcuts. -
50-newae.rules(Windows and Linux folders): NewAE's Linux udev rule for ChipWhisperer devices. -
README.md,LICENSE.txtandNOTICE.txt.
Everything Studio needs (its own Python runtime, the chipwhisperer library, libusb, the Unicorn CPU emulator for the code map and all other dependencies) is inside the application. Each zip is about 72 MB.
With the window build, closing the window quits Studio. With the Web build, your browser opens Studio's address (normally http://127.0.0.1:8765/); on Windows and Linux a console window shows it, and closing the console stops the application (on macOS, quit the app).
- Download the zip of the build you want and extract it (right-click, Extract All...) to a folder such as
C:\Tools. Do not run it from inside the zip. - Double-click
ChipWhispererStudio.exein the extracted folder. - If Windows SmartScreen shows "Windows protected your PC", click More info and then Run anyway. The bundle is not code-signed yet.
- If Windows Firewall asks whether Studio may communicate on networks, you can decline: Studio only listens on your own computer (
127.0.0.1) unless you start it with--host 0.0.0.0. - Studio opens in its window (or your browser for the Web build). Continue with the Quick Start.
The window uses Microsoft Edge WebView2, which is part of Windows 10 and 11. On the rare system without it, Studio opens in the browser instead; installing the WebView2 runtime from Microsoft brings the window back.
USB driver. ChipWhisperer devices need the WinUSB driver on Windows. If your ChipWhisperer is not detected, install the NewAE driver package as described in NewAE's Windows driver instructions, or assign WinUSB with Zadig. The Connect tab on Windows links to the same page.
- Download the zip of the build you want. Safari usually extracts it automatically; otherwise double-click the zip.
- Move
ChipWhisperer Studio.app(orChipWhisperer Studio Web.app) to your Applications folder (or anywhere you like). - The app is not notarized by Apple yet, so the first time, right-click (or Control-click) it and choose Open, then confirm Open in the dialog. After that it opens normally with a double-click.
- If macOS says the app "is damaged" or refuses to open it, remove the download quarantine flag in Terminal and try again:
xattr -dr com.apple.quarantine "/Applications/ChipWhisperer Studio.app" - Studio opens in its window (or your browser for the Web build).
No USB driver is needed on macOS. If a device is not detected, try another cable or USB port. To use command-line options, run the program inside the app, for example "/Applications/ChipWhisperer Studio.app/Contents/MacOS/ChipWhispererStudio" --simulate.
- Download the zip of the build you want and extract it, for example:
unzip ChipWhispererStudio-linux-x86_64.zip -d ~/Applications - Start it with
~/Applications/ChipWhispererStudio/chipwhisperer-studio.sh - Studio opens in its window (or your browser for the Web build).
- Optional: run
~/Applications/ChipWhispererStudio/ChipWhispererStudio --install-desktoponce to add ChipWhisperer Studio with its icon to your applications menu (--remove-desktoptakes it out again).
The window on Linux uses WebKitGTK from your distribution, so Studio does not have to ship a browser engine. Most desktops have the library already; the Python bindings for it may need one package:
sudo apt install python3-gi gir1.2-webkit2-4.1 # Debian, Ubuntu, Kali, Mint
sudo dnf install python3-gobject webkit2gtk4.1 # Fedora
sudo pacman -S python-gobject webkit2gtk-4.1 # ArchIf they are missing, Studio prints this hint and opens in your browser instead, so it always starts.
udev rule (once per computer). Linux only lets root open USB devices unless a udev rule grants access. Studio includes NewAE's rule (50-newae.rules), and the Connect tab shows the exact command for your installation with a Copy command button. It looks like this:
sudo cp "/path/to/ChipWhispererStudio/_internal/cwstudio/resources/50-newae.rules" /etc/udev/rules.d/50-newae.rules && sudo groupadd -f chipwhisperer && sudo usermod -aG chipwhisperer $USER && sudo udevadm control --reload-rules && sudo udevadm triggerThe command copies the rule, creates a chipwhisperer group, adds you to it and reloads udev. Afterwards log out and back in (so your new group membership takes effect) and unplug and re-plug the ChipWhisperer.
Tip: Use the command shown in the Connect tab rather than typing the one above: it already contains the correct path to the rule file inside your installation.
Use this if you already work with Python. Studio needs Python 3.10, 3.11 or 3.12. The reason for the upper limit is that chipwhisperer 6.0.0 on PyPI requires numpy 1.26 or older, and numpy 1.26 has no ready-made packages for Python 3.13 and newer.
Install it from PyPI, preferably in a virtual environment:
python -m venv studio-env
source studio-env/bin/activate # Windows: studio-env\Scripts\activate
pip install chipwhisperer-studio
cw-studioThis installs the chipwhisperer library from PyPI together with Studio's other dependencies (Starlette, uvicorn, websockets, numpy, matplotlib, pyelftools and Unicorn for the code map, pywebview on Windows and macOS, and a few small ones) and adds the cw-studio and cw-studio-web commands. Run cw-studio --simulate to try it without hardware.
The wheel is also attached to every GitHub release, and you can install the latest development version straight from the repository: pip install git+https://github.com/keyuraghao/chipwhisperer-studio@dev
The USB driver (Windows) and udev rule (Linux) steps above apply to the Python package too.
cw-studio opens Studio in its own window; cw-studio-web (or cw-studio --browser) opens it in your web browser. On Windows and macOS the window comes with the package (it installs pywebview, which uses Edge WebView2 or WebKit). On Linux it uses your distribution's WebKitGTK through the system Python, so install the packages listed under Linux above if Studio says they are missing.
git clone https://github.com/keyuraghao/chipwhisperer-studio
cd chipwhisperer-studio
python -m venv .venv && source .venv/bin/activate
pip install -e ".[test]"
cw-studio --simulateSee Development and Releases for running the tests and building the standalone bundle yourself.
Everything Studio creates goes into one data folder, ChipWhispererStudio in your home folder (for example C:\Users\you\ChipWhispererStudio or /home/you/ChipWhispererStudio). You can choose another folder with --data-dir. The Connect tab's Status card shows the folder in use.
| Folder | Contents |
|---|---|
toolchains/ |
Compilers downloaded for firmware builds, one folder per toolchain and version, plus your custom toolchain list (custom.json) and any refreshed toolchain list (registry.json). |
firmware/chipwhisperer/ |
ChipWhisperer firmware sources (firmware/mcu) downloaded from NewAE's GitHub. |
firmware/builds/ |
Every .hex (and .elf) you built, named after project, platform and compiler. |
firmware/uploads/ |
Firmware files you uploaded in the Target tab. |
notebooks/ |
Your notebooks (.ipynb), imported notebooks (imported/) and NewAE's tutorials (chipwhisperer-jupyter/). |
notes/ |
Your notes, one Markdown file each. |
imports/ |
Trace files you uploaded for import. |
exports/ and the folder itself |
Trace and glitch exports. A relative file name in an export dialog is saved inside the data folder. |
logic/ |
Logic analyser files: captures/ (copies kept on disk), exports/, imports/ and sigrok/. See Logic Analyser. |
codemap/uploads/ |
ELF files uploaded in the Code tab. |
studio.log |
Studio's messages when it runs without a console (the window build on Windows). It is always in ~/ChipWhispererStudio, even with --data-dir. |
Captured traces live in memory while Studio runs. Export them (see Capturing Traces) if you want to keep them.
The download is about 72 MB and the application needs about 150 to 300 MB once extracted. Compilers are only downloaded when you first build firmware for that architecture, and they are large:
| Toolchain | Download | On disk (approximately) |
|---|---|---|
| GNU Arm GCC | about 300 to 340 MB | about 1.1 GB |
| GNU RISC-V GCC | about 400 to 470 MB | about 1.6 GB |
| GNU AVR GCC | about 35 to 55 MB | about 220 MB |
| LLVM clang (Zig) | about 50 to 100 MB | about 400 MB |
| GNU make + sh (Windows only) | about 3 MB | about 10 MB |
| OpenOCD (only for JTAG and SWD) | about 3 MB | a few MB |
You can remove any toolchain again from the Firmware tab. See Toolchains.
-
Standalone bundle: delete the old
ChipWhispererStudioapplication folder and extract the new zip in its place (extracting over the old folder can leave stale files behind). Your data folder is separate, so notebooks, notes, compilers, builds and firmware sources are kept. -
Python package:
pip install --upgrade chipwhisperer-studio, orgit pullin a source checkout.
Firmware sources and the list of available compilers can be updated from inside Studio without a new release. See Firmware Sources and Toolchains.
- Delete the
ChipWhispererStudioapplication folder (standalone bundle), or runpip uninstall chipwhisperer-studio(Python package). - If you also want to remove your notebooks, notes, builds and downloaded compilers, delete the data folder (
~/ChipWhispererStudioby default). Export anything you want to keep first. - On Linux you can remove the udev rule with
sudo rm /etc/udev/rules.d/50-newae.rules, unless other ChipWhisperer software still needs it.
- sigrok-cli lets the Logic Analyser capture from external logic analysers (Saleae clones, DSLogic and others). Studio's own decoders and file import work without it.
- OpenOCD for JTAG and SWD installs from inside Studio with one click.
- Quick Start: your first capture and key recovery.
- Troubleshooting if something did not work.
Getting started
Using Studio
- Scope settings
- Target and programming
- Capturing traces
- Waveform viewer
- Protocols and interfaces
- Logic analyser
- Code on the waveform
Building and coding
Automation
Help
Developers
Links