Introduction: 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.


Soldering
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.

Calibrations
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.

Usage
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

Comments

author
hamrique made it! (author)2014-08-11

Finally I did it...
Its my FYP :)

IMG_20140811_155305.jpgIMG_20140811_155316.jpgIMG_20140811_155340.jpg
author
mohammad_sm63 (author)hamrique2015-03-04

Hi

You really make it ?

pleas help me to make it

What is the list of accesoreis ?

author
naveed8695 (author)2015-01-25

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

author
odip (author)2014-12-06

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...

author
ForhadurR (author)2014-10-18

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

author
rahulb2 (author)2014-09-30

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

author
hamrique (author)2014-08-11

author
Steve25 (author)2014-05-12

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!

author
serasidis (author)Steve252014-05-13

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.

Regards,
Vassilis Serasidis

Oscilloscope_Probe.jpg
author
Steve25 (author)serasidis2014-05-14

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!

author
serasidis (author)Steve252014-05-14

>>So something like this?

That LCD seems ok.

>>what size connector did you use for the probe?

Oscilloscope probes (usually) have BNC connectors

http://en.wikipedia.org/wiki/BNC_connector

author
mass1351 (author)2014-05-11

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..

author
serasidis (author)mass13512014-05-13

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.

author
MADeye19 (author)2014-02-17

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

directory'

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 ?

author
mtaufiq4 (author)2012-07-23

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...

author
nehanikita (author)2011-12-17

this display is not available at my place...so any other option for this?

author

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

author
WakeUpWolfgang (author)2011-10-28

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.

author

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

author

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.

author
serasidis (author)WakeUpWolfgang2011-10-28

The diode D1 is a zener diode at 8.2 Volts.

author
WakeUpWolfgang (author)serasidis2011-10-28

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

author
CBX (author)2011-06-07

have you considered using an external ADC?

Will it work at 8mhz?

author
serasidis (author)CBX2011-09-01

>>have you considered using an external ADC?
That would be a good idea but there is not free time for that!

>>Will it work at 8mhz?
Yes, but you must change the crystal frequency in the source code and re-compile it. The circuit will run in low performance.

author
hATEmATH (author)2011-08-31

great! i'd like to make one also.

author
mtnkh (author)2011-05-11

hi
thanks for your perfect site.
I need some explanation for the structure of the c file of this project.could you help me please?
if you mail me that i will be pleased.
this is my email address:matin_lili@yahoo.com

author
serasidis (author)2011-03-21

The firmware has been updated to version 2.00

- Now, indications such as voltage and frequency are displayed on LCD.
- A small increment of sampling rate has been made too.

author
rolocz (author)2010-11-23

Hello, nice project. Some time ago I (re) built and XY oscilloscope that uses external ADCs. That makes it a lot faster and a lot of nice curves can be displayed. Not as well finished or as useful as yours, but still fun to build and try. If you please you can check it in my website: http://eercz.com/en/avr_xy_oscilloscope_nokia_lcd

Regards

author
qz9090 (author)2010-07-14

Would you recommend a inexpensive 1:10 probe that I can used with this scope? Maybe a supplier and part number? Thanks.

author
com4both (author)2010-05-01

 very good project..i have seen pc based oscilloscope...
but this one is very good.....

where can i get the lcd....its not available here at my place...
i can make online shopping..
can anybody  who made this project, send me few links for online shopping

what will be the cost of the LCD?

what is ks0108...do i need to buy this controller or simply lcd?

make my doubt clear....

author
dan_dan (author)2009-09-23

how much did the lcd display cost, nice design tho.

author
matchett808 (author)2009-02-27

hey....what was your total cost? Very nice job though...am needing a oscilloscope so wondering if this is the cheapest way to skin this particular cat.lol

author
geeklord (author)matchett8082009-08-28

The Pololu AVR programmer has a built in SLO-scope that I really like. It only works from 0-5v, and only on windows, however. But its only $20(USD), so its great for simple low voltage applications.

author
serasidis (author)matchett8082009-02-28

The all project (including the probe) cost me about 70 euro.

author
mog123 (author)serasidis2009-05-11

I did the whole project in ~20-30 euro (<100 PLN)

author
matchett808 (author)serasidis2009-02-28

nice one....good build and quite cheep.....compared to the commercial ones i have sourced.

author
jamilm9 (author)2009-06-14

if you don't want to make this get this $50 prebuilt o-scope.
http://www.seeedstudio.com/depot/digital-storage-oscilloscope-with-panels-p-167.html
there is also a kit but it needs smd soldering.

author
senfield (author)2009-05-21

hello serasidis, we can use the mega32l instead mega32, the code is the same? , about the xtal, change the frequency or something? (cause the max clock of the mega32 (16mhz) , i have a mega32l-8pi (8mhz) max, thanks

author
withume (author)2009-05-14

hlp, me to display the voltage,and frequency in the display........what changes hv 2 be done with this.

author
pkumarhu (author)2009-05-13

hi my name is pramod i hve done tis project it is very nice but i like to do some modifications i like to display the voltage and frequency on the lcd screen so pls help me in changing the code

author
adie_hendri (author)2009-05-11

hi to ALL heloo Mr serasidis mr serasidis giveme advise u havent my question

author
mog123 (author)2009-05-06

Hey, I finished my oscilloscope!

http://i39.tinypic.com/30vk45l.jpg

It turns out i didn't need to use an inverter, your screen is the same as mine!
Although I have a problem: I'm using software 1.01 and I can't use the time/div buttons (left and right). Do you know a solution?

author
withume (author)2009-05-03

can this project be done using atmega32L, instead of 32 since atmega32 is not available for us.........pls reply me as soon as possible

author
serasidis (author)withume2009-05-03

Yes, you can use ATmega32L instead of ATmega32.

author
mog123 (author)2009-04-08

Hey, I found an LCD that input matches yours (and its a KS108). But 3 bits are negated (CS1 CS2 RST). Could you look in the datasheet if it will work like yours or will I have to change something in the sourcecode?
Heres the datasheet
http://www.artronic.pl/o_produkcie.php?id=612

author
serasidis (author)mog1232009-04-09

I think the LCD you mentioned needs inverted CS1, CS2 and RST signals. You have 2 choices: either you edit the lcd.c file correcting the commands for these pins or you put 3 NOT gates between lcd pins and AVR pins. Depend on you what you will do. I would suggest you to find a pin-compatible LCD to build this project.

author
mog123 (author)serasidis2009-04-09

so will this code be ok? I can't seem to find a screen with a compatible pinout ;/

http://mog123123.googlepages.com/glcd2.c

Besides I see that the "signal wire" of the probe connector (K1) is soldered to both ground(0V) and Capacitor (C2) why is that?

author
mog123 (author)mog1232009-04-14

OK I'm gonna use a 74hct04 with the screen I showed you to invert CS1 CS2 and RSTB. I have one question though: Can I use an ATMEGA16 instead of 32? The hex file is only 10kB so it should fit or am I missing something important? Please reply.

author
adie_hendri (author)2009-03-15

hello im ADIE im so excited, so proud this great why in serasidis web , i can't join in forum . server not fungtion i will build up avr oscilosope u can help, an give me advise?? oh yeah why this project is the limit 5khz, can you explain?? thanks best regars

author
thatonekid (author)2009-02-26

please post the schematic as a file so that it can be downloaded. thank you