free KiCad trace impedance simulation via TDR method (trace impedance over distance) using openEMS

แชร์
ฝัง
  • เผยแพร่เมื่อ 15 พ.ย. 2024

ความคิดเห็น • 70

  • @dymastro788
    @dymastro788 หลายเดือนก่อน +17

    This is awesome, you make the barrier much lower to make simulations with Kicad!

    • @panire3
      @panire3  หลายเดือนก่อน +1

      Happy to hear that! :)

  • @matiassenger2349
    @matiassenger2349 หลายเดือนก่อน +1

    Not sure how accurate these simulations are, but just for sharing how you do this you are already a hero without a cape! Thanks a lot!

    • @panire3
      @panire3  หลายเดือนก่อน +1

      Thanks and hopefully, one day we can do a comparison with real-world PCB samples and, if needed, fine-tune the models accordingly. :)

    • @matiassenger2349
      @matiassenger2349 หลายเดือนก่อน

      @@panire3 Looking forward to the video in frequency domain. Thanks once more!

  • @martinmanzinger9627
    @martinmanzinger9627 หลายเดือนก่อน +1

    Nice video! I just discovered this possibility to simulate EM fields. It seems bit cumbersome to me to use it. But nevertheless its awesome to have those open source softwares, that would otherwise cost 10 thousands of money. I'm excited to see further progress in development.

  • @the_ALchannel
    @the_ALchannel หลายเดือนก่อน +16

    Great tutorial, but in this particular example you get those giant reflections on a straight trace only because of the copper plating on the top side of the PCB (all around the trace). This creates parasitic parallel-plate line which allows the reflections to propagate and reflect off the boundaries. If you delete this top plating layer you will see a much cleaner picture and the influence of the PCB edges will be negligible.

    • @panire3
      @panire3  หลายเดือนก่อน +4

      Yes, removing the top copper would turn the trace into a microstrip line, which would reduce reflections but increase overall emissions, as microstrip lines radiate more than coplanar waveguides. Adding via stitching is a good enhancement, though using a stripline by embedding the trace within the PCB would offer an even better solution.

    • @the_ALchannel
      @the_ALchannel หลายเดือนก่อน

      @@panire3 I see. Thanks for the clarification!

  • @hamzaobbad7858
    @hamzaobbad7858 หลายเดือนก่อน +6

    Uploaded just 29 Min Ago, i am glad i found This channel for simulating my Kicad Boards since i struggled at the beginning to use OpenEms.
    will there be any Thermal Simulation in the near Future ( it is so usefull in low Voltage high Power Applications)
    thank you Panire.

    • @panire3
      @panire3  หลายเดือนก่อน

      sadly thermal simulations are the only thing that i have placed behind a paywall on the plattform udemy for about 13USD if you have a coupon. If you are on a budget, you will even be able to find a hidden free coupon within the comments every few months. www.udemy.com/course/kicad-fem-with-free-software-tools/?couponCode=9C62BBB39D64993A56CD

  • @piranha32
    @piranha32 หลายเดือนก่อน +7

    Thanks for great videos! I've been using kicad, FreeCAD and OpenEMS for a long time, but I didn't know that a plugin connecting them existed. Your videos make starting with PCB simulation very easy.
    Do you know if there is something similar for thermal simulation? I know that it is possible with OpenFOAM, but I never used this package, and it looks very intimidating.

    • @dymastro788
      @dymastro788 หลายเดือนก่อน +1

      I think he has some videos on thermal simulation!

    • @panire3
      @panire3  หลายเดือนก่อน +1

      Glad it helped! Hope you can use some of the infos for an actual project soon. :)
      Regarding thermal simulations, @rick_er2481 is correct, check out the other comments for the thermal stuff. Unfortunately, the thermal videos aren't free, at least for the time being.

    • @IBasilisvirus
      @IBasilisvirus หลายเดือนก่อน

      @@panire3 wait you have paid content? where? you dont show any links to any other of your work

    • @panire3
      @panire3  หลายเดือนก่อน +1

      I dont want to be pushy about the paid content, so i just reply if people ask. With the youtube coupon 9C62BBB39D64993A56CD the course is 13USD: www.udemy.com/course/kicad-fem-with-free-software-tools/?couponCode=9C62BBB39D64993A56CD. If you are on a budget, i share a free link every few months hidden in the comments, so everyone has the opportunity to also go the completely free route. :)

    • @IBasilisvirus
      @IBasilisvirus หลายเดือนก่อน

      @@panire3 I definitely want to support by paying. I havent seen such a video from months of searching. I was trying to use Elmer with KiCad but I failed again and again... Thank you for everything. I do believe you should add link to the course under every video, as I was really scratching my head trying to find out what "more/ paid content" was mentioned and where I could find it. I believe you either are the only one, or one of the very few people who both knows how to do such simulations AND does make an analytic video to show how can someone else follow up!!
      I am wathcing your videos one by one the last days and replicating your projects while learning at the same.

  • @oussamaassaous4895
    @oussamaassaous4895 หลายเดือนก่อน +2

    thanks for the video man !
    you are doing a good work

    • @panire3
      @panire3  หลายเดือนก่อน +1

      Thanks, hope the quality of the videos will be better and better after some more uploads. :)

  • @AlbertRei3424
    @AlbertRei3424 หลายเดือนก่อน +4

    Can you simulate this after removing the copper pour, using only a ground plane below? It should get rid of the plane reflection?

    • @panire3
      @panire3  หลายเดือนก่อน

      your modification would then be a microstrip line and has indeed less reflections, so I can confirm this. But be aware that a microstrip has more overall emissions and might cause other problems. via stitching is a good start to contain the fields.

    • @AlbertRei3424
      @AlbertRei3424 หลายเดือนก่อน

      @@panire3 Bogatin showed that ground pour not stitched appropriately increases xtalk between traces. He doesn't talk about radiation a lot since emc is not his focus. So you confirm that CPWG have better Field containment than microstrip?

    • @panire3
      @panire3  หลายเดือนก่อน +1

      On the top side (side on which the trace is placed) of a PCB i confirm that CPWG contains the fields better than microstrip in any case that i can possibly think of.
      For sideways emissions, use via stitching next to the trace and also along the PCB outline.
      BUT: With CPWG i mean one with with via stitches, which I would call "GCPWG" to make sure that stitching vias are used.
      A ground pour next to the trace without via stitching (CPWG) could actually be a bad idea, as it increases capacitive coupling between traces which often increases crosstalk. So, I agree with what Mr. Bogatin is saying.

  • @severingetzner8211
    @severingetzner8211 หลายเดือนก่อน

    Instantly clicked subscribe. Great content!

    • @panire3
      @panire3  หลายเดือนก่อน

      It's great to have you here :)

  • @jackgame8841
    @jackgame8841 หลายเดือนก่อน

    wow, it is a lot of knowledge for doing this.

    • @panire3
      @panire3  หลายเดือนก่อน

      often I just share the videos once i figured stuff out myself, so few days ago i was kind of clueless on many things. :)

  • @yacineyaker7485
    @yacineyaker7485 หลายเดือนก่อน

    dude never stop this kind of videos they're gold. by the way can you propagation delay simulation or a parallèle traces

    • @panire3
      @panire3  หลายเดือนก่อน +1

      Yup, I’ll try to keep posting as long as possible! :) Propagation delay can definitely be visualized and measured. Just a heads up, though: simulating it with OpenEMS can take hours. For simple trace length matching, there might be faster options available, but visually, such a simulation would for sure look great.

    • @yacineyaker7485
      @yacineyaker7485 หลายเดือนก่อน

      @@panire3 do you have a LinkedIn i'de like to send you an invitation

    • @panire3
      @panire3  หลายเดือนก่อน

      @@yacineyaker7485 sure, here is the link to my profile www.linkedin.com/in/
      renato-panic-b851801ba

  • @jirisladek1313
    @jirisladek1313 หลายเดือนก่อน

    Hi, interesting video. Why are you using this workflow and not generating S-parameters from structure and then perform TDR in circuit simulator or one of python SI libs? I think that most commercial tools use such methodology. Im not familiar with tools which you are using here but is it possible to deploy lossy dielectric models with frequency dependent Dk and Df?

    • @panire3
      @panire3  หลายเดือนก่อน

      I used the direct time-domain approach because it allows me to visualize how the signal evolves as first step, giving me some confidence that the results roughly make sene. When I calculate the S-parameters first, I often get odd results that I don't fully trust, so I'm still not completely confident in using the tool.
      In theory, it should be possible with OpenEMS to define frequency-dependent dielectric constant (dk) and loss factor (df) based on the simulation from this repository (github.com/toammann/Multilayer_SMA2Microstrip). However, I haven't worked on this hands-on, so I'm unsure how straightforward the implementation is. For those interested, here are some relevant GitHub discussions regarding this topic:
      github.com/toammann/OpenEMS_MultiTermDebyeExperiments
      github.com/thliebig/openEMS-Project/discussions/157
      I'll make a follow-up video once I've fully digested the discussions there.

    • @jirisladek1313
      @jirisladek1313 หลายเดือนก่อน

      @@panire3 Thanks for explanation. I went thru your tutorials and its helpful for getting started with tool. Btw i found a bit strange that current and voltage logs over time dont have same time stamps, im not sure if this is intended but it seems strange to me, i would prefer to calculate impedance in exact moments in time. Beside that I tried to get S-parameters for planar structures like in your video and results are strange, not sure why, would be interesting to get some reliable results to get inputs for SI/PI applications.

    • @panire3
      @panire3  หลายเดือนก่อน

      @@jirisladek1313 The timestamps should definetly be the same, if they are not i have made a mistake, I will recheck the data.
      I have the same problem like you that the s-parameter data depending on the structure seems wrong, I am trying to figure out right now how to get reliable results as this will be the main topic for some of the next videos. Will feedback you once i figured it out.

    • @jirisladek1313
      @jirisladek1313 หลายเดือนก่อน

      @@panire3 Thanks. From my quick research on google it looks that different timing for I and for V is inherit way how FDTD works - do to staggered grid. so they should be shifted by half of timing or something like that. Than calculating Z from them shall use interpolated values or somehow ensure that time shift is irrelevant for bandwidth. Beside that I played a bit with that step excitation and no matter what i set for Fmax, it behaves same and Z (calculated as you proposed) has identical shape. But TDRs risetime shall define bandwidth/spatial resolution, which I was not able to change. Im not sure if this is intended behaviour or or lack of my understanding of openems. Anyway loking forward for your next videos, this is really great content for starting with openems.

    • @panire3
      @panire3  หลายเดือนก่อน

      i have the same issue with the step fuction (always just 1 time step of risetime). using the custom excitation i get the same issue with just 1 timestep risetime. so still much to figure out for both of us, I will feedback you once i figured it out. If you figured it out first, that would be even more amazing. I am quite certain that almost every openEMS user came across the very same issues.

  • @CalebCrome
    @CalebCrome หลายเดือนก่อน +2

    that's fantastic. Thanks!

    • @panire3
      @panire3  หลายเดือนก่อน

      Glad you liked it! :)

  • @miceuz
    @miceuz หลายเดือนก่อน

    This video got me inspired to finally try openEMS for real, thank you!
    However I can't get sensible results and I am not sure what I am doing wrong. I'm starting with a board I have measured on NanoVNA using TDR. And I have finally adjusted simulation params to be in the ballpark, but I am sure I'm doing something wrong. My simulation is very sensitive to input port geometry and placement. Also I don't get high impedance when signal reaches end. My grid is a bit more coarse though - 0.5mm in X direction, but I was carefult to properly mesh copper in Z an Y directions. I have already spent a week on this and intend to spend more, but I'm afraid, I need some guidance after all ;)

    • @miceuz
      @miceuz หลายเดือนก่อน

      Also I can see you have placed substantial ground plane behind the feed point, I am guessing this is to avoid radiation from the back of the port, I am feeding at the edge of board and can see fields spewing out, I wander how much this affects the simulation accuracy?

    • @panire3
      @panire3  หลายเดือนก่อน

      ​@@miceuz The closer a trace is to the edge of the PCB, the more it tends to radiate. For this reason, EMC experts typically advise to keep some distance between traces and the PCB edges to reduce radiation.
      In theory the simulation should still be correct and I would expect that more field spews out (increased radiation as mentioned above).
      Practically only a comparison measurement with a real PCB will give you peace of mind about the absolute accuracy.

    • @panire3
      @panire3  หลายเดือนก่อน

      well a small update: even with a measurement its not fully possible to have peace of mind, because you could still have measured wrongly 😅

  • @pavasama
    @pavasama หลายเดือนก่อน

    Thanks for the great content...!...I just tried your file exactly as you mentioned, but for some reason I am not getting the result that you got. Impedance is always above 100 and also getting negative values. Couldn't find what I am doing wrong. Voltage and current values look closer to what you have shown in the video (for the initial part) but the chart has many negative spikes. One thing I have noticed during the process is a warning about unused primitive ( it has mentioned PEC somewhere in the line).

    • @panire3
      @panire3  หลายเดือนก่อน

      Hi there, I added the executable python script, freecad project file, the macro settings file and also the excel table with the results.
      Hope they help you to make it work. Alternatively, you can send me a screenshot of the results or also a screen record of your steps so i can help you troubleshoot

    • @panire3
      @panire3  หลายเดือนก่อน +1

      PS: you have to only use the first 1800 values of the table, or in other words only use the values until the end of the trace is reached. The big negative and positive spikes after the 1800th sample are because the signal reaches the end of the trace there. The values after the trace end is reached are not needed anymore for this video example.
      you can check out this video regarding TDR method from Eric Bogatin, it will further help you to understand the underlying process used for the simulation.
      th-cam.com/video/yYfkuh4hQ-Y/w-d-xo.html

    • @pavasama
      @pavasama หลายเดือนก่อน

      Thanks

  • @RixtronixLAB
    @RixtronixLAB หลายเดือนก่อน +1

    Nice,thanks :)

  • @figoarzaki6375
    @figoarzaki6375 หลายเดือนก่อน

    Do you have one for S parameter?

    • @panire3
      @panire3  หลายเดือนก่อน

      Not yet, but it will be ready soon i hope. you will be notified once the video is out if you are subscribed :)

  • @marli5508
    @marli5508 หลายเดือนก่อน

    very nice work, thank you

    • @panire3
      @panire3  หลายเดือนก่อน +1

      hope it helps for your project/projects. :)

  • @AlbertRei3424
    @AlbertRei3424 หลายเดือนก่อน +1

    What js your job in real life? EMC engineer?

    • @panire3
      @panire3  หลายเดือนก่อน +1

      hardware design engineer that spent a lot of time in emc chambers.

    • @AlbertRei3424
      @AlbertRei3424 หลายเดือนก่อน

      @@panire3 So cool!

    • @panire3
      @panire3  หลายเดือนก่อน

      your job or field of study surely is cool too - else you wouldnt be here ⚡😁

  • @MrHeatification
    @MrHeatification หลายเดือนก่อน

    AMAZING!!!

    • @panire3
      @panire3  หลายเดือนก่อน

      thx for the amazing comment :)

  • @Muny
    @Muny หลายเดือนก่อน

    Wish this functionality was built-in to KiCAD!

    • @panire3
      @panire3  หลายเดือนก่อน

      in the kicad forums this is being discussed already for more than 5 years. seems not that easy to implement and/or there are more important things in development right now. so lets keep hoping :-)

  • @Konecny_M
    @Konecny_M หลายเดือนก่อน +3

    The simulation results are cool, but as such without validation against measured test cupons with same geometry cannot be used to make conclusive claims. This is in fact the key point why commercial simulation toolchains are so expensive - the validation and fitting of the models.
    Test case with large floating copper pour around the net and thick substrate dielectric is not representative for most designs in practise - you would either fully remove the pour island, or relatively densely via stitch it to ground.
    Generally copper pours on high speed signals routing layers are rarely ever used, the control over routing layer impedance is attained by using thinner dielectric core, single ended signals get wider keepouts to limit coupling. More realistic test scenario for high density PCB layout is stripline design with much thinner dielectric from both sides (in order of 80 to 200 um), for outer layer there won't be any copper pour in surrounding area with few exeptions.

    • @panire3
      @panire3  หลายเดือนก่อน +4

      This is an excellent comment and definitely worth reading after watching the video. I completely agree with everything mentioned. Once the channel grows, I’d love to conduct actual reference measurements and compare the results between the commercial and free tools to highlight the strengths and weaknesses of each.