EMI Analyzer limitations
The EMI Analyzer works from the geometry of your board: it checks the layout, simulates an ESD discharge, budgets each cable, and (where full-wave simulation is enabled) runs an electromagnetic field solver over a region you choose. It gives more detail than a rule-based design checker, but it does not replace measurements at a test house. This page describes what the results can and cannot be used for.
Geometric checks
The findings shown a few seconds after upload are geometric. They look for known causes of emissions: a trace crossing a gap in its reference plane, a layer change with no nearby return via, an unterminated via stub, or copper close to the board edge. These findings show where to look. They do not run a simulation and cannot tell you how much your board radiates. A board with no findings has not passed any test.
Limitations
| Limitation | Kind | Explanation |
|---|---|---|
Full-wave solving is experimental and off by default | method | Full-wave solving works (a board solves end to end and the field maps come back), but none of it has been checked against a real board, and no run has been made at the record length a radiated result needs (30 MHz means 100 ns of simulated time, millions of timesteps). Until that is done, full-wave solving and everything built on it (hotspot maps, the far field, cable emissions and the compliance estimate) is switched off unless a server enables it with EMI_EXPERIMENTAL=full-wave. The geometric checks, the ESD simulation, the cable budget and small-part solves do not need it. |
Small-part solves cover one net over its planes | method | A small-part solve cuts one net (or a pair) out with the planes under it and solves it in minutes. Lines and vias match theory, and on three real boards the answer does not change with the size of the cut or the mesh. It gives no far field and no compliance estimate, and it leaves neighboring nets out, so coupling into them is not shown. A net with one pad gets a 50 Ω load at its far end. Component models are left out. On the coarse mesh, via inductance can read up to about 10% high. Nothing has been compared with a measurement. |
Only comparisons between board versions are reliable | method | Comparing two versions of the same board gives a reliable result, for example that one layout radiates 8 dB less than another at 480 MHz, and which trace causes the difference. Modeling errors largely cancel between two runs of the same design, so a comparison remains valid despite the other limitations on this page. Absolute field strengths do not. Treat any single value as an order-of-magnitude estimate, not as a measurement. |
Whole-board solves are not supported | hard | A 100 × 80 mm board meshed at 25 µm has about 1.9 billion cells. That requires about 138 GB of memory and roughly ten weeks of computation. A graded mesh reduces this to about two weeks. Analysis therefore runs on a region that you select. This is a limit of the FDTD method, not of this implementation. |
Cables are modeled separately from the board, and only as a budget | hard | Below about 300 MHz, most emission failures are caused by common-mode current on an attached cable harness, which acts as the antenna. A full-wave solve contains only the board and cannot show that. The Cables tab covers it separately: each declared cable is modeled as a wire over a ground plane, and the result is a budget: how much common-mode current that cable can carry before it reaches a limit, not a prediction of what it does carry. A connector you do not declare is not modeled at all. |
The useful frequency range is about 100 MHz to 3 GHz | band | To resolve the lowest frequency of interest, the simulation must run for 3 / f_min. The timestep is set by the smallest mesh cell, which is around 0.05 ps for PCB features. Resolving 30 MHz therefore needs several hundred thousand additional timesteps, and emissions in that range are usually dominated by cable effects. |
Results are relative unless you supply a driver spectrum | setup | openEMS simulates passive structures. It calculates how the layout responds to an excitation, but it has no information about the signals on your board, such as a buck converter switching 3 A in 4 ns. Absolute field strengths require a defined source: a declared edge rate and amplitude, or a measured switching edge. |
Components are not modeled | setup | ICs, connectors and decoupling capacitors are represented only by their copper geometry, unless lumped models are provided. Package parasitics dominate above about 1 GHz, so results in that range describe the bare board and not the assembled board. |
Stackup material values must be correct | setup | Permittivity and loss tangent depend on frequency and on the fabricator. If your board file does not include them, FR-4 values are used and marked "assumed" in the stackup panel. An incorrect εr shifts every resonance in the result. |
Mesh resolution limits accuracy | method | FDTD uses a rectilinear grid, so curved and angled copper is approximated in steps. A finer mesh reduces this error. Each halving of the cell size costs roughly four times as much computation. |
Immunity checks are layout rules, not an immunity test | method | The ESD, shield and reset-line checks look for the layout mistakes behind most IEC 61000-4-2 and 61000-4-4 failures, from how parts are placed and connected. They inject nothing, so they cannot say what discharge or burst level a board survives; the ESD simulation below estimates one line at a time. Parts are recognized by reference designator, value and footprint: a protection device the tool does not recognize is reported as missing, and a connector counts as I/O by how close it sits to the board edge. |
ESD simulation voltages are estimates; compare them | method | The simulation models the trace, the clamp and its ground via from the layout, but an IC's internal protection is not published, so every pin is the same generic CMOS input. Absolute volts at a pin are therefore estimates. What holds is the comparison between variants of the same line: the clamp where it is against the clamp at the connector. Planes are ideal (no ground bounce or coupling to neighboring traces), only contact discharge is simulated, and it is injected at a pin, which is the worst case: a test discharges to a metal shell. Uploaded SPICE models replace the datasheet model only after the worker has checked them. |
Board data is stored and processed in the cloud | privacy | Uploaded board files and their results are processed by an EmbeddedCI worker on DigitalOcean. They are not sent to any third-party service or external solver. The files do leave your network, so handle them as you would any other cloud upload of an unreleased design. To keep a board on your own machine, use the desktop app or the KiCad plugin instead. |
Results are not a compliance prediction | legal | Where an FCC Part 15B limit line is shown, it is a reference for comparing versions of your own board. It is not a pass or fail result, it is not a pre-scan, and it does not replace testing at a test house. CISPR 32 limits are not included. |
Experimental results
A result marked experimental works, but the model behind it has not been checked against the case in front of you. What is unproven in each:
Hotspot maps and levels
Full-wave solving is experimental, and no hotspot map has yet been compared with a near-field scan of the same board. Use the maps to compare layers, frequencies and layouts. A level in dBµA/m is the solve scaled by the driver, and has not been checked against a probe.
Cable budget
The antenna model behind this is checked against transmission-line theory, but not yet against a second solver, and the composition it feeds has been compared with a fully coupled simulation on a synthetic board (1.2 dB typical, 2.2 dB worst) but not yet on a real one. Read it as a budget -- how much common-mode current this cable can carry before it reaches the limit -- and compare cables and layouts with it, rather than reading the absolute level as a prediction of what a test house would measure.
Compliance estimate
The chain behind this number runs end to end on the small fixture board, and has never been checked against a lab result or a second solver on a real board. The far field matches a second solver on test antennas over the ground plane, not on a board. The uncertainty is uncalibrated. Read the ranking and the contributions before the absolute margin.
Far field
Checked on test antennas, not on a board: dipoles over the ground plane match a second solver (nec2c) within 0.2 dB from 30 MHz, and within about 1 dB for a resonant one up to its resonance. The top 15 % of the solved band reads up to 2 dB low, so solve past the highest frequency you care about. On a real board the run can stop while the board is still ringing; those frequencies are dropped and marked. No real board has been compared with a measurement. A far-field run is always a long one: the band starts at 30 MHz, which needs 100 ns of simulated time whatever the board is.
Cable emissions from a solve
Checked on one real board against a fully coupled simulation: from 80 MHz up it reads about 4 dB low (worst 7 dB), and 8 to 20 dB low below 80 MHz. Use it to compare layouts, not as a level. Not compared with a measurement.
Conducted emissions scan
Differential mode only. The LISN, a buck's input ripple and an LC filter match closed forms (docs/verification/conducted-emissions.md); no board has been compared with a measurement. Regulator settings you have not entered are assumed. Common-mode current, spread spectrum and light-load modes are not modeled.
How the numbers are calculated
- The solver is openEMS, a free, open-source finite-difference time-domain (FDTD) field solver. Its physics are used unmodified.
- Memory use is 72 bytes per mesh cell: six field and operator arrays with three components each, in single precision.
- Run time is cells × timesteps ÷ throughput. Throughput on a typical worker is 150 to 250 million cell updates per second. FDTD is limited by memory bandwidth, so adding CPU cores has a smaller effect than you might expect.
- The timestep is set by the Courant limit, which depends on the smallest cell along any axis. On a PCB this is almost always the vertical mesh through a thin dielectric layer, not the trace width. For this reason, refining the vertical mesh costs about four times more than it appears to.
The published limits a prediction is measured against are on the emission limits page. Back to the EMI Analyzer.