Picture of the ProbeScope box
The ProbeScope Protocol
An X-windows Program
Links to other 'scope sites



The Radio Shack ProbeScope is a low cost digital oscilloscope with RS-232 output. The probe is the entire oscilloscope. It samples the signal at a rate of up to 20 million samples per second and has a six bit analog-to-digital converter. The sample buffer is 128 bytes deep and a small LCD displays 32 bytes of the 128 byte sample. The unit has an RS-232 output so a larger, more complete display can be shown on a Linux PC. It has two small push buttons: one to select a menu on the LCD and one to select items within the menu. External switches set the full scale voltage range and the type of coupling.

The ProbeScope is made by Wittig of Germany and is sold by Pico Technology Limited as the OsziFOX. The OsziFOX is available in the U.S. from the Salig Company (http://www.saelig.com/osziFOX.htm) . Radio Shack sells the ProbeScope only by catalog and it is listed in their "2000 Answers" catalog as part number RSU11910486 with a price of $79.99. The catalog number printed on the manual is 220-0310. An alternate part number is 910-4905.

The scope samples at a maximum rate of 20M samples/second and it does a pretty good job for analog signals up to about 2 MHz. Although I have other oscilloscopes, the ProbeScope is now my 'scope of first choice. It is small, convenient, works as a DVM, and has the frequency range to meet most of my needs.

Shown below are the ProbeScope layout and specifications which were taken from the ProbeScope manual.

Layout of the ProbeScope

Sample Rates    50ns, 100ns, 0.5us, 1us, 5us, 10us, 50us, 0.1ms, 1ms
Input ranges    1V, 10V, 100V
No of channels  1, 1M ohm AC/DC coupled
Trigger         Internal, external.  Positive or negative slope
Trigger levels  6 selectable levels
Resolution      6 bit
Buffer size     128 bytes
Voltmeter       AC/DC
Display         16 x 32 Back-lit LCD
Supply voltage  9V to 13V @ 13mA (cable included)
PC connection   D9 to serial port (cable included)



The ProbeScope Protocol

All configuration of the ProbeScope is done on the unit itself and so it needs only ground and Tx on the RS-232 line to send the trace samples to the computer.

Sync bytes are sent about once a second while waiting for a trigger. A sync byte always starts the trace and is followed by the settings of the scope and 128 sample bytes. It appears the byte following the 128 sample bytes is a duplicate of the first sample byte. The ProbeScope can act as a Digital Volt Meter and following the sample bytes are the DVM digits. The protocol is given in the Windows help file on the floppy disk but this file might be in error since it does not include the duplicate byte.

Serial Data Protocol

Baud Rate:      19.200 KBaud 
Data Bits:      7
Stop Bit:       1
Parity Bit:     NONE

Sync Byte:      7F Hex. Several sync bytes may appear while
                waiting for a trigger.  The sync byte can
                also used to detect whether the hardware is
                Bit 6 = always set
                Bit 5 = always set
                Bit 4 = always set
                Bit 3 = always set
                Bit 2 = always set
                Bit 1 = reserved
                Bit 0 = Trigger Awaiting mode

Byte 1:         Switch Setting Byte
                Bit 6 = not used
                Bit 5 reset = AC
                Bit 4 reset = DC
                if Bit 4 and 5 are reset = Gnd 
                Bit 3 set = 100 Volt
                Bit 2 set = 10 Volt
                if Bit 2 and 3 are reset = 1 Volt
                Bit 1 = not used
                Bit 0 = not used

Byte 2:         Timebase Definition Byte
                0 = 50ns                6 = 50µs
                1 = 100ns               7 = 0.1ms       
                2 = 0.5µs               8 = 0.5ms
                3 = 1µs                 9 = 1ms
                4 = 5µs                 
                5 = 10µs

Byte 3:         Trigger Definition Byte, true if set    
                Bit 6 = not used
                Bit 5 = +INTERN
                Bit 4 = -INTERN
                Bit 3 = +EXTERN
                Bit 2 = -EXTERN
                Bit 1 = not used
                Bit 0 set =SINGLE
                Bit 0 reset =RUN
                if Byte & 7E Hex = 0 = AUTO

Byte 4:         Trigger Level Byte, true if set 
                Bit 6 = not used
                Bit 5 = -0.3
                Bit 4 = -0.1
                Bit 3 = +0.1
                Bit 2 = +0.3
                Bit 1 = +0.5
                Bit 0 = not used
                if Byte = 0, lvl=-0.5

Bytes 5-132:    Signal Bytes
                Valid Values available from 0 to 3F Hex.

Byte 133.       Duplicate of first signal byte (?)
                (not included in protocol in the help file)

Byte 134.       DVM Value (100), 0-9

Byte 135.       DVM Value (10), 0-9

Byte 136.       DVM Value (1), 0-9

Byte 137.       DVM Flags, true if set 
                Bit 6 = not used
                Bit 5 = not used
                Bit 4 = not used
                Bit 3 = minus flag set
                Bit 2 = reserved 
                Bit 1 = overflow flag set
                Bit 0 = underflow flag set


Here, pproto.c, is a simple program which demonstrates the protocol used by the ProbeScope. The program opens a serial port and loops reading and displaying the trace data. It displays the heading information in both hex and in English. The samples are displayed in hex. The duplicate and DVM bytes after the samples are also printed in hex.

The program implements a state machine. Since the program could start reading bytes in the middle of a sample, we start by looking for a sync byte. Once the sync byte is found we start looking for the start of a trace. Once the trace starts we count 137 bytes to get to the end of the trace. This program is the foundation upon which the Xlib program, xProbeScope, is built. The program might be a good place to start if you would like to build a dedicated application using ProbeScope.

The program has just a single file, pproto.c, and is compiled with the command:
   gcc -o pproto pproto.c

The program requires a single command line argument which specifies the serial port to use for access to the ProbeScope. An invocation might appear as:
   ./pproto /dev/ttyS1


Xlib Program for ProbeScope

Here, xProbeScope.c, is an Xlib program which reads samples from the serial port attached to ProbeScope and displays the values on an X display. The program is based on the pproto program which is described in the previous section.

The program is a fairly simple example of an Xlib program which uses select() to multiplex the X display and characters from a serial port.

The program has just a single file, xProbeScope.c, and can be compiled with the command:
   gcc -O2 -Wall -I/usr/include/X11 xProbeScope.c -L/usr/X11R6/lib -lX11 -o xProbeScope

The program requires a single command line argument which specifies the serial port to use for access to the ProbeScope. The program is terminated by any key hit. An invocation and display might appear as:
   ./xProbeScope /dev/ttyS1

  Screen shot of a Triangle waveform

You can change the scale factors in the program to get different size displays. The above display was with scale factors of 3 pixels per sample (horizontally) and 5 pixels per LSB (vertically) . This means that the data display is (5 * 64) pixels high and (3 * 128) pixels long.
   #define SCALE_X 3
   #define SCALE_Y 5

  Here is the display with scale factors of 2 and 3 pixels.

  Screen shot of a Triangle waveform



Links to other oscilloscope sites

     http://www.RadioShack.com/ -- (online manual, search on ProbeScope)
     http://xoscope.sourceforge.net/ -- the definitive Linux oscilloscope

Bit Scope:
     http://www.circuitcellar.com/library/print/0898/Jackson97/5.htm -- Circuit Cellar Article 8/98

Quality Kits:
     http://www.qkits.com/serv/qkits/velleman/pages/K7105.asp -- serial interface
     http://store.qkits.com/moreinfo.cfm/K8031 -- parallel interface

     http://www.carrotworks.com/software/xpshotrt/ - uses /dev/dsp and Gtk+

     http://secure.netroedge.com/~phil/tekscope/ -- Tektronix TDS-200!!