I don't have "Elecrow CrowPanel 7.0P" who ever added this board to the Arduino IDE, messed up.
I assume this board uses the CH340 for USB connection.
They have told Arduino IDE 1.8.?? that the CH340 is an "Elecrow CrowPanel 7.0P".
Now for every device I have plugged into the USB that has a CH340, the Arduino IDE tells me it is an "Elecrow CrowPanel 7.0P".
Took me ages to work this out.
I don't know which Bord in the Boards manager did this, I got a message that there was updates, so I updated all the boards that had updates at the same time. (there where a few).
So it would be nice if the makers of the "Elecrow CrowPanel 7.0P" fix it.
You mean Espressif.
This is the cause of your issue (note that I do not know if you have the ESP32 board package installed but I assume that that is the case): https://github.com/espressif/arduino-esp32/blob/master/boards.txt#L39869-L39871
elecrow_crowpanel_7.name=Elecrow CrowPanel 7.0P
elecrow_crowpanel_7.vid.0=0x1a86
elecrow_crowpanel_7.pid.0=0x7523
Close the IDE, find the relevant boards.txt, remove the VID and PID lines, save the file and you should be OK; next restart the IDE. Note that updating the boards package will undo that change.
Which IDE are you using? 1.x? Or 2.x?
Note:
There might be a pitfall in IDE 2.x so it does not honour the change but I can't advise as I'm not using it.
1 Like
Thank you that sorted it.
Has anyone pointed this out on the GitHub?
I look to see if there was this issues posted on GitHub, but I am not sure how to search through the hundreds of issues posted
At least I know where to look.
1.x for uploading.
I actually use MS Visual Studio 2023 for editing (without the plugin).
I don't know. It's broader than just the ESP32 board package. I had the same problem with the boards package for the Thinary Nano Every in IDE 2.x. As I only had it installed to help on the forum, I uninstalled the board package.
Maybe consider a script file so you don't have to use the IDE
reincarnated:
1.x for uploading.
Although your problem applies to both IDE 1.x and IDE 2.x, I've moved your topic to the IDE 1.x section of the forum.
Perhaps this page: Platform specification - Arduino CLI
Needs a note not to use to use VID/PID for boards using the non-PID-programable CH340 chip?
See section "Board VID/PID"
A note here not to use VID/PID with USB to UART chips that can't have there VID/PID changed to match the manufactures ID.
Thanks again.
Hi @reincarnated
I have now submitted a request for the removal of all such inappropriate associations from the "esp32" boards platform:
espressif:master
← per1234:remove-generic-port-properties-association
opened 04:46PM - 31 Aug 24 UTC
## Description of Change
The Arduino boards platform framework allows propert… ies of a port to be [associated with a board definition](https://arduino.github.io/arduino-cli/dev/platform-specification/#properties-from-pluggable-discovery:~:text=upload_port.vid%20and%20upload_port.pid%20properties). The Arduino development software will identify a port having the associated properties as that board.
This should only be done for properties that are unique to the ports produced by that board model. In cases where a board model does not produce a port with properties unique to that model, it is irresponsible to associate those properties with the board definition as this will cause other models to be inappropriately identified.
The authors of these board definitions associated them with non-unique USB VID/PID pairs so those associations must be removed. The `303a:1001` VID/PID pair is of the hardware CDC serial port of the native USB ESP32 chips. The others are stock VID/PID pairs of general purpose USB to serial bridge chips that are used on many different board models.
## Tests scenarios
Compile for the modified boards using the platform (at 0a8c586953327af6d38280ca10c612a82b4d1be7) with this patch (0a8c586953327af6d38280ca10c612a82b4d1be7) applied.
## Related links
Originally reported at https://forum.arduino.cc/t/i-dont-have-elecrow-crowpanel-7-0p/1293026
- https://github.com/espressif/arduino-esp32/issues/6384
- https://github.com/espressif/arduino-esp32/issues/7292
- https://github.com/espressif/arduino-esp32/issues/9702
The Arduino developers are tracking the task of adding such a warning here:
opened 10:23PM - 28 May 24 UTC
type: enhancement
topic: documentation
topic: code
### Describe the request
The [pluggable discovery specification](https://ardu… ino.github.io/arduino-cli/0.35/pluggable-discovery-specification/) and [platform specification](https://arduino.github.io/arduino-cli/0.34/platform-specification/#board-vidpid) describe how board definitions can give a board's USB VID and PID, or more generally identifiers. This note is given:
> The Arduino development software uses the vid and pid properties to automatically identify the boards connected to the computer. This convenience feature isn't available for boards that don't present a unique VID/PID pair.
A lot of boards have "semi generic" VID/PIDs that are derived from a serial converter chip (FT232, CH340, CP2102, etc) OR from the microcontroller's own USB support (e.g. the ESP32 "USB Serial/JTAG" peripheral). They can't be used to reliably identify a board but they CAN generally be used to guide which serial port a given board is connected to.
The various platform `boards.txt` files out there are quite inconsistent on how they handle this! Some happily list "generic" VID/PID pairs, some only list truly board-specific VID/PID pairs, others are inconsistent and list some of them but not others (https://github.com/espressif/arduino-esp32/issues/9702 vs https://github.com/espressif/arduino-esp32/issues/9690).
#### Proposal...
- clarify whether `boards.txt` file should/not list these semi generic identifiers; if "not", maybe try to clean that up
- ideally support generic identifiers as a way to determine which serial port a given board might be on
- have `arduino-cli` list ALL matching boards, in order? or at least the FIRST matching board, so the first one can be a generic archetype listing (possibly hidden by default)?
### Describe the current behavior
When there are multiple known boards that match a given VID/PID, `arduino-cli` (and thus tools that use it) tend to just kind of pick one at random.
For example, right now my computer (Ubuntu 24.04) has four USB serial ports (`/dev/ACM0-3`). Three of them are not Arduino boards at all but random devices I'd love to "filter out". The other one is a Seeed XIAO ESP32-C3, with VID:PID 0x303a:0x1001, which is the generic VID:PID for the ESP32-C3's "USB Serial/JTAG" peripheral. A number of boards list that VID/PID, but for whatever reason `arduino-cli board list` picks one of them (not the first, not the last):
```
% arduino-cli board list
Port Protocol Type Board Name FQBN Core
/dev/ttyACM0 serial Serial Port (USB) Unknown
/dev/ttyACM1 serial Serial Port (USB) Unknown
/dev/ttyACM2 serial Serial Port (USB) Unknown
/dev/ttyACM3 serial Serial Port (USB) LOLIN S3 esp32:esp32:lolin_s3 esp32:esp32
```
If I ask for JSON output, I get this, which is a bit confusing, because it SEEMS designed to allow multiple matches to be reported:
```
{
"matching_boards": [
{
"name": "LOLIN S3",
"fqbn": "esp32:esp32:lolin_s3"
}
],
"port": {
"address": "/dev/ttyACM3",
"label": "/dev/ttyACM3",
"protocol": "serial",
"protocol_label": "Serial Port (USB)",
"properties": {
"pid": "0x1001",
"serialNumber": "A0:76:4E:44:F2:28",
"vid": "0x303a"
},
"hardware_id": "A0:76:4E:44:F2:28"
}
},
```
### Arduino CLI version
(applies to all)
### Operating system
N/A
### Operating system version
(applies to all)
### Additional context
Also see the forum thread ["What if two different boards has same PID and VID"](https://forum.arduino.cc/t/what-if-two-different-boards-has-same-pid-and-vid/1178880)...
### Issue checklist
- [X] I searched for previous requests in [the issue tracker](https://github.com/arduino/arduino-cli/issues?q=)
- [X] I verified the feature was still missing when using the [nightly build](https://arduino.github.io/arduino-cli/dev/installation/#nightly-builds)
- [X] My request contains all necessary details