]> sigrok.org Git - libsigrok.git/blame - README.devices
doc: update README for serial over Bluetooth
[libsigrok.git] / README.devices
CommitLineData
c77ed446
UH
1-------------------------------------------------------------------------------
2README.devices
3-------------------------------------------------------------------------------
4
5This README contains various notes for users of libsigrok (or frontends
6that are based on libsigrok) about device- and/or driver-specific issues.
7
8
9Firmware
10--------
11
12Some devices supported by libsigrok need a firmware to be uploaded every time
fadd0707 13the device is connected to the PC (usually via USB), before it can be used.
c77ed446 14
796f0e98 15The default locations where libsigrok expects the firmware files are:
c77ed446 16
1503d457 17 $SIGROK_FIRMWARE_DIR (environment variable)
796f0e98 18 $HOME/.local/share/sigrok-firmware
c77ed446 19 $prefix/share/sigrok-firmware
796f0e98
UH
20 /usr/local/share/sigrok-firmware
21 /usr/share/sigrok-firmware
c77ed446
UH
22
23($prefix is usually /usr/local or /usr, depending on your ./configure options)
24
25For further information see the section below and also:
26
27 http://sigrok.org/wiki/Firmware
28
29
30Per-driver firmware requirements
31--------------------------------
32
33The following drivers/devices require a firmware upload upon connection:
34
35 - asix-sigma: The ASIX SIGMA and SIGMA2 require various firmware files,
36 depending on the settings used. These files are available from our
37 'sigrok-firmware' repository/project under a license which allows us
38 to redistribute them.
39
40 - fx2lafw: Logic analyzers based on the Cypress FX2(LP) chip need the
41 firmware files from the 'sigrok-firmware-fx2lafw' repository/project.
e311f770 42 The firmware is written from scratch and licensed under the GNU GPLv2+.
c77ed446 43
1d82f9ad
UH
44 - hantek-6xxx: Certain oscilloscopes based on the Cypress FX2(LP) chip, such
45 as the Hantek 6022BE/6022BL, SainSmart DDS120, and Rocktech BM102, need the
796f0e98
UH
46 firmware files from the 'sigrok-firmware-fx2lafw' repository/project.
47 The firmware is written from scratch and licensed under the GNU GPLv2+.
48
c77ed446
UH
49 - hantek-dso: The Hantek DSO-2090 (and other supported models of the same
50 series of Hantek PC oscilloscopes) need firmware files.
51 These can be extracted from the vendor's Windows drivers using a tool
52 from our 'sigrok-util' repository/project.
53
796f0e98
UH
54 - lecroy-logicstudio: The LeCroy LogicStudio requires FPGA bitstream files.
55 These can be extracted from the vendor's Windows software using a tool
56 from our 'sigrok-util' repository/project.
57 Additionally, it requires a Cypress FX2 firmware. This can be extracted
58 from the vendor's Windows software using another tool. Details:
59
60 http://sigrok.org/wiki/LeCroy_LogicStudio#Firmware
61
1b142b78
UH
62 - saleae-logic16: The Saleae Logic16 needs a firmware file for the
63 Cypress FX2 chip in the device, as well as two FPGA bitstream files.
64 These can be extracted from the vendor's Linux application using a tool
65 from our 'sigrok-util' repository/project.
66
796f0e98
UH
67 - sysclk-lwla:
68
69 - The Sysclk LWLA1034 requires various bitstream files.
70 These files are available from our 'sigrok-firmware' repository/project
71 under a license which allows us to redistribute them.
72
73 - The Sysclk LWLA1016 requires various bitstream files.
74 These can be extracted from the vendor's Windows drivers using a tool
75 from our 'sigrok-util' repository/project.
e311f770 76
c77ed446
UH
77The following drivers/devices do not need any firmware upload:
78
79 - agilent-dmm
1267f128 80 - appa-55ii
796f0e98 81 - arachnid-labs-re-load-pro
e311f770 82 - atten-pps3xxx
796f0e98
UH
83 - baylibre-acme
84 - beaglelogic
ecaa89af 85 - brymen-bm86x
c77ed446 86 - brymen-dmm
45bb47a7 87 - cem-dt-885x
1267f128 88 - center-3xx (including all subdrivers)
7b356712 89 - chronovu-la
c77ed446 90 - colead-slm
e311f770 91 - conrad-digi-35-cpu
c77ed446
UH
92 - demo
93 - fluke-dmm
796f0e98 94 - ftdi-la
e311f770 95 - gmc-mh-1x-2x (including all subdrivers)
796f0e98 96 - gwinstek-gds-800
1267f128 97 - hameg-hmo
796f0e98
UH
98 - hp-3457a
99 - hung-chang-dso-2100
45bb47a7 100 - ikalogic-scanalogic2
6cda4600
UH
101 - ikalogic-scanaplus
102 - kecheng-kc-330b
796f0e98 103 - kern-scale
c77ed446 104 - lascar-el-usb
7ab89f48 105 - link-mso19
796f0e98
UH
106 - manson-hcs-3xxx
107 - maynuo-m97
1267f128 108 - mic-985xx (including all subdrivers)
796f0e98 109 - motech-lps-30x
5fa12e93 110 - norma-dmm
c77ed446 111 - openbench-logic-sniffer
796f0e98 112 - pce-322a
4bd80e12 113 - pipistrello-ols
3086efdd 114 - rigol-ds
796f0e98 115 - scpi-pps
1267f128 116 - serial-dmm (including all subdrivers)
f05903eb 117 - serial-lcr (including all subdrivers)
563c2463 118 - siglent-sds
5fa12e93 119 - teleinfo
796f0e98 120 - testo
c77ed446 121 - tondaj-sl-814
1267f128 122 - uni-t-dmm (including all subdrivers)
1b142b78 123 - uni-t-ut32x
c77ed446 124 - victor-dmm
10763937 125 - yokogawa-dlm
c77ed446
UH
126 - zeroplus-logic-cube
127
128
129Specifying serial ports
130-----------------------
131
132Many devices supported by libsigrok use serial port based cables (real RS232
f736691d
GS
133or USB-to-serial ones, CDC class) to connect to a PC. These serial cables are
134supported by the libserialport library. Some vendors prefer to use HID chips
135instead of CDC chips in their serial cables. These cables can get supported
136by means of the hidapi library. Note that each chip type requires specific
07e42cb2
GS
137support in the libsigrok library. Bluetooth connected devices may be supported
138as well when they communicate by means of RFCOMM channels, or one of the
139implemented BLE notification/indication approaches, and one of the Bluetooth
140supporting platforms is used.
c77ed446
UH
141
142For all these devices, you need to specify the serial port they are connected
143to (e.g. using the 'conn' option in sigrok-cli). It is not possible to scan
144for such devices without specifying a serial port.
145
146Example:
147
148 $ sigrok-cli --driver <somedriver>:conn=/dev/ttyUSB0 ...
f736691d 149 $ sigrok-cli --driver <somedriver>:conn=hid/cp2110 ...
07e42cb2 150 $ sigrok-cli --driver <somedriver>:conn=bt/rfcomm/01-23-45-67-89-ab ...
c77ed446 151
ca25a3ee 152The following drivers/devices require a serial port specification. Some of
de805ae5
GS
153the drivers implement a default for the connection. Some of the drivers
154can auto-detect USB connected devices.
c77ed446
UH
155
156 - agilent-dmm
1267f128 157 - appa-55ii
e311f770 158 - atten-pps3xxx
c77ed446 159 - brymen-dmm
45bb47a7 160 - cem-dt-885x
1267f128 161 - center-3xx (including all subdrivers)
c77ed446 162 - colead-slm
e311f770 163 - conrad-digi-35-cpu
c77ed446 164 - fluke-dmm
e311f770 165 - gmc-mh-1x-2x (including all subdrivers)
1267f128 166 - hameg-hmo
7ab89f48 167 - link-mso19
1267f128 168 - mic-985xx (including all subdrivers)
5fa12e93 169 - norma-dmm
c77ed446 170 - openbench-logic-sniffer
1267f128
UH
171 - rigol-ds (for RS232; not required for USBTMC or TCP)
172 - serial-dmm (including all subdrivers)
f05903eb 173 - serial-lcr (including all subdrivers)
5fa12e93 174 - teleinfo
c77ed446
UH
175 - tondaj-sl-814
176
177The following drivers/devices do not require a serial port specification:
178
c77ed446 179 - asix-sigma
ecaa89af 180 - brymen-bm86x
7b356712 181 - chronovu-la
c77ed446
UH
182 - demo
183 - fx2lafw
184 - hantek-dso
45bb47a7 185 - ikalogic-scanalogic2
6cda4600
UH
186 - ikalogic-scanaplus
187 - kecheng-kc-330b
c77ed446 188 - lascar-el-usb
4bd80e12 189 - pipistrello-ols
1267f128 190 - rigol-ds (USBTMC or TCP)
1b142b78 191 - saleae-logic16
e311f770 192 - sysclk-lwla
1267f128 193 - uni-t-dmm (including all subdrivers)
1b142b78 194 - uni-t-ut32x
c77ed446 195 - victor-dmm
10763937 196 - yokogawa-dlm (USBTMC or TCP)
c77ed446
UH
197 - zeroplus-logic-cube
198
ca25a3ee
GS
199Beyond strict serial communication over COM ports (e.g. /dev/ttyUSB0), the
200conn= property can also address specific USB devices, as well as specify TCP
201or VXI communication parameters. See these examples:
202
203 $ sigrok-cli --driver <somedriver>:conn=<vid>.<pid> ...
204 $ sigrok-cli --driver <somedriver>:conn=tcp-raw/<ipaddr>/<port> ...
205 $ sigrok-cli --driver <somedriver>:conn=vxi/<ipaddr> ...
88c03eae 206 $ sigrok-cli --driver <somedriver>:conn=usbtmc/<bus>.<addr> ...
ca25a3ee
GS
207
208The following drivers/devices accept network communication parameters:
209
210 - hameg-hmo
211 - rigol-ds
de805ae5 212 - scpi-dmm
563c2463 213 - siglent-sds
ca25a3ee
GS
214 - yokogawa-dlm
215
c77ed446 216
f3f19d11
UH
217Specifying serial port parameters
218---------------------------------
48d3238e
MH
219
220Every serial device's driver has default serial port parameters like baud
221rate, number of data bits, stop bits and handshake status. If a device requires
222different parameters, pass them as option "serialcomm" with the driver name.
e311f770 223See libsigrok docs for the function serial_set_paramstr() for complete specs.
48d3238e
MH
224
225Example:
226
227 $ sigrok-cli --driver <somedriver>:conn=<someconn>:serialcomm=9600/7n1/dtr=1
228
229
c77ed446
UH
230Permissions of serial port based devices
231----------------------------------------
232
233When using devices supported by libsigrok that use serial port based cables
234(real RS232 or USB-to-serial ones) to connect to a PC, you need to ensure
235that the user running the libsigrok frontend has (read/write) permissions to
236access the serial port device (e.g. /dev/ttyS0, /dev/ttyUSB0, and so on).
237
238You can use 'chmod' to apply permissions as you see fit, and/or 'chown' to
239change the owner of the serial port device to a certain user or group.
240
241For USB-to-serial based devices, we recommended using our udev rules file
242(see below for details).
243
244
75696630
SB
245Permissions for USB devices (udev rules files)
246----------------------------------------------
c77ed446
UH
247
248When using USB-based devices supported by libsigrok, the user running the
249libsigrok frontend (e.g. sigrok-cli) has to have (read/write) permissions
250for the respective USB device.
251
75696630
SB
252On Linux, this is accomplished using udev rules. libsigrok ships a rules
253file containing all supported devices which can be detected reliably
254(generic USB-to-serial converters are omitted, as these are used for a wide
255range of devices, e.g. GPS receivers, which are not handled by libsigrok).
c77ed446 256
75696630
SB
257The file is available in contrib/60-libsigrok.rules. This file just contains
258the list of devices and flags these devices with ID_SIGROK="1". Access is
259granted by the 61-libsigrok-plugdev.rules or 61-libsigrok-uaccess.rules files,
260allowing access to members of the plugdev group or to currently logged in
261users, respectively.
c77ed446
UH
262
263When using a libsigrok package from your favorite Linux distribution, the
75696630
SB
264files should already be installed in /usr/lib/udev/rules.d/, i.e.
26560-libsigrok.rules and one of the access granting rules files. Use of
26661-libsigrok-uaccess.rules is encouraged on systemd distributions.
267
268The access policy can be locally overridden by placing appropriate rules in
269/etc/udev/rules.d/, disabling or ammending the default policy. See the
270udev documentation, e.g. man 7 udev, for details.
c77ed446
UH
271
272If you're building from source, you need to copy the file to the place
75696630
SB
273where udev will read these rules. Local rules should go to /etc/udev/rules.d.
274Keep the file naming, otherwise interaction between the libsigrok rules and
275rules shipped by the system will be broken.
c77ed446 276
75696630 277Please consult the udev docs for details.
c77ed446
UH
278
279
280Cypress FX2 based devices
281-------------------------
282
283Devices using the Cypress FX2(LP) chip without any specific USB VID/PID will
284be enumerated with VID/PID 04b4:8613 (the default for "unconfigured FX2").
285These are usually "FX2 eval boards" (that can also be used as LAs, though).
286
287On Linux, the 'usbtest' driver will usually grab such devices, and they will
288thus not be usable by libsigrok (and frontends).
289
290You can fix this by running 'rmmod usbtest' as root before using the device.
291
292
293UNI-T DMM (and rebranded models) cables
294---------------------------------------
295
296UNI-T multimeters (and rebranded devices, e.g. some Voltcraft models) can
297ship with different PC connectivity cables:
298
de805ae5 299 - UT-D02 (RS232 cable)
c77ed446
UH
300 - UT-D04 (USB/HID cable with Hoitek HE2325U chip, USB VID/PID 04fa:2490)
301 - UT-D04 (USB/HID cable with WCH CH9325 chip, USB VID/PID 1a86:e008)
07e42cb2 302 - UT-D07 (Bluetooth adapter, ISSC BL79 BLETR chip)
f736691d 303 - UT-D09 (USB/HID cable with SiL CP2110 chip, USB VID/PID 10c4:ea80)
c77ed446
UH
304
305The above cables are all physically compatible (same IR connector shape)
306with all/most currently known UNI-T multimeters. For example, you can
307use either of the UT-D04 USB/HID cables or the UT-D02 RS232 cable with
308the UNI-T UT61D multimeter.
309
310When using the UT-D02 RS232 cable with any of the supported UNI-T DMMs,
311you have to use the respective driver with a '-ser' drivername suffix
312(internally all of these models are handled by the 'serial-dmm' driver).
313
314You also need to specify the serial port via the 'conn' option, e.g.
315/dev/ttyUSB0 (attached via a USB-to-serial cable) or /dev/ttyS0 (actual
316RS232 port) on Linux (see above).
317
318Finally, the user running the frontend (e.g. sigrok-cli) also needs
319permissions to access the respective serial port (see above).
320
321Examples (sigrok-cli):
322
323 $ sigrok-cli --driver uni-t-ut61e-ser:conn=/dev/ttyUSB0 ...
324 $ sigrok-cli --driver voltcraft-vc820-ser:conn=/dev/ttyS0 ...
325
326When using any of the UT-D04 USB/HID cables you have to use the respective
327driver _without_ the '-ser' drivername suffix (internally all of these models
328are handled by the 'uni-t-dmm' driver).
329
9b2f03bb
UH
330You also need to specify the USB vendor/device IDs of the cable.
331Autodetection is not possible here, since various other products use the
332USB VID/PID of those cables too, and there is no way to distinguish them.
333
c77ed446
UH
334Since the UT-D04 cables are USB based (but don't use a USB-to-serial chip)
335there is no need to specify a serial port via 'conn', of course.
336However, the user running the frontend does also need to have permissions
337to access the respective USB device (see above).
338
339Examples (sigrok-cli):
340
9b2f03bb
UH
341 $ sigrok-cli --driver uni-t-ut61e:conn=1a86.e008 ...
342 $ sigrok-cli --driver voltcraft-vc820:conn=04fa.2490 ...
c77ed446
UH
343
344
345UNI-T UT-D04 cable issue on Linux
346---------------------------------
347
348The UNI-T UT-D04 cable with Hoitek HE2325U (or WCH CH9325) chip seems to have
8d3764aa 349a very specific problem on Linux. Apparently it requires to be put into
c77ed446
UH
350suspend (and woken up again) before it is usable. This seems to be a
351Linux-only issue, Windows is not affected by this since apparently the
352Windows kernel does this for every USB device, always.
353
354Thus, if you want to use any of the UNI-T DMMs with this specific cable,
355you'll have to run the following script (as root) once, every time you attach
356the cable via USB. The script was written by Ralf Burger.
357
358See also: http://erste.de/UT61/index.html
359
360 #!/bin/bash
361 for dat in /sys/bus/usb/devices/*; do
362 if test -e $dat/manufacturer; then
363 grep "WCH.CN" $dat/manufacturer > /dev/null && echo auto > ${dat}/power/level && echo 0 > ${dat}/power/autosuspend
364 fi
365 done
366
367
e6b2b4df
UH
368Enabling multimeter / data logger measurement output
369----------------------------------------------------
370
371Some multimeters or data loggers will not start outputting measurement data
372unless a certain action has been performed by the user beforehand. This is
373usually mentioned in the vendor manual of the respective device, but here's
374a short list for convenience:
375
1267f128
UH
376 - BBC Goertz Metrawatt M2110: Briefly press the "Start/Reset" button on the
377 interface panel on top.
de805ae5 378 - Brymen BM257s: Press HOLD during power-on.
e6b2b4df 379 - Digitek DT4000ZC: Briefly press the "RS232" button.
de805ae5 380 - EEVBlog 121GW: Hold "1ms PEAK" until the "BT" indicator is shown.
c90beca7 381 - Gossen Metrawatt Metrahit 1x/2x devices, driver gmc-mh-1x-2x-rs232:
fadd0707
MH
382 - Power on the device with the "DATA" button pressed.
383 - Metrahit 2x devices must be configured for the respective interface type.
c90beca7 384 - Gossen Metrawatt Metrahit 2x devices, driver gmc-mh-2x-bd232:
fadd0707
MH
385 - 'BD232' interface:
386 The multimeter must be configured for the respective interface type.
387 - 'SI232-II' interface ("PC Mode"):
388 The multimeter must be configured for interface type 'BD232' (all),
389 'SI232 online' (28-29S) or 'SI232 store' (22-26x). The interface must
390 be configured to the same baud rate as the host (default 9600).
391 Multimeter and interface must be configured to the same address.
309bb27e
GS
392 - Metrix MX56C: Press the PRINT button to have the meter send acquisition
393 data via IR. Hold the PRINT button to adjust the meter's transmission
394 interval.
1267f128
UH
395 - Norma DM950: If the interface doesn't work (e.g. USB-RS232 converter), power
396 on the device with "FUNC" pressed (to power the interface from the DMM).
e6b2b4df
UH
397 - PCE PCE-DM32: Briefly press the "RS232" button.
398 - RadioShack 22-812: Press and hold "SELECT" and "RANGE" together.
399 - TekPower TP4000ZC: Briefly press the "RS232" button.
d9e79c51 400 - Tenma 72-7750: Briefly press the "RS232C" button.
4104ef81 401 - UNI-T UT60G: Briefly press the "RS232C" button.
7cb69b18 402 - UNI-T UT61B/C/D: Press the "REL/RS232/USB" button for roughly 1 second.
8769478c
UH
403 - UNI-T UT71x: Press the "SEND/-/MAXMIN" button for roughly 1 second.
404 Briefly pressing the "EXIT" button leaves this mode again.
1b142b78
UH
405 - UNI-T UT325: Briefly press the "SEND" button (as per manual). However, it
406 appears that in practice you don't have to press the button (at least on
407 some versions of the device), simply connect the device via USB.
1267f128
UH
408 - V&A VA18B/VA40B: Keep the "Hz/DUTY" key pressed while powering on the DMM.
409 - Victor 70C/86C: Press the "REL/RS232" button for roughly 1 second.
45bb47a7 410 - Voltcraft VC-830: Press the "REL/PC" button for roughly 2 seconds.
c36f78f7 411 - Voltcraft VC-870: Press the "REL/PC" button for roughly 1 second.
e6b2b4df
UH
412
413
7b356712
UH
414ChronoVu LA8/LA16 USB VID/PIDs
415------------------------------
c77ed446 416
7b356712
UH
417The ChronoVu LA8/LA16 logic analyzer is available in two revisions. Previously,
418the device shipped with a USB VID/PID of 0403:6001, which is the standard ID
c77ed446
UH
419for FTDI FT232 USB chips.
420
7b356712 421Since this made it hard to distinguish the LA8/LA16 from any other device
c77ed446 422with this FTDI chip connected to the PC, the vendor later shipped the
7b356712 423device with a USB VID/PID of 0403:8867.
c77ed446 424
7b356712
UH
425The 'chronovu-la' driver in libsigrok supports both VID/PID pairs and
426automatically finds devices with either VID/PID pair.
c77ed446
UH
427
428
429OLS
430---
431
e311f770
UH
432The Dangerous Prototypes Openbench Logic Sniffer (OLS) logic analyzer
433driver in libsigrok assumes a somewhat recent firmware has been flashed onto
434the OLS (it doesn't need a firmware upload every time it's attached via USB,
435since the firmware is stored in the device permanently).
c77ed446
UH
436
437The most recent firmware version that is tested is 3.07.
438
439If you use any older firmware and your OLS is not found or is not working
440properly, please upgrade to at least this firmware version. Check the
441Dangerous Prototypes wiki for firmware upgrade instructions:
442
443 http://dangerousprototypes.com/docs/Logic_Sniffer_upgrade_procedure
444
445Also, you need to specify a serial port for the OLS in the frontends, e.g.
446using the 'conn' option in sigrok-cli, and you also need to have the
447permissions to access the serial port (see above).
448
449Example:
450
451 $ sigrok-cli --driver ols:conn=/dev/ttyACM0 ...
452