
Simulate the electric field around a microstrip in 3D to reveal center fields and edge fields, and show how trace placement and ground planes affect shielding and electromagnetic compatibility.
Demonstrates heat transfer simulation from copper trace to PCBA made of FR4 in transient and steady-state analyses, including pulsed temperature increases for switching components, using Salome to draw it.
In this section, I will start uploading problems related to dynamic electromagnetic field simulations.
Since this section is new (created on December 19, 2024), it will take some time to populate it with content.
For those coming here from YouTube: About 50% of my Udemy students are seeing this content for the first time and haven't watched it on YouTube before. Therefore, I will also post many videos that are already available on YouTube. However, don’t worry—there will be exclusive lectures here that will remain available only on Udemy.
Install ParaView to visualize simulations in KiCad FEA workflows; download the MSI file, run the installer, and start ParaView to confirm the installation.
Learn to install openEMS, configure the Python and Octave interfaces, and integrate with FreeCAD to import KiCad layouts for openEMS simulations.
Update openEMS on Windows by downloading the zip, extracting it, and replacing the openEMS folder on the C drive with the new version, ensuring the folder contains the required files.
Learn to install openEMS on Ubuntu, configure KiCad, FreeCAD and the FreeCAD to openEMS macro, and set up Octave and Paraview for openEMS simulations.
Master wave propagation simulations using KiCad 9 and OpenEMS, exporting STEP files, using air as dielectric, and speeding up runs with efficient settings in FreeCAD and ParaView.
Learn to export step files that openEMS accepts by avoiding vias inside pads, eliminating intersecting pads, and placing vias manually for reliable openEMS compatibility.
Learn to detect and fix errors in KiCad 9 step exports by removing vias defined as pads, re-exporting, and validating results with Octave and Paraview.
Detect hidden KiCad step export errors where through-hole pads create unfilled vias, and fix by converting pads to smd with inside grounded vias to ensure proper PEC-material recognition.
Demonstrate decoupling capacitor placement in KiCad 9 and simulate the h-field with free software tools, from exporting step models to running openEMS via FreeCAD and visualizing results.
Explore how KiCad 9 simulates noise filtering with a decoupling capacitor, uses voltage probes to measure vbus noise, and compares time-domain and frequency-domain results to optimize pcb layout.
Simulate current density distribution over frequency for a KiCad 9 Arduino Pro Mini layout using a Gaussian excitation and j field, and export to step for FreeCAD and ParaView.
Explore PDN impedance simulation over frequency for a DDR4 PCB using KiCad 9, openEMS, and LTspice, focusing on Vdd1 decoupling, via paths, and layout placement to meet target impedance.
Speed up crosstalk simulations on a 4-layer pcb using KiCad 9 and FreeCAD to prepare OpenEMS setup, setting layer thickness to 0.2 mm and exporting tracks, vias, pads, and zones.
Install the FreeCAD addon StepUp for KiCad 6 by opening FreeCAD, accessing add on manager, searching for StepUp, and installing it; once installed, select StepUp from the menu.
Install KiCad 6 by downloading from previous releases, running the installer, and confirming KiCad opens without errors from the Windows start menu.
Install the fcad_pcb macro for KiCad 6 by downloading and extracting the Fcad_PCB zip into FreeCAD's macro folder, then paste the first Python line into the Python console.
Visualize high frequency crosstalk on an Arduino board using a 2d cross-section approach in KiCad and FreeCAD, then explore practical crosstalk reduction tactics like vias and ground plane changes.
Simulate the Arduino board's 3d near-field emissions in KiCad 6 to reduce crosstalk, using via-stitching and shielding, and compare results with Paraview visualizations.
Adapt a KiCad 6 far-field time-domain simulation via a two-grid smooth transition to prevent RAM overflow, inject a sine wave, and ensure a large air box for clear radiation pattern.
Explore trace impedance simulation with the TDR method in KiCad 6 and OpenEMS, revealing edge reflections and how shielding via grounded coplanar waveguides stabilizes impedance over distance.
Demonstrate trace impedance simulation over frequency with a sine wave sweep in KiCad 6, using FreeCAD and OpenEMS to model PEC and FR4.
Simulate trace impedance over frequency in KiCad 6 using FreeCAD and openEMS with a Gaussian excitation, compare with sine sweep, and analyze S11 results for FR4 PCB traces.
Visualize current directions in a j-field dump using Paraview and the glyph filter, adjusting the resample filter, color range, and sampling dimensions for clear current propagation.
Sort the hierarchy by importance to prevent lower objects from being overwritten by upper objects, placing air box at the bottom, ports at the top, and copper above FR4.
Speed up openEMS simulations by about 100x with three changes: switch PML to PEC, reduce PCB-to-boundary distance to 1–2 grid distances, and thin the substrate.
Reduce dump file sizes in KiCad FEA by using a custom excite function to lower the sample rate, achieving about a 100x reduction while preserving signal propagation visualization.
Expect delays when a simulation stalls at create FDTD engine, as OpenEMS may take about two hours to update from that state to the next step.
Troubleshoot openEMS pec dump to reveal h-field propagation. Verify the pec dump in FreeCAD, regenerate Matlab code, and apply fixes such as KiCad 6 legacy copper filling or grid alignment.
Learn how to calculate crosstalk simulation timesteps in KiCad FEA using an Excel tool, by inputting trace length and grid size to estimate steps and account for end reflections.
Import micro-vias and buried vias in KiCad 6 for multilayer PCBs, verify layer-to-layer vias, and adjust copper and substrate thickness in the layer stack.
Inject a rectangle signal with a MATLAB step excitation to generate two periods of a 100 MHz rectangle signal with a 5 ns rise and 10 ns fall.
Learn a simpler way to adjust the step excitation's sample rate using a custom function with t>0, enabling 10 GHz sampling without changing Matlab code.
Set port directions in x, y, or z for simulations using 0.2x0.2x0.2 mm PEC boxes to connect microcontroller pins and ground, avoid shorts, and use measurement ports to analyze noise.
Download the Elmerfem binaries for Windows, run the installer, and complete the prompts before starting Elmer to confirm a successful installation.
Install Salome to convert a step file into a mesh for finite element analysis, download the latest version, run the batch file from the extracted folder, and ignore Code_Aster prompts.
All the tools covered in this lecture can also be installed on Linux / Ubuntu.
Although I haven’t yet recorded a video tutorial for the installation process, I can confirm that the entire workflow runs smoothly on Linux (at least on Ubuntu). I’ve tested it successfully across several Ubuntu versions.
Please install the following tools on Linux / Ubuntu:
KiCad 9 (for PCB design)
FreeCAD (to edit the PCB’s 3D data)
Salome (to generate a mesh from the 3D data)
ElmerFEM (to run FEM simulations)
ParaView (to visualize simulation results)
LibreOffice (spreadsheet editor)
Optional: GMSH (an alternative meshing tool that can be used instead of Salome)
If you are unsure how to install applications on Ubuntu / Linux, refer to Lecture 6. It demonstrates the installation of KiCad, FreeCAD, and ParaView. Using the same approach, you should be able to install the remaining tools once needed.
Demonstrates a real-world current density simulation for a KiCad 9 layout using Brep export, Salome meshing, and ElmerFEM to identify hotspots and ensure a safe 10 degree temperature rise.
Demonstrate a KiCad 9 current density simulation by converting through-hole pads to SMD, adding vias, exporting STEP, meshing with Salome, and running Elmer for current density and heating analysis.
Simulate voltage drop on the Vcc rail and ground return in a KiCad design using Elmer DC FEM, visualize potential, and assess a 3.3 millivolt total drop.
The next lectures of this section (Section 4) are still done with KiCad 6 as I did not find time yet to update them. If you want to keep using KiCad 9, you will have to slightly adapt your workflow.
The main difference between KiCad 6 and 9 is, that KiCad 6 was not able to export 3D step data and instead the 3D files were created with a FreeCad plugin and some python commands.
With KiCad 9 you can export the 3D model of the PCB right away from the PCB editor.
Simulate voltage drop in branching traces using KiCad, FreeCAD, and Elmer, and show how an open branch carries no current and keeps its voltage constant.
Simulate current density through a via, voltage drop, and heating from current using a KiCad FreeCAD Salome Elmer workflow, exporting a UNV file and performing static conduction analysis.
Simulate current flow from an oversized pad with KiCad and free tools; reduce excess copper around a via without performance loss, noting current peaking toward the lowest potential.
Learn to simulate voltage drop across a straight copper trace using Salome for geometry and meshing and Elmer for finite element analysis. Visualize the potential drop with Elmer VTK.
ground bounce and current flow distribution of an Arduino Board to find out where the ground layer needs improvement.
Diagnose NgException surface meshing errors in KiCad FEA by reducing trace width to 0.2 mm and re-running mesh generation across FreeCAD and Salome with a Python script and step file.
Learn how to fix errors when trying to create meshes from KiCad ground planes
Identify why voltage drop and current density simulations in KiCad FEA produce incorrect results and learn debugging techniques with free software tools.
Manually redraw a troublesome trace in FreeCAD, export a step file, then use Salome and Elmer to perform a copper voltage analysis and visualize current distribution.
Simulate the field around a U-shaped KiCad 6 trace over a ground plane with Salome and Elmer to show that energy concentrates around the trace, not between trace and ground.
Learn to simulate a microstrip field in 3D using Salome and Elmer, revealing how field strength concentrates at the pcb edges, the role of ground planes, and practical EMC insights.
Learn to simulate the three-dimensional electric field around a stripline. Observe that most of the field sits between the trace and the upper ground layer, with 90% contained.
Shield a trace from three sides and analyze its 3d electric field, revealing over 90% of the field lies between the trace and its two neighboring ground traces.
Demonstrates an end-to-end simulation of E-field radiated emissions from a Duino-Nano PCB, using KiCad, FreeCAD, Meshlab, Salome, GMSH, and Elmer to visualize with paraView.
Solve a common PCB electric field simulation error by replacing rounded rectangle pads with sharp-edged rectangles, preventing boolean operation self-intersection and smoothing mesher issues for ground planes.
Perform a thermal simulation of a DPAK on one layer, two layer, and four layer PCBs, comparing temperatures across ground pad sizes and learning KiCad, FreeCAD, Salome, Elmer workflow.
Define the thermal resistance from junction to case for a DPAK by setting the material heat conductivity in Elmer, simulate 1 W input, and verify a 6 K/W result.
Simulate heat transfer from a copper trace to a FR4 PCB using Salome and Elmer, exploring steady-state and transient heat conduction, with pulsed temperature and a 60 mW heat source.
Simulate heat conduction between copper, aluminum, and plastic using Salome and Elmer. Set up meshes, materials, and a transient heat source to visualize temperature evolution.
Learn to simulate heat conduction between copper, aluminium, and polycarbonate using Gmsh as the mesher, create a 3-part model in FreeCAD, and run the heat equation in Elmer.
Apply a step-by-step thermal simulation workflow from KiCad to ElmerFEM and ParaView to analyze a 25x25 mm PCB with a DPAK LDO, without airflow, using heat transfer coefficients.
Perform a thermal simulation of natural convection around a pcb using KiCad, FreeCAD, Salome, and Elmer, with a single material, and visualize temperature and airflow evolution.
This course is for you if you already use KiCad but either cannot or choose not to invest in a commercial FEM tool.
Beyond learning how to perform FEM (and FDTD) simulations with free tools, you will also discover fascinating insights that will undoubtedly make you a better hardware design engineer by the end of this course.
By the end of this course, you'll have a solid foundation in using free FEM tools for PCB design, empowering you to make better design decisions.
What You Will Learn
In this course, I will guide you through simulating the following topics using free software tools for KiCad:
Current Flow in PCB Traces (DC) / PDN analysis / PI analysis
Learn how to simulate the current flowing through a PCB trace.
Based on current density, we will analyze and simulate voltage drops along the trace.
This will in return also give you information about the trace resistances
Electric Fields Around Traces and Components
Understand how to simulate electric fields around traces and components.
Explore 3D field simulations to visualize signal propagation and identify areas where PCB routing can be improved.
We will simulate static electric fields with the free tool Elmerfem and dynamic electromagnetic fields with OpenEMS.
Troubleshooting
I will show you many ways to troubleshoot typical errors when working with the free tools which will hopefully lead to a fast learning curve.