|
| 1 | +# Bringup |
| 2 | + |
| 3 | +How to get the board from being assembled to being functional, using Windows, WSL and a ST-Link |
| 4 | + |
| 5 | +## Requirements on Windows ## |
| 6 | +- Working WSL2 |
| 7 | +- ST-Link, with installed drivers (I used a ST-Link V2-1, borrowed from a Nucleo Board) |
| 8 | +- Install usbipd-win on windows: run `winget install --interactive --exact dorssel.usbipd-win` in a windows terminal |
| 9 | +- Install required packages in wsl: `sudo apt install build-essential` |
| 10 | +- Install rust: https://rustup.rs/ |
| 11 | +- Install probe-rs: https://probe.rs/ |
| 12 | +- Install OpenOCD in WSL: `sudo apt install openocd` in wsl |
| 13 | +- Download the SoftDevice for the chip from NRF (I used s113_nrf52_7.3.0_softdevice.hex) |
| 14 | + |
| 15 | + |
| 16 | +## Flashing on Windows ## |
| 17 | +- Connect the ST-Link |
| 18 | +- Follow these instructions to get the ST-Link connected to WSL: https://learn.microsoft.com/de-de/windows/wsl/connect-usb |
| 19 | + - `usbipd list` |
| 20 | + - `usbipd bind --busid <busid>` |
| 21 | + - `usbipd attach --wsl --busid <busid>` |
| 22 | +- Connect the board to the ST-Link correctly |
| 23 | +- Power the board |
| 24 | +- Run `openocd -f /usr/share/openocd/scripts/interface/stlink.cfg -f /usr/share/openocd/scripts/target/nrf52.cfg` |
| 25 | +- In a seperate terminal run `telnet localhost 4444` |
| 26 | +- Use `targets` you can check that you can see the nrf52 target |
| 27 | +- Run `init`, `halt`, `nrf5 mass_erase`, `program /full/path/.../s113_nrf52_7.3.0_softdevice.hex verify` |
| 28 | +- Run `exit`in telnet shell |
| 29 | +- Exit OpenOCD with CTRL+C |
| 30 | +- Build and flash the code with `cargo run --bin proto1_0 --release` |
| 31 | +- Done! Further flashing etc. should not require reflashing the SoftDevice |
| 32 | + |
| 33 | +### Notes: |
| 34 | +- If you just want to flash the softdevice in one command you can do it like this: `openocd -f /usr/share/openocd/scripts/interface/stlink.cfg -f /usr/share/openocd/scripts/target/nrf52.cfg -c "init; halt; nrf5 mass_erase; program /full/path/.../s113_nrf52_7.3.0_softdevice.hex preverify verify; shutdown"` |
| 35 | + |
| 36 | +### Sources: |
| 37 | +- https://www.jentsch.io/nrf51822-flashen-mit-st-link-v2-und-openocd/ |
| 38 | +- https://github.com/seemoo-lab/openhaystack/wiki/Flashing-nRF-with-OpenOCD---ST-Link |
| 39 | +- https://github.com/lupyuen/stm32bluepill-mynewt-sensor/blob/nrf52/scripts/nrf52/flash-boot.sh |
| 40 | +- https://www.youtube.com/watch?v=R5wub5ywzTU&t=197s |
| 41 | +- https://www.reddit.com/r/embedded/comments/1k9v4vr/stm32_cmake_stlinkv3pwr_on_windows_in_2025/?show=original |
| 42 | +- https://github.com/dorssel/usbipd-win/wiki/WSL-support |
| 43 | +- https://discuss.ardupilot.org/t/help-setting-up-openocd-with-st-link-in-wsl2/112271 |
| 44 | +- https://hackmd.io/@aeefs2Y8TMms-cjTDX4cfw/r1fqAa_Da |
| 45 | +- https://learn.microsoft.com/de-de/windows/wsl/connect-usb |
| 46 | + |
| 47 | + |
0 commit comments