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
*`arm-none-eabi-gcc` toolchain (for `make micropython-firmware` and `make daplink-firmware`)
123
+
*`ccache` and `ninja-build` (for `make daplink-firmware`)
123
124
*`pyocd` (for `make micropython-deploy`, installed via `pip install -e ".[flash]"`)
124
125
* OpenOCD (optional, for `make micropython-deploy-openocd`)
125
126
*`mpremote` (installed via `pip install -e ".[test]"`)
@@ -129,7 +130,7 @@ Then run `make setup` to install all dependencies and git hooks. This creates a
129
130
130
131
## Dev Container
131
132
132
-
A dev container is available for VS Code (local Docker only, not GitHub Codespaces). It includes all prerequisites out of the box: Python 3.10, Node.js 22, ruff, pytest, mpremote, pyOCD, arm-none-eabi-gcc, OpenOCD, and the GitHub CLI.
133
+
A dev container is available for VS Code (local Docker only, not GitHub Codespaces). It includes all prerequisites out of the box: Python 3.10, Node.js 22, ruff, pytest, mpremote, pyOCD, arm-none-eabi-gcc, OpenOCD, ccache, ninja-build, and the GitHub CLI.
133
134
134
135
1. Open the repository in VS Code
135
136
2. When prompted, click **Reopen in Container** (or use the command palette: *Dev Containers: Reopen in Container*)
-**MicroPython firmware** — runs on the STM32WB55 main MCU and exposes the drivers from this repository
194
-
-**DAPLink firmware** — runs on the STM32F103 interface chip and provides the I2C bridge, mass-storage, and CMSIS-DAP debug interface (build targets planned in #377)
195
+
-**DAPLink firmware** — runs on the STM32F103 interface chip and provides the I2C bridge, mass-storage, and CMSIS-DAP debug interface
195
196
196
-
This section covers the **MicroPython firmware** only. The drivers in this repository are "frozen" into it. The Makefile automates cloning, building, and flashing:
197
+
The drivers in this repository are "frozen" into the **MicroPython firmware**. The Makefile automates cloning, building, and flashing both firmwares.
198
+
199
+
### MicroPython firmware
197
200
198
201
```bash
199
202
make micropython-firmware # Clone micropython-steami (if needed), link local drivers, build
@@ -215,6 +218,27 @@ Use `make micropython-firmware` for normal rebuilds from the existing local clon
215
218
216
219
All these tools are included in the dev container. For local development, see the [Prerequisites](#prerequisites) section.
217
220
221
+
### DAPLink firmware
222
+
223
+
DAPLink is the firmware running on the STM32F103 interface chip. It provides the USB mass-storage, CMSIS-DAP debug interface, and the I2C bridge used by `daplink_bridge` / `daplink_flash` / `steami_config`.
224
+
225
+
DAPLink consists of **two parts**:
226
+
227
+
-**Bootloader** (first stage, flashed at `0x08000000`) — installed once at the factory, rarely updated. It provides the MAINTENANCE mode used to update the interface firmware. Updating the bootloader requires an external SWD probe and is not covered by these targets.
228
+
-**Interface firmware** (second stage, flashed at `0x08002000`) — the part that contains the I2C bridge, mass-storage, debug interface, and is updated routinely. This is what the `daplink-*` Makefile targets manage.
229
+
230
+
```bash
231
+
make daplink-firmware # Clone steamicc/DAPLink and build stm32f103xb_steami32_if
232
+
make daplink-update # Refresh the DAPLink clone
233
+
make daplink-deploy # Flash DAPLink interface firmware (default: usb mass-storage)
234
+
make daplink-deploy-usb # Flash DAPLink interface firmware via MAINTENANCE volume
235
+
make daplink-clean # Clean DAPLink build artifacts
236
+
```
237
+
238
+
The DAPLink source is cloned from [steamicc/DAPLink](https://github.com/steamicc/DAPLink) into `.build/DAPLink/` (gitignored). A Python virtualenv is created automatically inside the clone for the progen build tool.
239
+
240
+
**Maintenance mode:** to flash the DAPLink interface firmware, the board must be in maintenance mode. Power on the board with the RESET button held until a `MAINTENANCE` USB volume appears (instead of the usual `STeaMi` volume). The `make daplink-deploy-usb` target then copies the firmware to that volume and the board reboots automatically with the new interface firmware.
0 commit comments