Change theme
Help
Press space for more information.
Show links for this issue (Shortcut: i, l)
Copy issue ID
Previous Issue (Shortcut: k)
Next Issue (Shortcut: j)
Sign in to use full features.
Vote: I am impacted
Notification menu
Refresh (Shortcut: Shift+r)
Go home (Shortcut: u)
Pending code changes (auto-populated)
View issue level access limits(Press Alt + Right arrow for more information)
Attachment actions
Unintended behavior
View staffing
Description
Version used: 1.0.0-alpha02
Devices/Android versions reproduced on: Android 13 Beta
Greetings!
I am currently evaluating the usage of the UWB capabilities of the Pixel 6 Pro.
For now, I am trying to get double-sided two-way ranging between a DW3210 on a DW3000 Evaluation Board, mounted on a nucleo-F429ZI (or a nucleo-WB55RG, I tried both) and the smartphone to work, but I am having a hard time matching the necessary parameters.
As Qorvo stated, the Pixel 6 Pro uses a DW3720 transceiver - I also entered the Android 13 Beta and am using the core.uwb package. I added the interface of my Qorvo firmware as attachment.
As intended, I can only use one set of ranging parameters, described as:
/**
* Pre-defined unicast STATIC STS DS-TWR ranging.
* deferred mode,
* ranging interval = 240 ms,
* slot duration = 2400 RSTU,
* slots per ranging round = 6
* All other MAC parameters use FiRa/UCI default values.
* <p> Typical use case: device tracking tags
*/
Seems like I have to make use of static STS with lots of unknown parameters. I guess I can find the correct preamble length and similar rather simple data by trying around a lot, but especially the STS key is worrying me.
I was having a look at the parameters I can set in the RangingParameters class.
- uwbConfigType is fixed as described above
- sessionId can be set freely, but should match on both devices and there is no such parameter in the graphical interface above
- sessionKeyInfo is a tricky parameter. The documentation states it needs to be an array of 8 Bytes - two Bytes as Vendor_ID and six Bytes as STATIC_STS_IV
- complexChannel defines the channel and the preamble code, currently I am using channel 5 and preamble 9 for developing
- peerDevices is a list of length 1, the MAC address of my DW3210 I can define myself
- updateRate is predefined and depends of the state of the screen, nothing to worry about (I guess)
An STS key is mentioned nowhere. I guess the sessionKeyInfo has something to do with the encryption, as the code comments stated, but this surely is not the raw STS key, is it?
Where do I get the Vendor_ID and the STATIC_STS_IV from? Are they some kind of system variable and loaded automatically if referenced correctly, or maybe do I have to find them in the DW3210?
Am I missing something? I can not grasp how the different parameters of both APIs relate to each other.
Sincerely,
Nicolas Kohnert
ZIGPOS GmbH