Nav:  [home][elec][analysis] > [USB-LiveOsci]
Go:  [index] [software]

Electronics -- USB Live Oscilloscope

A little 10MS/s USB-2.0 ("high speed") oscilloscope with two 8 bit sampling inputs. Each of these can be used either as analog input with an 8 bit AD converter (oscilloscope mode) or as 8 distinct digital inputs (logic state analyzer).


The design goal was to build a fairly simple device which allows to digitize signals with frequencies ranging from DC to around 1MHz with very long sampling buffer (i.e. millions of points).
Since I had the USB-FX2 board laying around already, the design was straightforward: A little board glues together a sampling clock generator and 2 input boards (analog or digital), each with 8bit interface to the USB-FX2 - and the rest is about writing software.

USB Live Osci board image (top) [15kb]
[click to enlarge: 224kb JPEG]


  • Very simple hardware design; most functionality provided by software.
  • Two 8-bit channels, each configurable as 8bit analog input or 8 digital inputs.
  • Sampling rate: Tunable in 8 steps from 50kS/s to 10MS/s.
  • Live transmission of data stream allows storage of nearly unlimited number of samples.
  • Analog input sensitivity: 1Vpp or 2Vpp, DC coupled with 2.5V common mode.
  • Digital input: Schmitt trigger, 3.3V or 5V CMOS levels.
  • USB-powered operation.

This image shows the USB Live Oscilloscope: The bottom-most layer is the USB-FX2 board, on top there are two 8bit input boards next to each other (left: digital, right: analog) and in between, there's the "glue board" which does little more than connecting the parts. The clock generator is sticked on the bottom to the glue board and cannot be seen on this image.


The USB Live Oscilloscope consists of the following parts:

  • USB-FX2 board for USB data transmission. The version here applies a Rev.1 board but a Rev.2 board will just work the same.
  • Main board: This is the "glue" board in the middle where everything else gets plugged into.
  • Clock generator to generate the sampling clock at varying frequencies.
  • ADCV input board to digitize analog signals.
  • Digital input board for 8 digital Schmitt-trigger inputs.


Writing software which sends and receives data over the USB is not really hard these days but writing something which is capable of receiving data at a constant rate of 20MByte/s is not so easy since you have to use asynchronous IO and a dedicated data transfer thread.

The complete source code of my software including the firmware for the USB-FX2 board (and the clock generator) is available on the software page.

More Photos

USB Live Osci board image (side) [10kb]
[click to enlarge: 111kb JPEG]

This is the side view corresponding to the image on the top of this page.

Top layer: Input boards (ADCV input board in front and digital input board in the background).

Middle layer: Main board.

Bottom layer: USB-FX2 board on the left and the tiny clock generator on the right.

USB Live Osci board image (top) [7kb]
[click to enlarge: 141kb JPEG]

USB Live Oscilloscope without clock generator and USB-FX2 board.

Note that the analog input board on all these photos is the revision 1 while the circuit schematic shows rev. 1b with additional 1M biasing resistor (R3) and external common mode connector (CM_OUT).

[home] [site map] [Impressum] [Datenschutz/privacy policy]
Valid HTML 4.01!
Copyright © 2006 by Wolfgang Wieser
Last modified: 2006-08-19 14:42:02