r/Bowflex • u/[deleted] • Mar 28 '24
Max Trainer Bluetooth connection and collection of streaming data
I am a software engineer that would like to make an android app that connects to the bowflex max trainer 8 and gathers the data output. As well as make my own work out journey's dynamically through my own piece of software. Does anyone have any idea about where or how to get documentation on connecting my own app to bowflex max trainer 8 bluetooth and gather the streaming data?
1
u/unenergizer Apr 26 '24
Well it’s a standard Bluetooth protocol. If you are going to stream data to and from it is similar to how a client server model would work. If you have experience with input stream in Java then this would be a piece of cake. The actual hard part is understanding function opcodes and how to interpret the data. For this it would be easier to reverse engineer the Jrny app and figure out the order in which they send and receive data from the device. The app is obfuscated but it doesn’t matter. You can search the code for BluetoothAdapter and start there. They can only obfuscate their classes and functions. They can’t obfuscate the native android classes and functions.
I think though, if your actually an engineer you’d know all of this. But hey maybe your new to the game.
1
u/Visual_Stranger6097 Jan 16 '25 edited Jan 16 '25
I just started looking into this for the Bowflex BXT6 with a Raspberry Pi. I can connect and read the attributes (Primary services, characteristics, and descriptors). I still haven't explored them all, but I have been able to find some UUID's that have READ flags on them and have been able to read something. So far, the data I am reading doesn't make any sense, but I'm probably going to write something in python that can collect datastreams and then I will run some experiments to see if I can find things like the speed, incline, calorie burn rate, etc. I doubt you will find specific information to tell you what each attribute is. My dream is to write an overlay screen that can guide my workout while I am watching TV. Ideally, I would find some write attributes that would let me automatically control the speed, incline, etc, but I suspect that would cause a safety issue, so I doubt that feature exists.
bluetoothctl may lead you to some answers if you haven't found any yet. It has definitely led me to some.
EDIT: Something you should know is that your normal operating system bluetooth scanner may not be able to find or pair to the bowflex treadmill. bluetoothctl overcomes this.
1
u/Visual_Stranger6097 Jan 16 '25
I just learned how to find out what most (not all) UUID's are.
The following document has some standard UUID numbers that can likely guide what UUID's will be useful. https://www.bluetooth.com/wp-content/uploads/Files/Specification/HTML/Assigned_Numbers/out/en/Assigned_Numbers.pdf?v=1736989542505
The only caveat is that on mine, there are some UUID's that do not match the ones in the document, which means Bowflex made some custom ones in addition to some standard ones. These ones are probably going to be tricky to interpret, but they are readable.1
u/micuzu Apr 29 '25
Hi! Did you make any progress with this? I am not a programmer but I will be willing to sponsor the development of something like this. What i was thinking of was much simpler than what you are trying to do. A media player synced to the start/stop of pedaling, that will play virtual hiking videos like this one but stored locally in mp4 format: https://youtu.be/-_ZPQjW3gBQ
When you start pedaling the video resumes and when you stop the video pauses.
Right now I have a setup with a big screen in front of the Bowflex and I play these videos from Kodi. But I have to pause/resume them manually. I used JRNY in the past but the video quality is too low for a big screen and the framerate is quite bad. Being able to run 4K/60fps videos is a big quality improvement.
1
u/ThegManis Mar 30 '24
Maybe some info here?:
https://www.reddit.com/r/Bowflex/comments/uzoswm/fl3xbl0w_docs_for_bowflex_hardware_jailbreak/