My problem is not first of all whether the 1GHz can be activated under the new software version. That is the second step.
First of all, I need to clarify whether the SDS2000x+ script is applicable for the SDS5000X at all. I can easily check this, because I have a stock one for 500MHz. You can get the key for it on the siglenteu.com site. The algorithm behind the webpage must give the same result as the Python script. The input parameters on the webpage are model (selection list), option name (selection list), serial number (input) and authorised code (the authorisation to select options).
The webpage then returns the key '89ge ywwy h7tu dphy' for SDS5000X, SDS-5000X-4BW05, SDS5XHEX5R0184, <autcode>. And it works.
Incidentally, the same key is delivered for the SDS-5000X-2BW05 option (for the 2-channel version). This indicates that the option name for the script with 500M is probably correct, because the web page, via which all devices and their options can be activated, naturally wants to make the programming of the page as simple as possible. Therefore, the options for the bandwidth are probably mapped to a uniform name. Entering the serial number does not mean that the scopeid does not enter into the algorithm of the webpage, because the context should be known via an internal database.
The following parameters go into the python script: the model name here SDS5000X, the scopeid (or the serial number as Techneut thinks) and the option name. If you look at the python script, you will notice that upper or lower case letters give different results.
The actual code of the python script consists of the hashkey and the function gen. I don't want to publish both here because I don't know if it's legal. I use the one from
https://replit.com. There are several there for the SDS2000x+, but they are all the same and only cosmetically different from each other (in terms of the useless parameter of the gen function). I have also changed it a bit cosmetically, but of course tested whether my version and the original version give the same result. They do.
Now, to clarify what results are delivered for upper and lower case, as well as for the option names, I use the following code:
import hashlib
serial = 'SDS5XHEX5R0184' # serialnbr
scopeid = '4da12ee5deb6ef67' # scopeid
idnbr = ( serial, serial.lower(), scopeid, scopeid.upper())
Model = 'SDS5000X'
bwopt = ('4BW05', '500M') #, 4BW10, 1000M, 'MAX', 'AWG', 'WIFI', 'MSO', 'FLX', 'CFD', 'I2S', '1553', 'PWA', 'MANC', 'SENT')
"""
hashkey = ...
def gen(opt, idn):
...
#end gen
"""
print('{:6} {:16} {:16} {:16} {:16}'.format('option', 'SERIALNBR', 'serialnbr', 'scopeid', 'SCOPEID'))
for opt in bwopt:
keys = ''
for idn in idnbr:
keys += gen(opt, idn).ljust(17)
#end for
print('{:6} {}'.format(opt, keys))
#end for
The Output:
option SERIALNBR serialnbr scopeid SCOPEID
4BW05 6ngeqt5zk66jeahm 932zp3mymuvefa3y tfxpm5dakugx323w uvppjmbxt8ytbzg3
500M wh6g29uuhhpqh3sv fru78bmyfmmqmt9c vc4u3rk2xfpdefmz 2qg249wgwbe3gyht
As you can see, none of the 500MHz keys correspond to the one I received from Siglent.
That's the problem for now!
You can try to find out what keys you can get with the data published here.
Regards Dieter