This is exactly what people need to see. “But But But, if i just do this step, i can save my 2 layer board, and cut costs”… As Australians would say: “Yeah… Nah…. Won’t work”. I really hope you can get a lot more views on these types of PCB layout design fundamental videos.
Wow. This was incredible. It seams like FreeCAD and KiCAD is coming closer and closer to each other. Hopefully both organisations improve the interactions in the future.
Very cool! This is the tooling I've been wishing I had to learn OpenEMS! I would love to see a tutorial on PCB Trace Antenna design using this FreeCAD OpenEMS Macro.
I intend to create a video on antenna design with openEMS in the future. In the meantime, here’s a valuable lesson we learned the hard way at a previous job: when working with an IC, it's crucial to stringently follow the manufacturer's antenna design guidelines and avoid unnecessary experimentation or simulations. If issues come up, you'll have a strong rationale to support your design decisions when discussing them with customers. Additionally, if there are plastic components near the antenna, it’s best (in my opinion) to remove them to comply with the manufacturer's guidelines rather than altering the antenna design through simulation. Only do this if you're very confident in your understanding and can handle any challenges from potential high-frequency design experts!
@@panire3 Have been putting your quick video on Kicad -> FreeCAD -> Elmer to use recently and am so impressed I have signed up for your Udemy course on KiCAD FEM. As Kicad8 is able to load Altium Designer files I am able to start analysing my layouts; for volts drop and current flow. I do need to scan the resulting KiCAD file and SearchReplace "(locked yes)" with "(unlocked no)" and as my designs are quite large I filter by the net I want, though I have to select the net 'number' rather than the net name; again this is in the KiCAD file.
@@panire3 Aw I see, I am planning on ordering my first proper PCB soon, so I would have loved to see that video. Would you mind stating what the technique is? Is it do with stitching capacitors?
My 3d preview un CSXCAD shows all the objects spread out in space, as if they were referenced to different origins. I cannot make the simulation work because of this. Any ideas?
I had the same problem with another laptop using "Intel® HD Graphics 3000" but did not manage to fix it. It most likely has something to do with opengl support of your graphics driver i believe. -> Maybe a graphics driver update helps. With other laptops I had it working on specific windows versions only, for example it worked on windows 11 and 7 but not on windows 10 and 8.
Great observation and question! I chose to fill the vias primarily to reduce simulation times. The via wall thickness is typically around 25 micrometers, which would require an extremely fine mesh, significantly slowing down the simulation. Filling the vias was a compromise I made for efficiency. However, if your laptop has enough RAM and processing power, you could definitely try running the simulation with the actual via dimensions for more accuracy.
Hi there, yes the HF return current (high frequency return current) inside and on the surface of the copper can be measured via the J field dump box. For the DC current in the ground plane, i would use the application "Elmerfem" as shown in my other videos.
May I know what influeces the number of fields? If I were to perform a sim using a 4-layer board, does it mean that i need 5 fields, i.e 1-top, 1-bottom, 1-between layer 2 & 3, 1-between layer 1&2, 1-betweeb layer 3&4? Also, for the lumped part, do you mean if there is a capacitor on my board, i can define the lumped part settings in the macro? Great video again, panire👍👍
Yes I would also make the 5 fields as you described. This way you can have a visual representation of the crosstalk between the signals on all layers. Regarding lumped parts, this is the tab for the lumped parts where you can for example set a capacitor, you can even add series inductance and resistance for the capacitor: drive.google.com/drive/folders/18uq8I4NOa-xzl15IW5JjobE8b2wy4B03?usp=drive_link But be aware as first time user: you will have to adjust the capacitors orientation to x or y in the generated code, depending on how your capacitor is placed on the PCB. I plan to make a video about this topic next month if i find time to do so, if you dont figure it out yourself until then at least help is on its way. :)
@@panire3thank you so much! Yeah, i'm trying to be brave to play around with the settings abit😂. Thank you very much for the videos again. Looking forward on your next one. 😄
@@panire3i have another question: if I have multiple voltages, such as 5v, 3v3, etc., does it mean I should make multiple portIn for each of of the power sources? Or is it better to perfor. Separate simulations for different voltages?
It's absolutely fine to have two ports with different voltage levels, like 5V and 3.3V, in the same simulation. However, you can only select one type of excitation per simulation (at least I think so, but maybe i am wrong here). Advantages and disadvantages of sequential testing (one simulation per port): Running separate simulations for each voltage has the benefit of allowing direct comparison with VNA (Vector Network Analyzer) measurements of the actual PCB after production. Since most VNAs have a single port, you would typically measure each signal sequentially in real life, making this approach more consistent with how you'd validate your design. A disadvantage is that you cannot measure any effects due to signal interactions, but as openEMS cannot inject 2 signal types anyway, this is a general bottleneck of openEMS (at least to my knowledge). Advantages and disadvantages of injecting into multiple ports simultaneously: This approach is much faster for quickly analyzing all signals on the board and generating a crosstalk heatmap. However, it can result in a complex visual output with overlapping signals, making it difficult to pinpoint which trace is contributing to specific noise or interference. Hope this reply helps also if its not covering everything. :)
@@panire3 that does make sense. Thank you very much for the detailed explanation. Will keep into mind. I have another question, actually, its not a question but more of a problem that occurred to me. I was tryinf to simulate a much complex board however, the board was designed in altium, hence, I imported it into kicad, and perform the same steps to run via python. Whilst I was running via python, the script crashed and I was unsure what the problem was. I tried to generate the script for octave, and try to run via octave, and similar result occurred. However, thanks to octave's command prompt, openEMS generated an error code which I believe was fetched from the system? Below is the extract of thr error: error: openEMS binary exited with error-code -1073740791 I tested another complex layout with also, imported from altium, into kicad, and performed the same steps. The same result. Have you came across with this problem before? P.S. i don't have ansys, so, yeah, i'm using openems to learn EM sim 😅
I did this thing with 2 "extra" vias on both sides of a trace whenever there is a trace going on the back side of the PCB but never really fact checked if it's any good. To be honest at this point just using a 4 layer PCB with an uninterrupted ground plane seems like the best choice from a hobbyist perspective anyways.
That's definitely a good start. A 4-layer board together with return current vias on all sides solves many issues right away without the need to think about them. If budget is a major concern, you can begin with a 2-layer board and use the technique shown in this video to troubleshoot if any problems arise. Functionally, I've rarely encountered significant issues, even with poorly designed 2-layer boards. However, EMC (electromagnetic compatibility) often becomes a real challenge when it comes time to sell and certify the product.
This is exactly what people need to see. “But But But, if i just do this step, i can save my 2 layer board, and cut costs”… As Australians would say: “Yeah… Nah…. Won’t work”. I really hope you can get a lot more views on these types of PCB layout design fundamental videos.
This is excellent. I don't know how I've never found your channel before
I uploaded my first video 3 months ago, so I am still kind of a newbie here. welcome aboard :)
This is incredible and super timely. I looked to see when this was uploaded and was surprised to see "23 hrs ago."
Liked and subscribed. Thanks man!
enjoy using it for your own project :)
Wow. This was incredible. It seams like FreeCAD and KiCAD is coming closer and closer to each other. Hopefully both organisations improve the interactions in the future.
Very cool! This is the tooling I've been wishing I had to learn OpenEMS! I would love to see a tutorial on PCB Trace Antenna design using this FreeCAD OpenEMS Macro.
I intend to create a video on antenna design with openEMS in the future. In the meantime, here’s a valuable lesson we learned the hard way at a previous job: when working with an IC, it's crucial to stringently follow the manufacturer's antenna design guidelines and avoid unnecessary experimentation or simulations. If issues come up, you'll have a strong rationale to support your design decisions when discussing them with customers.
Additionally, if there are plastic components near the antenna, it’s best (in my opinion) to remove them to comply with the manufacturer's guidelines rather than altering the antenna design through simulation. Only do this if you're very confident in your understanding and can handle any challenges from potential high-frequency design experts!
First video i hace seen, channel is also filled with great content. Immediately subbed
Welcome aboard! hope you find many usecases for your own designs. :-)
Wonderful ! I'm going to replicate your steps as this is something I'll find extremely useful. ❤
glad to hear it was useful. :)
@@panire3 Have been putting your quick video on Kicad -> FreeCAD -> Elmer to use recently and am so impressed I have signed up for your Udemy course on KiCAD FEM. As Kicad8 is able to load Altium Designer files I am able to start analysing my layouts; for volts drop and current flow. I do need to scan the resulting KiCAD file and SearchReplace "(locked yes)" with "(unlocked no)" and as my designs are quite large I filter by the net I want, though I have to select the net 'number' rather than the net name; again this is in the KiCAD file.
This is really incredible! Thanks for share it! I want to try what you do it in my next design :D
thats perfect, the best outcome of this video would be if it helps you in an actual design instead of just having watched the video. :-)
This is wonderful. Thank you for sharing your awesome project!
This is absolutely amazing! I'm blown away!
you are doing a great work , please continue
That's the plan! 😅 and there are still a lot of things to figure out and to share the results
This awesome! Thank you so much for sharing!
My pleasure. :)
Excellent instructions. Thank you!
cheers :)
This is awesome, man! :) Thanks for showing us such a cool thing!
Glad you liked it! :)
Hi, are you planning on releasing your part 2 soon? I would love to see how you mitigate these issues as a beginner to PCB design!
Hi! Yes, I’m working on it, but haven’t gathered enough material yet to make a full video. 😊
@@panire3 Aw I see, I am planning on ordering my first proper PCB soon, so I would have loved to see that video. Would you mind stating what the technique is? Is it do with stitching capacitors?
@@flamebull5 yes, layout-wise stitching is for sure one of the biggest improvements that i dont see on many boards.
My 3d preview un CSXCAD shows all the objects spread out in space, as if they were referenced to different origins. I cannot make the simulation work because of this. Any ideas?
I had the same problem with another laptop using "Intel® HD Graphics 3000" but did not manage to fix it. It most likely has something to do with opengl support of your graphics driver i believe. -> Maybe a graphics driver update helps.
With other laptops I had it working on specific windows versions only, for example it worked on windows 11 and 7 but not on windows 10 and 8.
nice! one question, is there a practical reason why you chosen the Via holes filled and not the original version?
Great observation and question! I chose to fill the vias primarily to reduce simulation times. The via wall thickness is typically around 25 micrometers, which would require an extremely fine mesh, significantly slowing down the simulation. Filling the vias was a compromise I made for efficiency. However, if your laptop has enough RAM and processing power, you could definitely try running the simulation with the actual via dimensions for more accuracy.
Can you predict the return current flow with your simulation?
Hi there, yes the HF return current (high frequency return current) inside and on the surface of the copper can be measured via the J field dump box. For the DC current in the ground plane, i would use the application "Elmerfem" as shown in my other videos.
Question can this simulate high speed differential circuits CML circuits etc.?say uoto 4ghz
I didnt yet siimulate differential signals with openEMS, but i will send you another reply onto this message once i did.
@@panire3 thks
You can create a surface in FreeCAD as a pure 2D object.
thank you for the info, i will try to find out how to do that until next time. 👌
May I know what influeces the number of fields? If I were to perform a sim using a 4-layer board, does it mean that i need 5 fields, i.e 1-top, 1-bottom, 1-between layer 2 & 3, 1-between layer 1&2, 1-betweeb layer 3&4?
Also, for the lumped part, do you mean if there is a capacitor on my board, i can define the lumped part settings in the macro?
Great video again, panire👍👍
Yes I would also make the 5 fields as you described. This way you can have a visual representation of the crosstalk between the signals on all layers.
Regarding lumped parts, this is the tab for the lumped parts where you can for example set a capacitor, you can even add series inductance and resistance for the capacitor: drive.google.com/drive/folders/18uq8I4NOa-xzl15IW5JjobE8b2wy4B03?usp=drive_link
But be aware as first time user: you will have to adjust the capacitors orientation to x or y in the generated code, depending on how your capacitor is placed on the PCB.
I plan to make a video about this topic next month if i find time to do so, if you dont figure it out yourself until then at least help is on its way. :)
@@panire3thank you so much! Yeah, i'm trying to be brave to play around with the settings abit😂. Thank you very much for the videos again. Looking forward on your next one. 😄
@@panire3i have another question: if I have multiple voltages, such as 5v, 3v3, etc., does it mean I should make multiple portIn for each of of the power sources? Or is it better to perfor. Separate simulations for different voltages?
It's absolutely fine to have two ports with different voltage levels, like 5V and 3.3V, in the same simulation. However, you can only select one type of excitation per simulation (at least I think so, but maybe i am wrong here).
Advantages and disadvantages of sequential testing (one simulation per port):
Running separate simulations for each voltage has the benefit of allowing direct comparison with VNA (Vector Network Analyzer) measurements of the actual PCB after production. Since most VNAs have a single port, you would typically measure each signal sequentially in real life, making this approach more consistent with how you'd validate your design. A disadvantage is that you cannot measure any effects due to signal interactions, but as openEMS cannot inject 2 signal types anyway, this is a general bottleneck of openEMS (at least to my knowledge).
Advantages and disadvantages of injecting into multiple ports simultaneously:
This approach is much faster for quickly analyzing all signals on the board and generating a crosstalk heatmap. However, it can result in a complex visual output with overlapping signals, making it difficult to pinpoint which trace is contributing to specific noise or interference.
Hope this reply helps also if its not covering everything. :)
@@panire3 that does make sense. Thank you very much for the detailed explanation. Will keep into mind. I have another question, actually, its not a question but more of a problem that occurred to me. I was tryinf to simulate a much complex board however, the board was designed in altium, hence, I imported it into kicad, and perform the same steps to run via python. Whilst I was running via python, the script crashed and I was unsure what the problem was. I tried to generate the script for octave, and try to run via octave, and similar result occurred. However, thanks to octave's command prompt, openEMS generated an error code which I believe was fetched from the system? Below is the extract of thr error:
error: openEMS binary exited with error-code -1073740791
I tested another complex layout with also, imported from altium, into kicad, and performed the same steps. The same result. Have you came across with this problem before?
P.S. i don't have ansys, so, yeah, i'm using openems to learn EM sim 😅
I did this thing with 2 "extra" vias on both sides of a trace whenever there is a trace going on the back side of the PCB but never really fact checked if it's any good. To be honest at this point just using a 4 layer PCB with an uninterrupted ground plane seems like the best choice from a hobbyist perspective anyways.
That's definitely a good start. A 4-layer board together with return current vias on all sides solves many issues right away without the need to think about them. If budget is a major concern, you can begin with a 2-layer board and use the technique shown in this video to troubleshoot if any problems arise. Functionally, I've rarely encountered significant issues, even with poorly designed 2-layer boards. However, EMC (electromagnetic compatibility) often becomes a real challenge when it comes time to sell and certify the product.