EUI64 Numbering Convention
IEEE 802.15.4 assumes that each node has a unique 64-bit identifier called its Extended Unique Identifier, or EUI-64. The Atmel radio does not contain such an identifier; it is up to the firmware to assign it. The first three bytes of the EUI-64 is called the Organizationally Unique Identifier (OUI), an address space managed by the IEEE. You can browse that registry at http://standards.ieee.org/regauth/oui/ or print the full list. For example, any product manufactured by Dust Networks has an EUI64 which starts with 0x00170D
.
The Pister lab is not a company, so we decided to assign ourselves the unused OUI 0x141592
, the first six decimals of π. Furthermore, we encode the board type and version in the EUI-64, as well as its identifier. The format of the EUI-64 we use is:
14-15-92-xx yy-yy-zz-zz
Where:
14-15-92
(six first decimals of π) is the "made up" 3B Organizationally Unique Identifier (OUI) of the Pister lab;xx
is the type of board:0x09
for GINA (a '9
' looks like a 'g
')0x0b
for GINA basestation0xeb
for TelosB0xe3
for EUI64 Numbering Convention (a '3
' looks like an 'm
' rotated sideways)
yy-yy
is the version:0x022b
for a GINA 2.2b0x022c
for a GINA 2.2c0x0301
for a MSP1 basestation (a '3
' looks like an 'm
' rotated sideways)0x1000
for an EUI64 Numbering Convention 1.0.00x0000
for an EUI64 Numbering Convention 1.0.0
zz-zz
is the unique identifier of the board, i.e. the one labeled on the board, in hexadecimal format
As a result, if you see in the air a packet coming from
14-15-92-0g-02-2c-00-0f
You know that it's a GINA 2.2c mote, address 0x000f
.
The MSP430f2618 features 64B of flash memory which are not erased during programming. It already contains calibration data for the DCO and ADC in TLV format (see the MSP430x2xx Family User's guide, chapter 22). There are 8 unused bytes at absolute address range 0x10ee-0x10f5
, which we use to store the EUI-64 address of our mote. Storing the EUI-64 in non-erasable flash allows all our board to run the exact same firmware.