One of the main issues with the BSX sensor is the need for an internet connection, a phone with their app and most importantly that their servers are online. So when the company finally shuts down, the users are out of luck and the device is worthless. BSX Insight has been formally discontinued already. We got a taste of what will happen a couple of weeks ago when the servers mysteriously went dark for a few days and the sensor became a brick.
Proposal: Simulate the Bluetooth packets that the BSX Insight app sends out to start the sensor transmitting O2 data.
The Android app is able to start the sensor (with the above requirements), so I asked myself-why can't we hack something together to do the same. I did have concerns that the protocol was very proprietary and/or encrypted. But it turned out to be very simple after all. Using the following method you will no longer need an intact BSX internet presence, will not need the BSX app, but will need an android phone or tablet.
Lets go over the requirements and procedure. You will need an android device with low energy bluetooth which means pretty much anything produced these days. Perhaps an Iphone/PC would work and if requested, I will give some tips for those interested.
Go to the Google play store and install NRF connect
Make sure your Bluetooth is turned on.
Open NRF connect and you will be presented with:
Note all of the devices including my Assioma power meter. Press the connect button next to Insight
The next screen below shows the window after choosing Insight:
We want to modify "Unknown Service", so click on that.
The "Unknown Service" window is below:
The next step is the important one, we are going to write a value to the Insight that will turn it on, and the red leds will start flashing. Your ANT+ devices (Garmin watch, Ant+ phone, etc) will then start reading the sensor data.
You will need to click the up arrow on the "Characteristic" that is writable
I looked at the Bluetooth logs between my android device and the Insight and the value that seems to be sent is "040100"
Enter it as the above photo shows, then press send
That should do it!
The led lights should be flashing and the sensor is putting out Ant+ data.
A couple of notes. This turns it on, not off. I'm sure I could figure out the off, but it's easy to either put it in the cradle or just reboot the sensor with a magnet, which ultimately will leave it off.
It is possible to make a "macro" with the NRF app to start the sensor just after the connect step.
Addendum: I recently bought a spare unit on ebay. The usual "code" mentioned above did not work for activation, but luckily the BSX app still was able to start the device. After some bluetooth snooping, the code for starting this particular batch was a bit different:
As indicated, instead of 0401, it uses 0402 to start the leds. The off code was the same.
Part 2 is next- Macros to speed up the process