मुझे संदेह है कि ऊनो पर यूएसबी इंटरफ़ेस आपको एक अद्वितीय सीरियल नंबर देता है। कोई भी संख्या चिप पर अपलोड किए गए कोड का हिस्सा होगी जो कि कई यूनो के बीच समान होगी।
एक दृष्टिकोण DS2401 "सिलिकॉन सीरियल नंबर" चिप है जो वन-वायर इंटरफ़ेस का उपयोग करता है। यह केवल एक मुफ्त पिन की आवश्यकता होगी, और कुछ कोड (कोड समस्या होगी, संभवतः)।
कम से कम घुसपैठ विधि, और शायद सबसे विश्वसनीय, बस कोड को वापस पढ़ना और इसे जांचना होगा। यह वही है जो मैं अपने चिप हस्ताक्षर डिटेक्टर के साथ करता हूं । हालाँकि यह केवल बूटलोडर हस्ताक्षर का पता लगाता है (जैसा कि वर्तमान में लिखा गया है)। एक मामूली बदलाव और यह संपूर्ण स्केच कोड को एमडी 5-सम कर सकता है।
उदाहरण आउटपुट:
Signature detector.
Written by Nick Gammon.
Signature = 1E 95 0F
Fuses
Low = FF High = D6 Ext = FF Lock = CF
Processor = ATmega328P
Flash memory size = 32768
Bootloader in use: Yes
EEPROM preserved through erase: Yes
Watchdog timer always on: No
Bootloader is 512 bytes starting at 7E00
Bootloader:
7E00: 02 01 02 03 0405 06 07 08 09 0A 0B 0C 0D 0E 0F
7E10: 02 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
7E20: 02 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
7E30: 02 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
...
7FB0: 02 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
7FC0: 02 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
7FD0: 02 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
7FE0: 02 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
7FF0: 02 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
MD5 sum of bootloader = 56 72 75 2D 5D B5 0D BA 25 10 DF BE 87 D2 A1 27
एमडी 5 राशि (अंतिम पंक्ति) प्रभावी रूप से उस विशेष बूटलोडर के हस्ताक्षर हैं। वास्तव में सबसे हाल का संस्करण उन्हें एक तालिका में दिखता है:
MD5 sum of bootloader = FB F4 9B 7B 59 73 7F 65 E8 D0 F8 A5 08 12 E7 9F
Bootloader name: optiboot_atmega328
तो आप क्या कर सकते हैं, एक स्केच अपलोड करते समय, हेक्स कोड का एमडी 5 योग उत्पन्न करें। ऐसा करने के काफी सरल तरीके हैं। तब आप अपने स्रोत कोड पर "गिट टैग" ऑपरेशन कर सकते थे, और फिर (कुछ स्वचालित या मैनुअल प्रक्रिया का उपयोग करके) याद रखें कि हेक्स कोड का एक विशेष एमडी 5 योग एक विशेष क्षण में स्केच कोड का प्रतिनिधित्व करता है।
डेटाबेस के कुछ प्रकार:
Chip: Uno
MD5 sum: D8 8C 70 6D FE 1F DC 38 82 1E CE AE 23 B2 E6 E7
Sketch: My_robot_sketch_42.ino
Git tag: version666
अब बोर्ड से स्रोत का पता लगाने के लिए, आप कोड के एमडी 5 योग (बोर्ड से इसे वापस पढ़कर) स्थापित करते हैं और फिर इसे अपने डेटाबेस में देखते हैं।