The Rigol DS1000 series of oscilloscopes are popular with hobbyists for good reason: they provide decent specs at a low price. However, their spectrum analysis abilities are lacking. While these scopes do have a Fast Fourier Transform (FFT) function, it’s limited and nearly useless for RF.
[Rich] wanted a spectrum analyzer for amateur radio purposes, but didn’t want to build his own sampling hardware for it. Instead, he wrote PyDSA, a software spectrum analyzer for Rigol DS1000 oscilloscopes. This tool uses the USB connection on the scope to fetch samples, and does the number crunching on a far more powerful PC. It’s able to plot a 16,000 point FFT at two sweeps per second when run on a decent computer.
PyDSA is a Python script that makes use of the Virtual Instrument Software Architecture (VISA) interface to control the scope and fetch the sample data. Fortunately there’s some Python libraries that take care of the protocol.
[Rich] is now able to use his scope to measure amateur radio signals, which makes a nice companion to his existing Teensy based SDR project. If you have a Rigol, you can grab the source on Github and try it out.
11 thoughts on “A Better Spectrum Analyzer For Your Rigol Scope”
I wonder how hard this would be to get it to use the ethenet VISA interface instead. It’d make lab setup a lot easier.
Actually it should work without using VISA at all.
Since this scope has LXI capabilities, it can be controlled using just a text connection over TCP/IP, without any driver:
Master your Rig(ol) from command line
Driverless Rigol DS1054Z screen capture over LAN
From the link:
>The DS1102E captures 8 bit samples at up to 1 GHz which means in theory we can make a 500 MHz spectrum analyzer.
Doesn’t he forget the internal lowpass in the scope? The quoted DS1102E has only 100MHz of bandwith, is there enough signal left for FFT at let’s say 400MHz?
I didn’t test it but at least in the perl-VISA-stuff apparently USB->ethernet is just one line to change.
Really depends on just how sharp the analog lowpass inside the ‘scope is. My 60MHz 1GS/s DSO seems to be only 2nd order.
And my 1102E isn’t a slouch in the frequency department either.
The Ethernet on the Rigol scopes sucks from a performance stand point. The USB is usually faster then Ethernet.
I thought the same at the beginning, then I found out that it’s not Rigol’s fault, it’s because of Microsoft who choose to mess with TCP regulations: Microsoft bullied TCP RFCs! The result: a painfully slow LAN on Windows and a wasted weekend
Same LAN setup, but with Linux, works just fine.
Microsoft breeds bad programmers
I’m tempted to give this a try myself, but I currently have roughly the same functionality using my RTL-SDR and SDR#.
This is great. I actually had something like this on my list of potential projects but will happily take advantage of the work you’ve already done :). Thank you.
Will this work with 12-bit Rigol scopes like the DS2000 series ?
Please be kind and respectful to help make the comments section excellent. (Comment Policy)