Products > Test Equipment

Siglent .ads firmware file format

<< < (20/85) > >>

tv84:
The parsing of sds2kx_V100R02B01D02P02_fvA1609220922M160922_NO_BLOCKS_DECOMPRESSED.bin (blackfin LDR) is in the attached file.

The FFA08000 range (BF531 boot address) is overwritten with the last block.

I'm guessing that as long as you ensure that it has a correct boot code at FFA08000 you could go along with the initial  "false" FFA00000 boot adress.

tv84:
Now that I've discovered how to decompress Altera FPGA streams, I returned to a type of blocks that I hadn't parse before:

- Block 03 of the SDS1000X_V100R001B01D02P1503.ADS firmware

It's an Altera FPGA (EP4CE6 or EP4CE10) stream:


--- Code: ---         [00000048                      00000021]
Bit 7  - 1111111111111111111111111111111111111111       FFFFFFFFFF
Bit 6  - 1111111111111111111111111111111111111111       FFFFFFFFFF
Bit 5  - 1111111111111111111111111111111111111111       FFFFFFFFFF
Bit 4  - 1111111111111111111111111111111111111111       FFFFFFFFFF
Bit 3  - 1111111111111111111111111110011010000000       FFFFFFE680
Bit 2  - 0000101100000110000000111000000000111111       0B0603803F
Bit 1  - 1111000000000111100011000000011111111111       F0078C07FF
Bit 0  - 1111111111111111111111111111111111111111       FFFFFFFFFF
Bits 0080 - EPCS/EPCQ ID check: Enabled
Bits 005F - Stream size: 1.444.871 bits  (0002C181 bytes)  Compression Bit ON  (+1) 
Bits 0056 - 0000 0000 : 0x56-0x5D
Bits 004C - Programming Mode: 1-bit Passive Serial
Bits 003B - IDCode (Version+Part Number only): 0x020F1
Bits 0008 - Usercode: FFFFFFFF
00000049 - Header CRC-16_MODBUS: BD40  [00000021-00000048]        CRC OK
0000004B - Data Framesize: 207  [0000004B-000000F1]
000000F2 - 4-byte words: 1260  [000000F2-000014A1]
000014A2 - Stream Size (Uncompressed): 2.944.056 bits
000014A2 - CRC Framesize: 207+0     # Data Frames: 1727  [000014A2-00059D4F]
00059D50 - Post-device bitstream pad bytes (0xFF): 55  [00059D50-00059D86]
File Checksum: 00C2D766
--- End code ---

and, as a curiosity, a graphical image of its decompressed content (8 bits/pixel) is attached (without the frame CRCs).

Tsippaduida:
Quick look into the Blackfin code with strings reveal funny things.

This you might expect:
$ strings sds2kx_V100R02B01D02P02_fvA1609220922M160922_NO_BLOCKS_DECOMPRESSED.bin | grep -i siglent
SIGLENT TEST
SIGLENT
Siglent Technologies Co,. Ltd.

This might be a minor surprise:
$ strings sds2kx_V100R02B01D02P02_fvA1609220922M160922_NO_BLOCKS_DECOMPRESSED.bin | grep -i lecroy
LECROY_2_3
LECROY,WA200,600300,5.01
; LeCroy Digital Oscilloscopes,
LECROY

Great work in decoding these firmware files. Had only a short glimpse into this, but it was fun.

tv84:
If you search carefully in that file, you can see the designations of several brands/models:

Brands:
ATTEN, LECROY, SIGLENT, BK, AKIP, METRIX, SDS


--- Code: ---Atten, (Aktakom, ?):
ADS2024, ADS2044, ADS2064, ADS2104, ADS2154, ADS2204, ADS2304, ADS2054, ADS2074, ADS2022, ADS2042, ADS2062, ADS2102, ADS2152, ADS2202, ADS2302, ADS2052, ADS2072

Lecroy:
WA204, WaveAce2014, WaveAce2024, WaveAce2034, WaveAce2004, WA202, WaveAce2012, WaveAce2022, WaveAce2032, WaveAce2002

AKIP:
AKIP-4126, AKIP-4126/2A, AKIP-4126/3A, AKIP-4126/4A, AKIP-4126/1A, AKIP-4126/2, AKIP-4126/3, AKIP-4126/4, AKIP-4126/1

Siglent:
SDS2022X, SDS2042X, SDS2062X, SDS2102X, SDS2152X, SDS2202X, SDS2302X, SDS2052X, SDS2072X, SDS2024X, SDS2044X, SDS2064X, SDS2104X, SDS2154X, SDS2204X, SDS2304X, SDS2054X, SDS2074X
--- End code ---

tv84:
Attached is a log of the parsing of (almost) all the Siglent .ADS files available (all models) + some Lecroy + some Atten:


--- Code: ---ADS1102_Software Version 2.0_V100R002B07D02P10R5.ADS  /  CRC32: 482FDAF7
ATTEN_ADS1000CAL_V100R003B01D01P31R16.ADS  /  CRC32: 3195554C
ATTEN_ADS1000CL+_V100R003B01D01P31R16.ADS  /  CRC32: 24CCD3A9
ATTEN_ADS1000CML_V100R003B01D01P31R16.ADS  /  CRC32: 80A57BDD
ATTEN_ADS1202CML_v2.06.02.15R1.ADS  /  CRC32: E9C8791F
SDG1000-V100R001B01D01P27.ADS  /  CRC32: F4E746F9
SDG1000-V100R001B01D01P31.ADS  /  CRC32: 046FAF25
SDG1000-V100R001B01D01P31R1.ADS  /  CRC32: 4BAF4345
SDG1000-V100R001B01D01P36R1.ADS  /  CRC32: CE6B6D42
SDG1000-V100R001B01D01P37R2.ADS  /  CRC32: 97DDECD1
SDG1000-V100R001B01D01P37R3.ADS  /  CRC32: B28CDE5D
SDG1000-V100R001B01D01P39R2.ADS  /  CRC32: AD6C46D1
SDG1000X_1.01.01.22R5.ADS  /  CRC32: C62D04EE
SDG1000X_V100R001B01D01P22.ADS  /  CRC32: B14D5521
SDG1000X_V100R001B01D01P22_eevblog.ads  /  CRC32: 2CB0008E
SDG1000_1.01.01.39R5.ADS  /  CRC32: D9B4C673
SDG2000X_2.01.01.23R7.ADS  /  CRC32: E3770C8A
SDG2000X_V2.0.CFG.ADS  /  CRC32: 8934257D
SDG2000X_V200R001B01D01P23R3.ADS  /  CRC32: 45C65605
SDG2000X_eevblog_23R7.ads  /  CRC32: 852BDEBD
SDG2000_V200R001B01D01P15R2.ADS  /  CRC32: 51FC8172
SDG2000_V200R001B01D01P16R2.ADS  /  CRC32: E4926B51
SDG2000_V200R001B01D01P17R5.ADS  /  CRC32: A62CF60D
SDG2000_V200R001B01D01P21R2.ADS  /  CRC32: 9B336DB9
SDG2000_V200R001B01D01P22R5.ADS  /  CRC32: 393FFDD8
SDG5000 V500R001B01D01P10R1.ADS  /  CRC32: C95609A4
SDG5000-V500R001B01D01P12.ADS  /  CRC32: 37BDC62E
SDG5000-V500R001B01D01P15R1.ADS  /  CRC32: 91629F0B
SDG5000-V500R001B01D01P15R5.ADS  /  CRC32: C0B2A723
SDG800 V100R008B01D01P06.ADS  /  CRC32: 5B5767B2
SDG800 V100R008B01D01P07.ADS  /  CRC32: 9DE4B005
SDG800 V100R008B01D01P08.ADS  /  CRC32: 4920167F
SDG800 V100R008B01D01P09R1.ADS  /  CRC32: DD2C7FD3
SDG800 V100R008B01D01P10R1.ADS  /  CRC32: CE230F0A
SDG800 V100R008B01D01P11.ADS  /  CRC32: FD6F8FE9
SDG800 V100R008B01D01P12R1.ADS  /  CRC32: 0E21A078
SDG800 V100R008B01D01P12R2.ADS  /  CRC32: 867E8DDD
SDG800 V100R008B01D01P13R5.ADS  /  CRC32: 335B08D9
SDG800 Vp07-to-p08-transition.ADS  /  CRC32: 7DAB9D04
SDG800_transition.ADS  /  CRC32: 7DAB9D04
SDM3045X_5.01.01.03.ADS  /  CRC32: B722F3F1
SDM305(V100R001B01D01P13R1).ADS  /  CRC32: 5E84E31E
SDM3055_1.01.01.16R2.ADS  /  CRC32: C72A5CEE
SDM3055_1.01.01.19.ADS  /  CRC32: 12743868
SDM3065X_3.01.01.03.ADS  /  CRC32: E914E8A4
SDS1000CFL_2CH_SSP_V100R005B03D02P12.ADS  /  CRC32: 305EED12
SDS1000CFL_2CH_SSP_V100R005B08D02P30.ADS  /  CRC32: 56916B35
SDS1000CFL_2CH_SSP_V100R005B08D02P38.ADS  /  CRC32: 46AA7E43
SDS1000CFL_SSP_V100R005B03D02P12.ADS  /  CRC32: E43FF437
SDS1000CFL_SSP_V100R005B03D02P30.ADS  /  CRC32: 41E32C6B
SDS1000CFL_SSP_V100R005B03D02P38.ADS  /  CRC32: A9250B6B
SDS1000CML+_V100R006B01D01P19_FPGA_V5.2.ADS  /  CRC32: 5C6B0F1A
SDS1000CML+_V6.01.01.18.ADS  /  CRC32: 203ACC1E
SDS1000CML_SSP_V100R005B01D02P13.ADS  /  CRC32: 6D788CDE
SDS1000CML_SSP_V100R005B01D02P22.ADS  /  CRC32: F4525B3F
SDS1000CML_SSP_V100R005B01D02P29.ADS  /  CRC32: EF2F0429
SDS1000CML_SSP_V100R005B01D02P32.ADS  /  CRC32: 68A992F5
SDS1000DL+_V100R006B02D01P08_FPGA_V3.1.ADS  /  CRC32: 7A3691D4
SDS1000DL+_V6.02.01.07.ADS  /  CRC32: 332CC506
SDS1000DL_V100R005B06D02P16.ADS  /  CRC32: C7B3AB3A
SDS1000DL_V100R005B06D02P19.ADS  /  CRC32: 418912FF
SDS1000X&X+_V100R001B01D02P1305_fvA20160802.ADS  /  CRC32: 4BBED455
SDS1000X-E_1.3.13_FPGA_V20170622.ADS  /  CRC32: 6067B3F4
SDS1000X_V100R001B01D01P39R5_fvA20151001.ADS  /  CRC32: CE78DA56
SDS1000X_V100R001B01D02P0101_fvA20151211.ADS  /  CRC32: 00E208AB
SDS1000X_V100R001B01D02P06_fvA20160227.ADS  /  CRC32: 675B14B3
SDS1000X_V100R001B01D02P15.ADS  /  CRC32: BF0B6F7E
SDS1000X_V100R001B01D02P1503.ADS  /  CRC32: 7D785143
SDS1000X_V100R001B01D02P1510.ADS  /  CRC32: EA317A79
SDS1002X-E_5.1.3.17R1.ADS  /  CRC32: D64CD117
SDS1004X-E_7.6.1.12_FPGA_V20171107.ADS  /  CRC32: 9E2F7325
SDS1004X_E_6.1.25R1.ADS  /  CRC32: F2A6E2A1
SDS1004X_E_6.1.25R2.ADS  /  CRC32: 831783F6
SDS1004X_E_7.6.1.20.ADS  /  CRC32: A18BD2F3
SDS1004X_E_7.6.1.20R1.ADS  /  CRC32: AFAFFBDC
SDS2000x_1.2.2.2R10.ADS  /  CRC32: FBD42874
SHS1000_V100R003B01D02P01.ADS  /  CRC32: E37E4883
SHS1000_V100R003B01D02P02R2.ADS  /  CRC32: EBBD20F4
SHS1000_V100R003B01D02P02R7.ADS  /  CRC32: 15276A83
SHS1000_V5.09.01.05.ADS  /  CRC32: 6716D9EB
SHS800_V5.09.01.05.ADS  /  CRC32: 6716D9EB
SHS820_V100R003B01D02P01.ADS  /  CRC32: 44139E02
SHS820_V100R003B01D02P02R2.ADS  /  CRC32: 4D98764A
SHS820_V100R003B01D02P02R7.ADS  /  CRC32: 6C16AA6B
SHS820_V5.10.01.01.ADS  /  CRC32: 4FC9C274
SLA1016_7.8.1.8.ADS  /  CRC32: 492B6D07
SLA1016_8.1.9.ADS  /  CRC32: 8F68CC42
SPD3303X-1.01.01.02.05.ADS  /  CRC32: 8D42C003
SPD3303X-E-1.01.01.02.05.ADS  /  CRC32: B0419B9C
SPD3303X-E-V100R001B01D02P02R2.ADS  /  CRC32: D510D51A
SPD3303X-E_1.01.01.02.03.ADS  /  CRC32: D0789A98
SPD3303X-V100R001B01D02P02R2.ADS  /  CRC32: FBC0457D
SPD3303X_1.01.01.02.03.ADS  /  CRC32: CF403574
SSA3000X_D07P03.ADS  /  CRC32: D2B7E463
SSA3000X_v1.2.8.5a.ADS  /  CRC32: 80235A01
SSA3000X_v1.2.9.1.ADS  /  CRC32: 6D70F8D3
V01.02.08.01.ADS  /  CRC32: F67F09A3
V1.2.8.2.ADS  /  CRC32: 48F4F21B
V1.2.8.3.ADS  /  CRC32: 93FDFDAB
V100.01.02.07.07.ADS  /  CRC32: 8470CDE0
Vp10R3-to-p11-transition.ADS  /  CRC32: 0BD8FD19
Vp15R2-to-p16-transition.ADS  /  CRC32: 7B9B174E
WA_101 v2.07.02.100_W.ads  /  CRC32: 26949B7B
WA_101 v2.07.02.160.ADS  /  CRC32: 001FAE5F
WA_102 v2.07.01.100_N.ads  /  CRC32: EEE15A1D
WA_102 v2.07.01.100_W.ads  /  CRC32: 2D0A1FEE
WA_102 v2.07.02.160.ADS  /  CRC32: A31B1F2A
WA_112 v2.07.01.100_N.ads  /  CRC32: C1C09E8F
WA_112 v2.07.01.100_W.ads  /  CRC32: 9762F2AF
WA_112 v2.07.02.160.ADS  /  CRC32: EC64A923
WA_202 v2.06.01.08_N.ads  /  CRC32: DF2BBC31
WA_202 v2.06.02.11_W.ads  /  CRC32: 91210A12
WA_202 v2.06.02.19.ADS  /  CRC32: 64DD774A
WA_212 v2.06.01.08_N.ads  /  CRC32: 6CE1B754
WA_212 v2.06.02.11_W.ads  /  CRC32: 23025C19
WA_212 v2.06.02.19.ADS  /  CRC32: 36F047C4
WA_222 v2.06.01.08_N.ads  /  CRC32: 73CCFBF1
WA_222 v2.06.02.19.ADS  /  CRC32: E375216D
WA_232 v2.06.01.08_N.ads  /  CRC32: 125CADB4
WA_232 v2.06.02.11_W.ads  /  CRC32: BD9EC351
WA_232 v2.06.02.19.ADS  /  CRC32: 1FAC2084
WA_2x4.ADS  /  CRC32: B54CBECA
sdm305(V100R001B01D01P09).ADS  /  CRC32: D2362F4C
sdm305(V100R001B01D01P11R1).ADS  /  CRC32: 26CCDB35
sdm305(V100R001B01D01P12R1).ADS  /  CRC32: C49D7D95
sdm305(V100R001B01D01P15R1).ADS  /  CRC32: 2363E004
sds2k_V100R01B01D01P3501_fvA140620140620M140715.ADS  /  CRC32: A4D2A904
sds2k_V100R01B01D01P3702_fvA141204141203M141117.ADS  /  CRC32: 1C954983
sds2k_V100R01B01D01P3709_fvA141204141203M141117.ADS  /  CRC32: B2FED91C
sds2k_V100R02B01D01P27_fvA1511171117M151117.ADS  /  CRC32: 5E826C18
sds2k_V100R02B01D01P2801_fvA1511171117M151126.ADS  /  CRC32: 1F81CB83
sds2k_V100R02B01D01P3301_fvA1601290129M160129.ADS  /  CRC32: 74968A25
sds2k_V100R02B01D01P38R07_fvA1606060606M160516.ADS  /  CRC32: 176C2D06
sds2k_V100R02B01D02P0109_fvA1609220922M160922.ADS  /  CRC32: ABD70008
sds2k_V100R02B01D02P02_fvA1609220922M160922.ADS  /  CRC32: 2AC88D06
sds2kx_V100R02B01D01P2801_fvA1511171117M151126.ADS  /  CRC32: CA4EE474
sds2kx_V100R02B01D01P3301_fvA1601290129M160129.ADS  /  CRC32: 44F3DFD3
sds2kx_V100R02B01D01P38R07_fvA1606060606M160516.ADS  /  CRC32: 8B4BB764
sds2kx_V100R02B01D02P0109_fvA1609220922M160922.ADS  /  CRC32: FDB18978
sds2kx_V100R02B01D02P02_fvA1609220922M160922.ADS  /  CRC32: FC7F7840
transition.ADS  /  CRC32: 0BD8FD19
waveace10xx_5.01.02.29.ADS  /  CRC32: 8F44CBF5
waveace2xx2_5.08.02.38.ADS  /  CRC32: 15AF114A
waveace2xx4_5.03.02.38.ADS  /  CRC32: 48FA2455
wavestation_2000_v1.01.02.31.ads  /  CRC32: 0926F234
wavestation_2000_v1.01.02.34.ads  /  CRC32: 4A6EF551
wavestation_2000_v1.01.02.36.ads  /  CRC32: 51595069
wavestation_3000_v5.01.02.13.ads  /  CRC32: 93EB575F

--- End code ---


The only part that I still haven't figured it out is Section 7 of SDS1000/SDS2000 files. But it's probably the CPLD programming of those scopes.

Edit7: updated Sep 23rd, 2018  - Added all the recent FW updates

Navigation

[0] Message Index

[#] Next page

[*] Previous page

There was an error while thanking
Thanking...
Go to full version
Powered by SMFPacks Advanced Attachments Uploader Mod