comprehensive list of Uno Rev. 3 USB vendor/product IDs?

I have some older Uno Rev. 3 and they show up as vendor 2341, product 0043.

But now I got some newer ones and they show up as vendor 2a03, product 0043.

I looked at http://www.linux-usb.org/usb.ids and those two pairs appear to be the only mention of Uno Rev 3 (or Uno R3).

Does that mean those are the only possibilities? Do all the sparkfun clones (tiny, pro, etc.) use their own numbers or what?

Thanks,
Britton

All manufacturers should have their own VID/PID code unless some licensing deal was worked out with Arduino.cc or Ardiuno.org I would imagine. I would also suspect different codes for FT232 (Duemilanove and real Nano) vs Atmega8u2 (Uno and Mega etc) vs Atmega32U4 (Promicro & Leonardo etc) vs CH430 on the clones.

1 Like

They are listed in boards.txt. From Arduino/boards.txt at 1.8.0 · arduino/Arduino · GitHub

uno.vid.0=0x2341
uno.pid.0=0x0043
uno.vid.1=0x2341
uno.pid.1=0x0001
uno.vid.2=0x2A03
uno.pid.2=0x0043
uno.vid.3=0x2341
uno.pid.3=0x0243

[quote author=Britton Kerin date=1483829197 link=msg=3074172]Do all the sparkfun clones (tiny, pro, etc.) use their own numbers or what?
[/quote]
The SparkFun boards use the FTDI FT232 USB-serial chip so they all have the default VID/PID of that chip(VID:0403, PID:6001).

Most of the Chinese clones use the CH340 now so they are VID:1A86, PID:7523.

I put together a list of the VID/PIDs of the more common chips here:

Awesome list, thanks.

Never new so many people made those or that there were that many Arduino versions out there.

Do you happen to know how many of those are used in Uno Rev3 work-alikes and how many only show
up in one the variants (mega etc.)?

FT232 is quite common but lost some market share after FTDI released a Windows driver version that "bricked" counterfeit FT232 chips by changing the PID to 0000. Note that although the manufacturers of devices that use the FTDI chips are permitted to use the default VID/PID for that chip, they can also request custom PIDs from the company, while still using FTDI's VID to avoid paying for their own VID.

CH340 has become the most common chip used on clones and other 3rd party boards because it's super cheap, and works fine.

You will find some boards that use CP2102 or PL2303 but they're less common nowdays.

There are a multitude of other USB-serial chips available but I only see then on boards that need features the more commonly used chips don't provide. For example, the RISC-V based HiFive 1 board uses the FTDI FT2232HL to provide a programming and a debug port.

As for which of the chips show up in a specific board type, I don't think there's much rhyme or reason. Each company seems to have their chip preference and they will tend to use it on all their boards, as with Arduino using the Atmel chips, Sparkfun using FTDI, etc.

Ok, thanks. I have some code that tries to auto-detect an Arduino but maybe it's not realistic or needs to come with big caveats.

One last question: looking at the table from the Arduino distribution (Arduino/boards.txt at 1.8.0 · arduino/Arduino · GitHub) I'm guessing that official Uno Rev3s always show up as one of these two:

{vendor => '2341', product => '0043'} # Uno R3
{vendor => '2a03', product => '0043'} # Uno R3

I've got Rev3s in hand that show both of the above. But since the numbers changes at least once without a rev bump maybe there are others?

I'm guessing these two are for the original (non-Rev3) Uno:

{vendor => '2341', product => '0001'}, # Other non-R3 Uno?
{vendor => '2341', product => '0243'}, # Other non-R3 Uno?

but I don't have any original Unos to check.

I'd like to at least feel confident that I could autodetect any Uno Rev3

2A03 is the VID used by arduino.org, 2341 is the VID used by arduino.cc. At one point during the conflict the .cc IDE even displayed an "uncertified warning" when a board with the 2A03 VID was used.

Here's a commit that says PID 0001 is "older Arduino Unos":