Add detailed requirements for notebooks and analysis scripts

This commit is contained in:
jaseg 2026-01-13 18:54:30 +01:00
parent cd33cff0e8
commit 38a9f701ba
5 changed files with 8625 additions and 542 deletions

View file

@ -74,7 +74,9 @@ MacOS, make sure that jupyter and pip agree where your python lives and the pack
Afterwards, just run ``jupyter lab`` in the ``analysis/jupyter_notebooks`` directory. You can then open any of the Afterwards, just run ``jupyter lab`` in the ``analysis/jupyter_notebooks`` directory. You can then open any of the
notebooks through the left side panel and re-run the analysis within. Make sure you run all of the setup code at the top notebooks through the left side panel and re-run the analysis within. Make sure you run all of the setup code at the top
of the notebook once before trying to run the analaysis code in the cells below. of the notebook once before trying to run the analaysis code in the cells below. The analysis code only uses standard
scientific python packages that you probably already have installed. If you get an ``ImportError``, make sure the
packages listed in the file ``analysis/jupyter_notebooks/requirements.txt`` are installed.
The notebooks will display the plots and results inside Jupyter Lab and will also automatically export the plots to the The notebooks will display the plots and results inside Jupyter Lab and will also automatically export the plots to the
``paper`` directory of your clone of the git repository. ``paper`` directory of your clone of the git repository.
@ -138,6 +140,16 @@ build was successful.
Running experiments Running experiments
................... ...................
To run an experiment, you need a measurement board and a test coupon. You also need the following software installed on
your machine:
* ``openocd``
* ``arm-none-eabi-gdb`` (another ABI arm gdb should work too)
* The python packages listed in ``firmware/requirements.txt``
To build the firmware, you additionally need a ARM toolchain installed. By default, the makefile assumes gcc/gnu
binutils, but you can override that if you prefer to use LLVM.
To run an experiment, connect the board to power via USB, and to your computer through an SWD debug adapter. We used To run an experiment, connect the board to power via USB, and to your computer through an SWD debug adapter. We used
cheap STLinkV2 clones, if you have a different adapter you'll have to modify the ``.gdbinit`` script accordingly. After cheap STLinkV2 clones, if you have a different adapter you'll have to modify the ``.gdbinit`` script accordingly. After
connecting the board, open three terminal windows running the following three commands one per window, in this order. connecting the board, open three terminal windows running the following three commands one per window, in this order.

View file

@ -0,0 +1,3 @@
matplotlib
scipy
numpy

View file

@ -0,0 +1,8 @@
numpy
flask
flask_socketio
inotify
cxxfilt
pyelftools
matplotlib
libarchive

View file

@ -512,6 +512,7 @@
"single_global_label": "ignore", "single_global_label": "ignore",
"unannotated": "error", "unannotated": "error",
"unconnected_wire_endpoint": "warning", "unconnected_wire_endpoint": "warning",
"undefined_netclass": "error",
"unit_value_mismatch": "error", "unit_value_mismatch": "error",
"unresolved_variable": "error", "unresolved_variable": "error",
"wire_dangling": "error" "wire_dangling": "error"
@ -541,7 +542,6 @@
"priority": 2147483647, "priority": 2147483647,
"schematic_color": "rgba(0, 0, 0, 0.000)", "schematic_color": "rgba(0, 0, 0, 0.000)",
"track_width": 0.2, "track_width": 0.2,
"tuning_profile": "",
"via_diameter": 0.6, "via_diameter": 0.6,
"via_drill": 0.3, "via_drill": 0.3,
"wire_width": 6 "wire_width": 6
@ -560,14 +560,13 @@
"priority": 0, "priority": 0,
"schematic_color": "rgba(0, 0, 0, 0.000)", "schematic_color": "rgba(0, 0, 0, 0.000)",
"track_width": 0.1582, "track_width": 0.1582,
"tuning_profile": "",
"via_diameter": 0.3, "via_diameter": 0.3,
"via_drill": 0.15, "via_drill": 0.15,
"wire_width": 6 "wire_width": 6
} }
], ],
"meta": { "meta": {
"version": 5 "version": 4
}, },
"net_colors": null, "net_colors": null,
"netclass_assignments": { "netclass_assignments": {

File diff suppressed because one or more lines are too long