Context
Electromagnetic Interference (EMI) describes the RF disturbance generated by an electrical circuit through electromagnetic induction, electrostatic coupling, or conduction.
There are various Electromagnetic Compatibility (EMC) regulations to limit the amount of parasitic electromagnetic emission per device. For instance, for the European market, there are constraints and test methods defined for the CE mark (e.g. EN55022).
In addition to the legal aspect, EMI can be a serious concern for the operation of a product: a radiating component on a PCB could cause some glitches or other issues. Hence, this may be considered for the integration, validation and debug of hardware systems.
For the design phase, there are some finite element analysis EM modeling and simulation tools.
EMC simulation with ANSYS, by LEAP FEA Team, finiteelementanalysis.com
However, for real tests, the equipement for compliance and pre-compliance testing is very expensive, requires a lot of physical space and specially trained engineers/technicians. Additionnally, it usually does not give a lot of insight on the spatial EM radiation distribution.
Inside of shielding room by Stan Zurek - Own work, CC BY-SA 3.0, Wikimedia
This process is not well-suited for fast prototyping, hardware iterative design and Agile developpement. I developped a proof-of-concept solution to address these issues by providing a very simple system to get inexpensive and accurate 2D EMI mapping of a board/device.
I explored two methods to make fast maps of the near-field EMI.
Video
This video shows the project:
Method #1: Using a 3D printer
The idea is to precisely move an H-field probe using the carriage of a 3D printer, my DIY Skeleton 3D in this case. This probe is homemade, mounted on a 3D printed holder.
A Python script controls the printer by sending GCode. It simultaneously measures the EM field with the RTL-SDR radio reciever.
There are 4 parameters that affect the speed of scan:
- The size of the zone to map,
- The resolution of the grid, which is also limited by the size of the H-field probe loop,
- The frequency span of the scan. For instance, 1GHz would take a much longer integration time.
- The printer's feedrate, which we can tune.
Results
With this method, this is the kind of result we can expect:
EMI scan of an Arduino Uno board with a grid resolution of 5mm
It gives a good view of the spatial distribution of near-field emissions! We can do broadband scans even with a narrow reciever by sweeping the center frequency.
However, the main issue here is that it is quite cumbersome, requiring a 3D printer, mounting the probe, etc.
Method #2: Using machine vision
This schematic describes the principle of operation:
The near-field probe is moved above the device under test while a camera tracks its current position. The RTL-SDR performs the RF power measurements. A Python script does all of the signal processing: tracking in the camera stream, computing the RF power and generating an EMI heatmap.
I made the code in Python 3 using OpenCV (image processing and tracking), pyrtlsdr (RTL-SDR wrapper interface) and various math and signal processing libraries.
Results
This short video shows the process of scanning of a board (an Arduino Uno performing analog readings and computation):
Below are several output samples.
Arduino Uno board, the scan from the video.
MacBook laptop under heavy artificial CPU load.
Hairpin RF filter, see article. A signal fully out of filter bandwidth is fed from the bottom SMA.
Advantages
- Simple and fast: the setup and actual measurements only take 5 minutes at most.
- High resolution: the physical size of the probe is the main limitation. With smart signal processing, it can be mitigated.
- Inexpensive: all the hardware required to make this costs less than 15 USD combined (including a DIY near-field loop probe).
Limitations
- Repeatability: this is the biggest issue in my opinion. Because the probe is handheld, the distance to the device under test may not be constant. A quick solution is to use some kind of jig to keep the probe at a known height during the measurements.
- Bandwidth: with the RTL-SDR, the bandwidth is only 2MHz. However, better SDRs can get the hundreds of MHz.
- Software: with my current prototype implementation, the tracking of the probe is not perfect, and, more importantly, the RF signal processing is very basic. This simply requires more time investement.
Download and usage
To download the Python scripts, go to my Github repository: https://github.com/CGrassin/EMI_mapper. Instructions on the prerequisites, setup and usage are described there.
Note: this is an early proof-of-concept/research program. It probably requires some Python knowledge to use.
Conclusion
This open-source proof-of-concept proved to be a very efficient way of making 2D electromagnetic radiation heat-maps.
In spite of the known limitations of this method, there is a cornucopia of possible improvements with better signal processing. In the large amount of data collected by the SDR, I currently simply compute the RMS power over the bandwidth. The I/Q samples could be used to recover a massive amount of information on the actual radiation: harmonics, power distribution, phase, circuit states, surges, 3D mapping...
With better computer vision algorithm and adequate graphical representations, this tool could give a unique EMI/EMC insight to engineers.
Appendix: making the probe
My probe is a homemade antenna known as an H-field loop. Professionnal, calibrated near-field probes kits are very expensive. However, it is easy to make one from a piece of semi-rigid coax SMA cable. This schematic shows how it works:
There is a lot of ressources providing information to make those antennas, for instance: interferencetechnology.com (article) or EEVBlog (video).
This is my probe before covering it with insulating tape (to avoid shorting anything while performing measurements):
Author: Charles Grassin
What is on your mind?
#1 Martin - G8JNJ
on April 30 2019, 10:08
#2 Charles
on May 1 2019, 21:03
#3 Alexandre
on May 3 2019, 6:22
#4 Charles
on May 4 2019, 22:51
#5 G8JNJ
on May 6 2019, 10:09
#6 John
on May 8 2019, 6:43
#7 Charles
on May 8 2019, 9:16
#8 Thor
on May 8 2019, 12:58
#9 Malik
on August 6 2020, 15:13
#10 Luxondes
on October 14 2020, 14:04
#11 Cheryle
on December 12 2020, 13:12