]> sigrok.org Git - libsigrok.git/blobdiff - README.devices
ipdbg-la: Make some functions static.
[libsigrok.git] / README.devices
index 290357f5da227cb16223ce05768246995e02a93b..a64c587f941cbc12e6b00d21cc0355c33f2beea5 100644 (file)
@@ -10,11 +10,15 @@ Firmware
 --------
 
 Some devices supported by libsigrok need a firmware to be uploaded every time
-the device is connected to the PC (usually via USB), before it can be used. 
+the device is connected to the PC (usually via USB), before it can be used.
 
-The default location where libsigrok expects the firmware files is:
+The default locations where libsigrok expects the firmware files are:
 
+  $SIGROK_FIRMWARE_DIR (environment variable)
+  $HOME/.local/share/sigrok-firmware
   $prefix/share/sigrok-firmware
+  /usr/local/share/sigrok-firmware
+  /usr/share/sigrok-firmware
 
 ($prefix is usually /usr/local or /usr, depending on your ./configure options)
 
@@ -35,30 +39,90 @@ The following drivers/devices require a firmware upload upon connection:
 
  - fx2lafw: Logic analyzers based on the Cypress FX2(LP) chip need the
    firmware files from the 'sigrok-firmware-fx2lafw' repository/project.
-   The firmware is written from scratch and licensed under the GPLv2+.
+   The firmware is written from scratch and licensed under the GNU GPLv2+.
+
+ - hantek-6xxx: Certain oscilloscopes based on the Cypress FX2(LP) chip, such
+   as the Hantek 6022BE/6022BL, SainSmart DDS120, and Rocktech BM102, need the
+   firmware files from the 'sigrok-firmware-fx2lafw' repository/project.
+   The firmware is written from scratch and licensed under the GNU GPLv2+.
 
  - hantek-dso: The Hantek DSO-2090 (and other supported models of the same
    series of Hantek PC oscilloscopes) need firmware files.
    These can be extracted from the vendor's Windows drivers using a tool
    from our 'sigrok-util' repository/project.
 
+ - lecroy-logicstudio: The LeCroy LogicStudio requires FPGA bitstream files.
+   These can be extracted from the vendor's Windows software using a tool
+   from our 'sigrok-util' repository/project.
+   Additionally, it requires a Cypress FX2 firmware. This can be extracted
+   from the vendor's Windows software using another tool. Details:
+
+     http://sigrok.org/wiki/LeCroy_LogicStudio#Firmware
+
+ - saleae-logic16: The Saleae Logic16 needs a firmware file for the
+   Cypress FX2 chip in the device, as well as two FPGA bitstream files.
+   These can be extracted from the vendor's Linux application using a tool
+   from our 'sigrok-util' repository/project.
+
+ - sysclk-lwla:
+
+    - The Sysclk LWLA1034 requires various bitstream files.
+      These files are available from our 'sigrok-firmware' repository/project
+      under a license which allows us to redistribute them.
+
+    - The Sysclk LWLA1016 requires various bitstream files.
+      These can be extracted from the vendor's Windows drivers using a tool
+      from our 'sigrok-util' repository/project.
+
 The following drivers/devices do not need any firmware upload:
 
  - agilent-dmm
- - alsa
+ - appa-55ii
+ - arachnid-labs-re-load-pro
+ - atten-pps3xxx
+ - baylibre-acme
+ - beaglelogic
+ - brymen-bm86x
  - brymen-dmm
- - chronovu-la8
+ - cem-dt-885x
+ - center-3xx (including all subdrivers)
+ - chronovu-la
  - colead-slm
+ - conrad-digi-35-cpu
  - demo
  - fluke-dmm
+ - ftdi-la
+ - gmc-mh-1x-2x (including all subdrivers)
+ - gwinstek-gds-800
+ - hameg-hmo
+ - hp-3457a
+ - hung-chang-dso-2100
+ - ikalogic-scanalogic2
+ - ikalogic-scanaplus
+ - kecheng-kc-330b
+ - kern-scale
  - lascar-el-usb
- - mic-985xx
+ - link-mso19
+ - manson-hcs-3xxx
+ - maynuo-m97
+ - mic-985xx (including all subdrivers)
+ - motech-lps-30x
+ - norma-dmm
  - openbench-logic-sniffer
- - rigol-ds1xx2
- - serial-dmm
+ - pce-322a
+ - pipistrello-ols
+ - rigol-ds
+ - scpi-pps
+ - serial-dmm (including all subdrivers)
+ - serial-lcr (including all subdrivers)
+ - siglent-sds
+ - teleinfo
+ - testo
  - tondaj-sl-814
- - uni-t-dmm
+ - uni-t-dmm (including all subdrivers)
+ - uni-t-ut32x
  - victor-dmm
+ - yokogawa-dlm
  - zeroplus-logic-cube
 
 
@@ -76,31 +140,80 @@ Example:
 
  $ sigrok-cli --driver <somedriver>:conn=/dev/ttyUSB0 ...
 
-The following drivers/devices require a serial port specification:
+The following drivers/devices require a serial port specification. Some of
+the drivers implement a default for the connection.
 
  - agilent-dmm
+ - appa-55ii
+ - atten-pps3xxx
  - brymen-dmm
+ - cem-dt-885x
+ - center-3xx (including all subdrivers)
  - colead-slm
+ - conrad-digi-35-cpu
  - fluke-dmm
- - mic-985xx
+ - gmc-mh-1x-2x (including all subdrivers)
+ - hameg-hmo
+ - link-mso19
+ - mic-985xx (including all subdrivers)
+ - norma-dmm
  - openbench-logic-sniffer
- - serial-dmm
+ - rigol-ds (for RS232; not required for USBTMC or TCP)
+ - serial-dmm (including all subdrivers)
+ - serial-lcr (including all subdrivers)
+ - teleinfo
  - tondaj-sl-814
 
 The following drivers/devices do not require a serial port specification:
 
- - alsa
  - asix-sigma
- - chronovu-la8
+ - brymen-bm86x
+ - chronovu-la
  - demo
  - fx2lafw
  - hantek-dso
+ - ikalogic-scanalogic2
+ - ikalogic-scanaplus
+ - kecheng-kc-330b
  - lascar-el-usb
- - rigol-ds1xx2
- - uni-t-dmm
+ - pipistrello-ols
+ - rigol-ds (USBTMC or TCP)
+ - saleae-logic16
+ - sysclk-lwla
+ - uni-t-dmm (including all subdrivers)
+ - uni-t-ut32x
  - victor-dmm
+ - yokogawa-dlm (USBTMC or TCP)
  - zeroplus-logic-cube
 
+Beyond strict serial communication over COM ports (e.g. /dev/ttyUSB0), the
+conn= property can also address specific USB devices, as well as specify TCP
+or VXI communication parameters. See these examples:
+
+ $ sigrok-cli --driver <somedriver>:conn=<vid>.<pid> ...
+ $ sigrok-cli --driver <somedriver>:conn=tcp-raw/<ipaddr>/<port> ...
+ $ sigrok-cli --driver <somedriver>:conn=vxi/<ipaddr> ...
+
+The following drivers/devices accept network communication parameters:
+
+ - hameg-hmo
+ - rigol-ds
+ - siglent-sds
+ - yokogawa-dlm
+
+
+Specifying serial port parameters
+---------------------------------
+
+Every serial device's driver has default serial port parameters like baud
+rate, number of data bits, stop bits and handshake status. If a device requires
+different parameters, pass them as option "serialcomm" with the driver name.
+See libsigrok docs for the function serial_set_paramstr() for complete specs.
+
+Example:
+
+ $ sigrok-cli --driver <somedriver>:conn=<someconn>:serialcomm=9600/7n1/dtr=1
+
 
 Permissions of serial port based devices
 ----------------------------------------
@@ -117,33 +230,39 @@ For USB-to-serial based devices, we recommended using our udev rules file
 (see below for details).
 
 
-Permissions for USB devices (udev rules file)
----------------------------------------------
+Permissions for USB devices (udev rules files)
+----------------------------------------------
 
 When using USB-based devices supported by libsigrok, the user running the
 libsigrok frontend (e.g. sigrok-cli) has to have (read/write) permissions
 for the respective USB device.
 
-On Linux, this is accomplished using either 'chmod' (not recommended) or
-using the udev rules file shipped with libsigrok (recommended).
+On Linux, this is accomplished using udev rules. libsigrok ships a rules
+file containing all supported devices which can be detected reliably
+(generic USB-to-serial converters are omitted, as these are used for a wide
+range of devices, e.g. GPS receivers, which are not handled by libsigrok).
 
-The file is available in contrib/z60_libsigrok.rules. It contains entries
-for all libsigrok-supported (USB-based) devices and changes their group
-to 'plugdev' and the permissions to '664'.
+The file is available in contrib/60-libsigrok.rules. This file just contains
+the list of devices and flags these devices with ID_SIGROK="1". Access is
+granted by the 61-libsigrok-plugdev.rules or 61-libsigrok-uaccess.rules files,
+allowing access to members of the plugdev group or to currently logged in
+users, respectively.
 
 When using a libsigrok package from your favorite Linux distribution, the
-packager will have already taken care of properly installing the udev file
-in the correct (distro-specific) place, and you don't have to do anything.
-The packager might also have adapted 'plugdev' and '664' as needed.
+files should already be installed in /usr/lib/udev/rules.d/, i.e.
+60-libsigrok.rules and one of the access granting rules files. Use of
+61-libsigrok-uaccess.rules is encouraged on systemd distributions.
+
+The access policy can be locally overridden by placing appropriate rules in
+/etc/udev/rules.d/, disabling or ammending the default policy. See the
+udev documentation, e.g. man 7 udev, for details.
 
 If you're building from source, you need to copy the file to the place
-where your distro expects such files. This is beyond the scope of this README,
-but generally the location could be e.g. /etc/udev/rules.d, or maybe
-/lib/udev/rules.d, or something else. Afterwards you might have to restart
-udev, e.g. via '/etc/init.d/udev restart' or similar, and you'll have to
-re-attach your device via USB.
+where udev will read these rules. Local rules should go to /etc/udev/rules.d.
+Keep the file naming, otherwise interaction between the libsigrok rules and
+rules shipped by the system will be broken.
 
-Please consult the udev docs of your distro for details.
+Please consult the udev docs for details.
 
 
 Cypress FX2 based devices
@@ -194,6 +313,10 @@ When using any of the UT-D04 USB/HID cables you have to use the respective
 driver _without_ the '-ser' drivername suffix (internally all of these models
 are handled by the 'uni-t-dmm' driver).
 
+You also need to specify the USB vendor/device IDs of the cable.
+Autodetection is not possible here, since various other products use the
+USB VID/PID of those cables too, and there is no way to distinguish them.
+
 Since the UT-D04 cables are USB based (but don't use a USB-to-serial chip)
 there is no need to specify a serial port via 'conn', of course.
 However, the user running the frontend does also need to have permissions
@@ -201,8 +324,8 @@ to access the respective USB device (see above).
 
 Examples (sigrok-cli):
 
- $ sigrok-cli --driver uni-t-ut61e ...
- $ sigrok-cli --driver voltcraft-vc820 ...
+ $ sigrok-cli --driver uni-t-ut61e:conn=1a86.e008 ...
+ $ sigrok-cli --driver voltcraft-vc820:conn=04fa.2490 ...
 
 
 UNI-T UT-D04 cable issue on Linux
@@ -236,54 +359,64 @@ unless a certain action has been performed by the user beforehand. This is
 usually mentioned in the vendor manual of the respective device, but here's
 a short list for convenience:
 
+ - BBC Goertz Metrawatt M2110: Briefly press the "Start/Reset" button on the
+   interface panel on top.
  - Digitek DT4000ZC: Briefly press the "RS232" button.
+ - Gossen Metrawatt Metrahit 1x/2x devices, driver gmc-mh-1x-2x-rs232:
+   - Power on the device with the "DATA" button pressed.
+   - Metrahit 2x devices must be configured for the respective interface type.
+ - Gossen Metrawatt Metrahit 2x devices, driver gmc-mh-2x-bd232:
+   - 'BD232' interface:
+      The multimeter must be configured for the respective interface type.
+   - 'SI232-II' interface ("PC Mode"):
+      The multimeter must be configured for interface type 'BD232' (all),
+      'SI232 online' (28-29S) or 'SI232 store' (22-26x). The interface must
+      be configured to the same baud rate as the host (default 9600).
+      Multimeter and interface must be configured to the same address.
+ - Metrix MX56C: Press the PRINT button to have the meter send acquisition
+   data via IR. Hold the PRINT button to adjust the meter's transmission
+   interval.
+ - Norma DM950: If the interface doesn't work (e.g. USB-RS232 converter), power
+   on the device with "FUNC" pressed (to power the interface from the DMM).
  - PCE PCE-DM32: Briefly press the "RS232" button.
  - RadioShack 22-812: Press and hold "SELECT" and "RANGE" together.
  - TekPower TP4000ZC: Briefly press the "RS232" button.
- - UNI-T UT61D: Press the "REL/RS232/USB" button for roughly 1 second.
- - V&A VA18B: Keep the "Hz/DUTY" key pressed while powering on the device.
- - Victor 70C: Press the "REL/RS232" button for roughly 1 second.
- - Victor 86C: Press the "REL/RS232" button for roughly 1 second.
-
-
-ALSA driver
------------
-
-The 'alsa' driver can be used to sample analog data using a PC's soundcard.
-I.e. the sound card can act as a simple oscilloscope (with some limitations)
-using commercial or DIY "sound card scope probe" cables.
-
-Since ALSA is a Linux-specific sound system, this driver will inherently
-only compile and work on Linux.
-
-We might write additional drivers to make a similar functionality available
-on other OSes at some point.
-
-
-ChronoVu LA8 USB VID/PIDs
--------------------------
-
-The ChronoVu LA8 logic analyzer is available in two revisions. Previously,
-the LA8 shipped with a USB VID/PID of 0403:6001, which is the standard ID
+ - Tenma 72-7750: Briefly press the "RS232C" button.
+ - UNI-T UT60G: Briefly press the "RS232C" button.
+ - UNI-T UT61B/C/D: Press the "REL/RS232/USB" button for roughly 1 second.
+ - UNI-T UT71x: Press the "SEND/-/MAXMIN" button for roughly 1 second.
+   Briefly pressing the "EXIT" button leaves this mode again.
+ - UNI-T UT325: Briefly press the "SEND" button (as per manual). However, it
+   appears that in practice you don't have to press the button (at least on
+   some versions of the device), simply connect the device via USB.
+ - V&A VA18B/VA40B: Keep the "Hz/DUTY" key pressed while powering on the DMM.
+ - Victor 70C/86C: Press the "REL/RS232" button for roughly 1 second.
+ - Voltcraft VC-830: Press the "REL/PC" button for roughly 2 seconds.
+ - Voltcraft VC-870: Press the "REL/PC" button for roughly 1 second.
+
+
+ChronoVu LA8/LA16 USB VID/PIDs
+------------------------------
+
+The ChronoVu LA8/LA16 logic analyzer is available in two revisions. Previously,
+the device shipped with a USB VID/PID of 0403:6001, which is the standard ID
 for FTDI FT232 USB chips.
 
-Since this made it hard to distinguish the LA8 from any other device
+Since this made it hard to distinguish the LA8/LA16 from any other device
 with this FTDI chip connected to the PC, the vendor later shipped the
-LA8 with a USB VID/PID of 0403:8867.
+device with a USB VID/PID of 0403:8867.
 
-The 'chronovu-la8' driver in libsigrok supports both VID/PID pairs and
-automatically finds devices with either VID/PID pair. However, currently
-the driver will assume any device with VID/PID 0403:6001 is a ChronoVu LA8.
+The 'chronovu-la' driver in libsigrok supports both VID/PID pairs and
+automatically finds devices with either VID/PID pair.
 
 
 OLS
 ---
 
-The Dangerous Prototypes Openbench Logic Sniffer (OLS) logic analyzer is
-supported by the 'ols' driver in libsigrok. This driver assumes a somewhat
-recent firmware has been flashed onto the OLS (it doesn't need a firmware
-upload every time it's attached via USB, since the firmware is stored in the
-device permanently).
+The Dangerous Prototypes Openbench Logic Sniffer (OLS) logic analyzer
+driver in libsigrok assumes a somewhat recent firmware has been flashed onto
+the OLS (it doesn't need a firmware upload every time it's attached via USB,
+since the firmware is stored in the device permanently).
 
 The most recent firmware version that is tested is 3.07.
 
@@ -301,21 +434,3 @@ Example:
 
  $ sigrok-cli --driver ols:conn=/dev/ttyACM0 ...
 
-
-Rigol DS1xx2 oscilloscopes
---------------------------
-
-The 'rigol-ds1xx2' driver (for the Rigol DS1052E and some other, similar DSOs)
-currently uses the Linux usbtmc kernel driver. This means it can currently
-only be built and used on Linux (i.e., it's non-portable).
-
-The use of a kernel module also means it is dependent on the kernel version
-used, as well as on whether this specific module is available in the kernel.
-Additionally, the usbtmc kernel module has been known to have various bugs
-in some versions. These are some (but not all) drawbacks of using a kernel
-module as opposed to a libusb-based driver that works in user-space.
-
-We plan to change the driver to use the 'librevisa' user-space shared
-library (which uses libusb) soon, which will fix all these issues and make
-the driver portable at the same time.
-