1
+
# Plugins
2
+
3
+
A new plugin-system has been implemented in the Arduino Firmware Uploader. A plugin is basically another
4
+
executable/tool, specifically tailored for a board/family of boards, but with a well-defined user interface. Inside the
5
+
plugin, there is all the business logic to support a board/family of boards. Every plugin implements the
6
+
[interface](https://pkg.go.dev/github.com/arduino/fwuploader-plugin-helper#Plugin) contained in the
7
+
[fwuploader-plugin-helper](https://github.com/arduino/fwuploader-plugin-helper) repository.
8
+
9
+
The fwuploader is still responsible for downloading the files required for the plugin to work:
10
+
11
+
- plugins/tools
12
+
- certificates
13
+
- firmware
14
+
15
+
The new information is hosted in the
16
+
[plugin_firmware_index.json](https://downloads.arduino.cc/arduino-fwuploader/boards/plugin_firmware_index.json), which
17
+
is generated by `generator.py`.
18
+
19
+
## uno-r4-wifi-plugin
20
+
21
+
The source code can be found [here](https://github.com/arduino/uno-r4-wifi-fwuploader-plugin).
22
+
23
+
### Known issues
24
+
25
+
#### Espflash panic `UnknownModel`
26
+
27
+
On some arm64 Linux distros, version 2.0.0 of [espflash](https://github.com/esp-rs/espflash/) might panic with the
28
+
following error:
29
+
30
+
```
31
+
Error: × Main thread panicked.
32
+
├─▶ at espflash/src/interface.rs:70:33
33
+
╰─▶ called `Result::unwrap()` on an `Err` value: UnknownModel
34
+
help: set the `RUST_BACKTRACE=1` environment variable to display a
35
+
backtrace.
36
+
```
37
+
38
+
#### The ESP32 module does not go into download mode
39
+
40
+
On Linux, the UNO R4 WiFi must be plugged into a **USB hub** to make the flash process work. Otherwise, it won’t be able
41
+
to reboot in download mode.
42
+
43
+
```bash
44
+
$ arduino-fwuploader firmware flash -b arduino:renesas_uno:unor4wifi -a /dev/ttyACM0 -v --log-level debug
45
+
46
+
Done in 0.001 seconds
47
+
Write 46588 bytes to flash (12 pages)
48
+
[==============================] 100% (12/12 pages)
49
+
Done in 3.106 seconds
50
+
51
+
Waiting to flash the binary...
52
+
time=2023-07-18T14:50:10.492+02:00 level=INFO msg="getting firmware version"
53
+
time=2023-07-18T14:50:10.509+02:00 level=INFO msg="firmware version is > 0.1.0 using sketch"
54
+
time=2023-07-18T14:50:10.511+02:00 level=INFO msg="check if serial port has changed"
55
+
[2023-07-18T12:50:20Z INFO ] 🚀 A new version of espflash is available: v2.0.1
56
+
[2023-07-18T12:50:20Z INFO ] Serial port: '/dev/ttyACM0'
57
+
[2023-07-18T12:50:20Z INFO ] Connecting...
58
+
[2023-07-18T12:50:20Z INFO ] Unable to connect, retrying with extra delay...
59
+
[2023-07-18T12:50:21Z INFO ] Unable to connect, retrying with default delay...
60
+
[2023-07-18T12:50:21Z INFO ] Unable to connect, retrying with extra delay...
61
+
[2023-07-18T12:50:21Z INFO ] Unable to connect, retrying with default delay...
62
+
[2023-07-18T12:50:21Z INFO ] Unable to connect, retrying with extra delay...
63
+
[2023-07-18T12:50:21Z INFO ] Unable to connect, retrying with default delay...
64
+
[2023-07-18T12:50:21Z INFO ] Unable to connect, retrying with extra delay...
65
+
Error: espflash::connection_failed
66
+
67
+
× Error while connecting to device
68
+
╰─▶ Failed to connect to the device
69
+
help: Ensure that the device is connected and the reset and boot pins are
70
+
not being held down
71
+
72
+
Error: exit status 1
73
+
ERRO[0021] couldn't update firmware: exit status 3
74
+
INFO[0021] Waiting 1 second before retrying...
75
+
INFO[0022] Uploading firmware (try 2 of 9)
76
+
time=2023-07-18T14:50:22.229+02:00 level=INFO msg=upload_command_sketch
77
+
time=2023-07-18T14:50:22.230+02:00 level=INFO msg="sending serial reset"
78
+
Error: reboot mode: upload commands sketch: setting DTR to OFF
79
+
...
80
+
```
81
+
82
+
#### I flashed the certificates, but I am unable to reach the host
83
+
84
+
The **whole certificate chain** is needed to make it work. Using
85
+
[`-u` flags](commands/arduino-fwuploader_certificates_flash.md#options) (ex: `-u www.arduino.cc:443`) won’t work because
86
+
it only downloads the root certificates. The solution is to use only the
87
+
[`-f` flag](commands/arduino-fwuploader_certificates_flash.md#options) and provide a pem certificate containing the
88
+
whole chain.
89
+
90
+
#### My antivirus says that `espflash` is a threat
91
+
92
+
The binary is not signed [#348](https://github.com/esp-rs/espflash/issues/348), and some antiviruses might complain. If
93
+
still doubtful, https://github.com/esp-rs/espflash is open source, and it's possible to double-check the md5 hashes of
94
+
the binary and the source code. For more information, you can follow
95
+
[this](https://forum.arduino.cc/t/radio-module-firmware-version-0-2-0-is-now-available/1147361/11) forum thread.
96
+
97
+
#### Not running on armv7
98
+
99
+
At the moment, we are always downloading the armv6 binaries. Since they are dynamically linked, most likely they are not
100
+
going to run on armv7. More infos on the topic:
101
+
[here](https://developer.arm.com/documentation/ddi0419/c/Appendices/ARMv7-M-Differences/ARMv6-M-and-ARMv7-M-compatibility).
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4