free KiCad Wave Propagation Simulation with openEMS (E-Field, H-Field, HF-crosstalk and impedance)

Поделиться
HTML-код
  • Опубликовано: 10 дек 2024
  • НаукаНаука

Комментарии • 69

  • @Fooballium
    @Fooballium 3 месяца назад +9

    Crazy! This is super good video. Keep going.

    • @panire3
      @panire3  3 месяца назад

      happy that you liked it :)

  • @dymastro788
    @dymastro788 2 месяца назад +4

    Your channel is a goldmine on this stuff, thank you.

    • @panire3
      @panire3  2 месяца назад

      Ahoy, treasure hunter! 🏴‍☠ So glad you found the gold hidden in the vaults of my channel! Lets keep exploring-there might be more treasures to uncover. Thanks for joining the adventure! :)

  • @nurhaida1983
    @nurhaida1983 3 месяца назад +4

    Great video! I hope you'll make more using openems. Its quite hard to find openems tutorials 😢, so really appreciate your hard work and effort on these tutorials

    • @panire3
      @panire3  3 месяца назад +2

      Glad you liked it, there is much more to come, stay tuned. :-)

    • @panire3
      @panire3  3 месяца назад +2

      And yes that one took a while to make, hopefully at least it will make the journey less painful for others.

    • @nurhaida1983
      @nurhaida1983 3 месяца назад

      ​@@panire3i tried to install for python but wasn't able to run the python tutorial from the openems folder. The error was some about assertion error. I'm trying to install it on windoes 11. Any ideas how to resolve this?

    • @panire3
      @panire3  3 месяца назад

      @@nurhaida1983 not sure. Is it possible to share a screenshot?

    • @nurhaida1983
      @nurhaida1983 3 месяца назад

      ​@@panire3thanks for the quick reply. Sure! Where can I send them to?

  • @CarlosSaccogna
    @CarlosSaccogna Месяц назад

    This is the best openEMS video so far! You've got a new follower

    • @panire3
      @panire3  Месяц назад

      Nice to have you on board :)

  • @CallistoPili
    @CallistoPili 2 месяца назад +1

    great video. On top of that, in case of multi-tracks with the current version of the macro scripts you have to select a specific track before the merge of the copper. One possible improvement is to make a python function that extracts from the KiCad PCB every track name and by selecting each one, the copper fusion will be decomposed quickly into each net, the compound created will have the track name, it will possibly save a massive amount of time.

    • @panire3
      @panire3  2 месяца назад

      With "current version of the macro", do you mean this one? github.com/LubomirJagos42/FreeCAD-OpenEMS-Export
      Yes it would be nice to have each net decomposited and selectable via track name.

  • @BrendonSultana
    @BrendonSultana 3 месяца назад +2

    Thanks for this video!

    • @panire3
      @panire3  3 месяца назад +1

      Glad it was helpful! :)

  • @NezihBenJemia
    @NezihBenJemia Месяц назад

    Thanks for the video hope to see more kicad videos plssss.

    • @panire3
      @panire3  Месяц назад +1

      Yup, videos will keep coming. The main reason why there arent more videos on the topic is because my laptop is slow. Hopefully soon i can outsource something to a cloud service instead.

    • @NezihBenJemia
      @NezihBenJemia Месяц назад

      @panire3 good to hear you're videos made me download kicad again.

  • @lubomirJagos
    @lubomirJagos Месяц назад

    great work! ;)

    • @panire3
      @panire3  Месяц назад

      Thanks! Means a lot coming from someone whose work I admire. Lets keep it up! 👏

    • @lubomirJagos
      @lubomirJagos Месяц назад

      @panire3 I wanted to do similars videos like this what you are doing, but now I am working on something else and I am quite busy at work, great that you are able to use it, if you found something missing or some error don't hesitate to write me, I will upgrade or repair FreeCAD macro

    • @panire3
      @panire3  Месяц назад +1

      @@lubomirJagos Yeah, there are so many interesting things to do, cant do all at once Agreed I will text you once I tested all features out, lets keep in touch. 🙂

  • @IBasilisvirus
    @IBasilisvirus Месяц назад

    one difference of the video vs the .ini file you uploaded, in the port settings tab 14:57 , you use Z direction while the .ini file you uploaded says X direction

    • @panire3
      @panire3  Месяц назад +1

      Thank you a lot for the correction, it has to be z direction, i corrected the ini file.
      By the way, there’s another issue in the video: The electric field setting isn’t in "V/m" but seems to be a unitless scaling factor. So there is no easy way to define the exact voltage pre-simulation. I will have to give an update on how to reliably set the voltage amplitude in the next videos.

    • @IBasilisvirus
      @IBasilisvirus Месяц назад

      @@panire3 hmm... I managed to replicate your simulation using your .ini file with "x" direction though... I will need to check it in depth, maybe the simulation works using both X and Z direction.

    • @panire3
      @panire3  Месяц назад

      Enjoy playing around with the different settings.
      I will also have to investigate on that a bit more. When I started with openEMS i was always wondering why I have wrong impedance results until I figured out that there is this option on setting the direction of the field, since then I felt a bit more comfortable with the results.

  • @BatchDrake
    @BatchDrake 16 дней назад

    It would be awesome if SPICE models could be integrated in the simulation. I know you can define shunt capacitors / inductors / resistors, but for diodes and transistors things are not trivial.

    • @panire3
      @panire3  16 дней назад +1

      Yes, would be nice to have more things. For sure one day we can have an Arduino running in the simulation that drives some kind of motor. Multiphysics simulation would be also a nice thing to have, lets seee how far we will be in a few years.

  • @jabowery
    @jabowery Месяц назад

    It will come as no surprise that this installation procedure doesn't work on Ubuntu 22.04.5 LTS with FreeCAD 0.21.2 rev 33771 (Git) -- particularly given that panire did tell us to use only FreeCAD 19 ( although the text caption of his speech transcribed that as "9").

    • @panire3
      @panire3  Месяц назад +1

      Thanks for pointing that out, I corrected the subtitle from 0.9 to 0.19. The installation process on Ubuntu is quite different from Windows.

    • @panire3
      @panire3  Месяц назад +1

      I’m considering creating another video on installing it on Linux once I’ve figured it out myself. I’ve already failed five times trying to install it on Ubuntu, so I completely understand your frustration!

  • @niklas2052
    @niklas2052 2 месяца назад

    Thank you so much for this video (and the others), they are great!
    One thing is unclear to me: in the "Object Assignments" step, there are these priority lists on the right, I saw you reordering items there. What is the effect of those? And what's the logic you used for choosing the order?
    Maybe you can elaborate on that in a future video? (apologies if you already did, I haven't watched all of them yet 😅)
    Finally, regarding the FreeCAD-openEMS-Macro: have you considered maintaining a fork of it, and linking it in the videos? The original author seems unresponsive on Github.
    That way it's easier to find than by googling for it, and some of the bugs can be fixed (some are really low-hanging, like the dumnp_type -> dump_type thing, and the initially disabled button).
    Anyway, thanks again, and keep on simulating! 🚀

    • @panire3
      @panire3  2 месяца назад

      thank you for the question, very appreciated, I really didnt elaborate on this and will try to adress it properly in the next video.
      Effect of the item order: the first item on the top will overwrite the ones lower. so if you for example have a port, but above it a copper item of the same size then your port would disappear. -> not good
      Another example: if your airbox would be the topmost item, all other items would be ignored by the simulation as the air box covers all other items but is the highest priority as it would be the topmost item. -> not good again :)
      I added the forking and linking of the videos to my todo list, consider it done within the next days.
      Yay, agreed lets keep on simulating 🚀

    • @niklas2052
      @niklas2052 2 месяца назад

      @@panire3 Alright, now some of the issues I've had when experimenting make a little more sense :) Thanks for the explanation.
      Regarding the macro: I pushed some bugfixes (including the ones mentioned) to my fork on github, feel free to pull those, my handle is "nilclass".

    • @panire3
      @panire3  2 месяца назад +1

      @@niklas2052 wow that bugfix was fast, thank you and i will check it out asap

  • @411Light
    @411Light 2 месяца назад

    Great work ! I've tried myself many times gluing all these open source projects without much success.
    Do you think it is possible to extract equivalent L and C tracks parasitics elements from these simulation ?
    Have you tried simulating magnetics with their ferrite core ?
    I'm doing open source hardware power electronics and I would love to improve our design with open simulations :D

    • @panire3
      @panire3  2 месяца назад

      You can extract L and C from the scattering parameters S11 and S21 and using a spreadsheet program, but its quite a learning curve and very manual.
      I didnt test out ferrite cores yet that include the exact 3D shape of a ferrite, but you can insert SMD inductors into the simulation via the Lumped parts tab. This of course doesnt mimic the exact model of the ferrite, but might be a good approximation.
      Enjoy, and hopefully some of the videos help improving yours designs. :)

  • @jadahaa
    @jadahaa 3 месяца назад

    I have watched almost all of your videos. So good! I was just about to test out openEMS myself. I have used Comsol in uni which I believe is a FEM solver, just like the FEMM 4.2 you used in some other videos, as well as the ElmerFEM. What is the difference between openEMS and a FEM solver? Is it just 2d vs 3d? And any reasons that you switched to ElemerFEM from FEMM 4.2 in the more recent videos?
    Before I stumbled upon your channel I was about to test 'pcbmodelgen'. Have you tried that one? Seems perhaps like FreeCAD to OpenEMS is more advanced from the little I've read.
    Anyway, apart from just mastering the open source tools I would like to simulate radiated emissions like you did in your video before this one. Could be very resourceful within my project. I would also like to simulate a co-planar diff pair with something more flexible than atlc. Any recommendations for this? Thanks and keep the videos coming!!!

    • @panire3
      @panire3  3 месяца назад +1

      Hi there nice to hear that you enjoyed the videos and even more if they are useful for an actual project. :)
      Regarding difference between FDTD and FEM, try asking chatGPT he gave a better answer within a few seconds than I have got reading through several forums and articles.
      internal difference (not visible to the end user): The main difference which even the name implies is that FDTD is time domain, so the calculations are done in time domain and then the result can be converted to frequency domain as well. FEM on the other hand theoretically can do calculations in frequency and time domain right away, but as end user I dont really care what happens internally (as a developer of those tools of course you would care a lot about this difference).
      difference visible to the end user: FDTD in almost all cases uses rectangular grids, while FEM can also use Tetrahedrons (shape simlar to a pyramid). Tetrahedrons can minimize the "staircase effect" which you tend to get with rectangular shapes. As solution just choose a fine enough mesh, so again as end user you can use both tools just fine in most cases.
      PS: FDTD and FEM can both do 3D, I only simulated the cross section in my last openEMS video because i wanted to keep it simple.
      2D and 2.5D FEM: FEMM 4.2
      2D and 3D FEM: Elmer
      3D FDTD: OpenEMS
      PCBModelgen: did not use it yet, but hey thx for the tip for another video :)
      Enjoy running the differential pair simulation! The advantage of using a 3D solver is that it accounts for the effects of nearby traces, whereas ATLC assumes the differential pair is fully isolated, which isn't realistic in the real world.

    • @panire3
      @panire3  3 месяца назад +1

      sorry i oversaw this one: And any reasons that you switched to ElemerFEM from FEMM 4.2 in the more recent videos?
      No specific reason, I am just showing how to use all the different options.
      The advantage of FEMM 4.2 is that it is super fast because of the 2D/2.5D approach.
      The 3D solvers take hours so simulate even for the simplest of traces. So if you want a quick and rough estimate of e.g. the voltage drop across a trace, Femm 4.2 is super fast. With the 3D solvers you will have to let the simulation run over night in many cases or often even over the weekend, just to see that there was an error and to have a bad start into the working week ;-)

    • @jadahaa
      @jadahaa 3 месяца назад

      @@panire3 Thanks for the quick answer! I will address both of your replies here :-) Solvers and simulators are very interesting, I definitely need to read up way more. Since I only use Linux I'll probably start with Elmer and play with that (even though I know virtualization will work just fine). You say it's 3D FEM but perhaps it has compatibility with 2/2.5D as well?
      I was thinking about what a realistic workflow would be. Perhaps simple 2D simulations at first, for the general stackup and maybe some irregular design patterns on the board if any. Then we layout and route everything according to these results and of course all the 'best practices'. Then we can either simulate the PCB fully or just take out parts of the trace routing, depending on which is the least tedious. I think you have demonstrated both of those two alternatives in your videos. What do you think?
      I think what matters the most for me would be the time it takes for properly setting up a simulation. One button press would be ideal ;-) If it's faster to set up a full board by a simple import and some general settings, then it's fine if it will take time to complete. Simulations overnight are no problem, and/or in parallel. Then again I need to just play and learn the stuff to know more what to expect and learn the limitations.
      Great to hear that you consider another video with the other import tool! I would watch for sure. Another useful topic of interest for me would be thermal simulations from KiCad and FreeCad models , just throwing that out there without even a search about it :-)

    • @panire3
      @panire3  3 месяца назад

      @@jadahaa Yes, Elmer can also do 2D but I only used it for 3D so far.
      "One button press would be ideal ;-)"
      If you want one button press I think the commercial tools like altium designer are the best choice. Maybe they even have a student version for their signal integrity addons.
      "Another useful topic of interest for me would be thermal simulations from KiCad and FreeCad models"
      Elmer can do thermal simulations as well, i have posted a free link to my udemy course which includes thermal simulations in the comment section of this video: ruclips.net/video/trNCL96CELo/видео.html

    • @jadahaa
      @jadahaa 3 месяца назад

      @@panire3 Thank you! I will check it out

  • @megamega7091
    @megamega7091 2 месяца назад

    Hey, greaat video! I am, however, having trouble with a more complex board. I am having trouble selecting a specific trace, in the bottom corner it is named as "unnamed.coppers_drilled001.Face26960" when i hover over it with my mouse. I can only find the object that includes it and all other copper parts on the board.

    • @panire3
      @panire3  2 месяца назад +1

      did you see my follow up video already? In it I am simulating a sliglth more complex board: ruclips.net/video/yrl2gRjtrek/видео.html
      Selecting single traces is not direcly possible, how it works is that you have just one copper object for all traces, you just place (=position) a "port" at the traces that you want to inject a voltage into.
      If you send me a link to a screenshot or screen record, i can maybe help out in a bit more detail.

    • @megamega7091
      @megamega7091 2 месяца назад

      @@panire3 I will watch it, thank you!!

  • @terrysworkbench
    @terrysworkbench 2 месяца назад

    I get the following error when import "cannot find kicad_common" I attempted to install fcad_pcb, but I don't know what I am doing. I am stuck at trying to import my pcb into FreeCAD. Any pointers appreciated.

    • @panire3
      @panire3  2 месяца назад

      Hi there, For the openEMS tutorials you wont need fcad_pcb (i now completely removed the fcad_pcb macro and tried it with just the openEMS macro and it still worked). Are you encountering this error when trying to follow this specific video, or another one? Also, a quick tip: make sure you're using FreeCAD 0.19 and KiCad 6.0 (the whole kicad project has to be saved via kicad 6.0), as I’ve run into issues almost every time I switched versions. Feel free to send me a screen recording of the steps you’ve tried so we can troubleshoot together.

    • @terrysworkbench
      @terrysworkbench 2 месяца назад

      @@panire3 Yes, I am using those versions. So, I am not sure if adding the KiCadStepUpMod solved this, but I was able to get it to open example KiCad PCBs. I am getting an error with loading the PCB I want to do the analysis on. I will keep working to figure that out. It doesn't recognize a character in the _PCB file. Weird. Thank you for this tutorial! My hatred of how brittle python is was curbed for a moment using your tutorial.

    • @panire3
      @panire3  2 месяца назад

      @@terrysworkbench alright good luck. if it just doesnt want to load even after more trying, you can later also send me the file and i will try loading it.

  • @krysieks
    @krysieks 10 дней назад

    Anyone successfully run macro on Freecad 1.0.0 ?
    For me the "KICAD PCB Import Tool" does not work

    • @patryksikora5262
      @patryksikora5262 8 дней назад

      Same problem here even on version 0.21 is not running

    • @panire3
      @panire3  8 дней назад

      I face the same issue, which is why I always stick to version 0.19.4. The same applies to KiCad - even the slightest change leads to major problems. 😊 For anyone using openEMS for the first time, I strongly recommend using my exact setup without any modifications to avoid unnecessary frustration.

    • @krysieks
      @krysieks 5 дней назад

      It looks like "import WebGui" has issue

    • @krysieks
      @krysieks 2 дня назад

      if you comment above line out the button will appear enabled

  • @Sir-Dexter
    @Sir-Dexter 2 месяца назад

    nice

  • @IBasilisvirus
    @IBasilisvirus Месяц назад

    What FreeCAD version are you using exactly? FreeCAD 0.19.0 doesnt exist, there is 0.19.1, 0.19.2, 0.19.3, 0.19.4

    • @panire3
      @panire3  Месяц назад +1

      It's actually 0.19.4-sorry for the misinformation, and thank you for asking for clarification! 😊

  • @voinea12
    @voinea12 2 месяца назад +1

    alti-who

    • @panire3
      @panire3  2 месяца назад +1

      alti-um? :)

  • @dunk_law
    @dunk_law 2 месяца назад

    This is far to complicated a procedure. A lot of work still to do.

    • @panire3
      @panire3  2 месяца назад

      Its indeed not a 1-click solution.

  • @Rafael_Augusto_SS
    @Rafael_Augusto_SS 2 месяца назад

    Thanks for this video!

    • @panire3
      @panire3  2 месяца назад

      you're welcome, glad it is helpful. :)