ANT+ is a wireless communication protocol that allows near range communication between devices, primarily used within wearable health monitoring products. The ANT+ Toolkit allows LabVIEW to communicate with these devices, making developing and testing of hardware simple.
The ANT+ platform allows devices to communicate with each other using the same “rules”, as such devices from different manufacturers will work together seamlessly. The protocol consists of 2 parts, the message protocol and the individual device protocols.
This defines the rules of the ANT+ platform and is the basis for every device that supports ANT+. It defines the message format in terms of structure and also how each packet should be transmitted. All the “system” level messages (i.e. those that are not profile specific) are defined in this document along with how and when they should be used.
The profiles define how to communicate with different devices that perform different functions and are what makes ANT+ interoperable with devices from different manufacturers. Each profile documents what data is sent to and from the device and what control messages are required to operate the device.
There are a wide variety of profiles currently published, with more being released every year.
The main issue faced was how to use LabVIEW to communicate with an ANT+ device, in an easy to use way that doesn’t require an in-depth knowledge of the protocol itself. When you get into he details, there are a significant number of steps that you have to go through to connect to a device, before you even start receiving any data.
We wanted to “hide” these steps from the user, while at the same time allowing advanced users to get into the details if they wanted to.
To implement the message protocol side of ANT it is possible to call the installed .dll library within LabVIEW and use those functions through Windows. We decided against this for 2 main reasons:
- This makes the solution platform dependent, i.e. it will only work on the Window OS
- It potentially adds complications if anything to do with Windows changes, or if NI changes how dlls are accessed from within LabVIEW
While this is by far the easiest way to implement the solution, the potential issues it could cause rules it out of consideration. Instead we decided to implement a solution based on the sending of the actual message strings, allowing a system independent solution that is transparent to the user.
For this we used our “One VI One Task” philosophy to allow maximum flexibility and included error checking, automatic retry for failed message delivery and standard connector panes for quick and easy wiring.
You can find the details of the ANT+ Toolkit implementation here
To implement the profiles we again chose to use the raw data sent between the 2 devices, rather than rely on any 3rd party drivers or libraries.
Not only does this allow for simple decoding of the datas, it allows the user to easily build their own profiles based on the exact same rules set out in the Message Protocol document.
Each profile was implemented in the same way, using the shared “common pages” and those unique to the profile to create examples and a starting point to build on.
You can find a list of implemented profiles here
Overall the toolkit works very well and we have many satisfied customers from all over the world, from small startups to large household name multinationals.
After being approved as “Compatible with LabVIEW” it became available via and LabVIEW Tools Network.
In 2018 the ANT+ Toolkit was nominated for the “Product of the Year” award at NI Week in the “Platform Connectivity” category