Heart-rate monitor and LCD interference.

This is a strange one - not really sure which forum to post it on.

I have a home made arduino shield that include a HRM (heart-rate monitor) (https://www.sparkfun.com/products/8661) and a LCD screen (https://www.sparkfun.com/products/255).

The HRM includes a little green LED that gives a flash whenever a heart beat is detected (the heart beat is picked up on a chest strap and transmitted wirelessly to the monitor)

I've used the shield for a variety of projects, all the projects that involve the LCD have worked fine, and all the projects that use the Heart rate monitor (on it's own) also work fine. However, I've just discovered a problem when I attempt to use both bits of hardware together. Basically if I write any code that attempts to update the LCD screen, the little green light on the HRM starts to flash whenever the LCD screen is updated. The following points are probably relevant....

  • I'm sure this isn't a coding issue, because I get the same error even when running the various LCD example sketches published in the reference section.
  • Also, I don't think this is an issue with any libraries because I get the same thing irrespective of which libraries are loaded - the ONLY thing that makes any difference is updating the LCD. I've written sketches that update the LCD for 15 seconds, then leave it for 15 seconds and then update it again, this gives me 15 seconds of 'pseduo' heart beat, followed by 15 seconds of no heartbeat, followed by 15 seconds of more pseudo heart beat.
  • I get the same results even when I remove the chest strap for the heart rate monitor and take it to a different room.
  • The heart rate monitor works fine if I don't update the LCD screen. Without updating the LCD screen the monitor reports a resting rate of 60 bpm, as soon as I attempt to update the LCD screen, the reported heart rate starts to vary wildly between 100 and 170 bpm
  • The green led on the heart rate monitor is outside of the control of the arduino - it's function and control is internal to the device
  • I've checked the design of my shield, the LCD and heart rate monitor share no pins other than power and ground.
  • I'm pretty sure there's nothing wrong with my heart that might be causing this
  • All the functions of the LCD seem to work just fine whatever the HRM is doing - this suggest to me that the LCD is interfereing with the HRM, not the other way around
  • The LCD only causes problems when the values on it change, it can display static data without causing problems.
  • I get the same symptoms (i.e. green HRM light flashing) even if I don't use or load the libraries that communicate with the HRM

Based on the above information, does it sound reasonable to conclude that the LCD display is interfering with the HRM. If so, any suggestions for a cure? If not, what else should I be checking?


All the standard advice for EMI reduction will apply here - best measure will be to move the heart rate monitor hardware physically away from the LCD, which means it can't be a shield.

Sensitive receivers are best place away from logic boards, digital logic emits RF noise over a wide bandwidth.

Failing that all the sensitive circuitry should be properly shielded in a metal can and incoming signals adequately filtered...

The receiver chip on the HRM is very close to the pins of the LCD - that may be a factor.

The HRM can''t be completely shielded, because it needs to communicate with the chest strap.

I'll try moving the HRM.