]> sigrok.org Git - sigrok-cli.git/blame - doc/sigrok-cli.1
Update manpage references from -V to -L
[sigrok-cli.git] / doc / sigrok-cli.1
CommitLineData
7c765fcb 1.TH SIGROK\-CLI 1 "September 13, 2017"
43e5747a 2.SH "NAME"
53155b2f 3sigrok\-cli \- Command-line client for the sigrok software
43e5747a 4.SH "SYNOPSIS"
53155b2f 5.B sigrok\-cli [OPTIONS] [COMMAND]
43e5747a 6.SH "DESCRIPTION"
10d98b47
UH
7\fBsigrok\-cli\fP is a cross-platform command line utility for the
8\fBsigrok\fP software.
43e5747a 9.PP
10d98b47
UH
10It cannot display graphical output, but is still sufficient to run through
11the whole process of hardware initialization, acquisition, protocol decoding
12and saving the session.
43e5747a
UH
13.PP
14It is useful for running on remote or embedded systems, netbooks, PDAs,
15and for various other use-cases. It can display samples on standard output or
16save them in various file formats.
53155b2f 17.SH OPTIONS
43e5747a 18.TP
43e5747a
UH
19.B "\-h, \-\-help"
20Show a help text and exit.
21.TP
7949dca0
UH
22.B "\-V, \-\-version"
23Show
24.B sigrok-cli
6293db8a
UH
25version and the versions of libraries used.
26.TP
27.B "\-L, \-\-list-supported"
28Show information about supported hardware drivers, input file
7949dca0
UH
29formats, output file formats, and protocol decoders.
30.TP
b5ac81ad
BV
31\fB\-d, \-\-driver\fP <drivername>
32A driver must always be selected (unless doing a global scan). Use the
7c765fcb 33\fB-L\fP option to get a list of available drivers.
53155b2f 34.sp
10d98b47
UH
35Drivers can take options, in the form \fBkey=value\fP
36separated by colons.
37.sp
38Drivers communicating with hardware via a serial port always need the port
39specified as the \fBconn\fP option. For example, to use the
40Openbench Logic Sniffer:
53155b2f
BV
41.sp
42.RB " $ " "sigrok\-cli \-\-driver=ols:conn=/dev/ttyACM0"
43.sp
10d98b47
UH
44Some USB devices don't use a unique VendorID/ProductID combination, and thus
45need that specified as well. This also uses the \fBconn\fP option, using
46either \fBVendorID.ProductID\fP or \fBbus.address\fP:
53155b2f 47.sp
bf836932 48.RB " $ " "sigrok\-cli \-\-driver=uni-t-ut61e:conn=1a86.e008"
43e5747a 49.TP
b5ac81ad 50.BR "\-c, \-\-config " <device>
53155b2f 51A colon-separated list of device options, where each option takes the form
1b4b6a7c 52.BR key=value .
10d98b47
UH
53For example, to set the samplerate to 1MHz on a device supported by the
54fx2lafw driver, you might specify
1b4b6a7c 55.sp
b5ac81ad 56.RB " $ " "sigrok\-cli \-\-driver=fx2lafw \-\-config samplerate=1m"
1b4b6a7c 57.sp
53155b2f
BV
58Samplerate is an option common to most logic analyzers. The argument specifies
59the samplerate in Hz. You can also specify the samplerate in kHz, MHz or GHz.
1b4b6a7c
UH
60The following are all equivalent:
61.sp
b5ac81ad 62.RB " $ " "sigrok\-cli \-\-driver fx2lafw \-\-config samplerate=1000000"
1b4b6a7c 63.sp
b5ac81ad 64.RB " $ " "sigrok\-cli \-\-driver fx2lafw \-\-config samplerate=1m"
1b4b6a7c 65.sp
b5ac81ad 66.RB " $ " "sigrok\-cli \-\-driver fx2lafw \-\-config \(dqsamplerate=1 MHz\(dq"
1b4b6a7c 67.TP
43e5747a 68.BR "\-i, \-\-input\-file " <filename>
7949dca0 69Load input from a file instead of a hardware device. If the
43e5747a
UH
70.B \-\-input\-format
71option is not supplied, sigrok-cli attempts to autodetect the file format of
72the input file.
73.TP
74.BR "\-I, \-\-input\-format " <format>
75When loading an input file, assume it's in the specified format. If this
76option is not supplied (in addition to
77.BR \-\-input\-file ),
943d0c08 78sigrok-cli attempts to autodetect the file format of the input file. Use the
7c765fcb 79.B \-L
10d98b47
UH
80option to see a list of available input formats.
81.sp
82The format name may optionally be followed by a colon-separated list of
83options, where each option takes the form
943d0c08 84.BR "key=value" .
43e5747a
UH
85.TP
86.BR "\-o, \-\-output\-file " <filename>
87Save output to a file instead of writing it to stdout. The default format
88used when saving is the sigrok session file format. This can be changed with
89the
76ae913d 90.B \-\-output\-format
7949dca0
UH
91option.
92.TP
93.BR "\-O, \-\-output\-format " <formatname>
94Set the output format to use. Use the
7c765fcb 95.B \-L
10d98b47
UH
96option to see a list of available output formats.
97.sp
98The format name may optionally be followed by a colon-separated list of
99options, where each option takes the form
7949dca0
UH
100.BR "key=value" .
101.sp
102Supported formats currently include
103.BR bits ,
104.BR hex ,
105.BR ascii ,
106.BR binary ,
107.BR vcd ,
85f2ddbb
UH
108.BR ols ,
109.BR gnuplot ,
10d98b47
UH
110.BR chronovu-la8 ,
111.BR csv ", and"
112.BR analog .
7949dca0
UH
113.sp
114The
115.B bits
116or
117.B hex
118formats, for an ASCII bit or ASCII hexadecimal display, can take a "width" option, specifying the number of samples (in bits) to display per line. Thus
119.B hex:width=128
120will display 128 bits per line, in hexadecimal:
121.sp
10d98b47
UH
122 0:ffff ffff ffff ffff ffff ffff ffff ffff
123 1:ff00 ff00 ff00 ff00 ff00 ff00 ff00 ff00
7949dca0 124.sp
029d73fe 125The lines always start with the channel number (or name, if defined), followed by a colon. If no format is specified, it defaults to
7949dca0
UH
126.BR bits:width=64 ,
127like this:
128.sp
10d98b47
UH
129 0:11111111 11111111 11111111 11111111 [...]
130 1:11111111 00000000 11111111 00000000 [...]
43e5747a 131.TP
3dfbfbc8 132.BR "\-C, \-\-channels " <channellist>
029d73fe 133A comma-separated list of channels to be used in the session.
43e5747a 134.sp
029d73fe
UH
135Note that sigrok always names the channels according to how they're shown on
136the enclosure of the hardware. If your logic analyzer numbers the channels 0-15,
137that's how you must specify them with this option. An oscilloscope's channels
10d98b47 138would generally be referred to as "CH1", "CH2", and so on.
029d73fe 139Use the \fB\-\-show\fP option to see a list of channel names for your device.
53155b2f 140.sp
029d73fe
UH
141The default is to use all the channels available on a device. You can name
142a channel like this:
43e5747a 143.BR "1=CLK" .
029d73fe 144A range of channels can also be given, in the form
43e5747a
UH
145.BR "1\-5" .
146.sp
147Example:
148.sp
10d98b47
UH
149.RB " $ " "sigrok\-cli \-\-driver fx2lafw \-\-samples 100"
150.br
3dfbfbc8 151.B " \-\-channels 1=CLK,2\-4,7"
43e5747a
UH
152.br
153 CLK:11111111 11111111 11111111 11111111 [...]
154 2:11111111 11111111 11111111 11111111 [...]
155 3:11111111 11111111 11111111 11111111 [...]
156 4:11111111 11111111 11111111 11111111 [...]
157 7:11111111 11111111 11111111 11111111 [...]
158.sp
159The comma-separated list is processed from left to right, i.e. items farther
160to the right override previous items. For example
bf836932 161.B "1=CS,CS=MISO"
029d73fe 162will set the name of channel 1 to
43e5747a 163.BR "MISO" .
43e5747a 164.TP
ca50f4b3
UH
165.BR "\-g, \-\-channel\-group "<channel\ group>
166Specify the channel group to operate on.
31f9318a 167
ca50f4b3
UH
168Some devices organize channels into groups, the settings of which can
169only be changed as a group. The list of channel groups, if any, is displayed
bf836932 170with the \fB\-\-show\fP command.
31f9318a 171.TP
43e5747a
UH
172.BR "\-t, \-\-triggers " <triggerlist>
173A comma-separated list of triggers to use, of the form
029d73fe
UH
174.BR "<channel>=<trigger>" .
175You can use the name or number of the channel, and the trigger itself is a
43e5747a
UH
176series of characters:
177.sp
178.BR "0 or 1" :
179A low or high value on the pin.
180.br
181.BR "r or f" :
182A rising or falling value on the pin. An
183.B r
184effectively corresponds to
185.BR 01 .
186.br
f99038b4 187.BR "e" :
85f2ddbb 188Any kind of change on a pin (either a rising or a falling edge).
43e5747a 189.sp
10d98b47
UH
190Not every device supports all of these trigger types. Use the \fB\-\-show\fP
191command to see which triggers your device supports.
43e5747a
UH
192.TP
193.BR "\-w, \-\-wait-trigger"
10d98b47
UH
194Don't output any sample data (even if it's actually received from the
195hardware) before the trigger condition is met. In other words, do not output
196any pre-trigger data. This option is useful if you don't care about the data
197that came before the trigger (but the hardware delivers this data to sigrok
198nonetheless).
43e5747a 199.TP
b5ac81ad 200.BR "\-P, \-\-protocol\-decoders " <list>
85f2ddbb
UH
201This option allows the user to specify a comma-separated list of protocol
202decoders to be used in this session. The decoders are specified by their
203ID, as shown in the
7c765fcb 204.B \-L
85f2ddbb
UH
205output.
206.sp
207Example:
208.sp
209 $
b5ac81ad 210.B "sigrok\-cli \-i <file.sr> \-P i2c"
85f2ddbb
UH
211.sp
212Each protocol decoder can optionally be followed by a colon-separated list
213of options, where each option takes the form
214.BR "key=value" .
215.sp
216Example:
217.sp
218 $
8791df07
UH
219.B "sigrok\-cli \-i <file.sr> "
220.br
221.B " \-P uart:baudrate=115200:parity_type=odd"
85f2ddbb
UH
222.sp
223The list of supported options depends entirely on the protocol decoder. Every
224protocol decoder has different options it supports.
225.sp
226Any "options" specified for a protocol decoder which are not actually
029d73fe 227supported options, will be interpreted as being channel name/number assignments.
85f2ddbb
UH
228.sp
229Example:
230.sp
231 $
232.B "sigrok\-cli \-i <file.sr>"
233.br
bf836932 234.B " \-P spi:wordsize=9:miso=1:mosi=5:clk=3:cs=0"
85f2ddbb
UH
235.sp
236In this example,
237.B wordsize
238is an option supported by the
239.B spi
240protocol decoder. Additionally, the user tells sigrok to decode the SPI
029d73fe 241protocol using channel 1 as MISO signal for SPI, channel 5 as MOSI, channel 3
bf836932 242as CLK, and channel 0 as CS# signal.
85f2ddbb 243.TP
b6bd032d 244.BR "\-A, \-\-protocol\-decoder\-annotations " <annotations>
7fb87027
BV
245By default, only the stack's topmost protocol decoder's annotation output is
246shown. With this option another decoder's annotation can be selected for
1a0be0e3 247display, by specifying its ID:
7fb87027
BV
248.sp
249 $
b5ac81ad 250.B "sigrok\-cli \-i <file.sr> \-P i2c,i2cfilter,edid -A i2c"
7fb87027 251.sp
790b0261
BV
252If a protocol decoder has multiple annotations, you can also specify
253which one of them to show by specifying its short description like this:
7fb87027
BV
254.sp
255 $
b5ac81ad 256.B "sigrok\-cli \-i <file.sr> \-P i2c,i2cfilter,edid"
7fb87027 257.br
790b0261
BV
258.B " \-A i2c=data-read"
259.sp
260Select multiple annotations by separating them with a colon:
261.sp
262 $
263.B "sigrok\-cli \-i <file.sr> \-P i2c,i2cfilter,edid"
264.br
265.B " \-A i2c=data-read:data-write"
7fb87027
BV
266.sp
267You can also select multiple protocol decoders, with an optional selected
790b0261 268annotation each, by separating them with commas:
7fb87027
BV
269.sp
270 $
b5ac81ad 271.B "sigrok\-cli \-i <file.sr> \-P i2c,i2cfilter,edid"
7fb87027 272.br
790b0261 273.B " \-A i2c=data-read:data-write,edid"
7fb87027 274.TP
b0f1c540
BV
275.BR "\-M, \-\-protocol\-decoder\-meta " <pdname>
276When given, show protocol decoder meta output instead of annotations.
277The argument is the name of the decoder whose meta output to show.
278.sp
279 $
280.B "sigrok\-cli \-i <file.sr> \-M i2c"
281.sp
282Not every decoder generates meta output.
283.TP
284.BR "\-B, \-\-protocol\-decoder\-binary " <binaryspec>
285When given, decoder "raw" data of various kinds is written to stdout instead
286of annotations (this could be raw binary UART/SPI bytes, or WAV files, PCAP
287files, PNG files, or anything else; this is entirely dependent on the
288decoder and what kinds of binary output make sense for that decoder).
289.sp
290No other information is printed to stdout, so this is
291suitable for piping into other programs or saving to a file.
292.sp
293Protocol decoders that support binary output publish a list of binary
294classes, for example the UART decoder might have "TX" and "RX". To
295select TX for output, the argument to this option would be:
296.sp
297 $
298.B "sigrok\-cli \-i <file.sr> \-B uart=tx"
299.br
300.sp
301If only the protocol decoder is specified, without binary class, all classes
302are written to stdout:
303.sp
304 $
305.B "sigrok\-cli \-i <file.sr> \-B uart"
306.sp
307(this is only useful in rare cases, generally you would specify a certain
308binary class you're interested in)
309.sp
310Not every decoder generates binary output.
311.TP
8aafb57c
GS
312.BR "\-\-protocol\-decoder\-samplenum
313When given, decoder annotations will include sample numbers, too.
314This allows consumers to receive machine readable timing information.
315.TP
53155b2f 316.BR "\-l, \-\-loglevel " <level>
10d98b47
UH
317Set the libsigrok and libsigrokdecode loglevel. At the moment \fBsigrok-cli\fP
318doesn't support setting the two loglevels independently. The higher the
53155b2f
BV
319number, the more debug output will be printed. Valid loglevels are:
320.sp
321\fB0\fP None
322.br
323\fB1\fP Error
324.br
325\fB2\fP Warnings
326.br
327\fB3\fP Informational
328.br
329\fB4\fP Debug
330.br
331\fB5\fP Spew
332.TP
333.B "\-\-show"
334.br
10d98b47
UH
335Show information about the selected option. For example, to see options for a
336connected fx2lafw device:
53155b2f
BV
337.sp
338 $
339.B "sigrok\-cli \-\-driver fx2lafw \-\-show
340.sp
10d98b47
UH
341In order to properly get device options for your hardware, some drivers might
342need a serial port specified:
53155b2f
BV
343.sp
344 $
345.B "sigrok\-cli \-\-driver ols:conn=/dev/ttyACM0 \-\-show
346.sp
a8b4041a 347This also works for protocol decoders, input modules and output modules:
53155b2f
BV
348.sp
349 $
ad6520c4
BV
350.B "sigrok\-cli \-\-protocol\-decoders i2c \-\-show
351 $
a8b4041a
BV
352.B "sigrok\-cli \-\-input\-format csv \-\-show
353 $
ad6520c4 354.B "sigrok\-cli \-\-output\-format bits \-\-show
53155b2f 355.TP
b5ac81ad
BV
356.B "\-\-scan"
357Scan for devices that can be detected automatically.
10d98b47
UH
358.sp
359Example:
360.sp
361 $
b5ac81ad 362.B "sigrok\-cli \-\-scan
10d98b47
UH
363.br
364 The following devices were found:
365.br
bf836932 366 demo - Demo device with 12 channels: D0 D1 D2 D3 D4 D5 D6 D7 A0 A1 A2 A3
10d98b47 367.br
bf836932 368 fx2lafw:conn=3.26 - CWAV USBee SX with 8 channels: 0 1 2 3 4 5 6 7
10d98b47
UH
369.sp
370However, not all devices are auto-detectable (e.g. serial port based ones).
371For those you'll have to provide a \fBconn\fP option, see above.
372.sp
373 $
b5ac81ad 374.B "sigrok\-cli \-\-driver digitek-dt4000zc:conn=/dev/ttyUSB0 \-\-scan
10d98b47
UH
375.br
376 The following devices were found:
377.br
029d73fe 378 Digitek DT4000ZC with 1 channel: P1
53155b2f 379.TP
43e5747a
UH
380.BR "\-\-time " <ms>
381Sample for
382.B <ms>
10d98b47
UH
383milliseconds, then quit.
384.sp
bf836932
UH
385You can optionally follow the number by \fBs\fP to specify the time to
386sample in seconds.
10d98b47
UH
387.sp
388For example,
43e5747a
UH
389.B "\-\-time 2s"
390will sample for two seconds.
391.TP
392.BR "\-\-samples " <numsamples>
393Acquire
394.B <numsamples>
395samples, then quit.
10d98b47
UH
396.sp
397You can optionally follow the number by \fBk\fP, \fBm\fP, or \fBg\fP to
398specify the number of samples in kilosamples, megasamples, or gigasamples,
399respectively.
400.sp
401For example,
402.B "\-\-samples 3m"
403will acquire 3000000 samples.
43e5747a 404.TP
66d5560b
UH
405.BR "\-\-frames " <numframes>
406Acquire
407.B <numframes>
408frames, then quit.
409.TP
43e5747a
UH
410.BR "\-\-continuous"
411Sample continuously until stopped. Not all devices support this.
2d73284e 412.TP
62a64762
BV
413.BR "\-\-get " <variable>
414Get the value of
415.B <variable>
416from the specified device and print it.
417.TP
2d73284e 418.BR "\-\-set"
b8656921
UH
419Set one or more variables specified with the \fB\-\-config\fP option, without
420doing any acquisition.
53155b2f 421.SH EXAMPLES
b8656921
UH
422In order to get exactly 100 samples from the connected fx2lafw-supported logic
423analyzer hardware, run the following command:
43e5747a 424.TP
53155b2f 425.B " sigrok\-cli \-\-driver fx2lafw \-\-samples 100"
43e5747a 426.TP
2d73284e 427If you want to sample data for 3 seconds (3000 ms), use:
43e5747a 428.TP
53155b2f 429.B " sigrok\-cli \-\-driver fx2lafw \-\-time 3000"
43e5747a
UH
430.TP
431Alternatively, you can also use:
432.TP
53155b2f 433.B " sigrok\-cli \-\-driver fx2lafw \-\-time 3s"
43e5747a 434.TP
029d73fe 435To capture data from the first 4 channels using the Openbench Logic Sniffer lasting 100ms at 10 MHz starting at the trigger condition
53155b2f 4360:high, 1:rising, 2:low, 3:high, use:
43e5747a 437.TP
53155b2f 438.nf
b5ac81ad 439\fBsigrok\-cli \-\-driver ols:conn=/dev/ttyACM0 \-\-config samplerate=10m \\\fP
3dfbfbc8 440\fB\-\-output\-format bits \-\-channels 0\-3 \-\-wait\-trigger \\\fP
b5ac81ad 441\fB\-\-triggers 0=1,1=r,2=0,3=1 \-\-time 100\fP
2d73284e
BV
442.TP
443To turn on internal logging on a Lascar EL-USB series device:
444.TP
445\fBsigrok\-cli \-\-driver lascar\-el\-usb:conn=10c4.0002 \\\fP
b8656921 446\fB\-\-config datalog=on \-\-set\fP
43e5747a
UH
447.SH "EXIT STATUS"
448.B sigrok\-cli
449exits with 0 on success, 1 on most failures.
450.SH "SEE ALSO"
b5ac81ad 451\fBpulseview\fP(1)
43e5747a 452.SH "BUGS"
10d98b47
UH
453Please report any bugs via Bugzilla
454.RB "(" http://sigrok.org/bugzilla ")"
455or on the sigrok\-devel mailing list
43e5747a
UH
456.RB "(" sigrok\-devel@lists.souceforge.net ")."
457.SH "LICENSE"
458.B sigrok\-cli
459is covered by the GNU General Public License (GPL). Some portions are
460licensed under the "GPL v2 or later", some under "GPL v3 or later".
461.SH "AUTHORS"
462Please see the individual source code files.
463.PP
464This manual page was written by Uwe Hermann <uwe@hermann\-uwe.de>.
465It is licensed under the terms of the GNU GPL (version 2 or later).