sysclk-lwla: Add firmware extraction script for LWLA1016
authorDaniel Elstner <>
Wed, 21 Oct 2015 20:33:57 +0000 (22:33 +0200)
committerUwe Hermann <>
Tue, 27 Oct 2015 21:37:25 +0000 (22:37 +0100)
Provide a simple shell script which extracts byte ranges from the
Windows software. Note that this only works on an installation of
the original software, since the firmware files are not as easily
extractable directly out of the installer executable.

firmware/sysclk-lwla/sigrok-fwextract-sysclk-lwla1016 [new file with mode: 0755]
firmware/sysclk-lwla/sigrok-fwextract-sysclk-lwla1016.1 [new file with mode: 0644]

diff --git a/firmware/sysclk-lwla/sigrok-fwextract-sysclk-lwla1016 b/firmware/sysclk-lwla/sigrok-fwextract-sysclk-lwla1016
new file mode 100755 (executable)
index 0000000..b57e3ee
--- /dev/null
@@ -0,0 +1,43 @@
+#! /bin/sh -e
+## This file is part of the sigrok-util project.
+## Copyright (C) 2015 Daniel Elstner <>
+## This program is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 3 of the License, or
+## (at your option) any later version.
+## This program is distributed in the hope that it will be useful,
+## but WITHOUT ANY WARRANTY; without even the implied warranty of
+## GNU General Public License for more details.
+## You should have received a copy of the GNU General Public License
+## along with this program; if not, see <>.
+if [ -z "$instdir" ]; then
+    echo "Usage: $0 LWLA1016-INST-DIR" >&2
+    exit 1
+# Verify the checksums to make sure these are the right files
+sha256sum -c <<_EOF
+cb9db3a81606865db2fd3a5075e3c66e071c4b0b6150cc1a22ee03889b236d7f *$dlldir/lwla1016.dll
+19b6229d0d0372c7e2e98c6f0a514370678cc055c47150a0c3c05b74c1361524 *$dlldir/lwla1016_2008.dll
+0191b2257279e44b476e30240f3ff57b84725d971f39c09fb9109546c79278b3 *$dlldir/lwla1016_2508.dll
+# Extract the firmware binaries from the executable
+dd bs=1 skip=112300 count=69334 if="$dlldir/lwla1016.dll" of=sysclk-lwla1016-100.rbf
+dd bs=1 skip=41708  count=70588 if="$dlldir/lwla1016.dll" of=sysclk-lwla1016-100-ts.rbf
+dd bs=1 skip=115424 count=69451 if="$dlldir/lwla1016_2008.dll" of=sysclk-lwla1016-200.rbf
+dd bs=1 skip=41708  count=73711 if="$dlldir/lwla1016_2008.dll" of=sysclk-lwla1016-200-ts.rbf
+dd bs=1 skip=116664 count=69337 if="$dlldir/lwla1016_2508.dll" of=sysclk-lwla1016-250.rbf
+dd bs=1 skip=41708  count=74951 if="$dlldir/lwla1016_2508.dll" of=sysclk-lwla1016-250-ts.rbf
diff --git a/firmware/sysclk-lwla/sigrok-fwextract-sysclk-lwla1016.1 b/firmware/sysclk-lwla/sigrok-fwextract-sysclk-lwla1016.1
new file mode 100644 (file)
index 0000000..df95212
--- /dev/null
@@ -0,0 +1,33 @@
+.TH SIGROK\-FWEXTRACT\-SYSCLK\-LWLA1016 1 "Oct 21, 2015"
+sigrok\-fwextract\-sysclk\-lwla1016 \- Extract SysClk LWLA1016 firmware
+.B sigrok\-fwextract\-sysclk\-lwla1016 LWLA1016-INST-DIR
+This tool extracts FPGA bitstreams from the vendor software for the SysClk
+LWLA1016 USB logic analyzer. Install the original software (possibly within
+a virtual machine) and locate the installation directory.
+In order to extract the bitstreams, run the following command:
+.B "  $ sigrok-fwextract-sysclk-lwla1016 INSTALL-DIR"
+Copy the resulting four bitstream files over to the location where libsigrok
+expects to find its firmware files. By default this is
+.BR /usr/local/share/sigrok-firmware .
+Exits with 0 on success, 1 on most failures.
+Please report any bugs via Bugzilla
+.RB "(" ")"
+or on the sigrok\-devel mailing list
+.RB "(" sigrok\ ")."
+This program is covered by the GNU General Public License (GPL),
+version 3 or later.
+Please see the individual source code files.