azonenberg changed the topic of #scopehal to: libscopehal, libscopeprotocols, and glscopeclient development and testing |,, | Logs:
bluezinc has joined #scopehal
_whitelogger has joined #scopehal
<bvernoux> does anyone have took time to check my simulation with Qucs / Sonnet Lite ?
<bvernoux> will be interesting to improve them or to add comment on the accuracy
<bvernoux> for me Sonnet is wrong for the Impedance
<bvernoux> expected impedance for that simulation is between 49.2Ohms to 49.8Ohms
<bvernoux> and not 54 or 55Ohms
<bvernoux> So I suspect I have probably missed something with Sonnet ..
<bvernoux> or that old version Lite is a bit limited ...
<azonenberg> bvernoux: what's the exact geometry you're testing?
<bvernoux> it is very basic I have provided all files on my web page
<bvernoux> just a ground and a microstrip line 0.4mm x 60mm
<azonenberg> i wanted to start from scratch in case you did something wrong with the setup
<bvernoux> ground is separated by 0.18mm from microstrip line
<bvernoux> so by simulation it is about 50Ohm (between 49.2Ohms up to 49.8Ohms depending on computation)
<bvernoux> it is corrected specifications for OSHPark 4 layers in fact
<azonenberg> and dielectric constant you used was 3.33?
<bvernoux> Er is 3.33 too
<bvernoux> and not 3.66
<bvernoux> anyway there is not a huge difference
<bvernoux> especially up to 6GHz
<bvernoux> there is all details here
<azonenberg> ok so first off in order to use a smaller cell size in the available ram i'm going to make the line shorter than 60 mm
<azonenberg> this shouldnt change impedance
<bvernoux> with exactly same parameters
<bvernoux> (except if you find an error ;)
<azonenberg> I'm using free space for the top and bottom box covers
<bvernoux> yes 60mm shall not change anythign for impedance
<bvernoux> you can try with 20mm
<bvernoux> or even 10mm
<bvernoux> I suspect it is a bug/limitation of Sonnet Lite as it is pretty old in fact
<bvernoux> I have compared with different tools
<bvernoux> I'm very confident with Saturn PCB ;)
<azonenberg> And you're measuring from what
<azonenberg> say 100 MHz to 6 GHz?
<bvernoux> 1GHz
<bvernoux> ha yes the whole test is from 0.1GHz to 10GHz
<bvernoux> for the s-param / simulation
<bvernoux> expected Impedance is 49.78Ohm @ 1GHz ;)
<bvernoux> depending on copper weight/plating thickness
<azonenberg> And what did sonnet give you?
<bvernoux> it can be 49.2 Ohms
<bvernoux> Sonnet say 54Ohm up to 55Ohms
<azonenberg> Ok see, I got 47.5 ohms super flat with this configuration, let me use a smaller cell size and tweak a few things
<azonenberg> Saturn was designed to track results from Sonnet
<azonenberg> So the two should agree very closely for simple geometry
<bvernoux> Yes Saturn is very near latest Sonnet
<bvernoux> not the LIte ;)
<azonenberg> I'm using lite though
<bvernoux> as Author of Saturn PCB use Sonnet full version ...
<bvernoux> me too I have only Sonnet Lite
<bvernoux> 15.53
<bvernoux> which is in fact very old as latest version is 17.x
<bvernoux> but not available as free demo
<azonenberg> ok with a slightly larger box (less edge effects) and a finer cell size
<bvernoux> I want to do same test with OpenEMS
<bvernoux> but I need to understand how it works ;)
<azonenberg> I get 49.95 - 49.95 ohms from 0.1 to 10 GHz
<bvernoux> ha ok good
<bvernoux> so it is strange why I obtain 54
<bvernoux> I have provided project source
<bvernoux> if you can share yours it is interesting to find the potential mistake in mine
<azonenberg> I'm using a 1mm long line, not 60mm, in order to get finer resolution
<bvernoux> ha ok
<azonenberg> 1.2mm high box
<azonenberg> and 10 micron mesh size in both directions
<azonenberg> then free space as top and bottom box covers
<bvernoux> what is not clear in Sonnet is what they call GND
<azonenberg> So that might be your problem. I'm not using the box covers as a return path
<bvernoux> in fact it is not a GROUND of a PCB like we can think ;)
<bvernoux> as there is not material
<azonenberg> I have two metal layers with a solid pour on the lower layer
<bvernoux> in my simulation anyway I have 2 layers
<bvernoux> TOP 0 1 GND
<bvernoux> as before without the 1 Z0 was totally wrong ;)
<bvernoux> in fact lot of parameters seems ok
<azonenberg> Yeah. Ok so let me make the mesh finer as i'm only using 1 MB of RAM
<azonenberg> now trying 2.5 um mesh
<bvernoux> even Phase is very near what obtained with Qucs or QucsStudio only Impedance is wrong by about 4 to 5 Ohms
<azonenberg> i think you probably had too tight a box and got edge effects or something?
<bvernoux> yes I hope it is an error in my test somewhere
<bvernoux> I cannot have a smaller mesh too in Lite
<bvernoux> it say it is a limitation of demo ...
<azonenberg> what mesh did you use?
<bvernoux> the default one
<azonenberg> afaik the only limit in lite wrt mesh size is ram
<azonenberg> but since a transmission line is linear time invariant for the most part, you can make a really short line to analyze in extreme detail
<azonenberg> i wouldnt trust numbers from a 60mm long line in lite because your meshing is probably massive
<bvernoux> if you try subdivide circuit
<bvernoux> it say => Sonnet Lite Limitation
<bvernoux> Circuit Subdivision exceeds your Sonnet Lite license.
<bvernoux> for me it is the way to have finer resolution
<bvernoux> especially to have a granularity better than mm
<azonenberg> yeah you dont want to do it that way
<bvernoux> 0.1mm
<azonenberg> circuit | box
<azonenberg> specify box and cell size
<bvernoux> ha ok
<azonenberg> I get 49.56 ohms super flat with 2.5 um mesh
<bvernoux> ha nice
<bvernoux> when you say mesh is through box settings only ?
<bvernoux> Cell Size ?
<azonenberg> Yes
<bvernoux> let's try 0.01mm on my side for X & Y
<bvernoux> yes seems very good with theory
<azonenberg> that's the response and current density plot i calculated
<azonenberg> So i dont think this is a sonnet bug, i think it's a PEBKAC problem :)
<bvernoux> let's try with 60m ;)
<azonenberg> this is my layer stackup
<bvernoux> yes I have the same
<bvernoux> Metal-1 & 2 are Copper on my side
<azonenberg> note the use of free space covers, not conductive
<bvernoux> I have not set gold
<azonenberg> i used ideal conductors, it shouldnt change much besides loss
<bvernoux> as in theory it is gold because OSHPark is gold plated / ENIG
<bvernoux> but that shall not change lot of things
<bvernoux> whoo simulation is so slow ;)
<azonenberg> And the gold is only a few tens to maybe low hundred nm thick. At most frequencies, i dont think that will carry much current
<azonenberg> at GHz frequencies i think most of the current is in the Ni
<azonenberg> hence enig loss
<bvernoux> yes I have not found the way to configure the plating
<bvernoux> without adding again some layers
<bvernoux> ha nice
<azonenberg> You might find this interesting btw. SEM EDS mapping of a solder joint between a Ni+Sn plated phosphor bronze contact at left, and an ENIG PCB at right
<azonenberg> R/G/B channels are Cu/Sn/Ni respectively
<azonenberg> normalized to full scale amplitude
<azonenberg> scale is about 45 nm/pixel
<azonenberg> here's phosphorus density, note that some of the inclusions in the solder layer as well as the PCB nickel plating, but not the contact's plating, have a fair bit of phosphorus
<azonenberg> plus trace quantities in the solder joint that i think dissolved in from the PCB plating
<azonenberg> here's copper density, you can see the nickel is a pretty effective barrier but there's still a little bit of diffusion
<bvernoux> very nice
<bvernoux> it is a cross section ?
<azonenberg> and nickel density, the PCB looks to be more solid plating than the connector
<azonenberg> tin density, looks to vary slightly with grain structure and voiding in the joint
<azonenberg> yeah this is a cross section of one of gregdavill's connectors on a pcb
<azonenberg> at the joint from pcb to connector. I was trying to do a study of the intermetallic layers to see if anything was fishy with his joints
<bvernoux> I confirm with thinner cell size the accuracy ob Impedance is better and better
<azonenberg> there looks to be a lot of voiding and nonmetallic inclusions but i want to do a section of one of my pcbs to compare
<bvernoux> I was not suspecting Impedance was so hard to simulate and requires very thin Cell Size
<azonenberg> I think in general accurate anything is going to require a small cell size to get good resolution
<azonenberg> especially for edge effects
<azonenberg> if you look at the 'view currents' display you can see that most current is flowing on the very edges of the trace, not the middle
<bvernoux> yes but the simulation is so slow ;)
<bvernoux> and in Lite version it is not using multiple core
<azonenberg> Yeah i want the full version but i'm not made of money sooooo...
<azonenberg> lol
<bvernoux> On my side I will try OpenEMS as it is clearly a good challenger ;)
<bvernoux> I tried to contact QucsStudio guy too but his old email is unreachable
<bvernoux> as he has integrated OpenEMS in his latest QucsStudio 3.3.1
<bvernoux> but this version is not available ...
<bvernoux> look those amazing features in the unreleased 3.3.1 (which is 6 months old)
<bvernoux> you see in the background the meshes
<bvernoux> as it run OpenEMS ...
<bvernoux> so now I know if I want accurate Impedance value I need really thin meshes ..
<bvernoux> but simulation time explode ;)
<bvernoux> here with Cell Size X/Y => 0.025mm I obtain about 52Ohms Z
<bvernoux> hmm the same with Cell Size X/Y = 0.01 about 52Ohms
<bvernoux> so the accuracy for Impedance is not good when size is 60mm long ...
<bvernoux> it use already 21MB and Subs 1621
<bvernoux> so it is a good point as Sonnet Lite shall be used on small area ;)
<bvernoux> for any simulation exceeding 3cm it does not work correctly for some parameters especially Z
<bvernoux> or it needs hugh meshes and exceed demo version ...
<bvernoux> and take days ;)
<bvernoux> will be very interesting to compare it vs OpenEMS when I will know how to use EMS ;)
<_whitenotifier> [scopehal] azonenberg pushed 1 commit to master [+0/-0/±7]
<_whitenotifier> [scopehal] azonenberg d276ed0 - Initial support for temperature reading on multimeters. Added negative Y coordinate support to Graph widget.
<_whitenotifier> [scopehal-apps] azonenberg pushed 1 commit to master [+5/-0/±0]
<_whitenotifier> [scopehal-apps] azonenberg b11749f - Initial version of reflowmon
<_whitenotifier> [scopehal-cmake] azonenberg pushed 1 commit to master [+0/-0/±3]
<_whitenotifier> [scopehal-cmake] azonenberg 9976d85 - Updated submodules, added reflowmon
<_whitenotifier> [scopehal-apps] azonenberg pushed 1 commit to master [+0/-0/±2]
<_whitenotifier> [scopehal-apps] azonenberg d8ecf5a - Added peak temperature logging
bvernoux has quit [Quit: Leaving]