Arduino EMF Sensor

As a biomedical equipment technician [Adam Outler] equipment needs to be in top working condition. The emergency room staff were complaining about erroneous noise on the electrocardiogram and it’s his job to fix it. He suspected EMF interference so as a quick first step he decided to throw together an EMF detector using an Arduino. It uses a bank of LEDs as an indicator bar to reflect the EMF picked up by the red antenna. In the video after the break [Adam] checks a room for possible sources of interference, treating the recharging circuit from the emergency lights as the most likely culprit. Since the ECG is many times more sensitive to EMF than the Arduino, this turns out to be a quick and easy way to make sure he’s not barking up the wrong tree.


23 thoughts on “Arduino EMF Sensor

  1. If the ECG is way more sensitive, isn’t that just a guarantee that this arduino thing will never be able to detect all the sources of potential interference?

    Every time I see something like this I want to connect it to some inertial sensors (or now something like the Kinect’s depth camera) and map the relative location of all the sources in the room. Build up a 3D model of the space with all the sources and field strengths automatically modeled.

  2. great idea!

    I’ve run into a similar problem with what turned out to be one defective “energy saving” CFL nuking my wireless and 3G.
    Seems that these things can totally wipe out phone signals, radio, 3G, wifi AND cause even laptop touch pads to malfunction at close range if the manufacturers cheaped out and used a wire link in place of the suppression components.

    Another particularly wideband source of interference is those cheap 2.4GHz video sender/camera b0xen, normally sold for rebroadcasting DTV signals to save having multiple digiboxes.

    this device should be in every tech’s toolbox, as it can save a lot of time in the long run.

  3. @macw this might work.
    What about using some of the xtal modules from old PC graphics cards and motherboards, some high end ones use them even now as they have lower phase noise than the onboard oscillators.
    Add 1″ ferrite wirewound 1/4 wave antenna and it should be detectable from a few feet or so with a strong directional field.

    #include “$0.01999992.FDIV”

  4. If it actually located the real source of noise this guy just got lucky.

    “//A note on HZ, if you notice meter oscillations on a known steady
    // signal increase or decrease hertz by 1. The oscillations are
    // caused when the signals are in near-perfect resonance.
    float FrequencyToMonitor=59; //hertz”

    It’s called Nyquist Sampling Theorem. You have to sample at more twice the frequency you are interested in.

    Also, the lack of bandpass filter on the front end pretty much means he was aliasing all noise down into the spectrum he was sampling. He probably got away with it because the antenna was so terrible that he had to be on top of any noise source to detect it anyway.

  5. The guy is creative hacker, but the only problem here is, that doesn’t make one a “qualified” RF EMI engineer.

    I agree with @octel. Same kind of device used by these bogus “ghost hunters”, who have ZERO clue of what the hell they’re doing with any piece of equipment. I’ve watched these lame shows on sy-fy of these “researchers” claiming “look ! the EMF reading went up here!” (meanwhile never mind the fact that the damn HVAC or refrigerators are plugged in and running on thermostats).

    You want to track down EMI ? How about doing it the right way, taking ‘baseline’ reference measurements ? ECG’s are designed to detect voltage differentials !

    60 hz artifacts ? hmmm…. could it be ? how about checking for adequate grounding !

  6. EMF (Electromotive Force) is just an old fashioned way of saying Voltage. I think the correct term you should use here is EMI (Electromagnetic Interference). The problem he is seeing is that of EMC (Electromagnetic Compatibility).

    And yes, emergency lighting cam be very noisy, not only when faulty. The EMC standards applied to emergency lighting are different to that of normal electronic equipment. At my work (emergency lighting design and supply), they only seem to care about mains harmonics – not radiated noise.

  7. @macw:

    Inertial mapping’s a rather non-trivial methodology absent high dollar, often totally closed source hardware&software. If you mean mapping as in a locational reference depiction? The idea of a Kinect may have potential. The devil’s half in the interfacing, and half in the data output method. My first take- a 3D monitor of some sort that your graphics would place a “Blip” upon where whatever you were wanting to denote was at a signal peak.

    On second look? Just rolling a 3D camera while a human sweeps the room with whatever EMI sensor they have that can be “seen” by the camera might be “Good Enough” to capture data for fixing the issue. That’s if the human operator was still unable to find the EMI source.

    I’ve found many weirds by using an old Zenith “Royal 500” AM BCB radio. The internal ferrite antennas of some similar radios often has impressive sharp nulls.


    CFL’s are an exasperatingly random Crud Generator indeed. With the even more DANGEROUS fire risk of them being misplaced into dimmer/photocontrol switched sockets. The dimmer/photocontrol devices and fan speed controls also can be nasty RFI/EMI headache inducers. Tied only perhaps by a new wave of SMPS “Wall-Warts” that radiate in several SW bands.

  8. @macw
    If the arduino was as sensitive as the ECG, you would pick up more interference, which would make it harder to pinpoint the location of any one source. That being said, technically you wouldn’t be able to pick up all the possible sources, only the major sources.

    Also, did anyone else look at the code? I feel as if the second conditional in the loop will never be true. I think he meant to switch the HIGH and LOW states.

  9. @AndyC & Todd Harrison: When I posted it up, I added comments on all the lines. I accidentally deleted that line and typed it incorrectly, without thinking. It is corrected now.

    @j sNo DO-178B programming methods here. This is about as far from a certified medical device as an electrical outlet tester. It is not intended for use anywhere near patients. It is an electronics troubleshooting tool and not a calibrated instrument. If it fails, there are no risks.

    On a side note, you should see how big of a field a Christmas tree presents. It’s a gigantic air-core coil inductor.

  10. @stu You did not read down far enough.

    double HalfPeriod=((1/FrequencyToMonitor)*.5); // half-period in seconds from frequency
    HalfPeriodMicroseconds=int(1000000*HalfPeriod); //Convert period seconds to microseconds integer

    The theorem you referenced is referring to the fact that you must catch it at a high and a low. 60 hz = period of 1/60 second, multiply that by .5 and it’s 1/120th of a second, or 8333 microseconds for the calculated delay. The EMF reader calculates this. It’s adaptable to 50hz power as well.

    The problem is the timing.. when you have a perfectly synchronized signal reading another signal and one goes out of sync (ie processing values for a bit of time), the two signals are no longer synchronized.
    61hz still oscillated visibly, 59 did not.

    And you’re right about the antenna… LOL! it would have to be something like 5000km long to be tuned perfectly for 60 hz.. What kind of antenna would you use?

  11. Seems to me that a hound of a Fox and Hound set with 3 inches of wire and a better speaker attached, would make just as effective a probe. The type of sounds picked up are a good clue as to noise type, hum vs buzz. Only then the ultrasonics of switchers won’t be heard. The old LW band on a radio is good then. These hounds are baseband noise sensitive not AM band or higher, like a radio. Another case of arduino not needed. Don’t they make noise? Ghost hunters should work for the power company interference department, and get a Ham license.

  12. @echodelta

    “Ghost hunters” – should have the PoCo DISCONNECT the AC mains at the meter. That way you remove pretty much all of the EMI in the residence that they are ‘investigating’ (and i use the term VERY loosely!).

    Then maybe any suspect readings would be more meaningful. Of course if an AM broadcast station is right down the block… all bets are off!

  13. @johno The antenna is not grounded. That’s what makes detection of electromagnetic fields possible. Because of this, it can be prone to ionization, or static buildup, which will make the antenna more sensitive to changes in the environment. Touching the antenna removes this buildup. It could be that you just have alot of unshielded devices or motors running.

    There are several things you can do to decrease the sensitivity, first, change the frequency to 60 and watch your meter oscillate to be sure it is actually picking up 60 hz. Then, to decrease, or even increase sensitivity, add or remove from the lines:

    Or, alternately, add an additional:

    You could even get creative and add a loop which will change the sensitivity with a read input, a counter, and an if-then statement.

  14. While this is cool, I’d like to point out:

    (1) You’re not necessarily measuring 60Hz (or whatever the program is set to). You’re just sampling at 60Hz, and so you could be measuring 120Hz, 180Hz, or any other harmonic, including those in the KHz/MHz range, on up.

    (2) For general RFI detection, an AM radio (not FM) often works well. You can see this by tuning the AM radio to any not-strong radio station and holding it close to your PC or monitor. I don’t know if it would have helped in the case in question, though.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.