At the start of 2023. NLnet decided to sponsor the development of BB3-CM4.

As we mostly designing HW and we need to comply with EMC standards and regulations we decided to run some in house
experiments to find or design affordable opensource equipment for pre-compliance measurements.


After I have posted one picture on X - I have noticed that lots of users are interested in EMC/EMI

We talked with NLnet and they extended our grant at the end of 2023.

Picture from X is splited on left and rigt side, on both pictures there is ULX3S board, H-type EMC probe and TinySA spectrum analyser. Left picture has ULX3S v316 is 4 layer one and shows much more EMI noise then right one that is 6 layer board.

So let's start!

Electromagnetic compatibility

From Wikipedia, the free encyclopedia

Electromagnetic compatibility (EMC) is the ability of electrical equipment and systems to function acceptably in their electromagnetic environment, by limiting the unintentional generation, propagation and reception of electromagnetic energy which may cause unwanted effects such as electromagnetic interference (EMI) or even physical damage to operational equipment.[1][2] The goal of EMC is the correct operation of different equipment in a common electromagnetic environment. It is also the name given to the associated branch of electrical engineering.

EMC pursues three main classes of issue. Emission is the generation of electromagnetic energy, whether deliberate or accidental, by some source and its release into the environment. EMC studies the unwanted emissions and the countermeasures which may be taken in order to reduce unwanted emissions. The second class, susceptibility, is the tendency of electrical equipment, referred to as the victim, to malfunction or break down in the presence of unwanted emissions, which are known as Radio frequency interference (RFI). Immunity is the opposite of susceptibility, being the ability of equipment to function correctly in the presence of RFI, with the discipline of "hardening" equipment being known equally as susceptibility or immunity. A third class studied is coupling, which is the mechanism by which emitted interference reaches the victim.

Interference mitigation and hence electromagnetic compatibility may be achieved by addressing any or all of these issues, i.e., quieting the sources of interference, inhibiting coupling paths and/or hardening the potential victims. In practice, many of the engineering techniques used, such as grounding and shielding, apply to all three issues.


For our experimens we will need some equipement so here is quick info about some that we will use.


The tinySA are a small spectrum analyzers and signal generators with some nice capabilities:

Picture of TinySA spectum analyser with one peek on the middle of the screen and WATERFALL map. WATERFALL displays the power level over time in a waterfall map

LiteVNA 64

LiteVNA picture showing smith chart

The LiteVNA is a portable 50 kHz - 6.3 GHz vector network analyzer which design is based on the NanoVNA and SAA2. This vna is designed to measure equipment reflection and transmission coefficients without the need for a large analyzer. The LiteVNA uses one mixer which enables S11 and S21 measurements through RF switching and TDR/DTF measurements through IFFT calculations.
The analyser has a 3.95" touch-screen display that can show the measurements in 10-1001 data points. Furthermore, the analyser has a built-in 2000 mAh battery and can be connected to an android phone or PC. Connecting to a phone or PC allows for controlling the analyser and displaying the measurements.

Digital Attenuator

It is really usefull to have attenuator - if the signal is to high it can dump it down. Maybe you will not use it that much on receiver, but when sometimes when you transmit you want weeker signal and attenuator may come handy. This one is also programable, so you can send it settings over serial port.


Picture shows plastic box with se of different connector adapters - there is more then 30 adapters in the box
Set of adapters

On Ali you can find boxes filled with adapter connectors. It is usefull to even have two boxes as in this box all connectors will be different type. Aditionaly I have bought M-M and F-F SME adapters.


Picture - EMC probes set in wooden box - All probes are couted with blue plastic cover and have black plastic handle. In the package there are also two connectos and one long gold looking cable.
TekBox probes

Picture taken from -

Probes looks really profesional, they have couting, handle, great quality cable, and profesional looking box! They have price range is around 200€

Probes (from internet) - cheapest I could find with cheap PreAmplifier

Picture - On the left side there is set of 5 EMC probes, 4 are blue and one is green. On the right side is EMC Preamplifier

Price for just probe set was around 10€ and with Preamplifier was around 30€

Probes (OpenSource)

Picture - Top probe is open source one - bellow the open one is the one I bought witout just gray schrink tape over it. On open one there are logos
Two probes

I got design files for open source probe here:

I have also found those options:

DIY probes

I did not test those but there are a lot of articles around that will gude you how to make your own probe:

Laser - you can also cut everything with any available hand cutting tool

To be faster In later experiments we also bought blue 22W laser cuter

Picture of Sign on cardbox - Creality Falcon2 22W

It is a blue diode laser so it will not cut transparent acrylic, blue colors will also be problematic...

But for this project we will mostly cut/engrave paper/wood...

Picture of laser head. Blue laser cutting wood

We already have Prusa Mini that is always usefull in prototyping

Picture of Prusa Mini printer

Now that we have everything we can start our experiments!

Once I got open source probes from JLCPCB order I noticed that they does not have any case design, and those bought one had just schrink tube so I decided to do simple one.

To do that I have just exported 3D model of probe from KiCad and imported it into FreeCad, and created simple stick in case.

And here is what we have now

With fancy probes you will get S11 ( reflection coeficient ) meassurement graph printed, but now that we have VNA we can also get those meassurements for the open source probe...

What is important when you do meassurements with LiteVNA is that if you change frequency range you will need to calibration for that range.

It is super easy, but important to remember as if you do not calibrate you will get wrong meassurements.

To get Menu just click on screen


START - and select 3, 0, M

STOP - and select 6, G

That will give us range from 30MHz to 6GHz

Press BACK on screen menu

Go to CALIBRATE then select Reset all

Then click CALIBRATE

For our meassurements we will need do OPEN, SHORT, LOAD calibration.

Click on OPEN first without anything connected to port 1

Then put short addon connector that you got with your VNA and click on SHORT

Picture of SMA connector that is used as CLOSED - it has visible pin that brick signal pin with GND

After that put 50ohm addon and press LOAD

Picture of SMA connector that is used as LOAD - it has visible pin that connects signal pin over 50 ohm to GND

You are done so click on DONE

You can now SAVE your calibrated range to one of provided slots

Remove addon and now you can continue with meassurements!

LiteVNA connected to H-type probe shows S11 (reflection coeficient)

Compare probes while checking same area

For imple probe compare we could just place each probe on same area of some board.

But as we do have 3D printer I decided to go bit around.

Creating holder

My idea was to create probe holder for 3D printer so I can repeat same scan with different probes.

So I have check what holders could be usefull and found this one that has OpenScad model

Screenshoot from KiCad that is showing 3D model of camera holder for Prusa MINI

All it was needed was one cube that has bit bigger size then our Probe , so we can push it inside.

Picture shows prusa mini head with attached 3D printed probe H-type holder. Inside of holder there is probe.

And now we need target, and for that I have selected ULX3S v316 board.

But to keep target at the same place I needed to create simple holder.

That was quite easy work in OpenScad - and to told it in place I have added placeholders for two magnets.

Picture shows 3D printed holder for ULX3S - it has to magnets pushed in the case. It is simple 60mm x 40mm x 2mm cube with 4 cylinders on edges that are 20mm high

Complete setup looked like this.

But I also created one more cut so I can even rotate probe

Picture of same probe on 3D printed probe holder, but rotated by 90 degrees

Now I just need to create scanning code.

It took me some time to adjust Prusa slicer not to use filament and just move probe.

You can see on the right that I needed to edit each setting to get just movement and remember that you will also need to set Z offset as you will need to be above your board.

Screenshoot of prusa slicer screen that show 18 x 9 array of 1mm cylinders

Let's scan!

Video showing probe moving in circles above ULX3S board.

And finally results

I did the same scanning with 3 probes with TinySA

On TinySA you will only need to set range - we have set it from 30MHz to 1GHz

First was bought one, second was opensource one, and last one was H20 from TekBox.

All probes are H-Field probes with similar loop hole.

Lets check how 10 minute scan for each board looks side by side on TinySA

Picture shows tinySA and tri color traces - there are lot of spikes that are different values

You can already see that we got quite similar results, but it was quite hard to read results on screen.

Let's create app

I could probably use app that was available for TinySA ultra but you know that I love Envox EEZ Studio so I have asked Martin to help me with serial parsing, and after some work we have simple app that can get and export traces.

Screenshoot of EEZ studio GUI creator - it is showing flow chart of design also a template of graph with 4 lines

Get those traces!

Now I could easaly move mouse arund and check the difference between those probe scans.

GREEN is opensource probe, YELLOW is TekBox one and RED one is the bought one.

Screenshoot of EEZ studio application, now running with spike traces from the TinySA device, with GREEN peek marked at -52.31dBm at 172MHz frequency
Screenshoot of EEZ studio application, now running with spike traces from the TinySA device, with YELLOW peek marked at -56.34dBm at 172MHz frequency

From those graphs I would say that open probe is good enough for our tests so I decided to continue my work with only open one.

Comparing two board versions

In this example I first did scan with board that is not powered ON - so that scan is NOISE (RED).

Then I did two target scan.

First target was ULX3S v316 - 4 layer board.

Second one was ULX3S v318 - 6 layer board.

Both boards are running same sample that is using SDRAM.

Then I substracted those scans from NOISE.

Each scan was all along the board and lasted for 10 minutes.

Screenshoot from EEZ Studio application showing RED noise level on bottom, and GREEN and YELLOW signals on top. It is visible that there are more yellow traces and that at some pints there are at least double in size. Range on those traces are from -10bDM to 25dBm as graph is moved to be around 0dBm

Here is close up of scan without noise.

I think you can easily guess version of the board from that scan.

Screenshoot on previews graph with removed RED so it shows only GREEN and YELLOW traces

What are differences between older boards and v318?

We have noticed that some lines on v3.1.7 does not have good GND plane so we have switched to 6 layer version instead of 4 layer.

That created sold ground plane bellow each signal trace. We also added more GND VIAs to stich GND planes together.


Probes can be used for finding target that is emiting out of the specs electro magnetic radiation.

For example if you notice high peek around some place on your PCB - you will need to check PCB design and thing about why you have some noise at that spot.

With the help of 3D printer probes can be used for detailed scan of the whole device.

As we have measured expensive probes are better, but we can mostly use open source ones and spot problems with EMI.

We have noticed that 6 layer ULX3S is much better then 4 layer board, but it is not about how much layers board has, it is about the design - you need to take care about each trace and provide good ground plane for each trace, and also have good understanding about return currents.

For more info about return currents you can check this video: from Robert Feranec.

Design guide

You can find complete design guide on NASA page

It has example pictures of good and bad practices so make sure you understand each example they show.


More about probes

Scanning using RTL-SDR

Detailed article about probe compare

Another in detail probe compare

Here is a really good guide for the minimum you need to take care of:

Project link


Radiona/intergalaktik discord:

Envox discord:

Many thanks to NLnet for sponsoring our work!

By: Goran Mahovlić

This project is funded by NLnet

This project was funded through the NGI0 Entrust Fund, a fund established by NLnet with financial support from the European Commission's Next Generation Internet programme, under the aegis of DG Communications Networks, Content and Technology under grant agreement No 101069594.

© Intergalaktik