Well, I did "improve" my device as well, and here is my small feedback. Key for 200MHz bandwith generated on website
https://repl.it/repls/GainsboroAlienatedText doesn't work. At least it didn't work for me. Mem dump was necessary. On the other hand web-generated keys for options do work. One can apply them either via Utility menu or web interface (SCPI tab).
EDIT: codes generated from this link work (even for 200MHz bandwith):
https://repl.it/repls/JauntyAccurateGraphics . I don't know why it didn't work from previous one and I don't have time to investigate. Just generate it and you can skip 1-8 from following guide. However if you need telnet for some reason, you still have to downgrade firmware in you device.
A bit reviewed howto and some additions:
1. Make sure your oscilloscope is flashed with fw 6.1.26 (6.1.33 and above have some commands disabled)
2. Insert USB stick and make sure it is detected by the oscilloscope.
3. Connect to the oscilloscope with the web interface (via LAN or WiFi).
4. In the SCPI tab send the command
MCBD? and note the result.
5. In the SCPI tab send the command
SHELLCMD cat /dev/mem > /usr/bin/siglent/usr/mass_storage/U-disk0/memdump.bin and wait until it is stored on your USB stick (15 seconds should be enough).
6. Copy the memdump.bin file to your computer and open it with your favorite text editor (Notepad is just fine, the simpler the better).
7. Find in your memdump.bin file 16 characters string from
MCBD? command (in fact it is a 100MHz license key)
8. Right next the 100MHz key you just found there is a 200MHz unlock key, and a bit lower there are keys for oscilloscope options. Each one is 16-characters long key. Please note, AWG, WiFi and MSO keys are stored as one string and have to be splited (take a look at the picture in attachment).
9. In the SCPI tab send the command
LCISL option,key (no reboot is required, you can see the result immediately by pressing "Utility->Options->Information" on your oscilloscope)
10. In the SCPI tab send the command
MCBD 200MHzKey. Turning off/on the oscilloscope is
NOT required to start using new bandwidth, you should see changes in waveform on oscilloscope screen immediately. Double check if oscilloscope has accepted the bandwidth key by sending SCPI command
MCBD? - the 200MHz key should be returned as a result - or verify if oscilloscope introduces itself as SDS2104X-E (either via SCPI tab on webpage or by using the Utility menu). You can flash your oscilloscope to the latest firmware now (bandwidth and options keys will stay active) or keep reading this post...
11. It is good practice to write down your keys (even 100MHz if you would like to revert your changes by sending SCPI command
MCBD 100MHzKey, re-enabling 200MHz bandwidth will be still possible) and even keep the memdump file.
If you're familiar with linux console you can take advantage on following information:
12. /usr/bin/siglent/firmdata0/NSP_system_info.xml is where your oscilloscope serial number and MAC is stored
13. /usr/bin/siglent/firmdata0/bandwidth.txt is where your bandwidth license is stored.
14. Option license key is stored in i.e. /usr/bin/siglent/firmdata0/options_wifi_license.txt
15. Startup counter is stored in /usr/bin/siglent/usr/config/NSP_usr_system_info.xml
16. Options usage counters are stored in /usr/bin/siglent/usr/usr/options_$option$_times.txt. Seems like the device has 1153b, i2s, CAN and flx options factory activated.
17. Looking at /lib/firmware/ you can come to conclusion that
any WiFi dongle based on mt7601u, rt2870 or rtl8188eu should be supported by the oscilloscope. However most likely modules are loaded from /usr/bin/siglent/drivers and there is a driver for mt7601u only. It is possible to build your own driver using kernel 3.19.0 and xilinx BSP and upload it to this directory to i.e. unlock possibility to connect to 5GHz WiFi network using different dongle.
18. After flashing to fw newer that 6.1.26 SCPI
SHELLCMD is no longer supported. To keep the possibility to explore your oscilloscope via telnet you can
mount -o rw,remount /usr/bin/siglent than go ahead with
vi /usr/bin/siglent/config/www/telnetd.php and paste following code (no, I'm not a PHP developer, sorry for the code quality):
<?php
// /usr/bin/siglent/config/www/telnetd.php
$port = 9999;
print "Checking for telnet daemon on port $port : ";
echo ($output = shell_exec("[[ \"$( ps | grep ".$port." | grep -v grep )\" ]] && echo \"RUNNING\" || echo \"NOT STARTED\"")), "<br />";
if (strncmp($output, "RUNNING", 7)) {
print "Starting telnetd... ";
shell_exec("telnetd -l/bin/sh -p'".$port."'");
echo (shell_exec("[[ \"$(ps | grep ".$port." | grep -v grep)\" ]] && echo \"SUCCESS\" || echo \"FAILED\"")), "<br />";
}
system("ps ax | grep '".$port."' | grep -v grep");
?>
From now on
http://oscilloscope_IP/telnetd.php will start telnet daemon in your oscilloscope. Until Siglent disable that possibility with future firmware update. You can take a step further to modify /usr/bin/siglent/config/www/welcome.php by adding:
<div class="div-inline2 aboutlink" style="display:none">
<a target="_blank" class="about_link" href="telnetd.php">Start telnetd</a>
</div>
at the end of class="side_bar" and have it available from the oscilloscope's main web page.
0000. Keep in mind you should make backup of every file you modify. Playing with root privileges on rw mounted file-system is also a bit dangerous, so be careful to not brick your oscilloscope. Don't mess up if you're not familiar with linux.