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;xxis the type of board:0x09for GINA (a '9' looks like a 'g')0x0bfor GINA basestation0xebfor TelosB0xe3for EUI64 Numbering Convention (a '3' looks like an 'm' rotated sideways)
yy-yyis the version:0x022bfor a GINA 2.2b0x022cfor a GINA 2.2c0x0301for a MSP1 basestation (a '3' looks like an 'm' rotated sideways)0x1000for an EUI64 Numbering Convention 1.0.00x0000for an EUI64 Numbering Convention 1.0.0
zz-zzis 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.