This is an amazing DIY oscilloscope that is controlled by a WinAVR microprocessor. The source code, schematic and PCB are all well documented and available for download. If you try this one out, don’t forget to post it in the MAKE flickr photo pool – Link
32 thoughts on “AVR oscilloscope”
Interesting and nice design… but having a max signal freq of 1khz for sinewaves sorta defeats the purpose. I’m wondering what the price was on this, maybe if it was real cheap it’d be worth it.
Lets see… $10 for the microcontroller, $20 for the display, probably $5 for the PCB (if you etch it yourself) and $10 for the rest of the components.
So a rough estimate for a single unit would be about $45. YMMV – I took the prices for the display and controller from SparkFun Electronics.
WinAVR is in fact the compiler he used, not the microcontroller. It’s simply GCC configured as a cross compiler targeting the AVR chip, plus the linker and other tools. The chip is an Atmel ATmega32, one of the larger AVRs. Nice design!
really great design,
An inexpensive (less than $100) and portable mini-scope like this should be on the market just for quick verifications.
You could replace the 8bit AVR with a $5 dsPIC33 that is 40mips, single instruction cycle 16 bit multiplies, and has 12 bit ADCs. definitely get better performance at no extra cost. I think they have dip versions of the 28 pin chips.
Responding to the comment about the 1kHz frequency limitation… at what frequencies does this become useful?
Hello to everyone. I am the designer of this oscilloscope.
Any question about this project is welcome.
i have a question. how good is this at catching very sharp transients? i.e. very, very sharp (almost completely vertical) quick spikes, pulsations of a very short duration?
Something like this would be a good topic for a multi-weekend PODCAST.
Nice design. Saw this on instructables a while back.
To MikeDC – Someone already built it!
It looks like it can display things up to a couple hundred khz and it has fft.
This AVR oscilloscope also has instructable:
>>i have a question. how good is this at catching very sharp transients? i.e. very, very sharp (almost completely vertical) quick spikes, pulsations of a very short duration?
You can watch the demonstration video on my web site. The last waveform in the video is a triangle waveform. In this case you can watch only the upper and lower horizontal lines of the signal.
This oscilloscope can measure up to 5kHz signals due to the low speed internal ADC (Analog to Digital Converter).
Students in Cornell’s ECE 476 microcontrollers course implement a 15 kHz oscilloscope that outputs NTSC, so you can use your TV as the display. It is one of their weekly labs.
The ATmega32 microcontroller has an internal ADC (Analog to Digital Converter) that can measure up to 15kSPS (kilo samples per second). That means it can measure up to 7.5kHz because it needs at least 2 samples for one Hz.
I don’t know how did these Students succeed to measure 15kHz with internal ADC of ATmega32.
Whoops, sorry, didn’t look too closely when I was quoting the sampling frequency vs sampling bandwidth. You’re right, of course, the maximum recoverable frequency is 7.5 kHz, unless you start playing around with bandpass sampling. :)
This DIY oscilloscope is so amazing and useful. You must put a lot of time on it. Thanks for sharing! http://www.astrabeds.com/adjustable-beds.html
how can one continuously read the ADC while running other code?
Comments are closed.