@@ -127,6 +127,7 @@ call. The format of the response is the following:
127127 "label": <-- HOW THE PORT IS DISPLAYED ON THE GUI
128128 "protocol": <-- THE PROTOCOL USED BY THE BOARD
129129 "protocolLabel": <-- HOW THE PROTOCOL IS DISPLAYED ON THE GUI
130+ "hardwareId": <-- A STRING THAT UNIQUELY IDENTIFIES A BOARD SAMPLE
130131 "properties": {
131132 <-- A LIST OF PROPERTIES OF THE PORT
132133 }
@@ -147,7 +148,15 @@ Each port has:
147148 ` SSH on 192.168.10.100 ` )
148149- ` protocol ` is the protocol identifier (such as ` serial ` or ` dfu ` or ` ssh ` )
149150- ` protocolLabel ` is the ` protocol ` in human readable form (for example ` Serial port ` or ` DFU USB ` or ` Network (ssh) ` )
150- - ` properties ` is a list of key/value pairs that represent information relative to the specific port
151+ - ` hardwareId ` (optional) a string that uniquely identify a specific board sample (even among other boards of the same
152+ model). Different ports with the same ` hardwareId ` must belong to the same board sample. The identifier should be
153+ sufficiently long to uniquely identify the board sample and reduce the probability of collisions. Good examples of
154+ ` hardwareId ` values are: Ethernet MAC Address, USB Serial Number, CPU-ID number, etc.
155+
156+ This value ** should not** be used to identify the board ** model** (see the
157+ [ board identification] ( #board-identification ) section for more information about identification of the board model).
158+
159+ - ` properties ` is a list of key/value pairs that represent information relative to the specific port.
151160
152161To make the above more clear let's show an example output from the ` serial-discovery ` builtin in the Arduino CLI:
153162
@@ -160,6 +169,7 @@ To make the above more clear let's show an example output from the `serial-disco
160169 "label" : " ttyACM0" ,
161170 "protocol" : " serial" ,
162171 "protocolLabel" : " Serial Port (USB)" ,
172+ "hardwareId" : " EBEABFD6514D32364E202020FF10181E" ,
163173 "properties" : {
164174 "pid" : " 0x804e" ,
165175 "vid" : " 0x2341" ,
@@ -175,6 +185,8 @@ In this case the serial port metadata comes from a USB serial converter. Inside
175185properties of the port, and some of them may be useful for product identification (in this case only USB VID/PID is
176186useful to identify the board model).
177187
188+ The ` hardwareId ` field is populated with the USB ` serialNumber ` since this value is useful to identify the board sample.
189+
178190The ` LIST ` command performs a one-shot polling of the ports. The discovery should answer as soon as reasonably possible,
179191without any additional delay.
180192
@@ -231,6 +243,7 @@ The `add` event looks like the following:
231243 "port" : {
232244 "address" : " /dev/ttyACM0" ,
233245 "label" : " ttyACM0" ,
246+ "hardwareId" : " EBEABFD6514D32364E202020FF10181E" ,
234247 "properties" : {
235248 "pid" : " 0x804e" ,
236249 "vid" : " 0x2341" ,
0 commit comments