Skip to content

Commit

Permalink
init all jupyter notebooks and firmware
Browse files Browse the repository at this point in the history
  • Loading branch information
carosa committed Sep 12, 2025
0 parents commit 94a942e
Show file tree
Hide file tree
Showing 8,433 changed files with 7,437,268 additions and 0 deletions.
The diff you're trying to view is too large. We only load the first 3000 changed files.
38 changes: 38 additions & 0 deletions .github/workflows/build_firmware.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# This is a basic workflow to help you get started with Actions

name: Build Firmware

# Controls when the workflow will run
on:
# Triggers the workflow on push or pull request events but only for the develop branch
push:
paths:
- 'firmware/mcu/**'
- '.github/workflows/build_firmware.yml'

pull_request:
paths:
- 'firmware/mcu/**'
- '.github/workflows/build_firmware.yml'


# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
fwbuild:
# The type of runner that the job will run on
name: Build all firmware to make sure everything works
runs-on: ubuntu-latest

# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v2
- name: Install compilers
run: >-
sudo apt install -y make build-essential gcc-avr avr-libc gcc-arm-none-eabi
- name: Clone submodule
run: >-
cd firmware/mcu/hal && git submodule update --init chipwhisperer-fw-extra
- name: Build firmware
run: >-
cd tests && bash test_fw_build.sh
46 changes: 46 additions & 0 deletions .github/workflows/lint_python.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# This is a basic workflow to help you get started with Actions

name: Run mypy on ChipWhisperer

# Controls when the workflow will run
on:
# Triggers the workflow on push or pull request events but only for the develop branch
push:
paths:
- 'software/**'
- '.github/workflows/lint_python.yml'
pull_request:
paths:
- 'software/**'
- '.github/workflows/lint_python.yml'

# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:

# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
# This workflow contains a single job called "build"
lint:
# The type of runner that the job will run on
name: Lint code base using mypy (and pylint in future)
runs-on: ubuntu-latest

# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v3
- name: Setup Python 3.9
uses: actions/setup-python@v1
with:
python-version: 3.9
- name: Install ChipWhisperer
run: >-
python -m pip install .
- name: Install linters
run: |
python -m pip install mypy
python -m pip install types-tqdm
- name: Run Mypy
run: >-
python -m mypy -p chipwhisperer
19 changes: 19 additions & 0 deletions .github/workflows/periodic_test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
name: Periodic Full Test

on:
schedule:
- cron: '0 0 1,15 * *'

jobs:
trigger_action:
name: Push dispatch
runs-on: ubuntu-latest
steps:

- uses: benc-uk/workflow-dispatch@v1
with:
workflow: private_workflow
repo: newaetech/ChipWhisperer-Private-Tests
token: ${{ secrets.PRIVATE_TEST_PUSH }}
ref: refs/heads/main
inputs: '{ "long_test": "true" }'
23 changes: 23 additions & 0 deletions .github/workflows/publish-to-test-pypi.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
name: Pub Python dist to TestPyPi

on: push

jobs:
build-n-publish:
name: Build/pub python to testpypi
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Python 3.11
uses: actions/setup-python@v5
with:
python-version: 3.11
- name: Build ChipWhisperer
run: |
python -m pip install build
python -m build
- name: Publish to pypi
if: startsWith(github.ref, 'refs/tags')
uses: pypa/gh-action-pypi-publish@release/v1
with:
password: ${{ secrets.py_pi_deploy }}
38 changes: 38 additions & 0 deletions .github/workflows/test_install.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# This is a basic workflow to help you get started with Actions

name: Test install and docs build

# Controls when the workflow will run
on:
# Triggers the workflow on push or pull request events but only for the develop branch
push

# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
fwbuild:
# The type of runner that the job will run on
name: Test chipwhisperer install
runs-on: ubuntu-latest

# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v4
- name: Setup Python 3.11
uses: actions/setup-python@v5
with:
python-version: 3.11
- name: Install chipwhisperer
run: |
pip install -e .
python -c "import chipwhisperer as cw"
cd docs
pip install -r requirements.txt
cd source
jupyter book config sphinx .
cp ../../contributing.md ./
git submodule update --init --force -- chipwhisperer-target-cw308t cw_tips_tricks
python conf.py
mkdir -p _build/doctrees
mkdir -p _build/html
python -m sphinx -T -b html -d _build/doctrees -D language=en . _build/html
32 changes: 32 additions & 0 deletions .github/workflows/update_minimal.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
name: Update chipwhisperer minimal

on:
push:
paths:
- 'software/**'
- 'gen_minimal.sh'
- '.github/workflows/update_minimal.yml'

jobs:
update_minimal:
name: Update minimal
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
token: ${{ secrets.PRIVATE_TEST_PUSH }}
submodules: true
- name: do update
run: |
cd chipwhisperer-minimal
git config user.name "ChipWhisperer-Bot"
git config user.email "none@newae.com"
git checkout main
cd ..
chmod +x gen_minimal.sh
./gen_minimal.sh
cd chipwhisperer-minimal
git add .
git diff-index --quiet HEAD || git commit -m "Update minimal"
git push
46 changes: 46 additions & 0 deletions .github/workflows/update_private.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
name: Update private repo

on:
push:
branches:
- 'develop'
paths:
- 'jupyter'
- 'software/**'
- 'tests/test_husky.py'
- '.github/workflows/update_private.yml'
- 'firmware/mcu/**'

jobs:
trigger_action:
name: Push dispatch
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0 # OR "2" -> To retrieve the preceding commit.
- name: Check_husky_bs_changed
id: changed-husky
uses: tj-actions/changed-files@v41.0.0
with:
files: |
tests/test_husky.py
software/chipwhisperer/hardware/firmware/cwhusky.py
- uses: benc-uk/workflow-dispatch@v1
if: steps.changed-husky.outputs.any_changed == 'true'
with:
workflow: private_workflow
repo: newaetech/ChipWhisperer-Private-Tests
token: ${{ secrets.PRIVATE_TEST_PUSH }}
ref: refs/heads/main
inputs: '{ "full_husky_test": "true" }'

- uses: benc-uk/workflow-dispatch@v1
if: steps.changed-husky.outputs.any_changed != 'true'
with:
workflow: private_workflow
repo: newaetech/ChipWhisperer-Private-Tests
token: ${{ secrets.PRIVATE_TEST_PUSH }}
ref: refs/heads/main
inputs: '{ "full_husky_test": "false" }'
83 changes: 83 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
*.pyc
*.swp
*.autopilot/*
*.s#*
*.b#?
*.ipynb_checkpoints*
software/capture/capture-*
*/.autopilot*
*.autopilot*
hardware/capture/chipwhisperer-rev2/ezusb-firmware/ztex-sdk/bmp/tests*
software/capture/default-data-dir*
software/capture/scopes/cw-partial-files/ztex_rev2_1.11c_ise*
software/chipwhisperer/capture/default-data-dir/*
software/chipwhisperer/capture/capture-2013.*
software/chipwhisperer/capture/scopes/cw-partial-files/ztex_rev2_1.11c_ise/*
software/*.egg-info/*
software/build/*
doc/sphinx/_build/html/_static
doc/sphinx/_build
*.epf
*_data
default-data-dir/
*.o
*.d
*.lst
*.cwp
!tests/*
!tests/*.npy
!*/
hardware/victims/firmware/simpleserial-*/simpleserial-*-CW*
hardware/victims/firmware/basic-passwdcheck/basic-passwdcheck-CW*
*.csv
*py.bak
docs/_build
docs/make.bat
*.vcd
*.fst
**/.vscode/*
firmware/**/*.bin
firmware/**/*.eep
firmware/**/*.elf
firmware/**/*.hex
firmware/**/*.lss
firmware/**/*.map
firmware/**/*.sym
*.o.s
**/1

# Explicit listing of the build artifacts so that they are not included in
# commits
*.elf
*.eep
*.hex
*.lss
*.map
*.sym
firmware/mcu/simpleserial-base-lab*

# autogenerated contributing file
docs/contributing.rst
# autogenerated documentation stub files
docs/tutorials/*.rst
# autocopied images files for documentation
docs/tutorials/img/*


__pycache__/

# for building the project as a sdist and wheel for pypi
/build/
/dist/
hardware/victims/firmware/hal/rx65n/include/r_tsip_rx_if.h
hardware/victims/firmware/hal/rx65n/*.lib
docs/*.msi
*.orig

software/chipwhisperer/logs/*
/tests/*.out

!**/ChipWhisperer-Nano.bin
!**/ChipWhisperer-Lite.bin
!**/ChipWhisperer-CW305.bin
!**/ChipWhisperer-Husky.bin
27 changes: 27 additions & 0 deletions .readthedocs.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
version: 2

# Set the version of Python and other tools you might need
build:
os: ubuntu-20.04
tools:
python: "3.13"
jobs:
pre_build:
# Generate on-the-fly Sphinx configuration from Jupyter Book's _config.yml
- "jupyter-book config sphinx docs/source"
# markdown source can't be included from outside the doc source tree, so copy it over:
- "cp contributing.md docs/source/."

submodules:
include: [docs/source/chipwhisperer-target-cw308t, docs/source/cw_tips_tricks]

python:
install:
- requirements: docs/requirements.txt
- method: pip
path: .

sphinx:
configuration: docs/source/conf.py
fail_on_warning: false

20 changes: 20 additions & 0 deletions 50-newae.rules
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
## NewAE .rules file to enable ChipWhisperer to easily take control
#
# To use this file
# 1) Unplug all NewAE hardware
# 2) Copy to /etc/udev/rules.d/
# 3) Reset the udev system:
# $ sudo udevadm control --reload-rules
# 4) sudo usermod -aG chipwhisperer $USER
# 5) Log in/out again for changes to take effect
# 6) Connect hardware
#
# uaccess
# Match all CW devices and serial ports
# SUBSYSTEMS=="usb", ATTRS{idVendor}=="2b3e", ATTRS{idProduct}=="*", TAG+="uaccess"
# SUBSYSTEM=="tty", ATTRS{idVendor}=="2b3e", ATTRS{idProduct}=="*", TAG+="uaccess", SYMLINK+="cw_serial%n"
# SUBSYSTEM=="tty", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="6124" TAG+="uaccess", SYMLINK+="cw_bootloader%n"

SUBSYSTEMS=="usb", ATTRS{idVendor}=="2b3e", ATTRS{idProduct}=="*", MODE="0664", GROUP="chipwhisperer"
SUBSYSTEM=="tty", ATTRS{idVendor}=="2b3e", ATTRS{idProduct}=="*", MODE="0664", GROUP="chipwhisperer", SYMLINK+="cw_serial%n"
SUBSYSTEM=="tty", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="6124", MODE="0664", GROUP="chipwhisperer", SYMLINK+="cw_bootloader%n"
Loading

0 comments on commit 94a942e

Please sign in to comment.