Author Topic: Arduino unique identifier  (Read 8682 times)

0 Members and 1 Guest are viewing this topic.

Offline mvinc17Topic starter

  • Newbie
  • Posts: 1
Arduino unique identifier
« on: April 23, 2014, 11:36:33 am »
Hi All,

I am new here, so please forgive any mistakes :)

I am working on a system in which an Arduino microcontroller needs to have a hardware unique ID, it does need to be absolutely unique as it is to be used as a registration token for a web service. I am wondering if there are any chips or other devices out there which will give this effect?

Thanks in advance,
Michael
 

Offline Codemonkey

  • Regular Contributor
  • *
  • Posts: 235
  • Country: gb
Re: Arduino unique identifier
« Reply #1 on: April 23, 2014, 11:46:03 am »
I seem to recall Dallas/Maxim did something like that.
 

Offline Rerouter

  • Super Contributor
  • ***
  • Posts: 4694
  • Country: au
  • Question Everything... Except This Statement
Re: Arduino unique identifier
« Reply #2 on: April 23, 2014, 11:46:52 am »
This eeprom seems to get used for it, Dallas DS2401

Otherwise considering they are using the internet, you could just use the mac address off the Ethernet interface, not likely to repeat,
 

Offline ConKbot

  • Super Contributor
  • ***
  • Posts: 1382
Re: Arduino unique identifier
« Reply #3 on: April 23, 2014, 11:50:23 am »
+1 to DS2401, or if you like tiny annoying packages, the DS2411
 

Offline sacherjj

  • Frequent Contributor
  • **
  • Posts: 993
  • Country: us
Re: Arduino unique identifier
« Reply #4 on: April 23, 2014, 12:22:45 pm »
I have a project, still in the planning stages, that I needed similar functionality.  The least expensive way I could figure out how to do it is with something like this:
http://ww1.microchip.com/downloads/en/DeviceDoc/20002124E.pdf

They have 48 and 64 bit GUIDs, in addition to usable EEPROM space.  Seemed about 1/3 the price of anything else I found.  $0.20-0.25
 

Offline sportq

  • Regular Contributor
  • *
  • Posts: 62
  • Country: gb
Re: Arduino unique identifier
« Reply #5 on: April 23, 2014, 12:37:54 pm »
The Arduino, or more precisely, the ATmega has this already. There is code, possibly a library, I forget, for storing the ethernet shields MAC address in it but you could equally use it for your own unique ID.

EDIT, here it is: http://arduino.cc/en/Reference/EEPROM

Peter
 

Offline sacherjj

  • Frequent Contributor
  • **
  • Posts: 993
  • Country: us
Re: Arduino unique identifier
« Reply #6 on: April 23, 2014, 12:41:54 pm »
The Arduino, or more precisely, the ATmega has this already. There is code, possibly a library, I forget, for storing the ethernet shields MAC address in it but you could equally use it for your own unique ID.

EDIT, here it is: http://arduino.cc/en/Reference/EEPROM

This is fine if the quantity is low and you don't mind manually programming each to a unique value.  That gets really old, really quick, if you are making many.  Then it is nice to have that "programmed" with a device soldered on.
 

Offline jwm

  • Regular Contributor
  • *
  • Posts: 64
  • Country: us
    • NaN
Re: Arduino unique identifier
« Reply #7 on: April 24, 2014, 01:45:45 am »
Every 1-wire device has a globally unique 64 bit number you can use. They make ones that are dedicated to just having a serial number like the DS2401, but if you happen to need something like a temperature sensor, eeprom, or battery manager/monitor then you can use a 1-wire one and get the unique id for  free.
John Meacham - http://notanumber.net/
 

Offline theatrus

  • Frequent Contributor
  • **
  • Posts: 352
  • Country: us
Re: Arduino unique identifier
« Reply #8 on: April 24, 2014, 04:11:08 am »
Note that the DS2411 will work for identification, but not authentication.
Software by day, hardware by night; blueAcro.com
 

Offline dannyf

  • Super Contributor
  • ***
  • Posts: 8221
  • Country: 00
Re: Arduino unique identifier
« Reply #9 on: April 24, 2014, 11:02:17 am »
Quote
I am working on a system in which an Arduino microcontroller needs to have a hardware unique ID

Why not just code it in your program (flash or eeprom)? Simple, and effective.

If you don't want to generate it manually, you can write a small piece of code that at each invocation writes a unique ID. Put it in your make and you are done.
================================
https://dannyelectronics.wordpress.com/
 

Offline MacAttak

  • Supporter
  • ****
  • Posts: 683
  • Country: us
Re: Arduino unique identifier
« Reply #10 on: April 24, 2014, 07:30:48 pm »
If you are calling a web service then you could just rely on server provisioning. In other words, when the client starts up if it has never retrieved a unique id then it would contact the server and ask for one. The server generates it and sends it back, and the client would store that generated id in nonvolatile memory. From that point forward, the client would always use that assigned id for future requests. The server would most likely also keep a copy of the id for verification of later communication requests.

It has the benefit of flexibility in that you don't need to worry about id collisions since the server could guarantee uniqueness. It's also exceptionally simple to implement since you already have network comm in your design.

You could also make this id generation / storage a part of your fabrication / qc process so that when you ship new units they have already been provisioned with a unique ID. In this case you would probably use a separate web service for id generation that isn't published externally (so that only devices manufactured by you would have legitimate ids).
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf