New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support for Beurer BF 950 #502
Comments
If I have time I will have a look. Maybe it is the same like BF600, see issue #219 |
Thanks, I will read through that other issue. |
I installed the development environment and successfully built the master branch, ready for testing. Will test the |
Debug log with |
@oliexdev to me the log looks like with this modification there is already a lot of communication going on between the scale and the app, and now some kind of authentication is needed. Anything I can do to bring this issue forward? Thanks! |
I also own a Beurer BF 950 scale and am available to help with solving the issue. |
Looking at buying this scale. Any progress on this issue? Would be willing to get one to provide info for adding it to the app. |
@felixandersen not really but the scale use the Bluetooth standard protocol which is good. Unfortunately, somebody has to make some effort to implement the authorization pairing process. I don't own this scale so it is to troublesome to do it on my own. |
@oliexdev Thanks for getting back on the question! I would be willing to put in some hours to get this working. I have limited experience with Java and Android, but somewhat broad development experience in general. What would I need apart from the scale? An android phone or tablet I guess? |
Yes an Android phone or tablet is needed and I would recommend that you have some some basic reverse engineering skills, see https://github.com/oliexdev/openScale/wiki/How-to-reverse-engineer-a-Bluetooth-4.x-scale
It is possible to support this scale. Mainly because it uses the standard Bluetooth protocol, but without the scale it is a bit difficult. |
Great, thanks! I will order the scale and get on it soon. |
But I can't guarantee it if that works, so if you buying this scale it is on your own risk 😉 |
For sure! I expect no support or promises. Just happy if I can contribute. |
I'm also still around to test or provide data. Currently I'm importing the values manually into openScale, which is a bit cumbersome... |
@felixandersen any progress? |
@felixandersen Have you looked into it? What did you find? |
Are there any news for this scale? |
@bcdiaconu See also issue 295, as this scale follows the Bluetooth standard protocol. |
I made support for BF600 and BF850. And I think that BF950 could also work with the same code. If anyone interested to test if BF960 works like BF600 - this is updated build of #753: openScale-2.3.5-debug_bf600_bf850_bf950.zip |
I tested it with my BF 950. Is there anything else you'd like me to try out? Should I try to factory reset the scale? |
@dror3go Thanks for testing my version! Another thing that may help would be btsnoop_hci.log that shows how manufacturer's app creates new users on scale. |
@dror3go |
If someone is interested in testing my latest changes related to BF600, BF850, BF950 and SBF77, then latest automatic debug build is availabe here: openScale-2.3.5-debug.apk, change log in #753. If something does not work or you encounter a crash - I would highly appreciate if you leave me a comment with attached openScale debug log (if possible also btsnoop_hci.log. Instructions how to get logs.) |
Hello, @PiQuer, @felixandersen, @bcdiaconu ! |
@krisjans I have installed your patch. It worked flawlessly to connect to scale. I am using it for a few days now and did not receive any error. I will search for log(s) and upload it here |
@bcdiaconu Thanks for the feedback! May I ask you your help? Could you please create two new users with different activity levels in manufacturers app and collect btsnoop_hci.log? Bluetooth standard does not describe how to set or store "activity level" - and each scale seems to be doing it in it's own way. |
@krisjans I am at work now but I will do that and I will get back to you soon |
@krisjans So, it is really hard to work with original app (at least on my phone) but I managed for the same user to change the activity level. I attached all the logs for that. In scale_data_transfer.log To change the time stamps in my Wireshark capture files to match the time stamps in the log files: If necessary still, I will try creating new users with just different activity. Please let me know. |
@bcdiaconu I'm looking at your btsnoop_hci.log and there is no packets sent from phone to scale. If I set filter |
@krisjans I had a few full days. I have added two users with same name (X1) and all defaults w/ only changed activity level. btsnoop_hci.log |
@bcdiaconu Thanks for the logs! |
@krisjans I have done another try from another newer phone. Took a look at the contents and it seems there are frames both directions between the phone and scale. Hopefully this time you find what you're looking for. |
@bcdiaconu YES! Thank you very much! This time btsnoop_hci.log contains packets in both directions.
|
@krisjans great. I am glad it worked in the end |
@bcdiaconu I think I fixed "activity level" and "request measurement" for BF950. Detailed testing script:
If possible, collect openScale debug log. Any comments welcome! |
@krisjans
Logs: |
@bcdiaconu Thanks for your feedback!
Correct, user initial setting is not yet implemented;
This is difficult to decide. Do I really wanted to delete user from scale? Maybe in scale user selection dialog I accidentally selected a scale user that someone else is using? |
@krisjans the first case is as simple as a pop-up asking if one wants to delete the user also from scale (or only from app) Second could be similar where the user is promoted that Bluetooth device ID out of range and it can only be deleted from app if continued. Could be better options than that. So, if someone else has a better idea we are 2 to welcome |
Anyone willing to help out and test latest changes for #753 on BF950? p.s. @bcdiaconu maybe you would like to help me once more and test this build and provide your comments and debug log? |
Now it throws this exception at convention with scale. Later edit:
|
Exceptions 2 and 3 (same stack trace with different logs but different from exception 1): openScale_2021-08-25_07-43.txt
|
@bcdiaconu Thanks for your help and feedback! Much appreciated!
I'm unable to repeat this crash. Could you describe in more detail what you do when it happens? Sequence of actions? |
@bcdiaconu Thanks for your help! |
Not really sure how to reproduce but I've seen in log (for first exception) that there are a few Steps I remember I've done:
Hopefully this helps |
@bcdiaconu This seems to be the same crash described in #761 (comment) and is unrelated to specific scale (BF950 in this case) support. |
@krisjans looks like it is the same bug I found an improvement/bug with latest patch. If the name starts with a space (possibly also the same applies if it's at the end), when creating the user in scale it will throw an exception. So if my intuition is right, a simple solution would be to trim the (name) string for whitespace(s). Actually this should be applied user creation wise and not only for generating the user initials. Later edit: One thought: at user creation time it should be checked also that the name is not only whitespace(s); or after trim that there is a length of at least 1 char
|
@bcdiaconu Nice catch! The problem was specifically if first character of name was space - in this scenario split() reurned zero lengt string. Oh. but two spaces between name and family name will create the same problem.. |
@bcdiaconu crash with spaces in user name should be fixed for real now (9012419) :D. My latest debug apk. |
@krisjans The app ended with same Generally speaking, it worked as expected; I have added a user with " Dr ddt ", seen as |
I just made a refactoring that might affect BF950. |
@krisjans i have installed your new version a few days ago and I did not get the exception any longer. Only some problems with connection from time to time; possibly 20% connection error rate. The behaviour is that the scale LCD does not lid the Bluetooth icon. And the app does display connecting but does not state connected message. Post comment: this connection behaviour I got also with the original app from beurer. Could not say if it's the same fail rate but seems to be near. Post 2: do you think your modifications could have solved the exception problem or is this coincidental? |
see #753 |
Hi!
Thanks for developing this great app! I recently bought a BF 950 and would like to help getting it supported by OpenScale.
btsnoop_hci_2019-10-05_01.log
date: 2019-10-05
time: 09:21
sex: male
weight: 72.5 kg
body fat: 13.2%
water: 61.7%
muscles: 44.6%
bones: 3.2 kg
btsnoop_hci_2019-10-05_02.log
date: 2019-10-05
time: 11:58
sex: male
weight: 74.7 kg
body fat: 13.0%
water: 60.8%
muscles: 44.1%
bones: 3.3 kg
btsnoop_hci_2019-10-03.log
date: 2019-10-05
time: 12:10
sex: male
weight: 75.8 kg
body fat: 14.9%
water: 60.3%
muscles: 43.8%
bones: 3.3 kg
btsnoop_hci_2019-10-05_04.log
date: 2019-10-05
time: 12:15
sex: male
weight: 77.0 kg
body fat: 14.9%
water: 59.7%
muscles: 43.5%
bones: 3.3 kg
Debug log:
See comment below.
For the first three logs I could not find the corresponding weight values in the data stream, neither in big endian nor little endian format. The last value 77.0 kg is a bit unfortunate: it is 03 02 or 02 03 in hex, there are plenty occurrences, but I think those have to do with the bluetooth protocol rather then the weight value.
Please let me know if I can help by doing more measurements.
The text was updated successfully, but these errors were encountered: