Skip to content

Commit f3f01dd

Browse files
author
Miguel Raz GuzmΓ‘n Macedo
authored
Merge pull request #128 from ferrous-systems/add-dongle-fw-release
Add Dongle FW to release area
2 parents 73df4b8 + 8145191 commit f3f01dd

File tree

3 files changed

+13
-10
lines changed

3 files changed

+13
-10
lines changed

β€Ž.github/workflows/build.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,6 @@ jobs:
4848
id: create_release
4949
uses: ncipollo/release-action@v1
5050
with:
51-
artifacts: ./rust-exercises-${{ env.slug }}.zip
51+
artifacts: "./rust-exercises-${{ env.slug }}.zip,./rust-exercises-${{ env.slug }}/nrf52-code/boards/dongle-fw/*-fw"
5252
allowUpdates: true
5353
updateOnlyUnreleased: true

β€Žexercise-book/src/nrf52-radio-dongle.md

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -30,18 +30,21 @@ $ cyme
3030

3131
The first two values depend on your host computer and which USB port you used, so they will be different for you. The hex-string is the device's unique ID and that will also be different.
3232

33-
Now that the device is in bootloader mode browse to the [`nrf52-code/boards/dongle-fw`](../../nrf52-code/boards/dongle-fw) directory. You'll find some `ELF` files (without a file ending) there. These are pre-compiled Rust programs to be flashed onto your dongle.
33+
Now that the device is in bootloader mode, you need to get the Dongle Firmware.
3434

35-
For the next section you'll need to flash the `loopback` file onto the Dongle.
35+
❗️ This firmware will not be found in the git checkout - you need to get it from <https://github.com/ferrous-systems/rust-exercises/releases>.
3636

37-
βœ… Run the following command:
37+
* If you have downloaded and unpacked the complete rust-exercises release zip file, the firmware will be in the [`nrf52-code/boards/dongle-fw`](../../nrf52-code/boards/dongle-fw) directory.
38+
* If not, you can download the individual firmware files from the [releases](https://github.com/ferrous-systems/rust-exercises/releases) page. You need `puzzle-fw` and `loopback-fw`.
39+
40+
For the next section you'll need to flash the `loopback-fw` file onto the Dongle.
41+
42+
βœ… Change to the directory where the `loopback-fw` file is located and run:
3843

3944
```console
40-
nrfdfu nrf52-code/boards/dongle-fw/loopback-fw
45+
nrfdfu ./loopback-fw
4146
```
4247

43-
If the file is missing, you might be in a git checkout instead of a Github release tarball. Grab the Github release tarball and find the binary in there.
44-
4548
Expected output:
4649

4750
```console
@@ -52,7 +55,7 @@ Expected output:
5255

5356
After the device has been programmed it will automatically reset and start running the new application.
5457

55-
πŸ”Ž Alternatively, you can also use nordic's own [`nrfutil`](https://infocenter.nordicsemi.com/index.jsp?topic=%2Fug_nrfutil%2FUG%2Fnrfutil%2Fnrfutil_intro.html) tool to convert a .hex file and flash it for you, among many other things `nrfutil` is a very powerful tool, but also unstable at times, which is why we replaced the parts we needed from it with `nrfdfu`.
58+
πŸ”Ž Alternatively, you can also use nordic's own [`nrfutil`](https://www.nordicsemi.com/Products/Development-tools/nRF-Util) tool to convert a .hex file and flash it for you, among many other things `nrfutil` is a very powerful tool, but also unstable at times, which is why we replaced the parts we needed from it with `nrfdfu`.
5659

5760
πŸ”Ž The `loopback` application will make the Dongle enumerate itself as a CDC ACM device.
5861

@@ -98,7 +101,7 @@ received 5 bytes (CRC=Ok(0xdad9), LQI=0)
98101
received 6 bytes (CRC=Ok(0x72bb), LQI=0)
99102
```
100103

101-
That means the device is observing interference traffic, likely from 2.4 GHz WiFi or Bluetooth. In this scenario you should switch the listening channel to one where you don't observe interference. Use the `cargo xtask change-channel` tool to do this in a second window. The tool takes a single argument: the new listening channel which must be in the range 11-26.
104+
That means the device is observing interference traffic, likely from 2.4 GHz Zigbee, WiFi or Bluetooth. In this scenario you should switch the listening channel to one where you don't observe interference. Use the `cargo xtask change-channel` tool to do this in a second window. The tool takes a single argument: the new listening channel which must be in the range 11-26.
102105

103106
```console
104107
$ cargo xtask change-channel 11

β€Žexercise-book/src/nrf52-radio-puzzle.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ Your task in this section is to decrypt the [substitution cipher] encrypted *ASC
99
[substitution cipher]: https://en.wikipedia.org/wiki/Substitution_cipher
1010
[`heapless`]: https://docs.rs/heapless
1111

12-
βœ… Flash the `puzzle-fw` program on the Dongle. Follow the instructions from the "nRF52840 Dongle" section but flash the `puzzle-fw` program instead of the `loopback-fw` one -- don't forget to put the Dongle in bootloader mode (pressing the reset button) before invoking `nrfdfu`.
12+
βœ… Flash the `puzzle-fw` program on the Dongle. Follow the instructions from the [nRF52840 Dongle](./nrf52-radio-dongle.md) section but flash the `puzzle-fw` program instead of the `loopback-fw` one -- don't forget to put the Dongle in bootloader mode (pressing the reset button) before invoking `nrfdfu`.
1313

1414
Like in the previous sections the Dongle will listen for radio packets -- this time over *channel 25* -- while also logging messages over a USB/serial interface. It also prints a `.` periodically so you know it's still alive.
1515

0 commit comments

Comments
Β (0)