Skip to content
anno73 edited this page Feb 9, 2021 · 3 revisions

Saleae Logic 16 Clone & sigrok on Windows 10

This is the device: https://sigrok.org/wiki/Noname_XL-LOGIC16-100M

Install sigrok and sigrok-cli

Install sigrok

Install sigrok-cli

Download and install (https://sigrok.org/wiki/Windows) https://sigrok.org/jenkins/job/sigrok-cross-mingw/buildtype=static,debugtype=release,platform=cross-x86_64-w64-mingw32/lastSuccessfulBuild/artifact/sigrok-cli-NIGHTLY-64bit-static-release-installer.exe

Manual page: https://sigrok.org/wiki/Sigrok-cli

Get firmware files

Save these files in %LOCALAPPDATA%\sigrok-firmware

Alternate firmware

This is my preferred way.

Install git or download directly.

gregani provides an alternate set of firmware files. This works better than the firmware extracted from Logic executable (see below).

Clone https://github.com/gregani/la16fw.git to the sigrok-firmware folder.

Copy/move files from la16fw/bin to sigrok-folder and rename them accordingly:

copy la16fw\bin\la16fw-fx2.fw saleae-logic16-fx2.fw
copy la16fw\bin\la16fw-fpga-18.bitstream saleae-logic16-fpga-18.bitstream
copy la16fw\bin\la16fw-fpga-33.bitstream saleae-logic16-fpga-33.bitstream

Extract from Logic

Install python.

From https://sigrok.org/gitweb/?p=sigrok-util.git;a=tree;f=firmware/saleae-logic16 download all files. You get

04.02.2021 18:43 6.569 parseelf.py 04.02.2021 18:40 14.557 sigrok-fwextract-saleae-logic16 04.02.2021 18:43 1.597 sigrok-fwextract-saleae-logic16.1

From https://support.saleae.com/logic-software/legacy-software/older-software-releases#1-2-10-download download Linux 64 bit version.

Extract zip to local directory

run python sigrok-fwextract-saleae-logic16 "Logic 1.2.10 (64-bit) compatibility_release\Logic" You get

04.02.2021 19:07 149.516 saleae-logic16-fpga-18.bitstream 04.02.2021 19:07 149.516 saleae-logic16-fpga-33.bitstream 04.02.2021 19:07 5.217 saleae-logic16-fx2.fw 04.02.2021 19:07 465.028 saleae-logicpro16-fpga.bitstream 04.02.2021 19:07 178.702 saleae-logicpro16-fx3.fw 04.02.2021 19:07 341.160 saleae-logicpro8-fpga.bitstream 04.02.2021 19:07 178.702 saleae-logicpro8-fx3.fw

Save these files in C:\Users\alex\AppData\Local\sigrok-firmware

The alternate firmware files from above work better for me than the firmware extracted from Logic executable.

Install USB Driver

With the installation of sigrok-cli also comes "Zadig (sigrok-cli)".

  • Plug in logic analyzer
  • open Zadig
  • select Options->List All Devices
  • in dropdown in main window select "Logic S/16"
  • install "libusb-win32 (v1.2.6.0)"

This can take some time. After installation remove and reconnect logic analyzer.

It might be required to install the driver more often or assign the device a different driver initially and then switch to libusb-win32.

Test whole setup

Open a cmd window in sigrok-cli installation and start

sigrok-cli.exe -d saleae-logic16 -l 5 --samples 100

The logic analyzer should enumerate on USB bus once more, hence you should hear Windows playing the device recognition sound.

Resulting output should look like:

C:\Program Files\sigrok\sigrok-cli>sigrok-cli.exe -d saleae-logic16 --samples 100 -l 5
sr: [00:00.000000] log: libsigrok loglevel set to 5.
sr: [00:00.005000] backend: libsigrok 0.6.0-git-1c5d590/4:0:0.
sr: [00:00.006000] backend: Libs: glib 2.44.1 (rt: 2.44.1/4401:1), libzip 1.5.2, libserialport 0.1.1/1:0:1 (rt: 0.1.1/1:0:1), libusb-1.0 1.0.20.11003-rc3 API 0x01000104, hidapi 0.8.0-rc1, libftdi 1.4.
sr: [00:00.006000] backend: Host: x86_64-w64-mingw32.static.posix, little-endian.
sr: [00:00.006000] backend: SCPI backends: TCP, serial, USBTMC.
sr: [00:00.007000] backend: Firmware search paths:
sr: [00:00.033000] backend:  - C:\Users\alex\AppData\Local\sigrok-firmware
sr: [00:00.034000] backend:  - C:\ProgramData\sigrok-firmware
sr: [00:00.034000] backend:  - C:\Users\Public\Documents\sigrok-firmware
sr: [00:00.034000] backend:  - C:\Program Files\sigrok\sigrok-cli\share\sigrok-firmware
sr: [00:00.034000] backend:  - C:\Program Files\sigrok\sigrok-cli\share\sigrok-firmware
sr: [00:00.034000] backend: Sanity-checking all drivers.
sr: [00:00.035000] backend: Sanity-checking all input modules.
sr: [00:00.035000] backend: Sanity-checking all output modules.
sr: [00:00.035000] backend: Sanity-checking all transform modules.
srd: libsigrokdecode loglevel set to 5.
sr: [00:00.193000] ezusb: uploading firmware to device on 4.27
sr: [00:00.193000] ezusb: setting CPU reset mode on...
sr: [00:00.195000] resource: Opened 'C:\Users\alex\AppData\Local\sigrok-firmware\saleae-logic16-fx2.fw'.
sr: [00:00.197000] ezusb: Uploading firmware 'saleae-logic16-fx2.fw'.
sr: [00:00.200000] ezusb: Uploaded 4096 bytes.
sr: [00:00.200000] ezusb: Uploaded 1121 bytes.
sr: [00:00.200000] ezusb: Firmware upload done.
sr: [00:00.200000] ezusb: setting CPU reset mode off...
sr: [00:00.202000] hwdriver: Scan found 1 devices (saleae-logic16).
sr: [00:00.202000] device: saleae-logic16: Opening device instance.
sr: [00:00.202000] saleae-logic16: Waiting for device to reset.
sr: [00:00.778000] saleae-logic16: Waited 576ms.
sr: [00:00.950000] saleae-logic16: Waited 748ms.
sr: [00:01.199000] saleae-logic16: Waited 997ms.
sr: [00:01.324000] saleae-logic16: Waited 1122ms.
sr: [00:01.586000] saleae-logic16: Waited 1384ms.
sr: [00:01.712000] saleae-logic16: Waited 1510ms.
sr: [00:01.838000] saleae-logic16: Waited 1636ms.
sr: [00:02.091000] saleae-logic16: Waited 1889ms.
sr: [00:02.116000] saleae-logic16: Original Saleae Logic16 detected.
sr: [00:02.116000] saleae-logic16: Uploading FPGA bitstream 'saleae-logic16-fpga-18.bitstream'.
sr: [00:02.117000] resource: Opened 'C:\Users\alex\AppData\Local\sigrok-firmware\saleae-logic16-fpga-18.bitstream'.
sr: [00:05.568000] saleae-logic16: FPGA bitstream upload (149516 bytes) done.
sr: [00:05.569000] saleae-logic16: Original Saleae Logic16 using new bitstream.
sr: [00:05.585000] saleae-logic16: Opened device on 4.3 (logical) / usb/4-8 (physical), interface 0.
sr: [00:05.586000] saleae-logic16: Device came back after 1889ms.
sr: [00:05.586000] hwdriver: sr_config_set(): key 50001 (limit_samples) sdi 0000000001AE1FF0 cg NULL -> uint64 100
sr: [00:05.587000] session: Using thread-default main context.
sr: [00:05.587000] session: Starting.
sr: [00:05.587000] hwdriver: saleae-logic16: Starting acquisition.
sr: [00:05.601000] session: bus: Received SR_DF_HEADER packet.
cli: Received SR_DF_HEADER.
sr: [00:05.607000] hwdriver: sr_config_get(): key 30000 (samplerate) sdi 0000000001AE1FF0 cg NULL -> uint64 500000
sr: [00:05.619000] saleae-logic16: receive_transfer(): status LIBUSB_SUCCESS / LIBUSB_TRANSFER_COMPLETED received 10240 bytes.
sr: [00:05.622000] session: bus: Received SR_DF_LOGIC packet (200 bytes, unitsize = 2).
cli: Received SR_DF_LOGIC (200 bytes, unitsize = 2).
sr: [00:05.627000] hwdriver: sr_config_get(): key 30000 (samplerate) sdi 0000000001AE1FF0 cg NULL -> uint64 500000
libsigrok 0.6.0-git-1c5d590
Acquisition with 16/16 channels at 500 kHz
0:00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
1:00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
2:00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
3:00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
4:00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
5:00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
6:00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
7:00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
8:00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
9:00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
10:00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
11:00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
12:00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
13:00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
14:00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
15:00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
sr: [00:05.633000] session: bus: Received SR_DF_END packet.
0:00000000 00000000 00000000 00000000 0000
1:00000000 00000000 00000000 00000000 0000
2:00000000 00000000 00000000 00000000 0000
3:00000000 00000000 00000000 00000000 0000
4:00000000 00000000 00000000 00000000 0000
5:00000000 00000000 00000000 00000000 0000
6:00000000 00000000 00000000 00000000 0000
7:00000000 00000000 00000000 00000000 0000
8:00000000 00000000 00000000 00000000 0000
9:00000000 00000000 00000000 00000000 0000
10:00000000 00000000 00000000 00000000 0000
11:00000000 00000000 00000000 00000000 0000
12:00000000 00000000 00000000 00000000 0000
13:00000000 00000000 00000000 00000000 0000
14:00000000 00000000 00000000 00000000 0000
15:00000000 00000000 00000000 00000000 0000
cli: Received SR_DF_END.
sr: [00:05.646000] usb: usb_source_finalize
sr: [00:05.646000] session: Stopped.
sr: [00:05.646000] hwdriver: Cleaning up all drivers.
sr: [00:05.647000] saleae-logic16: Closing device on 4.3 (logical) / usb/4-8 (physical) interface 0.

In case of error

depends ...