Man Linux: Main Page and Category List

NAME

       xoscope - Digital Oscilloscope

SYNOPSIS

       xoscope [X toolkit options] [xoscope options] [file]

DESCRIPTION

       Xoscope  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 A and
            B 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
            compile-time.   EsounD  is  auto-detected   and   preferred   over
            /dev/dsp.

       ProbeScope / OsziFOX
            Radio  Shack  ProbeScope,  Cat.  No.  22-310  is  also known as an
            osziFOX.  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 A 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  C.   Bitscope
            support   is   currently  under  development  and  not  yet  fully
            functional.

       COMEDI
            The COMEDI project (www.comedi.org) develops Linux drivers, tools,
            and  libraries  for data acquisition.  Many commercially available
            ADC cards are supported by COMEDI, and Xoscope can receive signals
            from them via the COMEDI library.

            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.  Xoscope 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.

RUN-TIME KEYBOARD CONTROLS

       Xoscope 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
       commands 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.

       &    Cycle between the various input devices.  Note that this key  will
            not  toggle to an unresponsive input device, so if only one device
            is present, it will appear to have no effect.

       *    Different behavior for different input devices

            Under EsounD, this value instead determines whether the connection
            to EsounD will block or not.  Blocking mode is nicest to CPU usage
            but the xoscope interface will not respond when the  there  is  no
            sound  stream  coming  from  EsounD.   Nonblocking  mode  will let
            xoscope be responsive whether sound is available or not, but  will
            consume all available CPU cycles.

            Under  COMEDI, this key toggles between different analog reference
            points (ground, differential, or common).

       ^    Different behavior for different input devices

       (/)  Decrease/increase the sampling rate.

       9/0  Increase/decrease the Sec/Div horizontal time scale  (zoom  out/in
            on time).

       -/=  Decrease/increase the trigger level.

       _    Cycle the trigger channel.

       +    Cycle the trigger type: none, rising edge, or falling edge.

       Space
            Cycle  the  trigger  mode: 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 samples.

       !    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.

       ’    Toggle  the  manual  cursors  on/off.   When  manual  cursors  are
            displayed, 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
            trigger.

       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
            displayed 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 A and B input channels.  Channel 1 and 2
            can  also  be  used to display memory buffers or for doing math on
            memory or the alternate  input.   Channel  3  through  8  are  not
            restricted  and can be used for any purpose.  The remaining single
            key commands 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
            varying amplitude.  Any other value plots multiple  digital  lines
            representing 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
            channel.   You  are  prompted  for  the command.  The command must
            accept samples of channel 1 & 2 on stdin and write a new signal to
            stdout.   See  operl,  offt.c  and  xy.c  in  the distribution for
            examples of external  math  filter  commands.   Not  available  on
            channel 1 & 2.

       a-z  Recall  the  corresponding  memory  buffer  or input device to the
            currently selected channel.  Input device channels are  mapped  to
            the  earliest letters of the alphabet; the rest of the buffers are
            available for signal memory.

       A-Z  Store the currently selected channel into the corresponding memory
            buffer.   Early  letters  of  the alphabet can not be used because
            they’re reserved as the signal inputs,  so  the  exact  number  of
            available  buffers is dependant on the input device.  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.

MOUSE CONTROLS

       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.

COMMAND-LINE OPTIONS

       The  command-line  options define the startup state of xoscope and have
       reasonable defaults.  All options  may  be  capitalized  in  case  they
       conflict  with an X toolkit option.  These options are also recorded in
       text files saved by xoscope.

       -h   Help usage  message  showing  these  startup  options  with  their
            default values, then exit.

       -# <code>
            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
            external  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 <channel>
            Active, or selected, channel.

       -r <rate>
            Sampling  Rate in samples per second.  For the sound card, current
            valid values are 8000, 11025, 22050, or 44100.

       -s <scale>
            Time Scale factor from 1/20 to 1000 expressed as a fraction  where
            1/1 is 1 ms/div.

       -t <trigger>
            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.  Channel should
            be x or y.

       -l <cursors>
            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
            position  of  the  second  cursor.  The final field is weather the
            manual cursors are displayed (1) or the not displayed (0).

       -p <type>
            Plot type.  0 = point, 1 = point accumulate, 2 = line,  3  =  line
            accumulate, 4 = step, 5 = step accumulate.

       -g <style>
            Graticule  style.   0  = none, 1 = minor divisions only, 2 = minor
            and major divisions.

       -b   Whether the graticule is drawn Behind or in front of the  signals.

       -v   Whether the Verbose key help is displayed.

       -x   Whether  the  sound card input device (XY) is turned on.  This can
            be used to skip the attempt to connect to Esound or /dev/dsp.

       -z   Whether the serial input device (Z) is turned  on.   This  can  be
            used to suppress the search for a serial scope device.

       file The  name  of  a file to load upon startup.  This should be a file
            previously saved by xoscope.

EXAMPLES

       xoscope -1 80 -2 -80 -3 0:1/5:6 -4 -160:1/5:7

            This runs xoscope with channel 1 above and  channel  2  below  the
            center  of  the display.  Also channel 3 and 4 are made visible to
            show the FFT of channel 1 and 2 respectively at a reduced scale of
            1/5.

       xoscope oscope.dat

            This  runs  xoscope,  loading  settings  and memory buffers from a
            previously saved data file called "oscope.dat".

FILES

       Xoscope creates readable text data files.  The files contain at least a
       comment  header  which  holds the current settings of xoscope.  Loading
       the file causes these saved settings to be restored.

       To record  your  signals  permanently  first  store  them  into  memory
       buffers,  optionally  recall  them to channels, and then save the file.
       All non-empty memory buffers are  written  to  a  column  of  the  file
       following the comment header.  Columns are separated by tab characters.
       These are stored back into the memory buffers when the  file  is  later
       loaded.  Simply recall them to channels to view them.

       This  format  could  also  be  read  by  some  spreadsheet  or plotting
       programs.  For example, the gnuplot (1) command

       plot "oscope.dat" using 0:1, "oscope.dat" using 0:2

       would plot the first and second columns of the "oscope.dat" data  file.

ENVIRONMENT

       OSCOPEPATH
            The  path  to  use  when  looking  for external math commands.  If
            unset, the built-in default is used.

       PROBESCOPE
            The serial device your ProbeScope or osziFOX is connected to.   If
            unset,  /dev/probescope  is  used.   /dev/probescope  could  be  a
            symbolic link to the real device such as /dev/ttyS1.

       BITSCOPE
            The serial device  your  Bitscope  is  connected  to.   If  unset,
            /dev/bitscope  is used.  /dev/bitscope could be a symbolic link to
            the real device such as /dev/ttyS1.

       ESPEAKER
            The host:port of the EsounD to connect to  if  built  with  EsounD
            support.  If unset, localhost is assumed.  If no EsounD connection
            is made or if there is no EsounD support compiled in, then xoscope
            will try to read /dev/dsp directly.

LIMITATIONS

       The  sound  card  should  be capable of 44100 Hz sampling via the sound
       drivers.  You must use an external mixer program to  select  the  input
       source  device, level, etc.  Since these unknowns affect the amplitude,
       there is no reference to voltage on the Y axis; it is in fact, unknown.
       Instead  you’re  given  the scale in pixels per sample unit.  Note that
       the serial oscilloscope devices don’t have this limitation.  They  have
       real voltage labels on the Y axis.

       Signal  math  is  only  valid if Channel 1 and 2 contain signals of the
       same sampling rate.  It is up to you to make sure  this  is  the  case.
       Doing  math on signals of different sample rates will produce incorrect
       results!

       The automatic measurements count zero crossings and divide to determine
       the  frequency and period.  If these zero crossings are not "regularly-
       periodic",  these  measurements  could  be   invalid.    Xoscope   does
       understand  how  to  measure the built-in FFT functions by locating the
       peak frequency.  Use manual cursor  positioning  to  get  more  precise
       measurements.

       Your  sound card is most-likely AC coupled so you will never see any DC
       offset.  You probably can’t get DC coupling by just shorting the  input
       capacitors  on your sound card.  Use serial hardware to see DC offsets.

       The display may not be able to keep up if you give it too much to plot,
       depending  on  your  sound  card,  graphics  card, and processor speed.
       External math commands are particularly expensive since the kernel must
       then  split  the  available  CPU  cycles across multiple processes.  To
       maximize refresh speed, hide all unneeded channels, use point or  point
       accumulate  mode,  zoom in on Sec/Div as much as possible, and turn off
       the graticule.

BUGS

       The keyboard interface may be confusing.

AUTHOR

       Oscope was written  by  Tim  Witham  (twitham@quiknet.com),  originally
       based on "scope" by Jeff Tranter (Jeff_Tranter@Mitel.COM).  Most recent
       work is by Brent Baccala (cosine@freesoft.org).   Xoscope  is  released
       under  the conditions of the GNU General Public License.  See the files
       README and COPYING in the distribution for details.