Oscilloscope

An oscilloscope (often abbreviated o'scope or scope) displays signal voltages as a 2-D graph, usually as voltage (vertical axis) as a function of time (horizontal axis).

The o'scope is one of the most important pieces of test equipment because it lets you look at what is happening in different parts of a circuit. Without it you are almost blind ( multimeters and logic analyzers can also help you "see" ).

The probe of a o'scope is held against, or is clipped to, the metal wire carrying the signal of interest.

A dual-trace o'scope has 2 probes, so 2 different signals can be seen -- so not only the shape of the signal can be seen, but also the exact time from events on one signal to events on the other signal.

Techniques

Sometimes one wants to look at a 8-bit data bus -- typically one uses a "logic analyzer" to look at lots of time-aligned digital signals.
For a given number of signals to look at, oscilloscopes (which show the true analog waveform) are much more expensive than logic analyzers (which only show if a digital waveform is hi or low, above or below the logic threshold).
Many people buy both a (dual-trace) o'scope and a 16-trace logic analyzer, which together have a total cost less than one true 8-trace o'scope.

... more techniques ...

Hardware issues

Here is a useful discussion comparing low-cost USB oscilloscopes with older analog scopes available for comparable prices; it is a 9-minute video, with a useful forum-type discussion (some mildly rude language is used to describe USB scopes). The conclusion is that the low-cost USB DSOs have attenuators and triggering circuits which do not perform well at higher frequencies, and are not recommended. Quality DSOs do not suffer from these problems, but all except the very best and most expensive have storage limitations which cause problems in the particular case of observing a high frequency signal at a time/div setting much longer than its period, e.g., two complete TV fields at a setting of 40msec/div.

Open Source Oscilloscopes

Of course, you have to already have a working o'scope in order to build and test another o'scope, making this the same sort of chicken-and-egg problem as the RepRap project, the GCC project, and other projects David Cary finds interesting.

This problem in respect to oscilloscopes can be solved by incremental development. First start of working your way towards acquiring analog data using an ADC connected to some sort of processor or controller. Then build a cheap device that provides a somewhat defined test signal (simple timer works just fine). Now you can go to the next step of learning about and building an analog front-end that will be connected to the ADC. Then you'd start thinking about how data flows through the system, beyond the ADC and the processor (definitely to to memory and later on the display, maybe to non volatile storage like USB mass storage). That's basically it. Okay, you need to build and hookup a display and a keyboard but what you have is (at least in theory) the central parts of an oscilloscope.

XMEGA Xmegalab Development Kit and Oscilloscope

$249 The Xmegalab is a development board for AVR XMEGA microcontrollers, a dual channel oscilloscope, an arbitrary waveform generator and a scientific calculator. Xmegalab. Alpha version of the firmware (mostly in C) has been released under the GPL. Serial port; SD Card with FAT File System support, etc.

Closed, COTS Hardware for PC Oscilloscopes

For low frequencies, pretty much any external sound card with a line input will work. External card line inputs generally have a range around 0-1 V whereas onboard microphone inputs only have up to about 50 mV, which just isn't enough sensitivity. The Virginia Tech Lab-in-a-Box recommends the Behringer UCA202. To use a sound card oscilloscope on a regular basis, a circuit with variable attenuation is recommended (i.e. 1x and 10x). Compensation for the hardware and software gain can be done as part of the attenuator circuit or in software.

For mixed-signal development, where debugging requires you to see both analog and digital signals at the same time, oscilloscopes intgrated with logic analyzers are needed. More advanced features here include protocol decoding, which allows you to easily see the values sent over digital interfaces.

Sourceforge: xoscope is a digital oscilloscope for Linux that uses input from a sound card or EsounD and/or a ProbeScope/osziFOX and will soon support Bitscope hardware. The sound card device is hard-coded but instructions for modifying it are on the VTLUUG wiki.

Baudline GPL version is a signal analyzer designed for scientific visualization, using input from recorded data files or from a sound card. For Linux / Solaris. The source code is expensive and it is intended for corporate buyers.

Miniscope v3 and Miniscope v4 are digital oscilloscope software for Windows. They connect to device using external dll. Libraries are available to connect with sound card, Microchip MCHPUSB Generic HID Demo and custom AT91SAM7S64 hardware. V4 supports an unlimited number of channels, but is more complex than single-channel V3.

Digital Soda is a simple GTK+ frontend for the DSO-2250 USB oscilloscope for Unix/Linux.

Osqoop is an open source software oscilloscope. Osqoop project features an arbitrary number of channels and long acquisition durations. Signal processing and external peripherals control is possible through a plugin architecture.

BitScope DSO is a digital oscilloscope logic analyzer for Linux and Windows. Software itself is free, but works with BitScope hardware, at AU$300-1500.

Zeitnitz Souncard Scope and function generator. For Windows but runs under Wine. Free of charge (but explicitly described as not freeware) for private and educational use, otherwise available for purchase.

"Handheld Multifunction Scope" by Jingxi Zhang & Yang Zhang, 2007. "dual-channel oscilloscope supports 250 ksps for each channel". ... also: ohmmeter, capacitance meter, and inductance meter ... pulse generator ... small speaker and OLED output. All functions work stand-alone with OLED display, but it can also be to a host PC with the USB port to display waveforms on the PC display.

"The µSCOPE: A poorman's oscilloscope" by Ronald Dekker. An extremely small and low-cost circuit based on the 8 pin Microchip PIC12f675; displays "signals up to a few kHz" on a PAL TV screen. "isochronous code".

Oscilloscope Design Discussions

Some low-cost oscilloscopes

some low-cost oscilloscopes, in no particular order.
... it would be nice to mention sampling rate, # of analog input channels, # of digital input channels, whether it can be used under Linux, does it have output channels ... price should (?) include 2 analog probes, ... is it open hardware? ... anything else?

(about US$400.00) GAO2250 100MHz 250MS/s USB PC Oscilloscope, Gaotek Inc. A Canadian source for the DSO-2250. 2 input channels plus trigger. Provision for ground and calibration. Windows only, AFAIK, no Linux. Gao's latest website doesn't quote a price, but when I got mine it came to about CAN$500, including US conversion and Canadian taxes. [49]

US$50-450 approx. second-hand, TWD120, Tektronix digitiser from 1995, with software is full-functioned 2-channel 100MHz, 100Ms/s, 5,000 data point digital storage oscilloscope with similar capabilities to TDS320. Uses SCSI interface to PC running, officially, Microsoft Windows 3.1; PC needs PCMCIA, Expresscard, PCI, or other SCSI interface (some USB SCSI interfaces only work with storage devices). Known to run under all 32-bit Windows versions up to 7. Can have issues with SCSI cards, resolvable with some Web searching and knowledge, and Regis Crellier's shim .DLL. Dedicated Tektronix software only, no official information available on command protocol to adapt other software.

Further Reading

External Links

"Scoping out palm-sized USB oscilloscopes" by Jack Ganssle 2005, Embedded Systems Design. A review of 3 USB oscilloscopes -- reader comments at the end mention a few more USB o'scopes. (FIXME: make sure all the scopes mentioned are included on the above list)