<_whitenotifier-b>
[starshipraider] azonenberg bf960cc - Added lockfiles to gitignore
Famine has joined #scopehal
Famine_ has quit [Ping timeout: 260 seconds]
<azonenberg>
lain, monochroma: i did it! The entire ram bus is done and length matched
<lain>
woo!
<azonenberg>
it was a giant pain in the butt but everything is within 5ps skew of the relevant DQ/clk
<azonenberg>
Which is fast enough to run the ram at 1866 in theory. Actual tolerances using this fpga speed, 2133 rated ram, and running at 1600 are 62ps DQ-DQS and 124ps CTL-CLK
<azonenberg>
So even if i have some errors in my internal-external matching it shouldn't matter
<azonenberg>
this is one of the nastier looking meanders
<azonenberg>
you can see what looks like a slight resonance with a period of about 1/4 the line length in the current view, but in the s-parameter view it's not enough to matter at the frequencies of interest for DDR3 160
<azonenberg>
1600*
<azonenberg>
that's only 800 MHz fundamental and S11 is better than -10 dB out past 10 GHz except for a tiny hump that barely hits -10 dB around 4 GHz
<azonenberg>
And i have less than -2 dB of insertion loss on the channel to nearly 15 GHz
<azonenberg>
Even if reality is quite a bit worse than this simulation i have little concern wrt having enough margin for good SI
<azonenberg>
https://www.antikernel.net/temp/maxwell-65.png here's the CAD view of the board as it stands. 403 unrouted, much of which is the RGMII bus and the remaining LVDS. I have the RGMII fully escaped and routed around the RAM, just not hooked up to the FPGA yet
<azonenberg>
this isn't the entire path but it's some of the closest approaches
<azonenberg>
Doing a sim of two of the RGMII traces, 100mm coupled length but fairly far apart
<azonenberg>
actual length is >100mm but this is pushing memory limits again so i'm doing this to get an idea of how bad it wil lbe
Famine- has joined #scopehal
Famine_ has joined #scopehal
Famine has quit [Ping timeout: 260 seconds]
Famine- has quit [Ping timeout: 260 seconds]
Famine- has joined #scopehal
Famine_ has quit [Ping timeout: 260 seconds]
<sorear>
mm
<azonenberg>
Ok so... It looks like that stripline experiment hits -3 dB of loss at around 13 GHz
<azonenberg>
Which isn't too awful for 100mm of trace
<azonenberg>
And worst case FEXT (for 89um tracks ~400um apart) over 100mm of parallel run is about -54 dB
<azonenberg>
Outer layer 100 ohm differential is showing -3 dB right about 20 GHz, -1.9 dB at 10 GHz for 100mm of track
<azonenberg>
Which means my 121.5 mm pairs will be about -3.6 dB @ 20 GHz, -2.3 dB @ 10 GHz which is the distance from fpga ball to QSFP connector
<azonenberg>
The FS 40Gbase-SR4 QSFP+ module lists 189-1200 mV input swing, and 800 mV output if i'm reading the datasheet right
<azonenberg>
180-1200*
<azonenberg>
The GTX can put out at least 1000 mV p-p depending on the chosen drive strength setting, and can accept inputs of 150 - 1250 mV
<azonenberg>
So on the RX side we can tolerate S21 of 0.1875 V/V which is -14 dB of insertion loss
<azonenberg>
and on the TX side, basically the same
<azonenberg>
so assuming we run the drivers at max swing we'd have over 10 dB of margin
<azonenberg>
i might not even need to
<_whitenotifier-b>
[starshipraider] azonenberg pushed 1 commit to master [+3/-0/±1] https://git.io/JJsXr
<_whitenotifier-b>
[starshipraider] azonenberg f88dc85 - More SI sims for MAXWELL
Famine_ has joined #scopehal
Famine- has quit [Ping timeout: 260 seconds]
Famine- has joined #scopehal
Famine has joined #scopehal
Famine_ has quit [Ping timeout: 260 seconds]
Famine- has quit [Ping timeout: 260 seconds]
<Degi>
Oh neat
_whitelogger has joined #scopehal
_whitelogger has joined #scopehal
<_whitenotifier-b>
[starshipraider] azonenberg pushed 1 commit to master [+0/-0/±19] https://git.io/JJs9B
<_whitenotifier-b>
[starshipraider] azonenberg 340b676 - Continued MCU area fanout. Routed last status signals off pod FPGA.
einthec68 has joined #scopehal
einthecorgi2 has quit [Ping timeout: 272 seconds]
Famine- has joined #scopehal
Famine has quit [Ping timeout: 260 seconds]
einthecorgi2 has joined #scopehal
einthec68 has quit [Read error: Connection reset by peer]
einthecorgi2_1 has joined #scopehal
juli964 has joined #scopehal
einthecorgi2_1 has quit [Quit: Leaving]
<pepijndevos>
I hope it's ok to ask my general noob scope questions here now and then. With my probes is a bag with some rings and the tuning screwdriver, but also two springs and plastic that I don't know what they are for.
<pepijndevos>
Also, on most probes you can pull off the hook tip to expose the pin inside, but on these probes I'm not sure it's possible, but maybe they are just really tight.
<azonenberg>
pepijndevos: got a photo?
<azonenberg>
The rings are for color coding them and the screwdriver is for compensation, as you've guessed
<azonenberg>
The spring is most likely a low-inductance ground but hard to be sure without a photo
<pepijndevos>
ok brb
<azonenberg>
Any idea what model the probes are? I've never seen one where the clip doesn't come off, although it's possible reeeally cheap ones are hook only
<pepijndevos>
sent a picture on twitter from my phone
<azonenberg>
The springs are grounds, which means that the tip clip definitely comes off or they'd have nothing to connect to
<azonenberg>
the plastic pieces go over the tip to insulate it so it's less likely to short to adjacent pins
<azonenberg>
probably two different shapes
<azonenberg>
That is a really cheap looking probe, i'm spoiled by my PMK and LeCroy stuff lol
<pepijndevos>
Rigol ;)
<azonenberg>
Yeah i see the logo
<pepijndevos>
What makes it look cheap? To me it looks... like a probe
<pepijndevos>
What to LeCroy probes look like?
<azonenberg>
Most higher end scope companies buy their probes from the same place (PMK)
<azonenberg>
they OEM for a lot of folks
<azonenberg>
pico, lecroy, tek, and keysight all resell PMK probes with their gear
<azonenberg>
although a lot of the higher end active stuff is custom
<azonenberg>
the ground is much more firmly attached, the barrel of the probe is a nice rubberized material instead of just plastic so it's easier to grip with your feingers
<azonenberg>
they have multiple different tip insulators for hitting different sized SMT leads
<azonenberg>
they even include spare tip needles if you bend one
<azonenberg>
(you don't get this many insulators and ground clips etc, this is my whole collection from all of my probes)
<azonenberg>
But this is what happens when my probe probably costs as much as your whole scope. Lol
<azonenberg>
(seriously, the MSRP for this probe is $253)
<azonenberg>
This is why i don't buy nice test equipment new, i get it secondhand
<azonenberg>
It's still expensive but the hole in my wallet is half as big as if i got it new
<pepijndevos>
hehe
<miek>
yeaah, i'm getting close to cost of my scope in probe purchases :p
<azonenberg>
miek: It would take a while for me to do that
<pepijndevos>
hurray, I pulled away the hook more firmly and can indeed attach the spring ground or insulation tip
<azonenberg>
My two scopes cost me $12K and $15K for the 1 and 2 GHz models if memory serves me right
<azonenberg>
(MSRP for both was around 25-30)
<azonenberg>
the stock passive probes came with them, then i got one 1.5 GHz active probe secondhand for about $1K
<miek>
you could probably hit that with one fancy diff probe :D
<azonenberg>
then four of the basic 1.5 GHz pico passive transmission line probes for around $350 each
<azonenberg>
and one of the 6 GHz pico probes for about $1K
<azonenberg>
so i'm looking at maybe $3-4K in probes for almost $30K of scope
<azonenberg>
But i'm going to have to upgrade more when i upgrade the 1 GHz scope to a 4 GHz one
<noopwafel>
old secondhand active probes in the <1ghz range seem very affordable
<azonenberg>
at <1 GHz why use active probes?
<azonenberg>
RC probes are fine to 100 MHz or so and transmission line after that
<miek>
i'm loving my active probes for general use
<azonenberg>
the only reason to use active in that range is if you need ultra low DC loading *and* peformance to hundreds of MHz or low GHz
<miek>
i just don't have to care about good grounding :D
<azonenberg>
I find transmission line probes are my go-to for anything but i2c and other high-z-with-pullup stuff
<noopwafel>
but, right, in more useful ranges they start costing actual money
<azonenberg>
for those, i use the stock RC probes
<azonenberg>
the only thing i use my active probe for is probing crystals
<azonenberg>
which i almost never do because all of my boards use oscillators instead
<azonenberg>
anyway my AKL-PT1 probes should be good enough for the 2 GHz scope but i'm going to want something better for the 4 GHz when i get that
<azonenberg>
Another thing i use a lot is my solder-in transmission line probes
<azonenberg>
but i want to make a higher end version, the one i have now is super basic and not good past a few hundred MHz
<azonenberg>
(i dont know exactly how far because i dont have a fixture to VNA it yet)
<pepijndevos>
so far it seems to me that scope input grounds are actually all connected together. are there scopes with floating grounds?
<azonenberg>
Scope input grounds are all connected to each other and earth
<azonenberg>
There are special isolated probes which generally use a fiber optic cable to connect an isolated buffer head to the scope
<azonenberg>
and i think there's one really specialized scope that isolates each channel from the others
<azonenberg>
but that's pretty rare
<azonenberg>
you do not ever want to float a scope because if you find yourself probing mains powered equipment wrong it's easy to end up energizing all exposed metal including the BNC shells etc
<azonenberg>
Which is a massive shock hazard
<azonenberg>
(this isn't just hypothetical, i have personally seen a TV designed with a floating chassis where this happened... somebody screwed up the cable TV wiring and the TV shield ended up being connected to mains, which energized the whole TV)
<miek>
D:
<azonenberg>
miek: so story time lol
<azonenberg>
this was back in grad school, my roommate built a new computer for a fraternity brother
<miek>
oh no, i'm still recovering from the lab story yesterday
<azonenberg>
gets a call the next day saying he plugged it into his TV (it was a gaming computer) and got sparks and smoke
<azonenberg>
We came over to investigate and found a HDMI cable with visible arc damage to one end of it
<azonenberg>
i started poking at stuff with my DMM one handed afraid anything i touched might be live
<azonenberg>
rapidly found out that the whole TV measured 120VAC to ground
<pepijndevos>
hehe
<azonenberg>
i thought it was a wiring fault with the TV or one of the other A/V systems
<azonenberg>
So i had him flip breakers until the TV wasnt hot anymore
<azonenberg>
then unplugged all of the cables
<azonenberg>
actually no i think i just unplugged power to the tv first
<azonenberg>
measured
<azonenberg>
and the tv was STILL LIVE with no mains applied to it
<azonenberg>
that was when i had him flip breakers
<azonenberg>
i unplugged all the cables, measured each one
<azonenberg>
and found the time warner coax shield measured 120VAC to ground
<azonenberg>
and this wasnt just some parastiic coupling from running near a mains wire or something
<azonenberg>
it was energetic enough to arc when connected to something truly earthed. Like a PC with a grounded chassis and 3-prong plug
<azonenberg>
The TV was a class 2 device on a 2-prong plug which was perfectly safe, until you connected mains to the CATV input :p
<azonenberg>
Surprisingly the only casualty was the brand new GTX... 680 i think?
<azonenberg>
the rest of the PC survived
<azonenberg>
as did the TV
<azonenberg>
accidental etherkiller for HDMI, lol
<azonenberg>
the hdmi shield was at 120VAC and i imagine all of the data lines were close to that too
<noopwafel>
><
<pepijndevos>
so... was it the TV itself that was miswired, or a fault in whatever was at the other end of the coax?
<azonenberg>
The coax itself was live when not connected to the TV
<azonenberg>
we found a breaker connected to some lighting circuit would de-energize it
<azonenberg>
so i flipped off the breaker, taped it over with some red electrical tape, and told the guy to call an electrician before his house caught fire :P
<azonenberg>
My point being, had the TV been properly grounded, this would have blown a breaker instantly rather than resulting in the extremely dangerous situation it did
<pepijndevos>
right...
<azonenberg>
And probes slipping to the wrong point happens all the time in test equipment
<azonenberg>
So yeah, ground your scope
* pepijndevos
lives in a house without grounded sockets
<azonenberg>
and don't connect the scope ground to anything that isn't either earthed or floating
<azonenberg>
if you actually need a measurement from point A to B and neither are anywhere near ground, either use two separate channels and subtract with a math function
einthecorgi2 has quit [Quit: -a- Connection Timed Out]
<azonenberg>
or use an active differential probe rated for the voltages in question
<azonenberg>
Floating the scope is a quick and dirty solution to that problem which is also a great way to electrocute yourself
<pepijndevos>
Luckily I don't usually work with mains stuff...
<azonenberg>
If you don't work on mains powered devices it goes from a borderline suicidal idea to just a bad one
<azonenberg>
:p
<pepijndevos>
hahaha, I'll tell my landlord you said so
<azonenberg>
It *can* be done safely. I saw a photo once of a Tek CRT scope with a full custom faceplate designed for working with a hot chassis
<azonenberg>
the entire front panel was stood off about 100mm from the body of the scope
<azonenberg>
and nonconductive plastic extensions were attached to each control
<azonenberg>
so you could turn them without coming into contact with the scope body
<pepijndevos>
I think I've actually seen something like this
<azonenberg>
Yeah
<azonenberg>
That seems like a reasonably low risk approach, but an active fiber-isolated probe is a far better option
<azonenberg>
Re the coax, I never found out the true origin of the fault
<azonenberg>
but since it was inside the house (the breaker turned it off)
<azonenberg>
my best guess is that somebody had put a nail into the wrong spot in the wall
<azonenberg>
and penetrated both the tv coax and a mains power line
<pepijndevos>
I know you can do subtract, but if you have a 2 channel scope and want to measure 5 things... sad times
<azonenberg>
Yeah :p
einthecorgi2 has joined #scopehal
<azonenberg>
Anyway this is why electrical code in the US requires all wiring to be a minimum distance from the face of a stud
<azonenberg>
So you'd need a reeally long nail to hit it
<pepijndevos>
I definitely shorted my circuit during university projects by trying to measure voltage across some resistor.
<azonenberg>
If this isn't possible for whatever reason, the proper solution is to attach a steel armor plate to the stud. So you physically cannot get a nail into the wire
<azonenberg>
But a lot of older buildings weren't built to these standards - i know my house wasn't when i bought it, i found at least one nail into a wire and many more spots where it could have easily happened but we got lucky
<azonenberg>
To say nothing of unofficial renovations done by homeowners or unlicensed contractors which never got inspected
<pepijndevos>
> i found at least one nail into a wire
<pepijndevos>
aaaaaaa
<azonenberg>
the location was such that it had to have happened during construction of the house, too
<pepijndevos>
AAAAAAA
<azonenberg>
it must have either hit the ground or just nicked the insulation
<azonenberg>
The stud was notched on the outside
<azonenberg>
there was no way to cut such a hole once the siding was on the house
<pepijndevos>
Now imagine you hang a painting with an alu frame from a live nail
<azonenberg>
By code, if you notch a stud, you must put a steel plate over it
<azonenberg>
These guys didn't
<azonenberg>
And the result demonstrates EXACTLY why that section of the code exists
<azonenberg>
We found a lot of problems with this house :P we tore it down to the bare frame and rebuilt it from the bones
<azonenberg>
And the joke was, the guy who built it is the reason they made building codes
<azonenberg>
almost everywhere i looked i found something that was either unsafe, falling apart, or just poor craftsmanship
<pepijndevos>
I rent this place... so bit more hesitant to do major renovations here. But tempted to make some grounded sockets nevertheless.
<pepijndevos>
Scopehal Q that I could probably answer myself if I was next to a scope: can you apply arbitrary filters to an input? Would be useful for the sigma delta stuff I'm doing.
<azonenberg>
You mean like a LPF or something?
<pepijndevos>
yea
<pepijndevos>
kinda hard to tell if a pulse coded signal contains the right signal.
<azonenberg>
The architecture allows it, but it hasn't been implemented yet. #51
<azonenberg>
if you want to work on that ticket, pull requests are welcome :)
<pepijndevos>
maybe :))) which repo is that issue on?
<azonenberg>
(scopehal)
<azonenberg>
i was wondering why i had so much trouble getting the old wire out of the hole
<azonenberg>
Then i saw the nail
<pepijndevos>
oh, I expected it to be a UI thing, scopehal is just the hardware abstraction, right?
<azonenberg>
So internally there's 3 main components
<azonenberg>
libscopehal is the instrument drivers, transports, and some base classes for filter graph nodes but no actual filters/decodes
<azonenberg>
libscopeprotocols is all of the filter graph processing (should probable be renamed, it's got lots of math and DSP stuff as well as protocol decodes)
<azonenberg>
and glscopeclient is the UI
<azonenberg>
scopehal and scopeprotocols both live in the scopehal repo, glscopeclient lives in scopehal-apps along with some other utilities of lesser importance
<pepijndevos>
I see
<azonenberg>
the filter graph is completely independent of glscopeclient and you can do arbitrary signal transformations and protocol decodes in a no-UI headless environment
<azonenberg>
which is great for automated data acquisition, production test, etc
<pepijndevos>
hmhm
<azonenberg>
you just link with libscopehal and libscopeprotocols and call the C++ API directly
<pepijndevos>
Are you planning any scripting interface eventually, or will all transformations and decoding always be C++?
<azonenberg>
glscopeclient is purely UI and rendering. Although right now some of the file load/save code lives there as well, that should be refactored into the library eventually
<azonenberg>
Not sure yet. The core datapath will always be C++ although i'm not opposed to providing bindings for other languages to string them together
<azonenberg>
the native output of decodes is C++ data structures though
<azonenberg>
But you could probably marshal that out to work in python or something
<pepijndevos>
I imagine running a numpy function on the data could be pretty sweet
<azonenberg>
i'm generally not a big scripting guy so i havent looked into that at all
<azonenberg>
My target so far has been high performance and throughput, i'm actually thinking about pushing some of the filter graph to GPU eventually
<azonenberg>
i want to be able to process thousands of multimillion point waveforms per second
<pepijndevos>
hah, yea then scripting is not so great.
<azonenberg>
So while i'm not opposed to adding it iff it doesn't hurt the core goals and functionality, i'm not going to sacrifice performance to do it
<pepijndevos>
But it could be a neat way to cover the long tail. Like if you add a basic FIR LPF eventually someone will want a IIR filter or minimum phase or some complex loop shaping stuff or I don't know. Or decode some ancient protocol nobody cares about that probably runs at 300 baud
<azonenberg>
if anything i'd be more inclined to provide interfaces for you to run custom compute shaders on the data
<azonenberg>
Yes
<azonenberg>
That's what the plugin interface is for
<azonenberg>
so i think the best way to do scripting would be to have a plugin that wraps a python script or something
<azonenberg>
and looks just like a C++ datapath element to the library
<pepijndevos>
If I can run Futhark that'd be fun hehe
<pepijndevos>
Yea linking with Python is kind of a PITA AFAIK, so doing it as a plugin probably saves a ton of headaches.
<azonenberg>
Wow that was fast. Just got an email from shapeways
<azonenberg>
Hopefully-final MEAD enclosure, and the production probe shells, are on the way
<Bird|otherbox>
pepijndevos, where are you on this planet btw?
<Bird|otherbox>
(roughly that is, don't need an address, just close enough to figure out what rules you're under for mains wiring)
einthecorgi2 has quit [Quit: -a- Connection Timed Out]
einthecorgi2 has joined #scopehal
<pepijndevos>
Bird|otherbox, netherlands
<pepijndevos>
The house has grounded sockets in all wet rooms: bathroom, kitchen, etc.
<pepijndevos>
So the breaker is there, I just need to make some wires to my "lab"
<Bird|otherbox>
hm. don't know what the wiring regs in .nl say, but in .us, ours will let you run a retrofit ground wire from an ungrounded receptacle to the ground wire on a grounded receptacle fed from the same panel (distribution board)
<pepijndevos>
Well, if that's not allowed, I might end up being the guy in Andrew's story who broke the rules. Only hopefully less dangerous.
<pepijndevos>
Is a compute shader the same thing as OpenCL, or nope?