Skip to content

Update device capabilities and versions for FiRa 2.0 - #154

Merged
sameer merged 1 commit into
mainfrom
fira2-caps
Oct 29, 2026
Merged

sameer merged 1 commit into
mainfrom
fira2-caps

Conversation

@sameer

@sameer sameer commented Oct 28, 2026

Copy link
Copy Markdown
Collaborator

Although PR #144 introduced DL-TDoA roles, ranging methods, and active-round limits on top of UCI 2.0, Pica still reported MAC and PHY version 1.3, and DEFAULT_CAPS_INFO retained untyped FiRa 1.1 byte slices. Consequently, capability tag IDs were shifted relative to FiRa 2.0, mandatory FiRa 2.0 tags were missing, and scheduling bitmasks were incorrect.

Bump MAC_VERSION and PHY_VERSION to 2.0, update CapTlvType in PDL and uci.py to FiRa 2.0 tag IDs, and replace DEFAULT_CAPS_INFO with a typed Capabilities struct covering all mandatory FiRa 2.0 and optional DL-TDoA, CCC, and Aliro capabilities.

Closes #146

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request updates the UCI, MAC, and PHY versions to 2.0 and refactors how device capabilities are defined and handled. It introduces a structured Capabilities struct in src/device.rs and updates the CapTlvType enum in both Python and PDL definitions to include new capability types. Additionally, a new test is added to verify these capabilities. The code review feedback is highly constructive and should be fully addressed: it points out an incorrect capability value for ranging_time_struct (which should be 0x01 for block-based scheduling), suggests correcting an inaccurate comment regarding session_key_length, and recommends defining and using enum constants for CCC and Aliro vendor-specific capabilities instead of raw magic numbers in tests.

Comment thread src/device.rs Outdated
Comment thread tests/ranging.py Outdated
Comment thread src/device.rs Outdated
Comment thread py/pica/pica/packets/uci.py
Comment thread tests/ranging.py Outdated
@sameer
sameer force-pushed the fira2-caps branch 3 times, most recently from 26a5510 to 4014abe Compare October 28, 2026 22:31
@sameer
sameer changed the base branch from dl-tdoa to rssi-reporting October 28, 2026 22:32
@sameer
sameer added this pull request to stack #145 October 28, 2026 22:32
@sameer
sameer force-pushed the fira2-caps branch 4 times, most recently from bf68078 to 1dd9646 Compare October 29, 2026 01:35
Base automatically changed from rssi-reporting to main October 29, 2026 01:36
Although PR #144 introduced DL-TDoA roles, ranging methods, and
active-round limits on top of UCI 2.0, Pica still reported MAC and
PHY version 1.3, and DEFAULT_CAPS_INFO retained untyped FiRa 1.1
byte slices. Consequently, capability tag IDs were shifted relative
to FiRa 2.0, mandatory FiRa 2.0 tags were missing, and scheduling
bitmasks were incorrect.

Bump MAC_VERSION and PHY_VERSION to 2.0, update CapTlvType in PDL
and uci.py to FiRa 2.0 tag IDs, and replace DEFAULT_CAPS_INFO with a
typed Capabilities struct covering all mandatory FiRa 2.0 and
optional DL-TDoA, CCC, and Aliro capabilities.

Closes #146
@sameer
sameer merged commit a54aeb4 into main Oct 29, 2026
13 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Report device capabilities using the FiRa 2.0 format

2 participants