DSO3000 Update
I have written Python tools to interface with the Agilent DSO3000-series oscilloscopes. This is an update of my previous work. As long as PyUSB is available, this should be cross-platform. Command-line and console programs are included, along with a DSO3000 class you can use to make automated data-collection scripts. There is now a screenshot program which uses PIL. I have also added a udev rules file (rigol-scope.rules) to be copied into /etc/udev/rules.d before the scope is connected to allow users in the plugdev
group to access the scope.
The code is now available on github: https://github.com/cktben/dso3000
Curiously, the screenshots are of better quality than the scope's actual display. The display on my scope does not distinguish all the shading that is present in the screenshots. Also, it is possible to take a screenshot at the title screen during boot.
I found another minor bug in the firmware: if the scope is plugged in to a USB host which is powered but not enumerating devices (in my case, a single-board ARM that wasn't booting), the scope firmware hangs. The scope starts working again when the USB cable is unplugged.