Skip to content

Commit b2b4bf8

Browse files
authored
Add protocol-explicit upload.tool properties required for pluggable discovery compatibility (#7517)
* Correct upload tool name for "ESP32 FM DevKit" The upload tool name was changed from `esptool` to `esptool_py`. The author of the "ESP32 FM DevKit" board definition used the old tool name and evidently never tested it, since the upload fails: java.lang.NullPointerException at cc.arduino.packages.uploaders.SerialUploader.uploadUsingProgrammer(SerialUploader.java:295) at cc.arduino.packages.uploaders.SerialUploader.uploadUsingPreferences(SerialUploader.java:90) at cc.arduino.UploaderUtils.upload(UploaderUtils.java:77) at processing.app.SketchController.upload(SketchController.java:732) at processing.app.SketchController.exportApplet(SketchController.java:703) at processing.app.Editor$UploadHandler.run(Editor.java:2055) at java.lang.Thread.run(Thread.java:748) * Add protocol-explicit `upload.tool` properties required for pluggable discovery compatibility A new flexible and powerful "pluggable discovery" system was added to the Arduino boards platform framework. This system makes it easy for Arduino boards platform authors to use any arbitrary communication channel between the board and development tools. Boards platform configurations that use the old property syntax are automatically translated to the new syntax by Arduino CLI: https://arduino.github.io/arduino-cli/latest/platform-specification/#sketch-upload-configuration > For backward compatibility with IDE 1.8.15 and older the previous syntax is still supported This translation is only done in platforms that use the old syntax exclusively. If `pluggable_discovery` properties are defined for the platform then the new pluggable discovery-style `upload.tool.<protocol_name>` properties must be defined for each board as well. This platform was converted to use the new pluggable discovery platform properties syntax, so those properties are required. Although such properties were added to board definitions at the time the syntax was changed, some board definitions were missed at that time, or added later without the required properties. Those missing properties caused uploads to fail for users of the recent versions of Arduino IDE and Arduino CLI with an error of the form: Error during Upload: Property 'upload.tool.<protocol_name>' is undefined (where `<protocol_name>` is the protocol of the selected port, if any) It is also important to provide compatibility with versions of Arduino development tools from before the introduction of the modern pluggable discovery system. For this reason, the old style `<board ID>.upload.tool` properties are retained. Old versions of the development tools will treat the `<board ID>.upload.tool.<protocol_name>` properties as an unused arbitrary user defined property with no special significance and the new versions of the development tools will do the same for the `upload.tool` properties.
1 parent 12038cb commit b2b4bf8

File tree

1 file changed

+10
-1
lines changed

1 file changed

+10
-1
lines changed

Diff for: boards.txt

+10-1
Original file line numberDiff line numberDiff line change
@@ -2238,6 +2238,9 @@ rmp.vid.0=0x303a
22382238
rmp.pid.0=0x80F6
22392239

22402240
rmp.upload.tool=esptool_py
2241+
rmp.upload.tool.default=esptool_py
2242+
rmp.upload.tool.network=esp_ota
2243+
22412244
rmp.upload.maximum_size=1310720
22422245
rmp.upload.maximum_data_size=327680
22432246
rmp.upload.flags=
@@ -9997,6 +10000,9 @@ esp32doit-devkit-v1.menu.EraseFlash.all.upload.erase_cmd=-e
999710000
esp32doit-espduino.name=DOIT ESPduino32
999810001

999910002
esp32doit-espduino.upload.tool=esptool_py
10003+
esp32doit-espduino.upload.tool.default=esptool_py
10004+
esp32doit-espduino.upload.tool.network=esp_ota
10005+
1000010006
esp32doit-espduino.upload.maximum_size=1310720
1000110007
esp32doit-espduino.upload.maximum_data_size=327680
1000210008
esp32doit-espduino.upload.wait_for_upload_port=true
@@ -13150,7 +13156,10 @@ oroca_edubot.menu.EraseFlash.all.upload.erase_cmd=-e
1315013156

1315113157
fm-devkit.name=ESP32 FM DevKit
1315213158

13153-
fm-devkit.upload.tool=esptool
13159+
fm-devkit.upload.tool=esptool_py
13160+
fm-devkit.upload.tool.default=esptool_py
13161+
fm-devkit.upload.tool.network=esp_ota
13162+
1315413163
fm-devkit.upload.maximum_size=1310720
1315513164
fm-devkit.upload.maximum_data_size=327680
1315613165
fm-devkit.upload.flags=

0 commit comments

Comments
 (0)