USB Oscilloscope

Here’s a USB oscilloscope project from a few years back. It’s easy to build on a single-sided PCB and very cheap because it uses just a handful of parts. At the center, an ATtiny45 microcontroller uses its ADC capabilities for the two traces and also handles the USB connectivity. The internal oscillator is used and trimmed up for accuracy by referencing the USB clock. On the PC side of things, a program written in C# displays the data coming over the serial bus. Quick, small, and useful; a schematic, board layout, firmware, and PC software sources are all available for download.

[Thanks Shri]

21 thoughts on “USB Oscilloscope

  1. I saw one of these but it was using a pic, I had all the pieces to build it, I wanted to put some kind of input adjustment and protection on the front of it so I wasn’t blowing up microcontroller when I made a whoopsie. When I couldn’t figure it out I set it aside…

  2. It’s the sampling rate that kills this unfortunately. I built sth. similar with Arduino as voltmeter and Wiring as the host platform. Very simple to do but at 20kHz not too useful.

  3. i am the designer, macegr is true when he says it is more a voltmeter than a scope, but it gives a lot of possibilities for the bucks, temperature monitoring, power usage, battery charge so many things that are happy with a few samples/s.

    patrick, how do you get the DC component with your sound card ?

  4. i was wondering, as a newbie to the atmel/arduino world, how easy would it be to port this from this chip to a arduino 168, 328, mega aeduino, so that the arduino board is cloning the small atmel controller, but still using the original p.c. peogram with the arduino.
    has any one arempted this yet

  5. “port this from this chip to an(sic) Arduino”

    That’s going backward in quality and simplicity.

    This circuit’s MC is from the same general family as an Arduino’s MC. There’s no good reason to move from a solid non-Arduino project back to the noobish overkill that is Arduino.

    As far as the program, I haven’t even looked at it but being in C#, it should be exceedingly easy to interface with com ports to transmit and receive serial data over USB.

  6. yes, the bottleneck is the usb hid firmware inside the AVR, all is done by software, the decoding of the usb 12mbits/s is done in assembly.On the firmware side, it is not a newbee project. But if you can solder and you can flash a tiny, it is very easy to build, and so low cost

  7. @tim: Point taken, depends what the purpose of the board is. If you intend it as a “fast voltmeter”, then I’ll agree. However, I still can shortcut the analog filter in the input-stage if needed. Just to say: a scope with less than a few kilosamples/s is rarely useful in practice.

  8. I am having difficulty with my pc recognizing this as a HID USB device. The pc recognizes it as a usb device, but doesn’t know what it is so it disables it. What am I doing wrong?

    Also, what do you mean by “Do not forget to set the fuses for internal PLL clock” and how do you do that?


Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.