RunTheTests
/

Arduino / ESP Board Detector

Identify a board from its USB IDs — and be told plainly when only the bridge chip is known.

How this talks to your device

You pick the board's port from the browser's chooser and the page reads the USB vendor and product IDs the port reports. Those are looked up in two separate tables, and which table matched is the finding. An exact vendor-and-product match identifies a specific board — an Uno R4 Minima, a Nano 33 BLE, a Pico — because that pairing is registered to it. Anything else falls through to a table of USB-to-serial bridge chips, and a bridge match identifies the interface rather than the board. That distinction is the whole point of the page: a CH340 is on tens of thousands of different clone boards, so seeing one tells you how the board talks to your computer and nothing at all about what it is. Reporting "Arduino Nano" because most CH340 boards are Nanos would be a guess presented as a finding, and someone would flash the wrong bootloader on the strength of it. No port is opened and nothing is written.

What the results mean

Exact match
The vendor and product ID pair is registered to a specific board. This is an identification rather than an inference, and the chip named is the microcontroller.
Bridge chip only
The vendor ID belongs to a serial bridge manufacturer — CH340, FTDI, CP210x, PL2303. The chip named is the USB interface, not the microcontroller, and the board itself is genuinely unknown.
No match
Neither table has these IDs. Very common on clones, which frequently ship unpublished identifiers. The board still works; it just cannot be named this way.
No USB identifiers
The port is not a USB device — a built-in hardware serial port or a virtual one. There is nothing to look up.

Common problems and fixes

The board is not in the chooser at all
Check the cable first. A large share of USB cables carry power only, which produces a board whose power light comes on and which never enumerates. Swapping to a known data cable resolves this more often than any driver change.
It only identifies a CH340
That is the honest answer rather than a limitation to work around. Read the markings on the largest chip on the board — ATmega328P, ESP32, RP2040 — which is the reliable identification when the USB IDs cannot provide one.
The board shows up but nothing can talk to it
On Windows a CH340 or CP210x often needs its driver installed before a port appears at all. If the port exists but data is nonsense, that is a baud rate problem rather than a driver one — the serial terminal will show it.
Two boards report the same IDs
Expected on clones sharing a bridge chip. The USB identifiers cannot distinguish them, and neither can any tool that reads only those. Connect to each in turn and see which responds.

Frequently asked questions

Why can it not identify my clone board?

Because the board never says what it is. Official boards have vendor IDs registered to their maker; clones usually ship the bridge chip's own identifiers, which are shared across every product using that chip. There is no signal in the USB identifiers to recover — the information is not hidden, it was never there.

What is a USB-to-serial bridge?

A chip that converts between USB and the plain serial interface a microcontroller speaks. Boards without native USB support need one, which is why a CH340 or FTDI chip sits next to the microcontroller on most cheap boards. Boards with native USB — the Pico, ESP32-S3, Leonardo — talk USB directly and report their own identity, which is why they identify exactly.

Is it safe to run this on a board mid-project?

Yes. No port is opened, nothing is written, and the board is not reset. The USB identifiers are read from what the operating system already knows about the device from enumeration.

Can I use this instead of the Arduino IDE's board list?

For identifying which physical board is on which port, yes, and it is often quicker. For selecting a board to compile against you still need the IDE — knowing you have an Uno R4 does not configure a toolchain, and the IDE's list is where that choice lives.

More in DevTools