You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
*`mpremote` (installed via `pip install -e ".[test]"`)
95
+
* GitHub CLI (`gh`)
96
+
97
+
Then run `make setup` to install all dependencies and git hooks.
98
+
86
99
## Dev Container
87
100
88
-
A dev container is available for VS Code and GitHub Codespaces. It provides Python 3.10, Node.js 20, ruff, pytest, mpremote, arm-none-eabi-gcc, OpenOCD, and the GitHub CLI — everything needed to lint, test, and build firmware.
101
+
A dev container is available for VS Code and GitHub Codespaces. It includes all prerequisites out of the box: Python 3.10, Node.js 22, ruff, pytest, mpremote, arm-none-eabi-gcc, OpenOCD, and the GitHub CLI.
89
102
90
103
1. Open the repository in VS Code
91
104
2. When prompted, click **Reopen in Container** (or use the command palette: *Dev Containers: Reopen in Container*)
92
105
3. The container runs `make setup` automatically on creation
93
106
94
-
All `make` targets work inside the container. Hardware tests and firmware flashing require USB passthrough to the STeaMi board.
107
+
The container also provides:
108
+
109
+
***zsh + oh-my-zsh** as default shell with persistent shell history
110
+
***Pylance** configured with MicroPython STM32 stubs (no false `import machine` errors)
111
+
***Serial Monitor** extension for board communication
112
+
***USB passthrough** for mpremote, OpenOCD, and firmware flashing (the container runs in privileged mode with `/dev/bus/usb` mounted)
113
+
***udev rules** for the DAPLink interface (auto-started on container creation)
114
+
115
+
All `make` targets work inside the container.
95
116
96
117
## Workflow
97
118
98
-
1. Set up your environment: `make setup`
119
+
1. Set up your environment: open in the dev container, or run `make setup` locally
99
120
2. Create a branch from main (format: `feat/`, `fix/`, `docs/`, `tooling/`, `ci/`, `test/`, `style/`, `chore/`, `refactor/`)
100
121
3. Write your code and add tests in `tests/scenarios/<driver>.yaml`
101
122
4. Run `make ci` to verify everything passes (lint + tests + examples)
@@ -152,7 +173,7 @@ The firmware source is cloned into `.build/micropython-steami/` (gitignored). A
152
173
153
174
Use `make firmware` for normal rebuilds from the existing local clone. Use `make firmware-update` only when you want to refresh the `micropython-steami` checkout itself or resync the board-specific submodules before rebuilding.
154
175
155
-
**Requirements**: `arm-none-eabi-gcc` toolchain, OpenOCD for flashing, and `mpremote` for running scripts on the board.
176
+
All these tools are included in the dev container. For local development, see the [Prerequisites](#prerequisites) section.
0 commit comments