Skip to content

Commit

Permalink
Add protocol-explicit upload.tool properties required for pluggable d…
Browse files Browse the repository at this point in the history
…iscovery compatibility (#8151)

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, new board
definitions without the required properties were added later.

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.serial' is undefined

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.default` 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.
  • Loading branch information
per1234 authored May 3, 2023
1 parent 628b668 commit 7e51a03
Showing 1 changed file with 2 additions and 0 deletions.
2 changes: 2 additions & 0 deletions boards.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7314,6 +7314,7 @@ dfrobot_beetle_esp32c3.menu.EraseFlash.all.upload.erase_cmd=-e
dfrobot_firebeetle2_esp32e.name=FireBeetle 2 ESP32-E

dfrobot_firebeetle2_esp32e.upload.tool=esptool_py
dfrobot_firebeetle2_esp32e.upload.tool.default=esptool_py
dfrobot_firebeetle2_esp32e.upload.maximum_size=1310720
dfrobot_firebeetle2_esp32e.upload.maximum_data_size=327680
dfrobot_firebeetle2_esp32e.upload.flags=
Expand Down Expand Up @@ -22259,6 +22260,7 @@ esp32c3m1IKit.menu.EraseFlash.all.upload.erase_cmd=-e
roboheart_hercules.name=RoboHeart Hercules

roboheart_hercules.upload.tool=esptool_py
roboheart_hercules.upload.tool.default=esptool_py
roboheart_hercules.upload.maximum_size=1310720
roboheart_hercules.upload.maximum_data_size=327680
roboheart_hercules.upload.wait_for_upload_port=true
Expand Down

0 comments on commit 7e51a03

Please sign in to comment.