Skip to content

Commit cbcb62a

Browse files
committed
wifinina: update docs to simplify the nina-fw update process
Signed-off-by: deadprogram <[email protected]>
1 parent 19bb773 commit cbcb62a

File tree

3 files changed

+34
-27
lines changed

3 files changed

+34
-27
lines changed

wifinina/README.md

Lines changed: 19 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -8,24 +8,13 @@ The way this driver works is by using the SPI interface of your microcontroller
88

99
For information on how to use this driver, please take a look at the examples located in the [examples/wifinina](../examples/wifinina) directory.
1010

11-
## WiFiNINA Firmware Installation
11+
## nina-fw Firmware
1212

13-
**PLEASE NOTE: New Arduino Nano33 IoT boards already have the WiFiNINA firmware pre-installed, so you should not need to install the firmware yourself.**
13+
**PLEASE NOTE: New Arduino Nano33 IoT boards most likely already have a recent version of the nina-fw firmware pre-installed, so you should not need to install the firmware yourself.**
1414

15-
In order to use this driver, you must have the WiFiNINA firmware installed on the ESP32 chip. If it is already installed, you can just use it. You do not need to build and flash the firmware again.
15+
In order to use this driver, you must have the nina-fw firmware installed on the ESP32 chip. If it is already installed, you can just use it. You do not need to flash the firmware again.
1616

17-
### Building the WifiNINA firmware
18-
19-
We have provided a Dockerfile that can build the needed firmware.
20-
21-
```shell
22-
docker build -t wifinina ./wifinina/
23-
docker run -v "$(pwd)/build:/src/build" wifinina
24-
```
25-
26-
This will put the firmware files into the `build` directory. Now you can flash them to the ESP32 chip.
27-
28-
### Installing esptool to flash WifiNINA firmware
17+
### Installing esptool to flash nina-fw firmware
2918

3019
In order to flash the firmware, you need to use Python to install the `esptool` package.
3120

@@ -35,24 +24,27 @@ pip install esptool
3524

3625
Once you have installed `esptool` you can follow the correct procedure for flashing your board.
3726

38-
### Installing on Arduino Nano33 IoT
27+
### Updating the Arduino Nano33 IoT
3928

40-
The Arduino Nano33 IoT board has the WiFiNINA firmware flashed onto the onboard NINA-W102 chip out of the box.
29+
In the `updater` directory we have a precompiled binary of the "passthrough" code you will need to flash first, in order to update the ESP32 co-processor on your board.
4130

42-
Flashing the firmware is only necessary on the Arduino Nano33 IoT in order to upgrade or if other firmware was installed previously.
31+
This is what needs to be done. There is also a bash script that performs the same steps also located in the `updater` directory.
4332

44-
If you do want to install the firmware on the Arduino Nano33 IoT board's built-in NINA-W102 chip, you will need to first build the firmware as described above.
33+
```shell
34+
mkdir -p ../build
4535

46-
To flash this firmware on the Arduino Nano33 IoT you will need to follow the following procedure using the Arduino IDE software:
36+
# reset board into bootloader mode using 1200 baud
37+
stty -F /dev/ttyACM0 ispeed 1200 ospeed 1200
4738

48-
- Install _Arduino SAMD Boards_ from the Boards Manager.
49-
- Install _WiFiNINA_ from the Library Manager.
50-
- Using the normal Arduino software, load the `SerialNINAPassthrough` sketch on to the board (in File -> Examples -> WiFiNINA-> Tools).
39+
# flash the passthru binary to the SAMD21 using bossac
40+
# code from https://github.com/arduino-libraries/WiFiNINA/blob/master/examples/Tools/SerialNINAPassthrough/SerialNINAPassthrough.ino
41+
bossac -d -i -e -w -v -R --port=/dev/ttyACM0 --offset=0x2000 ./SerialNINAPassthrough.ino.nano_33_iot.bin
5142

52-
Now you can flash the WifiNINA firmware using the `esptool` script:
43+
# download the nina-fw binary
44+
wget -P ../build/ https://github.com/arduino/nina-fw/releases/download/1.4.5/NINA_W102-v1.4.5.bin
5345

54-
```shell
55-
python esptool.py --chip esp32 --port /dev/ttyACM0 --baud 115200 --before no_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 40m --flash_size detect 0x1000 build/bootloader.bin 0xf000 build/phy_init_data.bin 0x30000 build/nina-fw.bin 0x8000 build/partitions.bin
46+
# flash the nina-fw binary to the ESP32 using esptool
47+
esptool --port /dev/ttyACM0 --before default_reset --baud 115200 write_flash 0 ../build/NINA_W102-v1.4.5.bin
5648
```
5749

58-
You only need to do this one time, and then the correct WiFiNINA firmware will be on the NINA chip, and you can just flash the Arduino Nano33 IoT board using TinyGo. We should be able to remove some of these steps in a future release of this software.
50+
You only need to do this one time, and then the correct nina-fw firmware will be on the NINA ESP32 chip, and you can just flash the Arduino Nano33 IoT board using TinyGo.
11.2 KB
Binary file not shown.

wifinina/updater/update_ninafw.sh

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
#!/bin/bash
2+
3+
mkdir -p ../build
4+
5+
# flash the passthru binary to the SAMD21 using bossac
6+
# code from https://github.com/arduino-libraries/WiFiNINA/blob/master/examples/Tools/SerialNINAPassthrough/SerialNINAPassthrough.ino
7+
stty -F /dev/ttyACM0 ispeed 1200 ospeed 1200
8+
bossac -d -i -e -w -v -R --port=/dev/ttyACM0 --offset=0x2000 ./SerialNINAPassthrough.ino.nano_33_iot.bin
9+
10+
# download the nina-fw binary
11+
wget -P ../build/ https://github.com/arduino/nina-fw/releases/download/1.4.5/NINA_W102-v1.4.5.bin
12+
13+
# flash the nina-fw binary to the ESP32 using esptool
14+
esptool --port /dev/ttyACM0 --before default_reset --baud 115200 write_flash 0 ../build/NINA_W102-v1.4.5.bin
15+

0 commit comments

Comments
 (0)