azonenberg changed the topic of #scopehal to: libscopehal, libscopeprotocols, and glscopeclient development and testing | https://github.com/azonenberg/scopehal-cmake, https://github.com/azonenberg/scopehal-apps, https://github.com/azonenberg/scopehal | Logs: https://freenode.irclog.whitequark.org/scopehal
bvernoux has joined #scopehal
andres_ has joined #scopehal
<_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_work has joined #scopehal
<azonenberg_work> for example
<andres_> Hmm ok, I had a closed loop Tx/Rx path on a xc5vfx130t (synthesis) with a max clock F of ~200 MHz (16 bits input, 20 bits output)
<andres_> So that would be 3.2 Gbps ? Or am I wrong somewhere?
<azonenberg> 200 MHz * 20 bits = 4 Gbps raw signaling rate
<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 !
andres_ has quit [Quit: leaving]
bvernoux has quit [Quit: Leaving]
_whitelogger has joined #scopehal