Arduino Board Info Tools->Board Info says WiFiDuinoV2?

It is actually a native USB board, without a dedicated converter chip. So it has the default 303a:1001 VID/PID pair of all the native USB chips of the ESP32 family.

No, this won't cause any problems at all for compilation. Just make sure you select the appropriate board from the Tools > Board menu (or the "Select Other Board and Port" dialog if you prefer), and everything will be fine. The port identification is only a convenience feature intended to make it easier to select the port of your board.

Something like that (it is actually uploading to the board that would do it, not compiling alone) can happen with some boards, but it is not the cause in this particular case. The author of an Arduino boards platform can associate a board definition with identifying information from the port. If a port on the user's computer has identification properties that match with a board definition from an Arduino platform, the port will be labeled with that board name in some parts of the Arduino IDE user interface:

  • The Tools > Port menu
  • The "BN" (board name) field of the "Board Info" dialog
  • The board selector menu on the toolbar (under certain conditions)

This identification system is very convenient in the common situation where there are multiple ports on the computer because it helps the user to easily select the correct port for their board.

Although any arbitrary identification properties are supported by the Arduino boards platform framework, most platforms use the USB VID/PID identifier pair. This is a good choice when the manufacturer of a board has dedicated a unique VID/PID pair to a specific board model, as Arduino has done with most of the boards they manufacture.

The USB interface of the ESP32-C3 and ESP32-S3 microcontrollers have a default VID/PID of 303a:1001, which is provided by the manufacturer of those microcontrollers, Espressif. This means that, unless the board manufacturer has set a custom unique VID/PID pair via the firmware, all of the many different board models based on those microcontrollers have the same VID/PID. Even in the case where the board manufacturer has set a custom unique VID/PID pair for their board (as Arduino did with the ESP32-S3-based Nano ESP32), the board can still temporarily change to using the default 303a:1001 under certain conditions.

Typically in the case where a port property is not uniquely identifying, the platform author would not associate it with the board. For example, the classic Nano uses the FTDI FT232R USB chip, which has the 0403:6001 VID/PID pair provided by the chip manufacturer by default on all FT232R chips. For this reason, Arduino does not associate the 0403:6001 VID/PID pair with the Nano's board definition because this would cause the ports of other boards using the FT232R to be incorrectly identified in Arduino IDE as a Nano.

Although the assumption is made that only uniquely identifying properties will be used in board definitions, there is nothing in the Arduino boards platform framework to enforce that. The ESP32 boards platform developers associated many different board definitions with the non-uniquely identifying VID/PID pair 303a:1001. For example:

... and so on.

This results in incorrect or confusing port identifications for these boards by Arduino IDE. It labels the port as one of the multiple board definitions associated with 303a:1001. The choice of which board definition is nondeterministic, so you might even notice different board names used in the port label over time.

1 Like