XBeeāPRO®900HP/XBeeāPRO®XSCī ±RFī ±Modules
©2014DigiInternationalInc. 85
A module with sleep enabled will transmit periodic I/O samples at the IR rate until the ST time expires and the 
device can resume sleeping. See the sleep section for more information on sleep.
Digital I/O Change Detection
Modules can be configured to transmit a data sample immediately whenever a monitored digital   I/O pin 
changes state. The IC command is a bitmask that can be used to set which digital I/O lines should be 
monitored for a state change. If one or more bits in IC is set, an I/O sample will be transmitted as soon as a 
state change is observed in one of the monitored digital I/O lines. The figure below shows how edge detection 
can work with periodic sampling.
General Purpose Flash Memory
XBee-PRO 900HP modules provide 119 512-byte blocks of flash memory which can be read and written by the 
user application.  This memory provides a non-volatile data storage area which can be used for a multitude of 
purposes.  Some common uses of this data storage include: storing logged sensor data, buffering firmware 
upgrade data for a host microcontroller, or storing and retrieving data tables needed for calculations 
performed by a host microcontroller.  The General Purpose Memory (GPM) is also used to store a firmware 
upgrade file for over-the-air firmware upgrades of the XBee module itself.
Accessing General Purpose Flash Memory
The GPM of a target node can be accessed locally or over-the-air by sending commands to the 
MEMORY_ACCESS cluster ID (0x23) on the DIGI_DEVICE endpoint (0xE6) of the target node using explicit API 
frames.  (Explicit API frames are described in the API Operation section.
To issue a GPM command the payload of an explicit API frame should be formatted in the following way:
Byte Offset in 
Payload
Number of 
Bytes
Field Name General Field Description
0
1 GPM_CMD_ID Specific GPM commands are described below
1
1 GPM_OPTIONS Command-specific options
2
2* GPM_BLOCK_NUM The block number addressed in the GPM
4
2*
GPM_START_INDEX The byte index within the addressed GPM 
block
6
2*
GPM_NUM_BYTES The number of bytes in the GPM_DATA field, 
or in the case of a READ, the number of bytes 
requested
8
varies GPM_DATA