
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.
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.
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 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.
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.
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.
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.
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 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.
Download the Elmerfem binaries for Windows, run the installer, and complete the prompts before starting Elmer to confirm a successful installation.
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 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.
ground bounce and current flow distribution of an Arduino Board to find out where the ground layer needs improvement.
Learn how to fix errors when trying to create meshes from KiCad ground planes
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.
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.
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.
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.