Low Speed AVR Oscilloscope V2.00 (Is Updated on 19 Mar 2011)




>> The firmware was updated on 19 Mar 2011 <<

A few months ago a friend of mine -car mechanical at profession- told me that he had problem with some car sensors. He couldn't check, with a simple multimeter, if a sensor was working properly. I advised him to buy a LCD oscilloscope instead of a normal oscilloscope, because of its small size. The use of an oscilloscope is very helpful because you can see the waveform that is produced by a "healthy" in-circuit-sensor* and you can compare it with the waveform of a "suspect" in-circuit-sensor.
After that, he told me that this oscilloscope costs a "fortune" for him as he has a small car service shop. I offered to help him by designing and constructing a small, cheap and workable LCD oscilloscope for him.

*in-circuit-sensor is the sensor which is connected on a board (PCB) or it's connected somewhere in the car. It's not a disconnected sensor.

You can download the source code, hex, schematic diagram,PCB and picture of the circuit .

Step 1: Selecting the Components

As the circuit has to be constituted by a few and cheap components, I chose the DEM128064A graphical LCD based on KS0108 controller chip to display the measured signals. The ATmega32 microcontroller is chosen because it has a lot of IN/OUT pins and a 2kB RAM size. 1kB is needed from gLCD and some bytes of the rest 1kB are used in C source code as registers. Because my oscilloscope has to read both AC and DC currents and at the same time it should have a High input resistance, I chose to use an LM358 which is a dual operational amplifier. The rest components like LM7805 , capacitors and resistors are very common and I won't refer to them.

Step 2: Designing the Schematic Diagram

After I had chosen the components, I had to draw the schematic diagram of this circuit. For this purpose I used the Splan 5 that is not freeware but it is a very cheap schematic diagram software.

Step 3: Making the Prototype

The prototype was made on a dual breadboard and the microcontroller was placed on an STK500 development board (see photo). I haven't taken any photos from the prototype board. So, I can show you only the boards without the components I used on them.

Step 4: Putting the Components in Order

The breadboard circuit was temporary. It was the time to make the PCB for my AVR oscilloscope. The software that I used to draw the PCB is the Sprint layout 4. It is a really easy-to-use, cheap and efficient software to make your own PCBs.
I made my PCBs by myself by using toxic chemicals. That's why I don't describe the procedure. It's very dangerous. I suggest you to give the transparency that you will print to a professional to make the PCB for you.

Step 5: Soldering, Calibrations and Usage.

Solder all components on PCB, starting from the smallest and go on to the biggest component. Check the PCB from soldering side for shortcuts that could have been made during the component soldering. Remember to put IC3 on a base, so the removal for future reprogramming can be done very easily.

If everything is ok, supply the circuit with 12V Dc. On the screen you will see the oscilloscope's raster with a horizontal line on it. Adjust P1 (LCD contrast) with a small screw driver up to the point you will see clearly the content of the screen. If you adjust the P2 you will see that the horizontal line (beam) will be moved up or down depending on the adjustment of P2. Adjust the P2 to set the beam at the center of the screen.

Connect a 1:10 probe at BNC connector (K1) of oscilloscope. Now you are ready to make your own signal measurements. Take care not to exceed the maximum input voltage which can be up to 24V Ac or 30V Dc on 1:10 selection prob. At 1:1 the maximum input voltage can be up to 2.5V Ac or 5V Dc. S1 gives an extra input voltage division by 2. With S2 you can select between AC or DC input signals.

Step 6: Oscilloscope Demonstration

See AVR oscilloscope v2.00 in action!

See more of my projects at http://www.serasidis.gr

Thank you for reading
Vassilis Serasidis



  • Sweet Treats Challenge

    Sweet Treats Challenge
  • Paper Contest

    Paper Contest
  • Organization Contest

    Organization Contest

69 Discussions


4 years ago on Introduction

Can you help with the Code , in understanding it . and can sm1 plz upload the board file and schematic file. I can save smtym. Thanks In Advance


4 years ago on Introduction

mr, seradis..i.am .. trouble when burn atmega 32.i.am .. ask for help .To give way detail..i.am burn atmega 32 .... using kazama avr programmer, aid needs. I appreciate you., This e-mail me ... odiprasuma@gmail.com...


4 years ago on Introduction

Another similar interesting project: https://github.com/hassansin/atmega16-portable-oscilloscope


4 years ago on Introduction

hi, i want the progame of atmega 32 base avr oscilloscope


4 years ago on Introduction

Looks like a cool project and usefull aswell. But i got a couple questions. Is it possible to use a blue screen like this? And what is K1 called? And last question. To programm it you just need to add an 2x5 male connector and burn the hex with an ISP programmer?

Hope to get an respond!

3 replies

Reply 4 years ago on Introduction

1) >> Is it possible to use a blue screen like this?
No. Uses different LCD controller and pins. Only the resolution is the same (128x64 pixels)

2) >> what is K1 called?
Oh! I left the description in Greek language. I re-uploaded the schematic diagram in English.
Well, on that pin is connected the probe. Probe is a tool like that one on the attached picture.

3) >>To program it you just need to add an 2x5 male connector and burn the hex with an ISP programmer?
If you want you can do that! I programmed the ATmega32 with my STK500 programmer that already has a 40-pin DIP size socket for adding ATmega32 and burn the firmware.

I hope I answered your questions.

Vassilis Serasidis


Reply 4 years ago on Introduction

Thanks for the answer! So i need an LCD screen wich is controlled by an KS0108. So something like this? And what size connector did you use for the probe?

Hope to get an respond!


4 years ago on Introduction

hi , more power, i made this project by ver1. programming carefully but the avr speed is very low! you now 5 khz is very down frec. for electronic devices . is ver.2 speed more than ver1. program?

thanks for you..

1 reply

Reply 4 years ago on Introduction

Version 2 gives the voltage and frequency indication of the measured signal. Moreover I did a little bit improvement to the source code and the max measured signal increased from 5kHz to 7.5 kHz.

It's not big deal that because the internal Analog to Digital Converter (ADC) of ATmega32 is limited to 15 kilo samples per second, that reads max 7.5 kHz square waves. If you want to read triangular pulses then the maximum kHz of the measured signal is much lower.


5 years ago on Introduction

I have been trying to build the program(given on your website

as 'source code for V2')using AVR STUDIO 4.But when I 'Build and Run'

it in STUDIO,I recieve multiple errors like 'glcd.c:-No such file or


In AVR studio,I have also included the source file and header

file included in the source code.

I am a begineer in using AVR studio,so plz forgive my ignorance.

ALSO,will the circuit work directly if the ATMEGA32 is burned

with the given hex file as per the instructions on the site ?


6 years ago on Introduction

I implement this but my lcd does not show any measurement....tell me whats the problem behind this so I will reduce this problem.....waiting for your replies...

Look at adafruit.com that is where I bought mine you can get it with a blue background with white text or black background and white text

I know most of the parts are common but it is hard to read what they are from the schamatic may I have the parts list? I have the micro controller, screen and the amplifer but I am having a hard time reading the values of the other compoients.

4 replies

My total price is just under $42 I have some parts still in the mail but I will post a photo of it once I have it together and working

I have a list of most of the parts but I don't know what the vale of D1. I did a searchfor 8V2(that is what it says on the schematic) and could not find it on jameco.

Thanks I have found the parts at jameco.com but the screen I found the screen at adafruit.com and my total price is around $45 -50 USD if you buy all new parts and 30 of it is the screen