LWLA1016 in Linux

For using various measurement tools like oscilloscopes, multimeters, logic analyzers etc. under Linux there is an amazing tool – sigrok. I was trying to make my cheap chinese logic analyzer LWLA1016 work and this is how I succeeded.

First I tried to install sigrok and signal view from standard repo (I’m using Ubuntu) but it didn’t work. Ok, the binaries in repo might be too old, I thought.

So I compiled everything (libsigrok  libsigrokdecode  pulseview  sigrok-cli  sigrok-firmware) from sources but it still didn’t work. puseview started ok, detected lwla but when I tried to capture some samples I’ve got an error “unspecified error”.

lwla-errorI also installed firmware from sigrok-firmware, it included some lwla1016 files (sysclk-lwla1016-100.rbf sysclk-lwla1016-100-ts.rbf) so I thought, this should be enough.

Side note: The device consists of high-speed usb to parallel interface chip and FPGA. It doesn’t have any flash to hold FPGA firmware so it needs to be loaded before each use. On the other side, this allows you to easily reconfigure the FPGA for different purposes. You could possibly try to implement some protocol handling in FPGA and passing data to USB which is what I want to try later.

After fiddling with usb permissions and other settings it still didn’t work. So I started VirtualBox and captured USB traffic via usbmon device.
lwla-initIt was obvious, that the software under windows is loading some firmware into FPGA. But the data loaded into device was not the same as data in rbf firmware files.

After some googling I found this thread. The key is the very last post. So here is simplified guide how to make it work:

  1. Install app shipped with LWLA1016
  2. Copy folder C:\Program Files\LWLA1016 to your linux machine
  3. cd into LWLA1016\bin
  4. download extract script
    wget 'http://sigrok.org/gitweb/?p=sigrok-util.git;a=blob_plain;f=firmware/sysclk-lwla/sigrok-fwextract-sysclk-lwla1016;hb=HEAD' -O sigrok-fwextract-sysclk-lwla1016
  5. run extract script
    bash sigrok-fwextract-sysclk-lwla1016 ../.
    .././bin/lwla1016.dll: OK
    .././bin/lwla1016_2008.dll: FAILED
    .././bin/lwla1016_2508.dll: FAILED
    sha256sum: WARNING: 2 computed checksums did NOT match
    69334+0 records in
    69334+0 records out
    69334 bytes (69 kB) copied, 0.104074 s, 666 kB/s
    70588+0 records in
    70588+0 records out
    70588 bytes (71 kB) copied, 0.105039 s, 672 kB/s
    69451+0 records in
    69451+0 records out
    69451 bytes (69 kB) copied, 0.0999514 s, 695 kB/s
    73711+0 records in
    73711+0 records out
    73711 bytes (74 kB) copied, 0.104762 s, 704 kB/s
    69337+0 records in
    69337+0 records out
    69337 bytes (69 kB) copied, 0.102592 s, 676 kB/s
    74951+0 records in
    74951+0 records out
    74951 bytes (75 kB) copied, 0.10779 s, 695 kB/s
    
  6. mkdir ~/.local/share/sigrok-firmware/
  7. cp *.rbf ~/.local/share/sigrok-firmware/

After this, your LWLA1016 should work OK!

At least mine does 🙂

lwla-signalHope I have helped you.

Bye!

 

5 thoughts on “LWLA1016 in Linux”

  1. Hi Danman!
    I have the same problem that Kittikun Potivanakul, I haven’t access to the original software of the device. Can you upload again the files?, I checked the previous link but this is broken.

    Thanks!

Leave a Reply

Your email address will not be published. Required fields are marked *