]> sigrok.org Git - sigrok-cli.git/blame - doc/sigrok-cli.1
List supported devices, modules, decoders via --list-supported.
[sigrok-cli.git] / doc / sigrok-cli.1
CommitLineData
bf836932 1.TH SIGROK\-CLI 1 "May 04, 2014"
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
33\fB-V\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
79.B \-V
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
95.B \-V
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
204.B \-\-version
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
53155b2f 312.BR "\-l, \-\-loglevel " <level>
10d98b47
UH
313Set the libsigrok and libsigrokdecode loglevel. At the moment \fBsigrok-cli\fP
314doesn't support setting the two loglevels independently. The higher the
53155b2f
BV
315number, the more debug output will be printed. Valid loglevels are:
316.sp
317\fB0\fP None
318.br
319\fB1\fP Error
320.br
321\fB2\fP Warnings
322.br
323\fB3\fP Informational
324.br
325\fB4\fP Debug
326.br
327\fB5\fP Spew
328.TP
329.B "\-\-show"
330.br
10d98b47
UH
331Show information about the selected option. For example, to see options for a
332connected fx2lafw device:
53155b2f
BV
333.sp
334 $
335.B "sigrok\-cli \-\-driver fx2lafw \-\-show
336.sp
10d98b47
UH
337In order to properly get device options for your hardware, some drivers might
338need a serial port specified:
53155b2f
BV
339.sp
340 $
341.B "sigrok\-cli \-\-driver ols:conn=/dev/ttyACM0 \-\-show
342.sp
a8b4041a 343This also works for protocol decoders, input modules and output modules:
53155b2f
BV
344.sp
345 $
ad6520c4
BV
346.B "sigrok\-cli \-\-protocol\-decoders i2c \-\-show
347 $
a8b4041a
BV
348.B "sigrok\-cli \-\-input\-format csv \-\-show
349 $
ad6520c4 350.B "sigrok\-cli \-\-output\-format bits \-\-show
53155b2f 351.TP
b5ac81ad
BV
352.B "\-\-scan"
353Scan for devices that can be detected automatically.
10d98b47
UH
354.sp
355Example:
356.sp
357 $
b5ac81ad 358.B "sigrok\-cli \-\-scan
10d98b47
UH
359.br
360 The following devices were found:
361.br
bf836932 362 demo - Demo device with 12 channels: D0 D1 D2 D3 D4 D5 D6 D7 A0 A1 A2 A3
10d98b47 363.br
bf836932 364 fx2lafw:conn=3.26 - CWAV USBee SX with 8 channels: 0 1 2 3 4 5 6 7
10d98b47
UH
365.sp
366However, not all devices are auto-detectable (e.g. serial port based ones).
367For those you'll have to provide a \fBconn\fP option, see above.
368.sp
369 $
b5ac81ad 370.B "sigrok\-cli \-\-driver digitek-dt4000zc:conn=/dev/ttyUSB0 \-\-scan
10d98b47
UH
371.br
372 The following devices were found:
373.br
029d73fe 374 Digitek DT4000ZC with 1 channel: P1
53155b2f 375.TP
43e5747a
UH
376.BR "\-\-time " <ms>
377Sample for
378.B <ms>
10d98b47
UH
379milliseconds, then quit.
380.sp
bf836932
UH
381You can optionally follow the number by \fBs\fP to specify the time to
382sample in seconds.
10d98b47
UH
383.sp
384For example,
43e5747a
UH
385.B "\-\-time 2s"
386will sample for two seconds.
387.TP
388.BR "\-\-samples " <numsamples>
389Acquire
390.B <numsamples>
391samples, then quit.
10d98b47
UH
392.sp
393You can optionally follow the number by \fBk\fP, \fBm\fP, or \fBg\fP to
394specify the number of samples in kilosamples, megasamples, or gigasamples,
395respectively.
396.sp
397For example,
398.B "\-\-samples 3m"
399will acquire 3000000 samples.
43e5747a 400.TP
66d5560b
UH
401.BR "\-\-frames " <numframes>
402Acquire
403.B <numframes>
404frames, then quit.
405.TP
43e5747a
UH
406.BR "\-\-continuous"
407Sample continuously until stopped. Not all devices support this.
2d73284e 408.TP
62a64762
BV
409.BR "\-\-get " <variable>
410Get the value of
411.B <variable>
412from the specified device and print it.
413.TP
2d73284e 414.BR "\-\-set"
b8656921
UH
415Set one or more variables specified with the \fB\-\-config\fP option, without
416doing any acquisition.
53155b2f 417.SH EXAMPLES
b8656921
UH
418In order to get exactly 100 samples from the connected fx2lafw-supported logic
419analyzer hardware, run the following command:
43e5747a 420.TP
53155b2f 421.B " sigrok\-cli \-\-driver fx2lafw \-\-samples 100"
43e5747a 422.TP
2d73284e 423If you want to sample data for 3 seconds (3000 ms), use:
43e5747a 424.TP
53155b2f 425.B " sigrok\-cli \-\-driver fx2lafw \-\-time 3000"
43e5747a
UH
426.TP
427Alternatively, you can also use:
428.TP
53155b2f 429.B " sigrok\-cli \-\-driver fx2lafw \-\-time 3s"
43e5747a 430.TP
029d73fe 431To capture data from the first 4 channels using the Openbench Logic Sniffer lasting 100ms at 10 MHz starting at the trigger condition
53155b2f 4320:high, 1:rising, 2:low, 3:high, use:
43e5747a 433.TP
53155b2f 434.nf
b5ac81ad 435\fBsigrok\-cli \-\-driver ols:conn=/dev/ttyACM0 \-\-config samplerate=10m \\\fP
3dfbfbc8 436\fB\-\-output\-format bits \-\-channels 0\-3 \-\-wait\-trigger \\\fP
b5ac81ad 437\fB\-\-triggers 0=1,1=r,2=0,3=1 \-\-time 100\fP
2d73284e
BV
438.TP
439To turn on internal logging on a Lascar EL-USB series device:
440.TP
441\fBsigrok\-cli \-\-driver lascar\-el\-usb:conn=10c4.0002 \\\fP
b8656921 442\fB\-\-config datalog=on \-\-set\fP
43e5747a
UH
443.SH "EXIT STATUS"
444.B sigrok\-cli
445exits with 0 on success, 1 on most failures.
446.SH "SEE ALSO"
b5ac81ad 447\fBpulseview\fP(1)
43e5747a 448.SH "BUGS"
10d98b47
UH
449Please report any bugs via Bugzilla
450.RB "(" http://sigrok.org/bugzilla ")"
451or on the sigrok\-devel mailing list
43e5747a
UH
452.RB "(" sigrok\-devel@lists.souceforge.net ")."
453.SH "LICENSE"
454.B sigrok\-cli
455is covered by the GNU General Public License (GPL). Some portions are
456licensed under the "GPL v2 or later", some under "GPL v3 or later".
457.SH "AUTHORS"
458Please see the individual source code files.
459.PP
460This manual page was written by Uwe Hermann <uwe@hermann\-uwe.de>.
461It is licensed under the terms of the GNU GPL (version 2 or later).