I am testing with a simple GaN FET and driver, a minimal sort of thing where I am still interested in heat dissipation. You can see the KiCAD project here: https://github.com/kamocat/gan_fet
I plan to keep this updated with challenges (and solutions) as they arise.
Meshing
All the solids need to be in a single object to allow a conformal mesh. Boolean Fragments seems to be the best way to do this. (Other options are Fusion and Union, but they are awkward for assigning materials)
Materials
PCB materials aren't in the default database, and most of the default materials don't have thermal properties defined.
I have attached cards for Copper, FR4, and Silicon. I haven't decided what to do for the chip packages, as they aren't homogeneous. Usually the datasheets specify the thermal resistance from the junction to the case. Is there a logical way to model that in FreeCAD?
Copper and Vias
Since FR-4 has such poor thermal conduction, adding copper with pours and thermal vias is a common way to increase heat conduction away from a chip.
Rather than using KicadStepUpMod for this, use the fcad_pcb macro from realthunder.
Code: Select all
import sys,os
import fcad_pcb
from fcad_pcb import kicad
import importlib
importlib.reload(kicad)
from kicad_parser import KicadPCB
filename= "your/file/name"
pcb = kicad.KicadFcad(filename,via_skip_hole=False,via_bound=1)
coppers = pcb.makeCoppers(shape_type='solid', holes=True, fuse=True)
pcb.makeBoard()
Complex PCBs have a lot of surfaces to select, which is tedious in FreeCAD. For now I'm only dissipating heat from the PCB, not the other components.
Radiation and convection
The simplest method of simulating convection is to increase the radiation coefficient. But this doesn't account for the air heating up as it passes. I believe Elmer has convection in its Navier-Stokes algorithm, although I haven't tried this yet.