Polar Heart Rate Monitor Interface

This is a wonderful evaluation board cooperatively designed by danjuliodesigns and SparkFun. The Heart Rate Monitor Interface (HRMI) is an intelligent peripheral device that converts the ECG signal from the Polar Heart Rate Monitor (HRM) into easy-to-use heart rate data. It implements a sophisticated algorithm for computing an average heart rate even with noisy or intermittent data from the transmitter.

**Note: **This product is a collaboration with Dan Julio. A portion of each sales goes back to them for product support and continued development.

Applications:

  • Custom exercise equipment
  • Portable heart rate monitoring devices
  • Bio-feedback devices
  • Heart beat aware body-worn electronics
  • Multiple interfaces: USB, Logic-level serial and I2C
  • Dual heart rate processing algorithms: averaged and raw
  • Uses the RMCM01 Polar OEM receiver
  • Compatible with coded and non-coded Polar transmitters including T31, T31C, T61C and Wearlink®
  • 32-entry heart rate data history buffer
  • Four 8-bit ADC inputs
  • Up to a 5 channel digital input/output utility port
  • Simple command/response interface
  • Programmable power-on default operation
  • Only works with one transmitter (HRM) in range

Polar Heart Rate Monitor Interface Product Help and Resources

1 of 1 found this helpful:

Quick Test with Host Computer

To test the Polar Heart Rate Monitor with a computer's serial terminal, you would just follow the instructions listed in the manual . By following the instructions on page 13 http://danjuliodesigns.com/sparkfun/hrmi_assets/hrmi.pdf of the manual under the section "Quick Test with Host Computer," I was able to send and receive data between the Polar Heart Rate and my computer's serial terminal (with the settings 9600, 8-none-1-none and turning on the local echo). The green status LED was on when connecting to the sensor. There should already be a solder jumper on SJ1. The board's Rx and Tx LEDs blinked momentarily when connected just like a normal FTDI IC.

By typing "G1" and providing a carriage return (hit the enter button on your keyboard), I was able to see a response on the serial terminal. This is the command for getting heart rate data as stated on page 23 of the manual. The output from the known good in tech support is similar to this:

3 118 0 0 0

The value is not always the same.


Core Skill: Soldering

This skill defines how difficult the soldering is on a particular product. It might be a couple simple solder joints, or require special reflow tools.

1 Soldering

Skill Level: Noob - Some basic soldering is required, but it is limited to a just a few pins, basic through-hole soldering, and couple (if any) polarized components. A basic soldering iron is all you should need.
See all skill levels


Core Skill: Programming

If a board needs code or communicates somehow, you're going to need to know how to program or interface with it. The programming skill is all about communication and code.

3 Programming

Skill Level: Competent - The toolchain for programming is a bit more complex and will examples may not be explicitly provided for you. You will be required to have a fundamental knowledge of programming and be required to provide your own code. You may need to modify existing libraries or code to work with your specific hardware. Sensor and hardware interfaces will be SPI or I2C.
See all skill levels


Core Skill: Electrical Prototyping

If it requires power, you need to know how much, what all the pins do, and how to hook it up. You may need to reference datasheets, schematics, and know the ins and outs of electronics.

3 Electrical Prototyping

Skill Level: Competent - You will be required to reference a datasheet or schematic to know how to use a component. Your knowledge of a datasheet will only require basic features like power requirements, pinouts, or communications type. Also, you may need a power supply that?s greater than 12V or more than 1A worth of current.
See all skill levels


Comments

Looking for answers to technical questions?

We welcome your comments and suggestions below. However, if you are looking for solutions to technical questions please see our Technical Assistance page.

  • Member #1030950 / about 8 years ago / 1

    Will the Polar Heart Rate Monitor Interface pick up H10?

  • gvorster / about 8 years ago / 1

    What is the power consumption for this device?

  • Member #141047 / about 13 years ago / 4

    Sparkfun previously carried the RMCM-01 by itself, without requiring the interface/breakout, and it was good, now nobody seems to. Any clue if it will be returning, or do I need to purchase a board I do not really want in order to get one? If I was going to get extra components unneeded by my project, I think I might have a more enjoyable time just buying a cheap monitor watch and hacking the hell out of it.

  • rub0t / about 12 years ago / 2

    Will sparkfun ever carry the RMCM01 Polar OEM receiver by itself again?

    • MikeGrusin / about 12 years ago / 2

      We would like to, but Polar has withdrawn this sensor from individual sale.

  • penjuin / about 14 years ago / 2

    Hate to be pedantic, but this device does not do anything with ECG signals. ECG signals look like this: http://en.wikipedia.org/wiki/File:12leadECG.jpg and have a P, QRS and T complexes. As far as I am aware, none of the information that would be important in an ECG can be extracted from this device (other than heart rate which is of minimal use without the aforementioned information).

    • Kevin Vermeer / about 13 years ago / 1

      Correct. Heart rate monitors use piezoelectric sensors to detect changes in pressure. ECG/EKG monitors generally require multiple, highly-sensitive electrodes distributed about the body (usually each wrist and the right ankle), which would be cumbersome for a heart rate monitor.

      There's need to apologize, the description is incorrect and might lead to someone buying the wrong device.

    • vasslav / about 13 years ago / 1

      [eng.sorry]
      This is not medical device (take a look please at disclamer in User manual - http://danjuliodesigns.com/sparkfun/hrmi_assets/hrmi.pdf page 4). Just for sport (fitness) use.
      For classic ECG (EKG) you can try to use ECG OEM. I've used Corscience (http://www.corscience.de/en/medical-engineering/products.html). Looks good. There are alternatives.
      Luck,
      Slava V.

  • borangejuice / about 15 years ago / 2

    If you are looking for .NET C# code and/or a project that uses this board try http://hrzonetrainer.codeplex.com/

  • Member #659778 / about 10 years ago / 1

    Hello. I would like to ask you if this monitor interface can storage data on its own or do I need to purchase an SD card? Also can it transmit and receive from accelerometer "ADXL335" while receiving from "T31 coded transmitter"? Lastly, could you tell me what 32-entry heart rate data history buffer means? I am sorry if i have a lot of questions i just started discovering this part of the world :P

    • If you check out the Bildr tutorial above, it shows you how to interface this board with an Arduino, so you can receive the data over a serial monitor. You could set it up to log to an SD card, but you'd need to interface it yourself in that case.

  • Member #586460 / about 10 years ago / 1

    Hi Is this compatible with Polar T34? Thanks

  • Member #586460 / about 10 years ago / 1

    Hi Is this compatible with POlar T34 Heart Rate monitor? Thanks

  • Member #544690 / about 11 years ago / 1

    Hello there.

    Is it possible to have 5 of these each communicating with their own Polar chest strap at the same time in a closed environment. The distance between each pair (Polar and this HRM Monitor Interface) would be of around 4 meters. Thank you in advance.

    Regards

  • Member #529216 / about 11 years ago / 1

    I do not get this to connect to a Polar H3 sensor. The sensor works fine with the watch, the board connects to the computer by USB and responds to commands, but no heart beat is detected. Above it only says "Compatible with coded and non-coded Polar transmitters including T31, T31C, T61C and Wearlink®". From some infos on the forum, I now think that the H3 sensor is not compatible because it uses w.i.n.d. A better compatibility guide would be really useful! Am I correct that only sensors using GymLink as described on this page: http://www.polarworld.com.au/pages/heart-rate-sensor-compatibility-guide will work?

  • Member #228900 / about 11 years ago / 1

    Is it possible to use simultaneously this interface and another receiver (Polar watch)? My goal is to 'intercept' the BPM information without beaking the communication between the HRM and the original receiver.

  • Member #142697 / about 11 years ago / 1

    A friend of mine wants to take this board and log data to a serial port on a RaceCapturePro. To do that, I will need to attach a logic level serial to RS232 adapter, but I need to know the voltage level for the serial connection. I assume it's 3.3V, but it'd be useful to get confirmation on it. Is it 3.3V or 5V?

  • tamberg / about 11 years ago / 1

    Here's a way to access your measurements from the Web: http://www.instructables.com/id/Web-enabled-Polar-Heart-Rate-Monitor/

  • davidjensen / about 11 years ago / 1

    It says it can output raw data: "Dual heart rate processing algorithms: averaged and raw". This may be with 60ms accuracy. Also Polar says the chest strap picks up the heart rate by electrical signals, not pressure as one comment made. It sends out a pulse, not the beginning and ending of a pulse.

    Does this have raw pulse data with 60 ms accuracy?

  • Member #474049 / about 11 years ago / 1

    Hey do I have to use the T31 coded transmitter with this device? What other monitors are compatible?

  • Member #478332 / about 11 years ago / 1

    I'm interested in this producs, but I have a question: does this require Polar transmitters or does it work with any 5.3khz transmitter? Is an SDK for developers available? Thanks in advance.

  • Member #15617 / about 12 years ago / 1

    Does anyone happen to know if this works with the Polar H7 HRM (probably not with the BLE part, but it also supports Gym Link)?

  • Member #329313 / about 12 years ago / 1

    Can I use 3.3v logic on the TTL logic header or do I need to use 5v logic. I was looking at the schematic and it seems that I need 5v logic, but I wasn't completely sure. If that is the case, can someone recommend a 3.3v to 5v TTL logic converter for this breakout. Any help is greatly appreciated :)

  • Felipe Iasi / about 12 years ago / 1

    interference exists if you use two of these with 80 cm distance? Tks

  • Member #233090 / about 13 years ago / 1

    does anyone know how to program this board.
    Or if it is possible to program the board using C language?
    Thanks

    • MikeGrusin / about 13 years ago / 1

      There's a PIC16 processor on the board, which is possible to program in C. Google PIC programming, and check out www.microchip.com, for more information.

  • chboing / about 14 years ago / 1

    i wonder if the board i just received is working.
    my usb port is powering Arduino no problemo, but when i plug hrmi on the same usb port, status led remains off :(
    + I connect to COM port through putty, send command, but nothing in response ...
    what's happening ? :(

  • Member #205579 / about 14 years ago / 1

    can anyone help me to connect this device to max/msp? what object can I use? the hi didn´t work.
    any sugestions?
    thank you very much,
    daniel

    • Member #149857 / about 14 years ago / 2

      hi, you should read it with the serial object: 9600 bauds and 8 databits as arguments should work. Then you need to program a bit to get usable infos. Send me a private if you need more help and I can send you the patch I did.

      • Member #223101 / about 14 years ago / 1

        Hi, I am evaluating the HRMI to see if it's usable for me and it would be VERY helpful if you could send me the Max patch you did to read the pulse input. I'm a student at UC Irvine and working on an interactive vibrotactile project with biofeedback. For some reason I can't figure out how to PM you so I'm responding here...I don't want to display my email publicly, but if you go to my website there's a contact page, and once we have each other's email then we can exchange files. http://www.davidresnick.me/contact/ Thanks! -David

  • rsbardsley / about 14 years ago / 1

    Does anyone know how to programatically access the heartbeat signal detection? There is an LED that illuminates on the PCB every time the HRMI detects a pulse from the Polar monitor. <br />
    <br />
    Basically, how can I do something every time that LED pulses? Thanks!

    • Member #149857 / about 14 years ago / 3

      Hi, I had exactly the same problem: how could it be that I cannot track the LED that I'm seeing so synchronized with the heart pulse??
      After a couple of hours testing I fortunately got the solution, or at least a work around:
      1 - set the raw mode: S+0+CR (ascii commands)
      2 - get the heart rate data: G+1+CR (id.) as fast as possible (every 60ms is fine for me)
      3 - then you get 3 values from the hrmi: status byte, count and heart rate. Count is the key value, since it count pulses and changes every time a new pulse arrive; if you read the heart rate data fast enough, then you'll get a new count value every time the pulse ticks.
      After that everything is a software matter. I used Max/Msp to read the data and in the same software I can convert this changing of count values into impulses that, in my case, trigger a sound.
      I hope this can help you.

  • Schomethemoney / about 14 years ago / 1

    You guys should definately make a Lily Pad version

  • ErieRider / about 15 years ago / 1

    I have some serious bones to pick with this Dev board. The biggest snafu is that the HR (Heart Rate) pin from the RMCM01 (Polar receiver) is not broken out anywhere on the board! Duh, this is why I bought the board. Second, why is the PIC16F913 code protected? Anyone who buys this board to experiment with, might want to reflash it to stock form.
    The students in my Embedded class have to totally jury-rig the board to make it work on their project. totally uncalled for on a development board.
    That said, the RMCM01 works well with every heart rate strap that I own. The firmware on the PIC works well and is reasonably well documented.

  • sjyng / about 15 years ago / 1

    Many thanks, borangejuice!
    I'll give it a try for my treadmill.
    Sun.

  • kerry / about 15 years ago / 1

    does it include the Polar Heart Rate Module - RMCM01??

  • beepscore / about 15 years ago / 1

    In my first attempts, HRMI worked with a T31 transmitter, but not with Wearlink WIND.
    The forum has more info.
    http://forum.sparkfun.com/viewtopic.php?t=14760

  • Alex26 / about 16 years ago / 1

    Does this work with NuMetrex clothes?

  • Karel / about 16 years ago / 1

    Can I ask you, if this interface would work also with Wearlink W.I.N.D transmitter?

Customer Reviews

4.8 out of 5

Based on 4 ratings:

Currently viewing all customer reviews.

2 of 2 found this helpful:

Even works on cows

In addition to working on humans, the Polar T31 transmitter can be strapped to a cow. We hung this interface on a steel bar about 2 feet from the cow with the transmitter, and it picked up the signal just fine (after we slathered some electrolytic gel on the transmitter). The data was collected by a simple serial program running on Ubuntu which sent a "G" command about once a second. If this pickup can work in a barn, it can pretty much work anywhere.

Blinking Heart rate LEDs on my bike

I used this device to get my heart rate to be displayed on two neopixle strips on my bicycle. The device was easy to use and I was up and running in a mater of minutes. The orientation of the device to the chest strap is important to get a robust signal. All my buddies got a kick out of this.

Easy Polar HRM interface

Easy installation. Plug in a usb cable (install FTDI Virtual COM Port Driver (VCP)), open serial terminal, type G1<enter> and you get the latest heart rate.
Remove solder jumper on SJ1, add solder jumper on OP0 and you can communicate via I2C (address 127 by default)

Only glitch I can replicate every time is by moving the sender out of range from the receiver. The values go berserk after that until I do a power recycle.

Good, challenging project for a beginner like me

I attached the HRM to a Chromebook (Linux Mint 18 Cinnamon 64-bit) through the USB port. I observed the system log to get the device name (/dev/ttyUSB0) and used minicom 2.7 to verify that I send commands to the HRM and get data back from the HRM. I wrote Python code to periodically query the HRM and log the heart rate data and then tested it during an hour-long session on a treadmill. It worked great and the data was similar to the HR data shown on the treadmill. The whole experience took about three hours get to HR data. Next step is to optimize the code, add features to the code and understand the HR algorithm better. It was a challenging exercise and a good project for a beginner like me!