Skip to content

my approach to reverse engineer and implement the protocol of the "Crenot Gofit S2" scale

License

Notifications You must be signed in to change notification settings

sroemer/scale-communication

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 

Repository files navigation

scale-communication

This repository cotains my approach to reverse engineer and implement the protocol for communication with a "Crenot Gofit S2" scale in Python by using Bleak.

Once the protocol is understood the scale also can be added to the openScale app.

My scale

  • Device name: Crénot Gofit S2 (new model 2024)
  • Manufacturer: ICOMON (from BLE scanner)
  • Model number: FG2210LB (from BLE scanner)
  • App: Fitdays
  • Chipset: Chipsea (based on Wireshark's name resolution of the devices physical address)

There also seem to be some identical scales with a different branding on the market (for example"Runstar FG2210").

Pictures:

scale packaging

Versions / Changelog

  • v0.3.0: Wait for BIA and verify that weights from different messages match. No BIA data yet.
  • v0.2.0: Wait for weight to stabilize with a timeout and add command line arguments
  • v0.1.1: Use asyncio.sleep() instead of dev. info requests to keep notifications incoming
  • v0.1.0: The client is able to get the weight from the scale.

Communication and data processing

  1. Discover BLE devices
  2. Connect to scale
  3. Activate notifications/indications on characteristics 'FFB2', 'FFB3'
  4. Receive notifications for 'FFB2' (weight measurement) and process data:
  • update weight value from bytes 6-8 (18 lowest bits)
  • if byte 4 is 2 stop updating the values (weight got stable)
  1. If stable weight was received, now wait for 'FFB3' indication (sent when BIA is finished but BIA data not found yet) and process data:
  • if byte 3 is 'a3' save weight value from bytes 5-7 (18 lowest bits)
  1. Verify that weight from 'FFB2' and 'FFB3' messages match

About

my approach to reverse engineer and implement the protocol of the "Crenot Gofit S2" scale

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages