oscope - Digital Oscilloscope via Sound Card and/or ProbeScope/osziFOX

Copyright (C) 1996 - 1999 Tim Witham <twitham@quiknet.com>

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or (at
your option) any later version.

This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

	(see the file COPYING for more details)

Latest official version is available by anonymous ftp at:

		ftp://sunsite.unc.edu/pub/Linux/apps/circuits/

The latest version, binary releases and more is available at:

		http://xoscope.bstc.net/


	SUMMARY:

x*oscope is a digital oscilloscope that uses a sound card and/or Radio
Shack ProbeScope (Cat. No. 220-0310) a.k.a osziFOX as the signal
input.  Either or both devices may be used simultaneously.  You may
find the manual for Radio Shack's ProbeScope device at:

	http://support.tandy.com/support_meters/33352.htm

This device is also known as osziFOX and you may be able to get more
information on and pictures of it at:

	http://www.wtt-germany.com/index.html

http://xoscope.bstc.net/ may have pre-built binary releases and RPMs
of xoscope.  You may want to try one if you're in a hurry or if you
have problems building this from source.


	NEW for 1.5 (see also the files ChangeLog and TODO):

* GTK+ support for building the xoscope X11 client

	+ This release supports 1.0 now but future versions will
	  require 1.2 or higher.  You can ignore the menu_factory
	  warning if you build with 1.2+.  This warning will go away
	  in 1.6 and is why GTK+ 1.2 will then be required.

	+ keyboard interface works as in all other interfaces

	+ nearly everything is also available from the menubar

	+ double buffered display (no loss if you cover it up)

	+ xoscope will build with GTK+ (default) *or* libsx, see Makefile

* Bug Fixes / Enhancements

	+ sound card sample rates fixed (i.e. 44100, not 44000).

	+ smarter more correct sound card buffer flushing and syncing

	+ this results in a faster refresh rate in real-time

	+ new frame per second display shows actual refresh rate

* New example data files to load or look at

	+ audio.dat: good for watching stereo audio

	+ proscope.dat: good for using ProbeScope/osziFOX

	+ oscope.dat: default settings, good for resetting


	WHAT YOU NEED:

LINUX:

All things mentioned here can be obtained by anonymous ftp or the WWW.
A recent version should be available at the site listed.

* You will need a mixer program to select input source and levels.
  Examples are "xfmix", "xmix", and "aumix".

	ftp://sunsite.unc.edu/pub/Linux/apps/sound/mixers/

* You will need "GTK+" to build the X client (highly recommended).

	http://www.gtk.org/

* OR you can use "libsx" to build an X client if you don't have GTK+.
  You only need to make src/libsx.a then move it to somewhere like
  /usr/local/lib or /usr/lib.

	ftp://sunsite.unc.edu/pub/Linux/X11/devel/libraries/clibs/

* You will need "libvga" from the "svgalib" package to build the
  SVGA console version.  You may already have this in /usr/lib.

	ftp://sunsite.unc.edu/pub/Linux/libs/graphics/

* You will need "libvgamisc" from the "g3vga" kit to get text on the
  console version (highly recommended if you use the console version).
  You only need to make misc/libvgamisc.a then move it to somewhere
  like /usr/local/lib or /usr/lib.

	ftp://sunsite.unc.edu/pub/Linux/apps/graphics/viewers/svga/

If you don't have these libraries, or if they're in strange places,
you will need to tweak the Makefile.  See the Makefile and config.h
for configuration options.  If you don't have GTK+, libsx or
libvgamisc, you will have to read the manual page and memorize the
controls since they can't be displayed on your screen (bummer!).  If I
were you, I'd get the libraries instead. :-)

If you have X11 and would like to do simultaneous Spectrum Analysis,
see the file README.f51 for extra optional instructions.

DOS:

I never use DOS, so I've only confirmed that it will build by cross
compiling from Linux.  I know that version 1.4 ran on DOS, so there's
no reason why this one shouldn't either.

* You will need a mixer program to select input source and levels.
  Your sound card maker probably supplied one.

* You will need DJGPP V2 and GRX20 to build from source.  Newer
  versions should work but I haven't tried them.  You will also need
  CWSDPMI or some other DPMI host.

	http://www.delorie.com/djgpp/
	ftp://ftp.simtel.net/pub/simtelnet/gnu/djgpp/
	ftp://ftp.simtel.net/pub/simtelnet/gnu/djgpp/v2/readme.1st
	ftp://ftp.simtel.net/pub/simtelnet/gnu/djgpp/v2tk/grx20.zip
	ftp://ftp.simtel.net/pub/simtelnet/gnu/djgpp/v2misc/csdpmi3b.zip

* If you'd like the original source of the sb02.zip and svasync.zip:

	http://oak.oakland.edu/pub/simtelnet/msdos/sound/sb02.zip
	ftp://ftp.delorie.com/pub/djgpp/contrib/svasync.zip


	INSTALLATION:

LINUX:

* edit Makefile and config.h if necessary

* make

* make install

If you don't install as root, you will need to become root and:

* chown root oscope

* chmod u+s oscope

* chmod go-w oscope

since the svgalib can only be started by root.  xoscope doesn't
require any special permissions.

DOS:

* uncomment some of the DOS sections of Makefile

* make

* copy OSCOPE.EXE onto your PATH

* make sure you have CWSDPMI.EXE on your PATH


	USAGE:

Please see the man page for instructions on how to use x*oscope.  Also
use the option `-h' to show command-line options, and the `?' key to
show the key help.  If you're interested in doing advanced signal math
at run-time, see the operl and offt.c external math command examples.


	PLATFORMS:

LINUX:

/dev/dsp supported sound card & ProbeScope/osziFOX optional

x*oscope was developed specifically for Linux on:

 - Linux kernel 1.2.10	and later on:	2.0.36
 - gcc 2.6.3				2.7.2.3
 - svgalib 1.2.9			1.2.10
 - libsx 1.1				GTK+ 1.0.6
 - SoundBlaster 16
 - ATI Win Turbo 2MB VRAM
 - 32MB RAM				96MB RAM
 - 100 MHz Intel Pentium(R) Processor	Celeron 300A

DOS:

sound blaster compatible card & Radio Shack ProbeScope optional

Oscope runs on DOS but with only mono (one channel) sound card
sampling, so X = Y.  ProbeScope support works on DOS.  It should also
work from Windows 3.1 or Windows 95, but may not be as stable.

x*oscope can be ported to other platforms by simply writing display
(gr_*.c) sound card (sc_*.c) and serial port (ser_*.c) connections.


	EXTRA:

If you like to build things, check out the HARDWARE file.


	CREDITS:

Thanks to:

Jeff Tranter <Jeff_Tranter@Mitel.com> for writing the original
scope-0.1 that inspired all this.

Philip VanBaren <phillipv@eecs.umich.edu> for the realfft.c code from
his freq program.  If you want a Spectrum Analyzer, you should get
Philip's freq program and read README.f51.

The many folks working on the way cool GTK+.

The Cthugha-L program (Torps Productions, Harald Deischinger
<k3096e5@c210.edvz.uni-linz.ac.at>) for inspiring the X11 client and
some coding ideas.

Dominic Giamapolo <dbg@sgi.com> for libsx which made the original X11
client possible.  Also, freq.c and dirlist.c are from libsx.

Mitch D'Souza <Mitch@Dubai.Sun.COM> for libvgamisc which makes the
16-color console text possible (from his "g3vga").

For the DOS port, DJ Delorie (dj@delorie.com) for DJGPP and to Charles
W Sandmann (sandmann@clio.rice.edu) for CWSDPMI which together allow
the 32 bit code to work on DOS.  To Gerhard Kordmann
(kordmann@ldv01.Uni-Trier.de) for sb02.zip which made the sound card
work.  And to Sam Vincent (svincent@cs.sonoma.edu) for svasync.zip
which made the serial connection to ProbeScope possible.


	DISCLAIMER:

This was written by me on my own time and equipment.  My employer has
absolutely nothing to do with it.  See also the file COPYING.

Please send any comments, bug reports or suggestions to me:

-- 
Tim Witham <twitham@quiknet.com> a.k.a. <twitham@pcocd2.intel.com>
