Arduino Board Info Tools->Board Info says WiFiDuinoV2?

How does Tools->Board Info work? why do all my ESP32 show as wifiduino when i have no such device how can this data be fixed or edited? What da?

1 Like

Below my understanding.

Board detection is mostly based on the USB VID and PID. Your ESP32 boards probably have a generic serial-to-usb converter (CH340, CP...) and there is no way for the board detection to know what the board is. The board detection scans through the installed board packages to find a VID / PID that matches the VID / PID of the serial-to-usb converter; if it finds it and there is some additional information available for it, it will use that.

Did you ever install a board package for the WiFiDuinoV2? My classic Nanos where at one stage detected as Nano Thinary because I had the board package for the Thinary installed.

Thanks... I think you are correct.. i have never used it, and i think it is having some problems with my compile because the top of the screen says ESP32 but the com port says the other.... i think also maybe has to do with what was the last bord compiled by the library owner/author... but i dont know of how the last compile board data could be stored in the .ino file?

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

Thanks :+1:

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.