USB Oscilloscope
This one's an oscilloscope connected to a computer using the USB bus. This is probably the cheapest oscilloscope on the market, but maybe also the worst... The scope can only record 15479 samples per second.

Update: As this project is quite old already, being from 2007, it only works with the old Windows XP system. Thus I would advice against building this yourself.


The signals in the screenshots have been generated using a Meter International Corp. FG-503 DDS function generator.
A 100Hz sinusoid signal with 4V amplitude.

A 100Hz sinusoid signal with 30mV amplitude. A 100Hz sinusoid signal with 4V amplitude measured with 100 samples per second. You can see from the resonance that either the signal or the scope isn't exactly at 100Hz... A 100Hz triangle signal with 4V amplitude. A 50Hz square wave with 4V amplitude.

How does it work?

The brains of the oscilloscope is a Microchip PIC18F2550 microcontroller, which does the analog to digital conversion. It also buffers the results and sends the results to the host computer running the oscilloscope software. The microcontroller firmware has been written using C and the PC software has been written with C#.
The project uses the same PCB and the same firmware with my other USB project, the USB moodlight.


  • Firmware running on the microcontroller. A MPLAB 7.51 project containing the sources and the compiled .hex binary. (Also for the moodlight project.)
  • Software running on a computer. A Visual Studio 2005 project containing the sources and compiled binaries. (Also for the moodlight project.)
  • PCB file to be used with the ExpressPCB software.