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.
|0x00 - 0x0F
|0x10 - 0x2F
|0x30 - 0x9F
|0xA0 - 0xFFF
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.
The type R represents that an address is read only. R/W represents readable and writable data registers.
|0x14||1||R/W||POZYX_POS_FILTER||uint8_t|| new - Configure any additional positioning filter|
|0x18||2||R/W||POZYX_POS_INTERVAL||uint16_t||Defines the update interval in ms in continuous positioning.|
|0x1D||1||R/W||POZYX_UWB_RATES||uint8_t||Configure the UWB datarate and pulse repetition frequency (PRF)|
|0x1F||1||R/W||POZYX_UWB_GAIN||int8_t||Configure the power gain for the UWB transmitter|
|0x30||4||R/W||POZYX_POS_X||int32_t||x-coordinate of the device in mm.|
|0x34||4||R/W||POZYX_POS_Y||int32_t||y-coordinate of the device in mm.|
|0x38||4||R/W||POZYX_POS_Z||int32_t||z-coordinate of the device in mm.|
|0x3C||2||R||POZYX_POS_ERR_X||int16_t||estimated error covariance of x|
|0x3E||2||R||POZYX_POS_ERR_Y||int16_t||estimated error covariance of y|
|0x40||2||R||POZYX_POS_ERR_Z||int16_t||estimated error covariance of z|
|0x42||2||R||POZYX_POS_ERR_XY||int16_t||estimated covariance of xy|
|0x44||2||R||POZYX_POS_ERR_XZ||int16_t||estimated covariance of xz|
|0x46||2||R||POZYX_POS_ERR_YZ||int16_t||estimated covariance of yz|
|0x74||2||R||POZYX_LIA_X||int16_t||Linear acceleration in x-direction|
|Param bytes||Return bytes
||Name||Short description |
|0xB2||2-100||1||POZYX_TX_DATA||Write data in the UWB transmit (TX) buffer|
|0xB3||3||1||POZYX_TX_SEND||Transmit the TX buffer to some other pozyx device|
|0xB4||0||<=100||POZYX_RX_DATA||Read data from the UWB receive (RX) buffer|
Device list functions
|0xC8||3||<=40||POZYX_CIR_DATA||Get the channel impulse response (CIR) coefficients|