| 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 |
| Message Index |
| Next page |
| Previous page |