I use a SmartLab W scale, which supports Ant+ and BLE.  I use this with my Garmin 510 (Bicycle computer), however the process is real clunky to have to remove the 510 from my bike, wait for it to start, navigate to the weight scale menu option, then turn on the scales, weigh my self, and hope the 510 connected and received the messages.

So, I wrote another device to MQTT service that uses a Suunuto Ant+ receiver to talk to the scales.

My development was based on the work of Johannes Bader, https://johannesbader.ch/blog/track-your-heartrate-on-raspberry-pi-with-ant/.  I started using his python example (communicating with a heart rate monitor) and converting that to work with the scales.  I assumed the Ant+ receiver had to be close to the scales, so my original plan was to stick with the original python and run it on a Raspberry Pi Zero W placed in the bathroom, close to the scales.  However, the Suunuto receiver could read the weight scales from my office, more than 5 meters away, so the plan changed to run it on my “always on” Windows 10 “server” box – not a real server, just hosting my My Movies database, and other services.

So, the project turned into a .Net C# Windows Service.  The code for it is here –  Github MQTT_AntScale.Net.  The old python code is here Github MQTT_ant_scale – it only reads the scale – the MQTT part is not coded.

The code doesn’t run without the Ant+ SDKs.  The contents of the bin directory is required from the SDK.  The NetworkKey is required for the config file.  This is “proprietary” information, but it is free to join (thisisant.com) and download the information.  The NetworkKey, which defines the network Ant+ devices communicate on, is also available for free once you’ve signed up (and it is published in many places on the ‘net).

 

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.