Heart Rate Telemetry System
In the summer of 2007 I was introduced to a gym owner who wanted a way for his clients heart rates to be displayed on a big "score board".
I prototyped a system that we successfully tested at his gym before the project was cancelled. The system put a small transponder on each client that used a Polar OEM receiver to pick up a signal from the heart rate transmitter strap. Each transponder had a micro-controller that computed and maintained a history of the average heart-rate. It also had a Nordic nRF24L01 2.4 GHz transceiver that was polled by one or more base stations under control of a central computer. The system used Nordic's enhanced shockburst mechanism to deliver data immediately for a poll request. The hardest part of the project was developing a robust averaging algorithm that would be responsive to changes in heart rate but ignore spurious data. It turns out that there is a lot of spurious heart rate data from typical polar transmitter straps because, in addition to the true heart rate pulse, they generate a pulse every time they make contact with the human body. A person jogging on a treadmill or moving about vigorously may be generating all kinds of junk data. I also found out that the Polar guys are very conservative with the information they display on their watches. It was fun to develop my algorithm and understand more and more how the algorithm in a typical Polar watch must work. It appears to me that they definitely don't want to display a changing heart rate unless they are very sure it is accurate.
Below is a test program that would display data from a transmitter and graph it in real time. It also included statistics about missed packets and the ability to tune the base station's attempts to contact a particular transponder before moving on to the next unit. The bar you see next to the Recent Packet Failure Rate statistic would get a black line in it every time there was a missed poll. I would work out at my gym with the transponder attached and my laptop with the base station as far away as I could put it and still see the display. People there either thought I was crazy or wanted to understand how it all worked.
I prototyped a system that we successfully tested at his gym before the project was cancelled. The system put a small transponder on each client that used a Polar OEM receiver to pick up a signal from the heart rate transmitter strap. Each transponder had a micro-controller that computed and maintained a history of the average heart-rate. It also had a Nordic nRF24L01 2.4 GHz transceiver that was polled by one or more base stations under control of a central computer. The system used Nordic's enhanced shockburst mechanism to deliver data immediately for a poll request. The hardest part of the project was developing a robust averaging algorithm that would be responsive to changes in heart rate but ignore spurious data. It turns out that there is a lot of spurious heart rate data from typical polar transmitter straps because, in addition to the true heart rate pulse, they generate a pulse every time they make contact with the human body. A person jogging on a treadmill or moving about vigorously may be generating all kinds of junk data. I also found out that the Polar guys are very conservative with the information they display on their watches. It was fun to develop my algorithm and understand more and more how the algorithm in a typical Polar watch must work. It appears to me that they definitely don't want to display a changing heart rate unless they are very sure it is accurate.
Below is a test program that would display data from a transmitter and graph it in real time. It also included statistics about missed packets and the ability to tune the base station's attempts to contact a particular transponder before moving on to the next unit. The bar you see next to the Recent Packet Failure Rate statistic would get a black line in it every time there was a missed poll. I would work out at my gym with the transponder attached and my laptop with the base station as far away as I could put it and still see the display. People there either thought I was crazy or wanted to understand how it all worked.
I ended up taking the algorithm I developed and putting it into a neat little product that Nathan Siedel at Sparkfun agreed to manufacture and sell for me.