XBee 16-bit vs 64-bit addressing

Digi XBee 2.4GHz devices work on the 802.15.4 MAC layer, which utilizes 16-bit and 64-bit addresses. This article will explain the differences between the two address types and how they are implemented on the different XBee 2.4GHz network protocols. 

64-bit device addresses 

The 64-bit address is a device address which is unique to each physical device, using 16 hexadecimal characters, with each characters representing a byte. It is sometimes also called the MAC address or extended address and is assigned during the manufacturing process. The first 8 bytes of Digi XBee devices are always 0x0013A200. 

16-bit addresses 

The 16-bit addresses are dynamically assigned, either by the user or the network coordinator (depending on the network protocol). The 4 bytes range from 0x0000 to 0xFFFF 


A device receives a 16-bit address when it joins a Zigbee network. For this reason, the 16-bit address is also called the network address. The 16-bit address of 0x0000 is reserved for the coordinator. All other devices receive a randomly generated address from the router or coordinator device that allows the join. The 16-bit address can change under certain conditions: 

  • An address conflict is detected where two devices are found to have the same 16-bit address 

  • A device leaves the network and later joins (it can receive a different address) 

All Zigbee transmissions are sent using the source and destination 16-bit addresses. The routing tables on Zigbee devices also use 16-bit addresses to determine how to route data packets through the network. However, since the 16-bit address is not static, it is not a reliable way to identify a device. 

To solve this problem, the 64-bit destination address is often included in data transmissions to guarantee data is delivered to the correct destination. The Zigbee stack can discover the 16-bit address, if unknown, before transmitting data to a remote. However, this network discovery adds latency to the transmission. 


16-bit addressing is unused in DigiMesh networks, and any fields that require it will usually be set to 0xFFFE.  


In order to send a transmission using 16-bit addressing, the DL (destination lower address) of the transmitting radio must match the source address (MY) of the receiving radio. MY can be set anywhere from 0x0 to 0xFFFD. The DH parameter must be left at its default DH=0x0. To send a Broadcast message set DH=0x0 and DL=0xFFFF. 

In order to send a message to a particular module’s 64-bit address set the DH & DL of the transmitter to the SH & SL of the receiver (where DH=SH & DL=SL). 

One may wish to disable the 16 bit addressing, and force the use of the 64 bit address. To disable, set MY=0xFFFF or MY=0xFFFE. 

Last updated: Dec 14, 2023

Filed Under

GatewaysRFRF Dev kits

Recently Viewed

No recently viewed articles

Did you find this article helpful?