Skip to content

Add Runstar R6 scale support#1432

Open
ldoench wants to merge 2 commits into
oliexdev:masterfrom
ldoench:feat/runstar-r6-support
Open

Add Runstar R6 scale support#1432
ldoench wants to merge 2 commits into
oliexdev:masterfrom
ldoench:feat/runstar-r6-support

Conversation

@ldoench

@ldoench ldoench commented Jul 26, 2026

Copy link
Copy Markdown

Adds a handler for the Runstar R6, reverse-engineered from an HCI snoop of the vendor app plus field tests against the device.

Working: live weight, heart rate, impedance, and syncing offline-stored history entries (weigh-ins taken while disconnected).
Not implemented: body composition (fat/water/muscle) — the scale only exposes raw impedance, no derived values.

The R6 shares its FFB0 frame family with the existing RobiS9Handler but is a different, incompatible protocol from the R5 despite the similar name — RunstarR5Handler.supportFor() previously matched any RUNSTAR-* name and would silently swallow R6 devices, so R5 now excludes RUNSTAR-R6 explicitly and R6 is registered ahead of it.

Btsnoop capture attached.

Adds RunstarR6Handler for the Runstar R6, whose FFB0 protocol is
distinct from R5 despite the similar name. Publishes live weight,
heart rate, impedance, and syncs offline-stored history entries.

RunstarR5Handler now excludes "RUNSTAR-R6" explicitly so the two
can't collide; R6 is registered ahead of R5 in ScaleFactory. Also
corrects two stale comments in RobiS9Handler now that the shared
FFB0 checksum and impedance/heart-rate offsets are known.
@ldoench

ldoench commented Jul 26, 2026

Copy link
Copy Markdown
Author

runstar_r6_btsnoop.log

R5 matched any "RUNSTAR-" prefix, which also caught R6 devices.
Restrict it to the known "RUNSTAR-R5"/"RUNSTAR-RX" names instead of
adding an R6-specific exclusion — removes the need for R6 to be
registered ahead of R5, and the collision no longer needs explaining
in RunstarR6Handler's doc.

Also trims two RobiS9Handler comments down to the new finding
(checksum formula, impedance/heart-rate offsets) without pointing at
RunstarR6Handler for the backstory.
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.

1 participant