Skip to content

Instantly share code, notes, and snippets.

@milesfrain
Last active October 15, 2024 03:30
Show Gist options
  • Save milesfrain/f7687b38ff693f42b3f7cccca03c6bcb to your computer and use it in GitHub Desktop.
Save milesfrain/f7687b38ff693f42b3f7cccca03c6bcb to your computer and use it in GitHub Desktop.
Logic Analyzer Instructions

Hardware:

Cheapo $5

Search “USB Logic Analyzer 24MHz 8 Channel” on aliexpress.com

Expensive $150

DSLogic Plus 400 MHz 16 channel https://www.dreamsourcelab.com/product/dslogic-series/

Note there are some additional software setup steps required to install the non-distributable FW for this model. See later section.

Faster (non-streaming) sampling rate than the $1500 100 MHz 16 Ch Saleae https://usd.saleae.com/products/saleae-logic-pro-16

Nice hooks (worth it!):

E-Z-Hooks $30 for set of 10

https://www.digikey.com/en/products/detail/e-z-hook/XKM-S/528233

Software

Download pulseview (and optional sigrok-cli): https://sigrok.org/wiki/Downloads

udev rules (linux)

mkdir -p /tmp/sigrok-rules/

wget -O /tmp/sigrok-rules/60-libsigrok.rules "https://sigrok.org/gitweb/?p=libsigrok.git;a=blob_plain;f=contrib/60-libsigrok.rules"
wget -O /tmp/sigrok-rules/61-libsigrok-plugdev.rules "https://sigrok.org/gitweb/?p=libsigrok.git;a=blob_plain;f=contrib/61-libsigrok-plugdev.rules"
wget -O /tmp/sigrok-rules/61-libsigrok-uaccess.rules "https://sigrok.org/gitweb/?p=libsigrok.git;a=blob_plain;f=contrib/61-libsigrok-uaccess.rules"

sudo mv /tmp/sigrok-rules/*.rules /etc/udev/rules.d/
sudo udevadm control --reload-rules

# May need to unplug/replug

Additional steps for DSLogic setup

wget 'https://sigrok.org/gitweb/?p=sigrok-util.git;a=blob_plain;f=firmware/dreamsourcelab-dslogic/sigrok-fwextract-dreamsourcelab-dslogic' -O sigrok-fwextract-dreamsourcelab-dslogic
chmod u+x sigrok-fwextract-dreamsourcelab-dslogic
PREFIX=$HOME/.local ./sigrok-fwextract-dreamsourcelab-dslogic

Verify install:

./sigrok-cli-NIGHTLY-x86_64.AppImage --scan

expected output:

The following devices were found:
demo - Demo device with 13 channels: D0 D1 D2 D3 D4 D5 D6 D7 A0 A1 A2 A3 A4
dreamsourcelab-dslogic:conn=3.11 - DreamSourceLab DSLogic Plus with 16 channels: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

References:

GUI

https://sigrok.org/doc/pulseview/unstable/manual.html

Cheapo

todo screenshot - select driver - fx2lafw https://sigrok.org/wiki/VKTECH_saleae_clone

DSLogic

Select DSLogic Plus from drop down

CLI

The command line interface is pretty sweet https://sigrok.org/wiki/Sigrok-cli

Examples

SPI

Here’s an example script for capturing and decoding SPI transfers: (I’ll add some more documentation about this in the future)

#!/usr/bin/env sh

set -ex

app="$HOME/Downloads/sigrok-cli-NIGHTLY-x86_64.AppImage"
file="$HOME/spi-cli.sr"

rm -f $file

$app -d fx2lafw --samples 100k -C D2=mosi,D3=cs,D4=clk \
  --config samplerate=24m:captureratio=13 -t clk=e -o $file -l 4

ls $file

$app -i $file -P spi:cpol=1:clk=clk:mosi=mosi:cs=cs -A spi=mosi-data:mosi-transfers
I2C:
$app -P i2c --show

$app -i $file -P i2c:scl=scl:sda=sda -A i2c=ack:nack:address-read:address-write:data-read:data-write:addr-data

Additional tips

You can write custom decoders for both cli and gui tools. https://sigrok.org/wiki/Protocol_decoder_HOWTO

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment