Siglent 1104X-E osiloskop hackleme (200 MHz, AWG, USB WiFi, MSO)

Sercan

--
Katılım
17 Mart 2019
Mesajlar
4,956
Bugün başka bir iş için internette gezinirken Siglent için basitçe bir hack yöntemine denk geldim. Bu cihazın hack işini cihazı almadan öncede biliyordum fakat uğraşmak istemedim. Bugün ki yöntem çok basit göründüğü için denemeye karar verdim.

Çok basit bir Python programı ile cihaz bir üst modeli olan 1204X-E gibi 200 MHz olarak çalışmaya başlıyor. Bununla birlikte cihazı aldığınızda 30 defa kullanıma izin verilen bazı yazılım opsiyonlarını da açılabiliyor. Tabi bu yazılım opsiyonlarını açınca ilgili donanımlarada dahip olmak gerekiyor. Örneğin bendeki osiloskopun probları 100 MHz. 200 MHz ölçmek istediğimde ne kadar sağlıklı çalışır bilmiyorum.

Bu yöntem SDS2000X-E, SDS2000X+ ve SDS5000X için de geçerliymiş ama benim bu cihazlarda denemek gibi bir şansım yok.

Benim cihazın donanım yazılımı sürümü 6.1.35R2 farklı bir donanım modeli olursa sürecin nasıl işleyebileceğini bilmiyorum. Bu nedenle bu işlemi yapacak olursanız dikkatli olmanızı tavsiye ederim. Hoş bu hack işlemi için gerekli bilgiler de uzaydan gelimiyordum ama genede belirteyim, yasal olarak bu işin sadece eğitim maksatlı olduğunu ve kimseye tavsiye etmediğimi unutmayınız.

Evet çok konuştuk işleme başlayalım.

Öncelikle osiloskopu ağ kablosu ile yerel ağa bağlıyoruz ve bir bilgisayara IP adresine yazarak web arayüzüne erişiyoruz. Sol tarafta bulunan menüden SCPI ekranını açıyoruz. Buraya "SCOPEID?" komutunu giriyoruz. Bu komuta cevap olarak bir ID numarası geliyor. Bu ID her cihaz için farklı olacaktır.

1629039622524.png


Bu SCOPE ID numarasını aralarda tire "-" işareti olmadan bir köşeye not etmelisiniz. Sadece numarayı kopyalayın. Sakın ola yukarıda paylaştığım numarayı kullanmayın, bu numara her bir cihaz için benzersiz imiş.

Bir de cihazınızın seri numarası gerekiyor. Bunu cihaz üzerinden öğrenebiliyorsunuz. Aynı zamanda web arayüzünden Home bölümünden de görüntüleyebilirsiniz.

1629040663583.png


Cihazımızın SCOPE ID ve Seri Numarasını edindikten sonra PASTEBIN'de yer alan Python programını not defterine aktarıyoruz ve burada yer alan SCOPEID ve SN bölümünü bizim bilgiler ile değiştiriyoruz. Bu arada farklı bir model için yapacaksanız sanıyorum model adını da bir alt satırdaki dizeden seçip güncellemek gerekiyor.

1629041059329.png


Bilgileri düzenledikten sonra aşağıdaki gibi olması gerekiyor.

1629041134757.png


Her şey tamam şimdi Python programını çalıştıracağız. Python programını bilgisayarınızda çalıştıramıyorsanız, bu işi online yapan sitelerden yardım almanız mümkün. Aşağıdaki adresi kullanabilirsiniz.


Buraya program kodlarını yapıştırın ve RUN komutunu verin. Sağ tarafta çıktıyı görüntüleyeceksiniz.

1629041377522.png
 
Şimdi bu çıktıları cihazın opsiyonlarını açmak için kullanacağız.

Öncelikle 200 MHz yapmak için 200M bölümündeki kodu kopyalamayınız gerekiyor ve bunu osiloskopun web arayüzünden SCPI ile "MCBD <200M kodunuz>" şeklinde göndermememiz gerekiyor. Benim örnekğe göre aşağıdaki gibi oluyor.

1629041786918.png


Şimdi her şey doğruysa "PRBD?" komutu verdiğimizde cihazın yeni hızını 200M olarak yazması gerekiyor. Bu artık cihazınız 200 MHz oldu demek oluyor. Bu noktada fabrika ayarlarına dönmek istiyorsanız "MCBD" komutunu verebilirsiniz. Fakat cihazı kapatıp açtıktan sonra fabrika ayarlarına bu komu ile dönmeniz mümkün değil. Bunun yerine üretmiş olduğunuz 100M kodu ile yapabilirsiniz.

1629041870284.png


Cihazı yeniden başlattığımızda SDS1204X-E olarak kendini tanıtıyor...

1629041961711.png
 
Şimdi sırada diğer opsiyonları aktifleştirmek var. Bunun için cihaz üzerinde "Optioné menüsüne gelip "Install" seçeneğini kullanmamız gerekiyor. Aktifleştirmeden önceki Information ekranı aşağıdaki gibi. Ben bu özellikleri hiç kullanmadığım için fabrika ayarlarında duruyor.

IMG_20210815_154131.jpg


Install seçeneği ile aşağıdaki ekrana Python ile oluşturduğumuz ilgili satırları giriyoruz. Mesela ilk olarak AWG satırındaki kodu girelim. Bu işlem web arayüzden olmuyormuş o sebeple biraz sıkıcı da olsa bir kereye mahsus anahtarları adjust seçeneğini çevire çevire gerekiyor...

IMG_20210815_154403.jpg


Gördüğünüz gibi kodu girdikten sonra kalan süre olarak xx ibaresi çıktı.

1629042383117.png


Bu işlemlemleri diğer seçenekler için de yapıyoruz.

IMG_20210815_154924.jpg


IMG_20210815_155117.jpg
 
Şimdi artık Siglent 1104X-E osiloskop tam performanslı çalışır hale gelidi. Yazılım özelliklerini açtık ama MSO için SPL1016 Logic Probe. AWG için SAG1021 function generator ve Wifi için uyumlu TP-Link USB-WiFi ataptöre ihtiyaç olduğunu unutmayın.

Son olarak PASTEBIN dosyasını da buraya ekleyeyim. İsterseniz zip dosyasını da indirip kullanabilirsiniz.

Python:
# Keygen program for Siglent oscilloscopes

import hashlib

# You get this by running "SCOPEID?" at the SCIP prompt and removing the dashes
SCOPEID = '0000000000000000'
# Replace this with your SN
SN = 'SDS00000000000'
# This is one of the four options below
Model = 'SDS1000X-E'
# 'SDS1000X-E', 'SDS2000X-E', 'SDS2000X+', 'SDS5000X', 'ZODIAC-'

bwopt = ('25M', '40M', '50M', '60M', '70M', '100M', '150M', '200M',
         '250M', '300M', '350M', '500M', '750M', '1000M', 'MAX')
otheropt = ('AWG', 'WIFI', 'MSO', 'FLX',
            'CFD', 'I2S', '1553', 'FG', '16LA')

hashkey = '5zao9lyua01pp7hjzm3orcq90mds63z6zi5kv7vmv3ih981vlwn06txnjdtas3u2wa8msx61i12ueh14t7kqwsfskg032nhyuy1d9vv2wm925rd18kih9xhkyilobbgy'

def gen(x):
    h = hashlib.md5((
        hashkey +
        (Model+'\n').ljust(32, '\x00') +
        opt.ljust(5, '\x00') +
        2*(((SCOPEID if opt in bwopt else SN) + '\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.upper()

for opt in bwopt:
    print('{:5} {}'.format(opt, gen(SCOPEID)))
for opt in otheropt:
    print('{:5} {}'.format(opt, gen(SN)))
 

Ekler

  • Siglent 1104X-E Python.zip
    911 bytes · Görüntüleme: 175
Henüz cihazın tadına varamadan yeni firmware çıkmış! Ben 200 MHz yaptıktan 9 gün sonra olması da manidar. Güncellemeyeyim diyeceğim ama güzel yenilikler var.

SDS1xx4X-E Firmware Update
Version: V6.1.37R2
Yayın Tarihi: 2021-08-24

Release Notes
SDS1xx4X-E Firmware Update

Added data logger featuring Sample and Measurement Logger functions
Added counter function
Added Labels
Added NTP (Network Time Protocol) and Time Zone. Also requires OS update to SDS1xx4X-E_OSV2 which is located on the SIGLENT product webpage. The OS Update Instructions is also included SDS1xx4X-E_OSV2.zip
Modified negative or positive of horizontal delay: Time zero is in trigger. Before trigger, time position is -time (negative delay relative to trigger) and after trigger is +time (positive delay relative to trigger)
Fixed a bug with Bin2CSV for ROLL mode
Rebuilt Bin2CSV to File Converter which can also convert data logger file to CSV.
Fixed a bug: some case there is a blue line on decode bus
Fixed a bug with saving hex MSO CSV file
Fixed a bug: After rebooting , Bode Plot cursor can’t be moved
Fixed a bug: fine adjusting with customer probe
WiFi supported Spaces and Special Characters

 
Cihazı yukarıda paylaştığım, resmi sitesinden indirdiğim firmware ile güncelledim. Güncelleme işini ekteki zipli dosyanın içinde bulunan PDF dosyasında belirtiği adımları izleyerek tamamladım. İndirdiğim zipli dosyayı hiç dokunmadan buraya da ekliyorum.

Aşağıdaki fotoğrafta göreceğiniz üzere cihazı güncelledikten sonra yapmış olduğum hack işlemi geçerliliğini korumaya devam ediyor. Yani cihaz halen kendini 1204X-E sanıyor! AWG, USB WiFi, MSO özellikleri de durumunu koruyor.

Biz bu işleme hack dedik ama bu sanki gayri resmi Siglent dağıtımı bir işlem...

Daha önce 6.1.35R2 olan versiyon şu an 6.1.37R2 oldu ve FPGA versiyonu ise 2019-11-15 tarihinden 2021-07-12 tarihi olarak değişti.

Gene aşağıdaki fotoğrafta göreceğiniz üzere counter gibi yeni özellikler de geldi.


IMG_20210904_234157.jpg
IMG_20210904_234216.jpg
IMG_20210904_234236.jpg
IMG_20210904_234254.jpg
 

Ekler

  • SDS1xx4X-E_6.1.37R2_EN.zip
    8.7 MB · Görüntüleme: 156
Bu etiketleme özelliği güzelmiş. Ekran görüntüsü filan alındığında işe yarar.

1630789508718.png
 
Saat ve Counter özelliği de güzel çalışıyor.

1630789674988.png
 
NTP (Network Time Protocol) desteği isteniyorsa işletim sisteminin de güncellenmesi gerekiyor. Bu gerekli bir güncelleme değil. Sadece NTP yani ağ üzerinden saat güncelleme desteği geliyor.
 
Hayırlı olsun yeni osiloskobunuz :D, yeni özellikler yeni heyececanlar.
 
Osiloskopu alalı neredeyse 1 sene olacak, firmware yeni özellikler kazandırınca tabi insan heyecanlanıyor. :cheeky5:

Bu arada firmware güncellemesinden sonra işletim sistemini de güncelleyeyim ki NTP özelliği gelsin dedim ama bir türlü USB'den boot etmedi. Youtube video yorumlarında buna değinmişler. Bende olmadığı için bilmiyorum ama WiFi de sorunlu sanırım. USB WiFi olmadığı için şu an benim için önemli olan U-Boot USB'den güncelleme yapmıyor...

Bununla ilgili Siglent'de eposta gönderdim. Bakalım ne cevap verecekler.

1630795217260.png
 
Bir kaç deneme ve yazışmadan sonra bütün USB disklerle denemek istedim. Çünkü hiç kimse bir çözüm öneremedi.

Neyse güncelleştirme bildiriminde 8-32 GB aralığında bir USB kullanın diye özellikle belirtiyor. Özellikle bu değerler verildiği için ben de hep 8 ve üzeri diskler denedim ve bir türlü güncelleyemedim.

4 GB USB disk ile denediğimde sistemin kendini güncellediğini fark ettim. Bu arada Youtube yorumlarından öğrendiğim güncelleme sonrası sistem kendini yeniden başlatır diyor ama başlatmıyor. Bende de böyle oldu. Neyse artık sistemin NTP özelliğini aktifleştirmeyi başardım.

Ayarları aşağıdaki gibi yapıp Tubitak NTP ip adresini kaydettim ve Sync tuşuna bastığımda sistem saati başarı ile güncellendi. Bundan sonra her açılışta saati güncelleyecek.

Bu arada neden NTP için bu kadar uğraşmamın sebebi cihazın dahili bir saati bulunmuyor. Her açılışta saat 1970'e sıfırlanıyor ve tekrar ayarlamak gerekiyor. Bununla uğraşmadan data log tutmak için filan en güzeli internetten saati güncellemek.

1630837694609.png

1630838145828.png


1630838244339.png
 
İşletim sistemi dosyasını eklemeyi unuttum, onu da buraya ekleyeyim...
 

Ekler

  • SDS1xx4X-E_OSV2_EN.zip
    17.8 MB · Görüntüleme: 115

Çevrimiçi üyeler

Forum istatistikleri

Konular
5,844
Mesajlar
99,713
Üyeler
2,481
Son üye
rfdog12

Son kaynaklar

Son profil mesajları

gruptaki arkadaşlara selamlar. sıteyi bu gün fark ettim. Asansör için 2x7 segment LCD gösterge üretmek istiyorum. acaba bu sayfadaki arkadaşlardan destek alabilirmiyim. LCD nin mantık açılımı ektedir.
deneyci wrote on TA3UIS's profile.
Selam.
Amatör telsiz lisansı nasıl alınıyor?
Lisansı olmayanı forumlarına almıyorlar. :)
Bilgi alamıyoruz.
cemalettin keçeci wrote on HaydarBaris's profile.
barış kardeşim bende bu sene akıllı denizaltı projesine girdim ve sensörleri arastırıyorum tam olarak hangi sensör ve markaları kullandınız yardımcı olabilir misin?
m.white wrote on Altair's profile.
İyi akşamlar.Arabanız ne marka ve sorunu nedir.Ben araba tamircisi değilim ama tamirden anlarım.
* En mühim ve feyizli vazifelerimiz millî eğitim işleridir. Millî eğitim işlerinde mutlaka muzaffer olmak lâzımdır. Bir milletin hakikî kurtuluşu ancak bu suretle olur. (1922)
Back
Top