Pentru activare licentelor SIGLENT 2104X plus am parcurs un tutorial interesat de pe forumul:
https://www.eevblog.com/forum/testgear/siglent-sds2000x-plus-hack/
Ca sa fac un rezumat, mai de actualitate, ca sa nu cautati prea mult in acel topic si nici sa fiti nevoiti sa instalati python pe PC, copiati codul de mai jos pe site-ul https://www.online-python.com/
import hashlib, re
#
# Input SCOPEID (not S/N !) here
# It has to be composed of 16 hexadecimal digits, under one of the following pattern
# dddddddddddddddd
# dddd-dddd-dddd-dddd
#
# It can be either lowercase or uppercase
SCOPEID = '0123456789abcdef'
# No more user input needed after that line
Model = 'SDS2000X+'
bwopt = ('100M','200M','350M','500M')
othopt = ('AWG','MSO','FLX','CFD','I2S','1553','PWA','MANC','SENT','A429')
hashkey = '5zao9lyua01pp7hjzm3orcq90mds63z6zi5kv7vmv3ih981vlwn06txnjdtas3u2wa8msx61i12ueh14t7kqwsfskg032nhyuy1d9vv2wm925rd18kih9xhkyilobbgy'
pattern1 = re.compile(r'[0-9a-f]{16}')
pattern2 = re.compile(r'[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}')
def gen(x):
h = hashlib.md5((hashkey + (Model + '\n').ljust(32, '\x00') + opt.ljust(
5, '\x00') + 2 * ((scopeid + '\n').ljust(32, '\x00')) +
'\x00' * 16).encode('ascii')).digest()
key = ''
for b in h:
if (b <= 0x2F or b > 0x39) and (b <= 0x60 or b > 0x7A):
m = b % 0x24
b = m + (0x57 if m > 9 else 0x30)
if b == 0x30: b = 0x32
if b == 0x31: b = 0x33
if b == 0x6c: b = 0x6d
if b == 0x6f: b = 0x70
key += chr(b)
return key.lower()
temp_scopeid = SCOPEID.lower()
scopeid_valid = False
if (re.search(pattern1, temp_scopeid)):
scopeid_valid = True
scopeid = temp_scopeid
else:
if (re.search(pattern2, temp_scopeid)):
scopeid_valid = True
scopeid = temp_scopeid[:4] + temp_scopeid[5:9] + temp_scopeid[10:14] + temp_scopeid[15:19]
else:
print("SCOPEID is invalid, should be 16 hexa characters with or without dashes")
if (scopeid_valid):
print('SCOPEID is {}'.format(scopeid))
print("\nKeys grouped by 4 digits for easy input in UI:\n")
for opt in bwopt:
key = gen(scopeid)
print(' {:5} {:4} {:4} {:4} {:4} '.format(opt, key[:4], key[4:8], key[8:12], key[12:]))
for opt in othopt:
key = gen(scopeid)
print(' {:5} {:4} {:4} {:4} {:4} '.format(opt, key[:4], key[4:8], key[8:12], key[12:]))
print("\nCommands to be pasted as SCPI commands, one line at a time: \n")
for opt in bwopt:
key = gen(scopeid)
print('- Bandwith {}:'.format(opt))
print(' MCBD {}'.format(key))
print("\n- Other keys:")
for opt in othopt:
key = gen(scopeid)
print(' LCISL {},{}'.format(opt, key))
Inlocuiti ID-ul din linia SCOPEID = '0123456789abcdef' cu ID-ul osciloscopului SIGLENT pe care il detineti (acest ID il gasiti apasand butonul Utility de pe osciloscop si dupa aceea acesati System Info).
Dupa aceasta modificare apasati butonul „RUN”, se va afisa un rezultat, sub forma, exemplu:
COPEID is 0123456789abcdef
Keys grouped by 4 digits for easy input in UI:
100M 6u3j p6va 2m2j fenj
200M ce4c j6q5 umwz 4jkf
350M mmn3 wmyq e5dp m7ar
500M d5mt xzmq fnn3 khj2
AWG r4ms qigt p3f8 62ss
MSO e3f6 r7k6 p89c qnmx
FLX qa4i k2rd 3gjw 2tr8
CFD mvn2 4ddp sw4a z649
I2S 8ejx 7fs9 dadc hnjt
1553 xt3z 5ymy 3jsr 27hi
PWA 5rut iqs4 z7zu 2262
MANC a2jw pmrr 652p 5zcm
SENT rtmg i7wp tzij hrie
A429 j84t 544e 66cp q5p2
Unde manual va trebui sa introduceti fiecare grup de 4 litere/cifre pentru fiecare licenta. Spre exemplu, la mine nu a mers update la 500Mhz, doar pana la 200 Mhz dar sunt multumit. In rest, s-au activat toate optiunile (spre exemplu, cea notata cu AWG inseamna activarea licentei generatorului de semnal, care apropo, functioneaza super bine).