Unique identification of each individual Arduino Uno board ??

Hi. Does anybody know if there is something like a unique identification of each individual Arduino board? I'm thinking of something similar to a MAC-address on Ethernet cards, something that could be read by a sketch in order to check whether it is running on one very defined Arduino Uno board. Something already existing and implemented in the board electronics, not anything that would have to be realized by additional external circuitry. Thanks for any ideas.

I don't believe there is such a thing. However one could utilize the built in EEPROM memory to write a unique serial number without needing any external components.

Lefty

The delicious irony here is that even if you add an Ethernet shield, you don't get what you want -- you have to tell it what ethernet address to use! Recent ones come with a sticker with a unique address, but it's not programmed into the hardware.

Hmmm.

When I connect 4 or 5 different UNOs to the same host computer,each gets a unique COM port number. It seems that this is "remembered" as UNOs are removed and reattached.

Where is THAT uniqueness established??

@Terry, I think that is part of the USB interface - the FTDI chip, or the AT8MU2.

CrossRoads:
@Terry, I think that is part of the USB interface - the FTDI chip, or the AT8MU2.

Well YOU were up late :slight_smile:

WhatsIt about Vid Uid or whatever? I don't understand that. Since the AT8MU2 is programmable, could a unique ID be stored in it??

Oh, OK, I Googled it:


A USB device that is plugged in identifies itself by its VID/PID combination. A VID is a 16-bit vendor number (Vendor ID). A PID is a 16-bit product number (Product ID). The PC uses the VID/PID combination to find the drivers (if any) that are to be used for the USB device. For this to work, the VID/PID combination must be unique, in the sense that ecah USB device with the same VID/PID will use the same driver. So, whenever you need a specific driver for your USB product, you will need a unique VID/PID for that product.


So, messing with that would screw up the Driver relationship, right??

But I still don't get how Windows knows my UNOs apart. I have little numbers written on them , but I don't think WinXP uses my webcam to look for them.

Any of the Arduino developers listening???

Not really, its only Saturday night here.
Waiting on some autorouting to finish up. Had 3-4 runs to route by hand, letting the ground planes get created again around them now.

The "VID/PID combination" seems to go into the direction of what I'm thinking of (although at the moment I do not have the slightest idea what VID/PID is :blush:). It would also only be a matter of READING such an ID, so it would actually not be "messing around" with it as I would not in any way try to change anything about it. However I wonder if it is possible to access this ID from a sketch?

OK, try this:

Get usbview.exe here: http://www.redcl0ud.com/files/USBView.cab Extracted the .EXE and it ran for me...

Look thru the left panel and find your UNO or "Serial Port Emulator" or both.

Click on the device and you'll see all the USB device guts details...

So, MAYBE someone could reload the UNO AT8MU2 firmware with a little patch to make something that is readable here a unique ID.

I HOPE you're not going to use this to license some software only for one UNO!!!

Well here's an interesting thing. See attachments.

I just plugged in two different Unos. They show up with different serial numbers. But I think this is on the USB side, not the Atmega side. If someone could establish how to get at the numbers from the processor then there is your answer.

Uno_64932343638351414172.png

Uno_64932343638351318181.png

What do I need to run to see that info for my Arduino?

I assume it's a windows prog?

sixeyes:
What do I need to run to see that info for my Arduino?I assume it's a windows prog?

Get usbview.exe here: http://www.redcl0ud.com/files/USBView.cab Extracted the .EXE and it ran for me...

five-eyes were not enough :roll_eyes:

Nick: Were you using a different USB Viewer? Your results look more compact and clear than mine....

It's a Mac. That information is core information built into the operating system.

Still, I doubt the processor side can get at that. It is probably more practical to write a serial number to the EEPROM and have a sumcheck (eg. MD5) adjacent that confirms that it is correct and not garbage.