You can now generate keys and permanently activate all of the options and bandwidth without any extra hardware. Here is the c code which will generate the keys (it is the most up to code from the thread with a couple of modifications). All you have to do under Linux is place the above code (and fill out the private key value from the forum or use the pastebin link's code) into rigolkey.c. Alternatively there is also a Windows exe floating around on the forum there too which you can use.
Make sure you have g++ installed and perform the following:
unzip -j -aa -L master.zip
bash linux (or bash linux64 if running 64bit OS)
gcc rigolkey.c -I ./miracl/ ./miracl/miracl.a -o rigolkey
./rigolkey [your device serial] [option parameter]
Use "DSA9" for the option parameter to convert to a DS2202 with all options enabled. There are more options available here. The device serial number is located on your about screen, or on the back of the scope. If you have somehow managed to reset your serial number to a default value on the about scree (DS2A0000000001), then use that rather than the sticker at the back.
It is recommended to have at least firmware version 00.01.00.00.03 before entering the licence. Now apply the licence key that the keygen spits out. This is located under Utility>Options>Setup>Editor=ON. Enter the code using the intensity dial and button then hit Apply. It should then say "Option Installed!" if you entered this correctly. You now have all options enabled including 200MHz bandwidth.
This should continue to work with future updates. It is currently working with the latest 00.01.01.00.02.
This also works to unlock the extra features with the DS4000 series by using DSH9 as the option value for the key generator.
Based on the great work over at the EEVBlog forums, I have successfully unlocked my DS2072 to have 200MHz bandwidth and all options enabled (increased memory depth MEM-DS2, serial data decode SD-DS2, advanced triggering AT-DS2).
I chose Arch Linux for the Pi for this as it boots very quickly. For this I used archlinux-hf-2013-06-06.zip.
You will need to update the scope's firmware to 00.01.00.00.03 (edit: apparently the latest 01.01.00.02 also works with this too) by placing the firmware image in the root directory of a memory stick formatted with FAT32 (be careful with this easier method though, you can lock up the scope and wipe your factory calibration/trial options, more info/alternative here). Then place the USB stick into the scope (it will autodetect it). If you already have this version, then leave it be.
The following setup is based on "Harvs" post here. Which is based on the work by "cybernet" (and others of course) in the thread.
Boot the Raspi and run the following:
pacman -S python
pacman -S python-pip
pip install pyusb
With this version of python 3, some small changes to the python code posted need to be made.
command = bytearray(SCPI_command)
command = bytearray(SCPI_command, 'latin1')
Line 35 of applyCode.py from:
read_data = ":SYST:SET " + response.tostring
read_data = ":SYST:SET " + str(response)
Line 38 of applyCode.py from:
read_data += response.tostring
read_data += str(response)
Here are the fully modified versions:
Place these in /root/
ArchLinux uses systemd rather than initscripts. So we have to enable rc.local for this next part (or create a systemd script for it, it's up to you).
Create /etc/systemd/system/rc-local.service with the following:
[Unit]Create /etc/rc.local with the following
#!/bin/bash pythonNow run "chmod 555 /etc/rc.local"
You could also put "shutdown -h now" at the end of /etc/rc.local and if you needed to edit the python script/change anything on the system you could just boot into single user mode by putting the following in cmdline.txt "init=/bin/sh" on the first (FAT32) partition of the SD card (alternatively don't plug the Rigol in and boot the Pi without making the change to cmdline.txt) . This would serve to save some power.
Only do this though when everything is running correctly.
Now run "systemctl enable rc-local.service" to enable the rc.local "service". Setup is now done. Halt the Pi and disconnect.
Connect the rear USB port on the scope to the Raspberry Pi. Now plug the Pi's microusb power connector into the front port on the scope.
Turn on the scope:
You should, after a few seconds, get the following if you browse the installed options:
If you look at the about screen you will also notice that it now has the DS2202 Model designation. Enjoy your fully optioned DS2202!
You can unplug the Pi completely if you need to use the USB ports at all at this stage. Although you will need to plug it back in when you restart.
Note, this also works for the other DS2000 series scopes (DS2102 and DS2202; except it doesn't upgrade bandwidth on the DS2202) and the DS4000 series as well by modifying the python script with one of the following option codes:
LLLLLLL-RLGLLDS-DSB9LLL-LLLLLLL - enable 6 options
LLLLLLL-RLGLLDS-DSD9LLL-LLLLLLL - enable 7 options
LLLLLLL-RLGLLDS-DSH9LLL-LLLLLLL - enable 8 options