Goal
After the base Buds management transport in #2 is physically proven, determine whether GalaxyBridge can expose Galaxy Buds2 Pro spatial-sensor/head-tracking data without rebuilding the protocol from zero.
Dependency
HARD BLOCKED until #2 proves a stable, non-destructive management RFCOMM path on the owner's physical SM-R510 while iPhone audio remains usable.
REUSE-FIRST SOURCE
APPROVED_FOR_ADAPTATION
timschneeb/BudsPro-Headtracking
- license: MIT
- pinned snapshot:
63b321aa0536fd28233eaaf3a05c4f3b3f8201fe
- reusable semantics:
- modern
0xFD ... CRC16-CCITT ... 0xDD packet framing
- spatial enable message
0x7C
- spatial data message
0xC2
- spatial control message
0xC3
- attach / detach / keepalive controls
0 / 1 / 4
- gravity quaternion event
32
- signed 16-bit quaternion extraction / 10000 scaling
Do not port its Python Bluetooth/thread architecture. Adapt the small protocol/state machine into GalaxyBridge Kotlin only after R4 establishes the correct SM-R510 transport/service.
REFERENCE_ONLY
timschneeb/GalaxyBudsClient — GPLv3
- current Buds2 Pro spec declares
SpatialSensor and firmware-gated HeadTracking
- use only to cross-check capability/message behavior
Freeyourgadget/Gadgetbridge — AGPLv3
- old Galaxy Buds protocol independently documents spatial-audio enable/control command families
- no code copy
Critical compatibility warning
The MIT head-tracking project was originally built for Galaxy Buds Pro and later broadened service-name matching for Buds2-family FACTORY RFCOMM records. Public issue reports include Buds2 Pro sessions that connect but then stutter/disconnect without stable spatial data.
Therefore source existence is NOT a hardware PASS for SM-R510.
PoC after #2
- use the exact stable RFCOMM service selected by the R4 hardware result
- send only the documented spatial enable + attach sequence
- require explicit attach ACK
- enforce bounded keepalive/retry behavior
- parse quaternion frames with strict length/CRC checks
- record frame rate/jitter/dropout for at least 5 minutes
- verify audio remains usable on iPhone
- detach/disable cleanly
Safety
- no gyro calibration/reset/debug-reset commands
- no firmware writes
- no unknown message IDs
- no brute-force/fuzzing
Classification
Final recommendation after hardware test:
HEAD_TRACKING_STABLE
HEAD_TRACKING_UNSTABLE
HEAD_TRACKING_UNSUPPORTED_ON_CURRENT_SM_R510
PM handoff
Implementation agent must report model/effort, branch, baseline/final HEAD, commits/files, commands, build/tests, exact physical evidence, frame-rate/jitter/dropout measurements, owner steps, risks and final git status, then STOP without merging or starting another task.
Goal
After the base Buds management transport in #2 is physically proven, determine whether GalaxyBridge can expose Galaxy Buds2 Pro spatial-sensor/head-tracking data without rebuilding the protocol from zero.
Dependency
HARD BLOCKED until #2 proves a stable, non-destructive management RFCOMM path on the owner's physical SM-R510 while iPhone audio remains usable.
REUSE-FIRST SOURCE
APPROVED_FOR_ADAPTATION
timschneeb/BudsPro-Headtracking63b321aa0536fd28233eaaf3a05c4f3b3f8201fe0xFD ... CRC16-CCITT ... 0xDDpacket framing0x7C0xC20xC30 / 1 / 432Do not port its Python Bluetooth/thread architecture. Adapt the small protocol/state machine into GalaxyBridge Kotlin only after R4 establishes the correct SM-R510 transport/service.
REFERENCE_ONLY
timschneeb/GalaxyBudsClient— GPLv3SpatialSensorand firmware-gatedHeadTrackingFreeyourgadget/Gadgetbridge— AGPLv3Critical compatibility warning
The MIT head-tracking project was originally built for Galaxy Buds Pro and later broadened service-name matching for Buds2-family
FACTORYRFCOMM records. Public issue reports include Buds2 Pro sessions that connect but then stutter/disconnect without stable spatial data.Therefore source existence is NOT a hardware PASS for SM-R510.
PoC after #2
Safety
Classification
Final recommendation after hardware test:
HEAD_TRACKING_STABLEHEAD_TRACKING_UNSTABLEHEAD_TRACKING_UNSUPPORTED_ON_CURRENT_SM_R510PM handoff
Implementation agent must report model/effort, branch, baseline/final HEAD, commits/files, commands, build/tests, exact physical evidence, frame-rate/jitter/dropout measurements, owner steps, risks and final git status, then STOP without merging or starting another task.