Open teeks99 opened 4 years ago
The plastic casing is identical to a 1byone CF398BLE, which is supported and works. I doubt its a coincidence that they have the same model number.
Try it, but make sure to have bare feet and step on the metal pads or it won't work.
Is there a quick way to add my LFScale [ED:67:37:76:71:51]
so that it can be interpreted as a 1byone CF398BLE?
Yes, just copy the onebyone if block from here; https://github.com/oliexdev/openScale/blob/master/android_app/app/src/main/java/com/health/openscale/core/bluetooth/BluetoothFactory.java#L90
Add a new block (or an OR) with a name of "LFScale" should to the job.
Yeah, looking at the data dumps you've provided, it matches onebyone.
The actual block you are looking for starts at the 5th byte (always 0xCF). The last byte is the checksum of the 5th byte onward. The first 2 bytes AFTER the CF is the impedance (you will want to look at the open pull requests, because there were some errors in the onebyone calculations). Next 2 bytes are the weight. Next 3 bytes are unknown, but you can see how wildly they swing, so they're not impedance even though they've been used as so. I don't know what the next byte (always 0x01 in your samples) means. The final data byte goes to 0x01 if the impedance is invalid.
Sawpy CF398BLE
I can find no information online about this scale other than the Amazon page I got it from
Step 1: Read the general reverse engineer process
Step 2: Acquiring some Bluetooth traffic (sorry, I started using lbs instead of kgs so files are names as such, all conversions are done below)
Bluetooth HCI Snoop log file
user settings in the vendors app:
measured true values in the vendors app for the 1. HCI Snoop log file:
Bluetooth HCI Snoop log file
user settings in the vendors app:
measured true values in the vendors app for the 2. HCI Snoop log file:
Bluetooth HCI Snoop log file
user settings in the vendors app:
measured true values in the vendors app for the 3. HCI Snoop log file:
Bluetooth HCI Snoop log file
user settings in the vendors app:
measured true values in the vendors app for the 4. HCI Snoop log file:
Bonus - changing weight during measurement...
I kept the weight changing during the measurement to see differences come in across the packets. I started with drastic changes, stepping partially off the scale. Towards the end just shifting my weight around kept it from completing the measurement and sending data.
I had socks on so no other measurements were taken.
Bonus - changing units on scale...
.... didn't have any impact on the weight measurement in the data stream.
Light Weight Child
Medium Weight Woman
Next Day
Step 3: Discover Bluetooth services and characteristic
openScale_2020-05-28_15-07.txt
Scale Images
Weight Determination
For the second example, with of measurement of 88.6kg, I got the data
The (swapped)
22:9c
is 8860, matching 88.6. These 8&9 bytes of the payload were always the weight for any valid data packets received.Other Data
The app also reports "Bone Mass", "Body Fat %", "Muscle Mass", "Body Water %", "Visceral Fat", "BMI", and "BMR". Some must certainly be calculated by the app, but not sure which.
It appears there is no time/date stamp in here, unless that last byte is some kind of sub-second time. It seems to change with every unique measurement.
Hopefully someone else can make more sense of these than I could.