Ahem. Anyway. I have a Rigol DS1102E 100 MHz Digital Oscilloscope. For such a cheap device, it’s remarkable that you can control it using USB Test & Measurement Class commands. I’d been wanting to use a Raspberry Pi as a headless data acquisition box with the oscilloscope for a while, but Raspbian doesn’t ship with the usbtmc kernel module. I thought I was stuck.

This should return something like:Rigol Technologies,DS1102E,DS1EB13490xxxx,00.02.06.00.01

If you get the status line, congratulations! You now have a fully working usbtmc link. I haven’t had much time to play with this, but I know I can make really nice screenshots to an attached USB drive using the command: instr.write(“:HARDcopy”). Many more commands can be found in the DS1000D/E Programming Guide, available on Rigol‘s site.

I had a couple of problems, though:

The library seems to need root privileges, despite the udev rule thing. After creating the udev rule, you will need to reboot. This is the simplest way of getting it to work without being root.

Reading from the ‘scope’s memory chokes on non-UTF8 characters. If I do:rawdata = instr.ask(“:WAV:DATA? CHAN1”)[10:] I get a lengthy Python error which ends: …File “/usr/lib/python2.7/encodings/utf_8.py”, line 16, in decode return codecs.utf_8_decode(input, errors, True)UnicodeDecodeError: ‘utf8’ codec can’t decode byte 0x99 in position 10: invalid start byte I have no idea what that means, or how to fix it. Alex suggested using ask_raw instead of ask, and the data comes through with no complaints.

I’ve still got to work my way through the Rigol’s data format, but other people have done that before:

Incidentally, if you’re working with WFM data dumps from the Rigol ‘scopes (and you should, because they make storing data to USB drives quick), mabl/pyRigolWFM is basically magic. Not merely can it describe and decode those binary files, it can do pretty graphics with no thought required:

It is a truth universally acknowledged, that a single ham in possession of a good fortune, must be in want of a oscilloscope. At Hamvention, I bought slightly more of an oscilloscope than I needed, a Rigol DS1102E.

After calibrating the probes, I cast around for something to measure. Aha! There lay an Atari Punk Console (previously) ready to show the world what its waveforms look like.

Surprsingly clean output here.

Ahh, the notorious APC “squelch-fart” noise. The poor little speaker hasn’t a chance of reproducing this, so it collapses into spasms.

A noisier high frequency signal from the APC.

The Rigol is pretty easy to use. These images were captured via its USB screen dump feature; no need for an oscilloscope camera here!