oscope xoscope - Digital Oscilloscope via Sound Card
or Other Hardware
SYNOPSIS
oscope [oscope options] [file] xoscope [toolkit options] [oscope options] [file]
DESCRIPTION
Oscope is a digital real-time oscilloscope. It graphically displays
signal amplitude or bit logic as a function of time. Signals may be
displayed, saved, recalled, and manipulated by math functions. Signal
input devices currently include:
/dev/dsp
Audio sound recording via /dev/dsp. Two 8-bit analog channels at
8000 S/s to 44100 S/s. Left and right audio is connected to X and
Y inputs respectively. Use an external mixer program to select
which sound inputs to record. AC coupled, voltages unknown, 256K
sample memory.
EsounD
Shared audio sound via the Enlightened Sound Daemon. This is
great for watching music but support for it is an option at com
pile-time. EsounD is auto-detected and preferred over /dev/dsp.
ProbeScope / OsziFOX
Radio Shack ProbeScope, Cat. No. 22-310 is also known as an oszi
FOX. This handheld probe sends its data through a serial port.
It samples one channel at 6-bits up to 20 MS/s with 128 samples of
memory. Real voltages are labeled in sample ranges from 1 volt to
100 volts. If a ProbeScope is detected, it is connected to the Z
input.
Bitscope
Bitscope (www.bitscope.com) is a mixed-signal capture engine which
is accessed through a serial port. It simultaneously samples a
digital 8-bit port and two analog channels at 8 bit resolution at
up to 25 MS/s or more. If detected, Channel A and B are connected
to X and Y while the Logic Analyzer is connected to Z, disabling
all sound input. Bitscope support is currently under development
and not yet fully functional.
See the -x and -z options and the ENVIRONMENT section below for more
details on how the above devices are detected. Some of the controls
below apply only to the sound card and are labeled as such. Oscope has
no physical control over the ProbeScope/osziFOX which is controlled by
its own switches and built-in menus. Please refer to your ProbeScope
or osziFOX Owner’s Manual for operating instructions. Bitscope will
eventually be controlled through a separate dialog window.
Oscope is an interactive program and can be completely controlled from
the keyboard at run-time. In verbose key help mode, each available key
is shown on the screen in (parentheses). The following single key com
mands are available:
? Toggle verbose key help display mode.
Escape
Immediately quit the program.
@ Load a previously saved file. You are prompted for the filename.
# Save current settings and memory buffers to a file that can be
loaded later. You are prompted for the filename and asked for
confirmation to overwrite if it already exists.
Enter
Clear and refresh the entire screen.
^ Toggle the serial input device on/off. A serial device is turned
on only if it is found active on a serial port. This may be use
ful if the device was not detected at startup. See the ENVIRON
MENT section below for more details.
& Toggle the sound card input device on/off.
* Cycle the sound card DMA divisor: 4, 2, 1. The sound driver will
divide it’s DMA buffer by this factor. The value 4 usually gives
the fastest display rate.
Under EsounD, this value instead determines whether the connection
to EsounD will block (4) or not (2 or 1). Blocking mode is nicest
to CPU usage but the oscope interface will not respond when the
there is no sound stream coming from EsounD. Nonblocking mode
will let oscope be responsive whether sound is available or not,
but will consume all available CPU cycles.
(/) Decrease/increase the sound card sampling rate.
9/0 Increase/decrease the Sec/Div horizontal time scale (zoom out/in
on time).
-/= Decrease/increase the sound card trigger level.
_ Toggle the sound card trigger channel: X or Y.
+ Cycle the sound card trigger type: automatic, rising edge, or
falling edge.
Space
Cycle the trigger mode of the sound card: run, wait, stop. Run
mode continuously acquires and displays samples after trigger
events. Wait mode waits for the first trigger event and displays
only the first set of samples; this is "single-shot" mode. Stop
mode suspends the data acquisition and displays the current sam
ples.
! Cycle the plotting mode: point, point accumulate, line, or line
accumulate. In the accumulate modes, all samples stay on the
screen; use Enter to clear them.
, Cycle the graticule style: none, minor divisions only, or minor
and major divisions.
. Toggle the graticule position: behind or in front of the signals.
Decrease/increase the graticule color.
Toggle the manual cursors on/off. When manual cursors are dis
played, the measurements between the cursor positions are shown.
When cursors are not displayed, automatic measurements are shown.
" Reset both manual cursor positions to the sample just after trig
ger.
Ctrl-q/w/e/r
The Control key held down in combination with q/w/e/r moves the
first cursor back or forward by 10 samples or back or forward by 1
sample respectively.
Ctrl-a/s/d/f
The Control key held down in combination with a/s/d/f moves the
second cursor back or forward by 10 samples or back or forward by
1 sample respectively.
1-8 Select the corresponding display channel. Measurements are dis
played for the channel. Channel 1 and 2 are used as input to the
math functions so they can’t be used to do math. By default, they
are connected to the X and Y input channels. Channel 1 and 2 can
also be used to display memory buffers or the Z input for doing
math on memory or the alternate input. Channel 3 through 8 are
not restricted and can be used for any purpose. By default, the Z
input is connected to Channel 3. The remaining single key com
mands operate on the currently selected channel:
Tab Toggle visibility: Hide or show the selected channel.
{/} Decrease/Increase vertical scale of the selected channel.
[/] Decrease/Increase vertical position of the selected channel.
/~ Decrease/Increase number of logic analyzer bits displayed. The
default of zero bits plots the signal as one analog line of vary
ing amplitude. Any other value plots multiple digital lines rep
resenting the least significant bits from bottom to top.
;/: Increase/Decrease the math function of the selected channel. This
is not available on channel 1 & 2.
$ Show the result of an external math command on the selected chan
nel. You are prompted for the command. The command must accept
samples of channel 1 & 2 on stdin and write a new signal to std
out. See operl, offt.c and xy.c in the distribution for examples
of external math filter commands. Not available on channel 1 & 2.
A-W Store the currently selected channel into the corresponding memory
buffer. Buffer X, Y and Z can not be used because they’re
reserved as the signal inputs. Memories are stored from time zero
to the current display update position. So it is best to STOP the
display before storing to a memory buffer.
a-z Recall the corresponding memory buffer or input device to the cur
rently selected channel. Buffer X is the Left or A input, Y is
the Right or B input, and Z is ProbeScope or Logic Analyzer input.
The rest of the buffers are available for signal memory.
Xoscope adds mouse controls to menus or around the edges of the scope
area. These should be nearly self-explanatory. They perform the same
functions as the equivalent keyboard commands above. If built with
GTK+, a context-sensitive pop-up menu is available with right-click to
select channels, change scale and position, recall and store signals
and so on. Left click decreases a variable while right click
increases. The manual measurement cursors can also be positioned with
the mouse.
The command-line options define the startup state of oscope and have
reasonable defaults. All options may be capitalized in case they con
flict with an X toolkit option. These options are also recorded in
text files saved by oscope.
-h Help usage message showing these startup options with their
default values, then exit.
-#
Startup conditions of each channel. # is a channel number from 1
to 8. Code can have up to three fields, separated by colons:
position[.bits][:scale[:function #, memory letter, or external
command]]. Position is the number of pixels above (positive) or
below (negative) the center of the display. Bits is the number of
logic analyzer bits to display. Scale is a valid scaling factor
from 1/50 to 50, expressed as a fraction. The third field may
contain a built-in math function number, memory letter, or exter
nal math command to run on the channel. Using these options makes
the channel visible unless position begins with a ’+’, in which
case the channel is hidden.
-a
Active, or selected, channel.
-r
Sound card sampling Rate in samples per second. Current valid
values are 8000, 11025, 22050, or 44100.
-s
Time Scale factor from 1/20 to 1000 expressed as a fraction where
1/1 is 1 ms/div.
-t
Sound card Trigger conditions. Trigger can have up to three
fields, separated by colons: position[:type[:channel]]. Position
is the number of pixels above (positive) or below (negative) the
center of the display. Type is a number indicating the kind of
trigger, 0 = automatic, 1 = rising edge, 2 = falling edge. Chan
nel should be x or y.
-l
Manual cursor Line positions. Cursors can have up to three
fields, separated by colons: first[:second[:on?]]. First is the
sample position of the first cursor. Second is the sample posi
tion of the second cursor. The final field is weather the manual
cursors are displayed (1) or the not displayed (0).
-c
Graticule Color, 0 - 15.
-d
Divisor for sound card DMA: 1, 2, or 4. The sound driver will
divide it’s DMA buffer by this factor. The value 4 usually gives
the fastest display rate.
-m
Graphics Mode to use. For xoscope, use the more flexible -geome
try instead. 0 = 640x480x16, 1 = 800x600x16, 2 = 1024x768x16, 3 =
1280x1024x16. WARNING: not all modes are supported by all video
cards; don’t use unsupported modes!
-f Font to use. For oscope, these are listed in /usr/lib/kbd/con
solefonts. For xoscope, they’re the output of xlsfonts. The
default should work best.
-p
Plot type. 0 = point, 1 = point accumulate, 2 = line, 3 = line
accumulate, 4 = step, 5 = step accumulate.
-g