Logic Sniffer quick start guide

From DP

Jump to: navigation , search

Contents

Windows

Hardware installation

OLS-found 001.png

  • Connect the Logic Sniffer to a USB port
  • The first time you plug it in, give Windows the .inf file from a firmware archive to assign the correct drivers.

Software installation

Download and install a logic analyzer client.

Linux

Hardware installation

Ideally, you should be able to simply plug in the OLS to a USB port and start capturing data with the OLS client, but the client software can't automatically find the OLS hardware under Linux, so you'll need to locate it manually (alternatively, you can skip this step and instead create a persistent link to it once and for all, see below):

  • Plug in your OLS to a USB port.
  • Check the /dev directory for a file named something like "ttyACM0" or "ttyACM1" (the number at the end may vary). This is your OLS port. Take note of the port name.

If you manually configured your kernel, and no ttyACM* appears in /dev when you connect the device, check if CONFIG_USB_ACM is enabled in your kernel config (Device Drivers -> USB Support -> USB Modem (CDC ACM) support).

You can also create a persistent link to your OLS. This is particularly helpful if you're using another device that connects to a ttyACMX-ports such as a USB modem or a printer.

  • Open the terminal and open a text editor in super user mode.
sudo gedit
  • Paste the following into the file:
#File /etc/udev/rules.d/ols.rules
#Rules for Openbench Logix Snifferslogic. Creates a nice link to the ols
ATTRS{idVendor}=="04d8", ATTRS{idProduct}=="fc92", MODE="0666", SYMLINK+="OpenLogicSniffer"
  • Save the file as /etc/udev/rules.d/ols.rules and exit the text editor.
  • Load the new udev rule by restarting udev (not needed on recent udev):
sudo restart udev
  • Unplug and replug your OLS and look at /dev to confirm that there is a port called OpenLogicSniffer. /dev/OpenLogicSniffer is now your OLS path.

If you've problems with modem-manager trying to access the device (as seen in /var/log/syslog), you can add the following rule:

ATTRS{idVendor}=="04d8", ATTRS{idProduct}=="fc92", ENV{ID_MM_DEVICE_IGNORE}="1"

Software installation

There are several software clients that can work with the OLS. Your best bet is probably the latest version of the Logic Sniffer client. The only prerequisite for Logic Sniffer is Java 1.6, which is typically installed when you install Ubuntu.

  • Get a copy of Logic Sniffer and untar it.
  • Open a terminal and cd into the directory that you just untared. Make the run script executable and run it:
chmod +x run.sh
./run.sh
  • Make sure that the Device is set to "OpenBench Logic Sniffer".
  • Click the capture button and type in your OLS port path in the "Analyzer port" field (i.e. /dev/ttyACM0 or /dev/OpenLogicSniffer). Leave the other settings at their default value for now and click "Capture".

Troubleshooting the client

Earlier versions of the SUMP client had a bug that made it unable to find your OLS. This is solved in 0.9.0. If for some reason you need to use 0.8.5 or earlier, you might need to change the run.sh script to define the serial port of the device. This workaround may help:

  • Close the client and edit the run.sh script with a text editor. Change the last line to:
java -Dnl.lxtreme.ols.bundle.dir="$PLUGINDIR" -cp "$CLASSPATH" -Dgnu.io.rxtx.SerialPorts="/dev/ttyACM0" nl.lxtreme.ols.runner.Runner
  • You need to replace "ttyACM0" with the port name that you found when you plugged in your OLS.
  • Start the client and try again.

If the client becomes unable to find your OLS after you've replugged it the reason may simply be that the OLS has attached itself to a different port name (for example /dev/ttyACM1 instead of /dev/ttyACM0). You can create a persistent link to the OLS. See Hardware installation above.

Example

You can change the sole line in run.sh to this:

java -Dnl.lxtreme.ols.bundle.dir=plugins/ -cp "bin/*" -Dgnu.io.rxtx.SerialPorts="/dev/OpenLogicSniffer" nl.lxtreme.ols.runner.Runner

For me, on 32-bit Ubuntu, my device shows up as /dev/ttyACM0, so my run.sh script now looks like:

#!/bin/sh
java -Dnl.lxtreme.ols.bundle.dir=plugins/ -cp "bin/*" -Dgnu.io.rxtx.SerialPorts="/dev/ttyACM0" nl.lxtreme.ols.runner.Runner

Hope this helps someone avoid spending an afternoon chasing loose ends trying to get this thing working on Linux!

From here and here.

Mac

Hardware

Plug it into the usb port. Macs do not require drivers at the OS level to access usb devices.

Software

For the once alternative application, but now generally preferred application. Go to its website http://www.lxtreme.nl/ols select the download link on the site. Then select the dmg link which is the image you want. This auto unpacks in your download directory to LogicSniffer.app which you should copy to where you want to keep it. Typically this is /Applications but you can do whatever you want. Clicking on the app opens it like it opens anyother application. The device will normally appear in /dev as /dev/tty.usbmodem* The ending portion is a function of whether there is a hub installed or not. The default seems to be /dev/tty.usbmodem411, but using a different port or hub can change that. When you plug in the device the OS will report if found a new networking device and ask you if you ant to configure it. Cancel that box.

If it does not start you probably have a conflicting version of RXTXcomm.jar or its native library on your system which is interfering. See the discussion below. You will need to remove these so it will work.

SUMP

Find a copy of RXTXcomm.jar and the associated library with the native code. Unfortunately there is no standard Mac distrabution that works perfectly. I have tried 20+ version plus tried to fix the source several times. At best I find that is only crashes occasionally disconnect or device close. (Kernel panic reboot type crash.) The latest source code for the 2.2 pre-release has a int/point bug that stops it from compiling. ( A 32bit int is not a pointer, and pointers are not 32bit ints bug in it that will not compile. Fixing this is not enough as it clearly has some other cast of this nature that are of the same sort an broken. I have looked thought I found it, fixed it, but pow a few days or hours later the system crashes.) This is on 10.6.5 aka Snow Leopard. On earlier releases the kernel was not 64 bit and those work. Maybe someone else can make a better suggestion on where to find a better version. I have tried many, and all fail on occasion with this same problem. (Including the version shipped with LogicSniffer and Arduino, all though those are fairly stable. For non mac users a system crash is normally unheard of on a Mac, blue screens are very rare, but this code can do it.) Note that the RXTXComm.jar must be on the classpath for sump to work. The native lib that goes with it must be either on the PATH of the execution environment or on the LDPATH setup. For the newer client LogicSniffer.app you must not have a version installed in system directories or it may fail to startup. It comes with the version it wants to use. (As does the Arduino.app and any other well packaged application. The problem is that the sump distro did not have it properly packaged in it. So if you wimp out and install RXTXComm.jar and its native lib in system directories as some suggest you may well lose with other apps that package their own copy. Because there are two different files and paths involved you can get it wrong twice.)


For SUMP download same version as linux uses. Modify startup script to tell java to run in 32 bit mode "-d32", and add the rxtx stuff to the appropriate paths.