From sigrok
Jump to navigation Jump to search

General sigrok questions

What is sigrok?

sigrok is a portable, cross-platform, Free/Libre/Open-Source signal analysis software suite that supports various device types:

It is licensed under the terms of the GNU GPL.

What does the name sigrok mean?

sigrok is a software suite that groks signals for you.

What is the correct spelling of the name?

The name is spelled sigrok (yes, a lower-case "s", even at the beginning of sentences). It is not spelled "sigrock" or "SigRock" or "Sigrock" or "Sigrok".

What is the official sigrok logo and where can I get it?

See the Logo wiki page for PNG and SVG versions of the sigrok logo, which is intended for things developed by the sigrok project.

If you want to advertise that your product can be used with sigrok, we have a specific "works with sigrok" logo that you can use (as long as you follow certain rules).

The logo was created by Benjamin "wooz" Bois (thanks!) and is licensed under the CC-BY-SA 3.0 license.

Is my measurement device supported?

Check the Supported hardware page for a list of supported devices, and those that are currently being worked on. Also, each device has its own wiki page, which lists the details of the hardware support for the respective device.

Will you add support for my measurement device?

Maybe. We generally try to support as much hardware as possible. However, as there are really many, many, many, many, many, many devices out there, this is of course a non-trivial task. We only have limited spare time. Thus, naturally, we're happy about any code contributions for yet unsupported devices!

Note: We generally do not take requests for adding specific hardware support. We already have a huge list of hardware that we plan to support eventually, and there are only a limited amount of developers and a limited amount of time in a day. Telling us "please add support for device XYZ" is not necessary (since we already want to support all devices out there). If you want to see your specific device supported, the best method is to figure out the protocol and add the respective libsigrok driver yourself. We're happy to help with any API or protocol questions, please join us on IRC for that (#sigrok@libera.chat).

Do you build/sell/design logic analyzers?

No. The sigrok project is a pure (open-source) software project. We're not designing, building, or selling hardware. We only add software support for already existing hardware.

Which device do you recommend buying?

We generally don't make any buying recommendations. There are many devices from different companies, with highly different capabilities and features out there, in price ranges from $60 up to $5000 or more. It all depends on your specific needs and preferences, and on the amount of money you are willing to spend.

However, as a small starting point for your own research in order to find a device which fits your need, we provide comparison tables for logic analyzers, mixed-signal devices, oscilloscopes, multimeter, dataloggers, and GPIB interfaces, which list some (but not all) relevant data points which you may want to compare.

Logic analyzer questions

What is a logic analyzer?

An 8-channel logic analyzer

A logic analyzer is a device which can display and/or analyze the state of one or more signals of a circuit or target device. For a quick introduction see also the respective Wikipedia page, but make sure to read some of the documents from this entry for more details.

Where can I learn more about logic analyzers?

Here is a list of recommended readings on various topics related to logic analyzers.

Note: Some of the Agilent/Tektronix documents are geared towards higher-end/expensive standalone logic analyzers, i.e. not the usual USB-based ones supported by sigrok. Thus, some of the information in those documents may not necessarily be relevant or important for most people. They do also provide lots of generally useful information, though, so reading them is recommended.

Introduction to logic analyzers:

Samplerate, bandwidth, timing issues:

Comparing or buying logic analyzers:


Probing issues:


What kind of logic analyzer probes are available?

Small probe collection.

There are many logic analyzer probes of varying quality and price on the market (see photo for a small subset).

See Probe comparison for more information about the usefulness and quality of various probe types, where to buy them, and so on.

Multimeter questions

What is a multimeter?

A digital multimeter

A multimeter or digital multimeter (DMM) or Volt-Ohm meter (VOM) is a measurement device which can measure multiple things (such as voltage, current, resistance, temperature, and others). We won't go into all the details here, see the multimeter page on Wikipedia for more information.

Where can I learn more about multimeters?

Here's a small selection of good video tutorials on multimeters:

Some information about multimeter safety and the IEC61010 categories:

Other external sources of information:

  • eevblog multimeter spreadsheet An extensive list of multimeters which is maintained by an eevblog forum member. Also has many more external links on multimeter operation and safety.


Getting a usable lsusb for USB HID devices

Sometimes you might see output like this in an lsusb of a USB HID device:

Report Descriptors:

In order to get HID descriptor output in lsusb on Linux you need to perform one of the steps descibed below:

Option 1 (recommended): For each HID device, also a hidraw device is registered. The corresponding sysfs entry also contains a report descriptor:

hexdump /sys/bus/usb/drivers/usbhid/1-1\:1.0/0003\:1A86\:E008.0008/report_descriptor

A more readable representation can be generated using the USB Descriptor and Request Parser

Option 2:

Just unbind a specific driver instance. This will leave all other USB HID devices on your system in a working state.


$ ls /sys/bus/usb/drivers/usbhid
3-2:1.0  4-3:1.4  5-3:1.0  bind  module  new_id  uevent  unbind

$ echo 5-3:1.0 > /sys/bus/usb/drivers/usbhid/unbind

(you'll have to find out which number refers to your device using e.g. lsusb and checking the contents of the /sys/bus/usb/drivers/usbhid directory; in this case it is 5-3:1.0)

Option 3 (easier, but will disable all USB HID devices):

You can run rmmod usbhid. However, this will disable all USB HID devices, including your USB keyboard/mouse! Do this only if you are sure you can recover from this again (i.e. run modprobe usbhid) afterwards. This can be achieved by logging in via ssh or a serial console, or by using a PS/2-attached keyboard instead of a USB-attached keyboard.