Accurate positioning

Home > Documentation > Datasheet > Register overview

Register overview

General remarks

Communication with the Pozyx device is performed by reading from and writing to certain register addresses. This can be performed through the I2C bus or wirelessly with ultra-wideband. In total 256 register addresses are available, denoted by their hexadecimal value. We can subdivide the address space in a number of logical groups.

Register addresses Description
0x00 - 0x0F Status data
0x10 - 0x2F Configuration data
0x30 - 0x9F Sensor data
0xA0 - 0xFFF Function addresses

The first three groups, i.e., status, configuration and sensor data, are directly pointed to memory. Each address is pointed to a single byte of data. This memory can be accessed by reading or writing to it. All data is internally stored using the little-endian representation. For example, the x-position is a 32bit integer (4 bytes) and is stored at register addresses 0x30 till 0x33. Because we use the little-endian representation the least significant byte of the 32bit integer is stored at address 0x30, the second least significant byte is stored at the address 0x31, and so on. Note that multiple subsequent registers can be read from or written to in one sequence.

The last logical group, the function addresses are not related to memory bytes. Rather, by accessing these registers a function on the pozyx device is triggered. This typically involves writing data (i.e. the function parameters) to that memory address and reading the return value of the function. All data is again represented using the little-endian representation. Note that, unlike the data registers, it is not possible to call multiple subsequent addresses in one call.

Register map

Firmware Version: Download the register header file

The type R represents that an address is read only. R/W represents readable and writable data registers.

Num bytes Type Name Variable
Short description

Status registers
0x01RPOZYX_WHO_AM_Iuint8_tReturns the constant value 0x43.
0x11RPOZYX_FIRMWARE_VERuint8_tReturns the POZYX firmware version.
0x21RPOZYX_HARDWARE_VERuint8_tReturns the POZYX hardware version.
0x31RPOZYX_ST_RESULTuint8_tReturns the self-test result
0x41RPOZYX_ERRORCODEuint8_tDescribes a possibly system error.
0x51RPOZYX_INT_STATUSuint8_tIndicates the source of the interrupt.
0x61RPOZYX_CALIB_STATUSuint8_tReturns the calibration status.

Configuration registers
0x101R/WPOZYX_INT_MASKuint8_tIndicates which interrupts are enabled.
0x111R/WPOZYX_INT_CONFIGuint8_tConfigure the interrupt pin
0x141R/WPOZYX_POS_FILTERuint8_t new - Configure any additional positioning filter
0x151R/WPOZYX_CONFIG_LEDSuint8_tConfigure the LEDs
0x161R/WPOZYX_POS_ALGuint8_tAlgorithm used for positioning
0x171R/WPOZYX_POS_NUM_ANCHORSuint8_tConfigure the number of anchors and selection procedure
0x182R/WPOZYX_POS_INTERVALuint16_tDefines the update interval in ms in continuous positioning.
0x1A2R/WPOZYX_NETWORK_IDuint16_tThe network id.
0x1C1R/WPOZYX_UWB_CHANNELuint8_tUWB channel number.
0x1D1R/WPOZYX_UWB_RATESuint8_tConfigure the UWB datarate and pulse repetition frequency (PRF)
0x1E1R/WPOZYX_UWB_PLENuint8_tConfigure the UWB preamble length.
0x1F1R/WPOZYX_UWB_GAINint8_tConfigure the power gain for the UWB transmitter
0x201R/WPOZYX_UWB_XTALTRIMuint8_tTrimming value for the uwb crystal.
0x211R/WPOZYX_RANGE_PROTOCOLuint8_t new - The ranging protocol
0x221R/WPOZYX_OPERATION_MODEuint8_tConfigure the mode of operation of the pozyx device
0x231R/WPOZYX_SENSORS_MODEuint8_tConfigure the mode of operation of the sensors
0x271R/WPOZYX_CONFIG_GPIO1uint8_tConfigure GPIO pin 1.
0x281R/WPOZYX_CONFIG_GPIO2uint8_tConfigure GPIO pin 2.
0x291R/WPOZYX_CONFIG_GPIO3uint8_tConfigure GPIO pin 3.
0x2A1R/WPOZYX_CONFIG_GPIO4uint8_tConfigure GPIO pin 4.

Positioning data
0x304R/WPOZYX_POS_Xint32_tx-coordinate of the device in mm.
0x344R/WPOZYX_POS_Yint32_ty-coordinate of the device in mm.
0x384R/WPOZYX_POS_Zint32_tz-coordinate of the device in mm.
0x3C2RPOZYX_POS_ERR_Xint16_testimated error covariance of x
0x3E2RPOZYX_POS_ERR_Yint16_testimated error covariance of y
0x402RPOZYX_POS_ERR_Zint16_testimated error covariance of z
0x422RPOZYX_POS_ERR_XYint16_testimated covariance of xy
0x442RPOZYX_POS_ERR_XZint16_testimated covariance of xz
0x462RPOZYX_POS_ERR_YZint16_testimated covariance of yz

Sensor data
0x4E2RPOZYX_MAX_LIN_ACCuint16_t new - Maximum linear acceleration
0x504RPOZYX_PRESSUREuint32_tPressure data
0x542RPOZYX_ACCEL_Xint16_tAccelerometer data (in mg)
0x5A2RPOZYX_MAGN_Xint16_tMagnemtometer data
0x602RPOZYX_GYRO_Xint16_tGyroscope data
0x662RPOZYX_EUL_HEADINGint16_tEuler angles heading (or yaw)
0x682RPOZYX_EUL_ROLLint16_tEuler angles roll
0x6A2RPOZYX_EUL_PITCHint16_tEuler angles pitch
0x6C2RPOZYX_QUAT_Wint16_tWeight of quaternion.
0x6E2RPOZYX_QUAT_Xint16_tx of quaternion
0x702RPOZYX_QUAT_Yint16_ty of quaternion
0x722RPOZYX_QUAT_Zint16_tz of quaternion
0x742RPOZYX_LIA_Xint16_tLinear acceleration in x-direction
0x7A2RPOZYX_GRAV_Xint16_tx-component of gravity vector
0x7C2RPOZYX_GRAV_Yint16_ty-component of gravity vector
0x7E2RPOZYX_GRAV_Zint16_tz-component of gravity vector

General data
0x811RPOZYX_DEVICE_LIST_SIZEuint8_tReturns the number of devices stored internally
0x822RPOZYX_RX_NETWORK_IDuint16_tThe network id of the latest received message
0x841RPOZYX_RX_DATA_LENuint8_tThe length of the latest received message
0x851R/WPOZYX_GPIO1uint8_tValue of the GPIO pin 1
0x861R/WPOZYX_GPIO2uint8_tValue of the GPIO pin 2
0x871R/WPOZYX_GPIO3uint8_tValue of the GPIO pin 3
0x881R/WPOZYX_GPIO4uint8_tValue of the GPIO pin 4

Register Functions

Param bytesReturn bytes NameShort description
0xB001POZYX_RESET_SYSReset the Pozyx device
0xB111POZYX_LED_CTRLControl LEDS 1 to 4 on the board
0xB22-1001POZYX_TX_DATAWrite data in the UWB transmit (TX) buffer
0xB331POZYX_TX_SENDTransmit the TX buffer to some other pozyx device
0xB40<=100POZYX_RX_DATARead data from the UWB receive (RX) buffer
0xB521POZYX_DO_RANGINGInitiate ranging measurement
0xB601POZYX_DO_POSITIONINGInitiate the positioning process.
0xB7321POZYX_POS_SET_ANCHOR_IDSSet the list of anchor ID's used for positioning.
0xB8033POZYX_POS_GET_ANCHOR_IDSRead the list of anchor ID's used for positioning.
0xB901POZYX_FLASH_RESETReset a portion of the configuration in flash memory
0xBA>=11POZYX_FLASH_SAVEStore a portion of the configuration in flash memory
0xBB121POZYX_FLASH_DETAILSReturn information on what is stored in flash

Device list functions
0xC0<=2<=41POZYX_DEVICES_GETIDSGet all the network IDs's of devices in the device list.
0xC131POZYX_DEVICES_DISCOVERObtain the network ID's of all pozyx devices within range.
0xC211POZYX_DEVICES_CALIBRATEObtain the coordinates of the pozyx (anchor) devices within range.
0xC301POZYX_DEVICES_CLEARClear the list of all pozyx devices.
0xC4151POZYX_DEVICE_ADDAdd a pozyx device to the devices list
0xC5224POZYX_DEVICE_GETINFOGet the stored device information for a given pozyx device
0xC6212POZYX_DEVICE_GETCOORDSGet the stored coordinates of a given pozyx device
0xC729POZYX_DEVICE_GETRANGEINFOGet the stored range inforamation of a given pozyx device
0xC83<=40POZYX_CIR_DATAGet the channel impulse response (CIR) coefficients