Teardown Tuesday.
Inside a Polar Wearlink chest strap fitness heart rate monitor monitor transmitter.
Also a look at and some attempted decoding of the signal with the Tektronix MDO3000 oscilloscope.
Polar RMCM-01 Receiver Module Datasheet: https://www.sparkfun.com/datasheets/Wireless/General/RMCM01.pdf
Forum: http://www.eevblog.com/forum/blog/eevblog-665-polar-wearlink-heart-rate-transmitter-teardown/'>http://www.eevblog.com/forum/blog/eevblog-665-polar-wearlink-heart-rate-transmitter-teardown/
EEVblog Main Web Site: http://www.eevblog.com
The 2nd EEVblog Channel: http://www.youtube.com/EEVblog2
EEVblog Amazon Store (Dave gets a cut):
http://astore.amazon.com/eevblogstore-20
Donations:
http://www.eevblog.com/donations/
Projects:
http://www.eevblog.com/projects/
Electronics Info Wiki:
http://www.eevblog.com/wiki/

Done.

Avatar photo

By YTB

24 thoughts on “Eevblog #665 – polar wearlink heart rate transmitter teardown”
  1. Avataaar/Circle Created with python_avatars Jose Francisco says:

    Hi! . Can I connect it to my ft1 watch?

  2. Avataaar/Circle Created with python_avatars riskinhos says:

    I've one of those. the downsize is the battery. polar morons charge like 15$ to change it. fortunately you can buy 10 of those for $1 plus o-rings.

  3. Avataaar/Circle Created with python_avatars joob says:

    I feel like the second coil could be used for receiving data (writing the individual codes).

  4. Avataaar/Circle Created with python_avatars Ciprian Cristea says:

    Most probably that ST chip is an ASIC. I think it inclues a simple instrumentation amplifier, an ADC and some sort of MCU core. You don't really need that much for heart rate monitoring, not even a super clean signal. You just need to have a sort of clear R wave, since heart rate is the R-R interval in an ECG waveform. The instrumentation amplifier probably has sufficient common mode rejection (at least 90dB) so it doesn't really need that much input filtering, only a simple low pass filter since we have an onboard noise source on top of the common mode voltage. Now, the software on the MCU core shouldn't be very complex. I think it's just a simple peak detection algorithm that triggers off at roughly 0.5 mV * gain, possibly more due to the proximity of the electrodes to the heart. Bear in mind that the ballpark for the peak of an ECG waveform, aka the R wave, is around 1-2 mV transcutaneously and is noticeably higher that the rest of the waves. You don't even need a very sophisticated ADC for this. I think 10 bits are enough since we're not looking for a clear waveform, just a peak voltage. The equivalent of the wave captured by the device is lead I on a standard 12 lead ECG. Once a peak is detected the chest strap sends the packet and the watch counts the packets. It's not that complex really.The ASIC idea is extremely plausible to me, especially since you don't even need that much for a 1 lead ECG, let alone a heart rate monitor. The bracelet things should be similar but with a higher gain amplifier and probably a tweaked algorithm.

  5. Avataaar/Circle Created with python_avatars ninpo1500 says:

    Awesome T-Shirt! Can't wait for the movie

  6. Avataaar/Circle Created with python_avatars m novo says:

    The data can also be save as an excel file to view the number data as well.

  7. Avataaar/Circle Created with python_avatars m novo says:

    Coding is called ANT+ technology. Any ANT+ device will pick it up. Normally a 5 digit numeric number in search mode, then save to find on auto start. That chest strap is very bad for rusting due to sweat. Polar is not my fav. I would suggest Garmin or Powertap. The visible screws should be covered to avoid contamination. Finally something I have experience with…

  8. Avataaar/Circle Created with python_avatars metaforest says:

    I think the coding scheme is pretty obvious. ย The gap between the first packet, and the second two packet burst is a simple time division code. ย  When acquiring the signal the receiver looks for the two packet burst to get the base timing of the transmitter and then looks for the next burst sequence to determine the ID of the heartbeat. ย At this point the receiver ย system locks in the parameters and only looks for pulses in the previously seen timing windows. ย  I saw a second transistor in the transmitter. ย  It seems likely that the transmitter may be using one of the two coils as an antenna to see what other codes are active. ย  If no other codes are active it picks one at random. ย  If it detects another code in use it is picking from the remaining codes. ย The receiver in the watch expects to see only one transmitter during pairing. ย  I'm guessing this pairing happens every time the watch sees a transmitter after some timeout of not seeing one. ย  Since heart rates don't change really fast and are unlikely to synchronize between adjacent users, ย the receiver can used a window discriminator and the details of the 3-pusle code to keep track of the correct heartbeat. ย  It might lose a beat once in a while, due to packet collisions, but it seems like it would work out well. ย  If the transmitter is also acting as a receiver (and that dual coil config and the dual transistors looks like it might) then it could be performing some collision avoidance too.ย 
    Additionally the second coil can be used as feedback to allow the micro controller to keep tighter control of what is obviously a software defined radio system.

  9. Avataaar/Circle Created with python_avatars andr27 says:

    mikeelectricstuffsthsth probably would make FPGA with decoder on square Ipod LCDย 

  10. Avataaar/Circle Created with python_avatars Dollar Guy says:

    Haha! I knew it! An engineer's lab without clutter is impossible! I don't feel so bad now.

  11. Avataaar/Circle Created with python_avatars Manie de Bruin says:

    You are a genius !

  12. Avataaar/Circle Created with python_avatars El Colo Tronics says:

    I was hoping for a msp430 microcontroller… close

  13. Avataaar/Circle Created with python_avatars mattibboss says:

    Tutorial on VFD please!

  14. Avataaar/Circle Created with python_avatars Damon Dransfeld says:

    That "encoding" looks like Time Division Multiplexing (TDM) to me. The firstย pulse may be shared by all transmitters to sync and there are 31 other time slots where the second pulse can fit in. Which would be just controlled by that time offset to the secondย pulse. I'm not sure, especially how timing is managed since your heartbeat varies. But that might be easily predictable, or the unit just delays transmission to be in the right time slot (after all it seems it just transmits 2 actual heartbeats). Youย probably could only tell by probing both sensors transmitting to different watches at the same time.

  15. Avataaar/Circle Created with python_avatars toast_recon says:

    I was terrified that Dave was going land on the printer on one of those jumps and seriously hurt himself.ย 

    Does your patent go over how this technique deal with such dangers?

  16. Avataaar/Circle Created with python_avatars Necessaryevil 86 says:

    I would love to see an oscilloscope with the possibility to connect a mouse + keyboard for the advanced functions. In addition to 'normal' knobs/buttons of course!

  17. Avataaar/Circle Created with python_avatars Manolache Alexandru says:

    Fricking kangaroo again. You should name it "Kangaroo Mode"

  18. Avataaar/Circle Created with python_avatars TheM1n3rX says:

    165 turns.

  19. Avataaar/Circle Created with python_avatars Sasha says:

    Someone PLEASE make a 1 hour loop of his jumping, and put something to it.

  20. Avataaar/Circle Created with python_avatars ricksonstudent says:

    Great video. Really enjoyed it. My inner analog signal self came out of hiding and appreciated it.

  21. Avataaar/Circle Created with python_avatars douro20 says:

    This Finnish company developed, with the University of Oulu, the world's first ECG-based heart rate monitor in 1977.ย  A tiny device which can be worn on someone's finger, it displayed an accurately measured heart rate in seconds upon contact with a finger on the opposite hand.

  22. Avataaar/Circle Created with python_avatars VE2UM says:

    A laptop computer: $ 350
    A Polar Wearlink heart monitor: $ 75
    A set of precision screwdrivers: $ 19

    Seeing Dave Jones topless: Priceless !!!!!!!!!!!!

    There'are some things money can't buy…
    For everything else, there's MasterCard.

  23. Avataaar/Circle Created with python_avatars fox trott says:

    Looking foreward to the next video, #666 wont be the eevblog but the evilblog from hell ๐Ÿ˜‰

  24. Avataaar/Circle Created with python_avatars Blank. says:

    The next one (#666) will be one hell of a ย teardown ๐Ÿ˜€

Leave a Reply

Your email address will not be published. Required fields are marked *