<_whitenotifier-5>
[scopehal] Toroid-io forked the repository - https://git.io/JeN4X
<_whitenotifier-5>
[scopehal-apps] Toroid-io forked the repository - https://git.io/JeN4X
<_whitenotifier-5>
[scopehal-cmake] Toroid-io forked the repository - https://git.io/JeN4X
<_whitenotifier-5>
[scopehal] andresmanelli opened pull request #86: Add an incomplete CAN decoder - https://git.io/JeNBy
<azonenberg>
o/ andres_
<azonenberg>
At the tail end of holiday travels so won't get a chance to review your PR until sunday or monday, but thanks for sending it
<andres_>
Hello
<azonenberg>
How are you liking the glscopeclient UI and the scopehal API so far?
<andres_>
Don't worry, I'm on holidays right now but I didn't want to spend more time before sublitting it
<azonenberg>
Is the code reasonably easy to follow and learn your way around?
<andres_>
I didn't quit catch yet the "toQueue" behaviour, and the way of passing the data to the UI
<andres_>
But other than that, after a couple of hours reading the code it's not that complicated I think
<azonenberg>
The toQueue stuff probably should be commented better. Basically it's used in glscopeclient for multithreaded capture and segmented capture
<azonenberg>
you push waveforms into a fifo, possibly several at a time in the case of segmented capture
<azonenberg>
then pop one at a time and do rendering/decodes on them
<bvernoux>
I'm dreaming about a windows version of GLScope ... ;)
<andres_>
There is one issue with my scope I didn't resolve yet, related to the way the code does its sendCommand/readReply pair
<azonenberg>
oh?
<andres_>
The link is very slow and I have to do pauses in between commands. If I do not do that, I get no response/"command error" response
<azonenberg>
I suspect that is just the rigol CPU being slow
<andres_>
And in the worst case, the scope stops responding
<azonenberg>
a lot of scopes are not well designed for remote command operation
<azonenberg>
the software is poorly optimized and/or the cpu is slow
<bvernoux>
Does anyone have tested on old Rigol DS1102E ?
<andres_>
Yeah, so I added a ioctl to check the data available and wait a little untill you get all the data in the scoket
<azonenberg>
Down the road, i have plans to make a custom FPGA based scope that is basically an ADC bolted to a TCP offload engine
<bvernoux>
as I could test it as the port to Picoscope is longer as planned as all the protocol shall be reversed ...
<azonenberg>
it should be able to easily saturate 10GbE, at which point the performance bottleneck will be software performance
<azonenberg>
on glscopeclient/scopehal itself
<azonenberg>
Down the road i want to support gpu acceleration of protocol decodes and signal processing
<azonenberg>
as well as general performance improvements
<azonenberg>
i want to be able to do tens of kWFM/s ideally
<azonenberg>
so thousands of waveforms per gpu frame, stacked and overlaid in rendering
<azonenberg>
But that's a long ways out :)
<bvernoux>
andres_, which Scope are you using?
<andres_>
I think I saw your board on Twitter
<azonenberg>
andres_: no. The board you probably saw was freesample
<azonenberg>
which is a 1 Tsps 10 GHz sampling oscilloscope that i put on ice for a while because i wanted to do more field solver modeling of a few parts once i bought Sonnet
<andres_>
bvernoux: Its a DS1104Z
<azonenberg>
It's optimized for eye patterns at high bandwidth and low cost, and doesn't do realtime capture
<bvernoux>
andres_, maybe by luck DS1102E is compatible ...
<azonenberg>
it will give you one eye pattern in a couple of minutes, depending on how much integraiton you want to do and the resolution/UI rate you're working at
<andres_>
Nice
<azonenberg>
I wrote the driver for whitequark's ds1000z series scope. I have no idea how compatible other rigols are with the same scpi command set
<bvernoux>
andres_, but on my DS1102E I have only USB or UART as option as maybe on yours you have Ethernet ?
<andres_>
You should check the programming guide I think
<azonenberg>
bvernoux: lain is working on a USBTMC SCPITransport driver
<bvernoux>
ha yes USB support will be very nice
<azonenberg>
Which will allow my existing rigol driver to be used on any protocol-compatible rigol scope via usb
<bvernoux>
amazing news
<azonenberg>
she's doing it for an Agilent scope, but i deliberately split the scpi transport layer from the driver layer
<azonenberg>
so you only have to write the transport once
<andres_>
bvernoux: I'll try to finish my tests on the Rigol modifications, that way you can try it out
<azonenberg>
then you can drop it into any driver you want
<azonenberg>
If somebody wants to write a rs232 SCPITransport, performance will be awful of course but it won't be difficult to do
<bvernoux>
just a big warning as Rigol are very slow by definition over USB ...
<bvernoux>
very far from 12MBits USB 2.0 FS theory
<bvernoux>
it is more something like 1Mbits/s
<azonenberg>
I have yet to find a scope with usb or ethernet performance i'm happy with
<azonenberg>
waverunner 8000 has gigabit but i have had a hard time getting much past 100 Mbps of waveform data
<bvernoux>
Yes I saw also that issue with very expensive scope ...
<azonenberg>
But it's at least way better than the wavesurfer 3000 series
<azonenberg>
And down the road i am thinking of writing better capture software :p
<azonenberg>
lecroys are windows based
<bvernoux>
It was a shame that my Picoscope3000 is 100x faster than lot of Scope over USB 2.0 or Ethernet which cost > 8Keuros
<azonenberg>
so in theory i should be able to use some of their plugin code to insert myself directly into their waveform datapath and push raw binary waveforms out a socket or something
<azonenberg>
bvernoux: picoscopes look nice, yeah
<azonenberg>
But too slow for me
<azonenberg>
even the 6000 series maxes out at 5 Gsps
<bvernoux>
yes the ADC is too slow :(
<azonenberg>
i'm eyeing a lecroy hdo9204 right now for my next lab upgrade, 2 GHz 40 Gsps
<bvernoux>
Like you say they are max 5GSPS
<azonenberg>
To replace my old wavesurfer 3034
<bvernoux>
and the one which do 20GSPS is a fake scope ;)
<azonenberg>
then i'd keep the waverunner
<bvernoux>
A friend told me Lecroy scope are often broken in their lab
<bvernoux>
it seems they are not good to run 24h/24
<azonenberg>
oh? i havent had any problems with mine. The most i had was a PSU issue on the cheap wavesurfer
<azonenberg>
which was fixed under warranty very quickly
<bvernoux>
ok
<andres_>
azonenberg: question, do you know what frecquency should have a 8b/10b encoder have for different links?
<azonenberg>
What do you mean, what frequency?
<andres_>
I mean, I did a VHDL implementation a couple of months ago, but I never really tested the performance
<azonenberg>
Oh
<azonenberg>
The raw data rate is 5/4 * user data rate obviously
<azonenberg>
for gigabit ethernet 1 Gbps of frame data and the line rate is 1.25 Gbps
<azonenberg>
for sata, pcie, etc i think its a bit higher. For the most part, you dont do serial 8b10b though
<azonenberg>
you do the line coding in parallel and then feed the 10b data to a shift register or serdes ip
<azonenberg>
So the performance of the line code is rarely an issue
<azonenberg>
and 3.2 usable data rate after coding overhead
<azonenberg>
(but why are you using such old fpgas?)
<andres_>
Client request.. actually client of client of ..
<andres_>
The guy disappeared so I'm thinking of publishing the code if it has some use
<azonenberg>
Ah, i see. Limited utility because most high speed serial stuff these days just uses a serdes ip in the fpga
<azonenberg>
the one exception is doing SGMII or similar with a 7 series part etc, where you have a serial/parallel block but not a full transceiver with CDR
<andres_>
Yes, serdes changes everything :D
<andres_>
Well thanks for the explanation. I have to go now. Happy new year !