The release of ChipWhisperer v5.0 has brought major changes to the front end of the ChipWhisperer software as well as a switch to Python3: the GUI and the wiki tutorials have been replaced with Jupyter Notebooks, which allow users to run interactive Python blocks in their browser. Most of the API remains unchanged from v4 and, with the exception of Python2.7 specific code, most GUI-less scripts should run as is. Additional features, such as ChipWhipserer Analyzer support, are now available outside of any GUI.
To run Jupyter natively (aka outside a VM), navigate to the ChipWhisperer directory via a bash command line and run
jupyter notebook. A new window should open in your browser. If you're using a ChipWhisperer VM, ensure the VM is booted, open your browser and connect to either 192.168.33.10 (initial 5.0.0 VM release) or localhost:8888 (5.0.1+ VM releases). Once you have it started, Jupyter behaves as a mostly normal file explorer inside your browser, allowing you to click on directories to enter them or on files to open them. Once you have files open, you can use Jupyter to edit them as you would any normal text editor.
Jupyter Notebook Tutorials
Starting with ChipWhisperer v5.0, tutorials have been moved from the wiki into Jupyter Notebooks. These are located in
software/jupyter, have the extension
.ipynb, and can be run by opening the tutorials via the Jupyter Notebook interface. These tutorials contain interactive code blocks, which can run by clicking on them to highlight them, then hitting the run button in the menu at the top of your screen:
If you need to change anything inside the blocks, double click the block to begin editing them. Since Jupyter runs in your browser, you can improve your workflow by using tabs and windows to open multiple files at a time:
Everything in these code blocks are actual Python code (unless you see something like
%%bash at the top), so these tutorials also provide a reference for creating Python scripts. These tutorials often make use of helper scripts, which are located in the Helper_Scripts folder. The Jupyter folder also contains a
Helpful_Code_Blocks file which, as the name suggests, contains blocks of Python code that are often a good start for creating your own notebooks or scripts. The final file of note is
!!Suggested_Completion_Order!!, which contains a list of the tutorials in the suggested order that you complete them in.
New features that are available in CW5 include:
- Analyzer and project support via the Python API
- Python 3 support (no longer supports Python 2)
- Tutorials via Jupyter Notebooks, which showcase how to use the Python API
- New tutorials, including one submitted by a user via Github
- Support for multiple ChipWhisperers via Python API
- Improved capture speed