Low Speed AVR Oscilloscope V2.00 (Is Updated on 19 Mar 2011)
Intro: 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 .
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.
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
See more of my projects at http://www.serasidis.gr
Thank you for reading
Vassilis Serasidis
69 Comments
pbuenojunior1 4 years ago
naveed8695 9 years ago
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
odip 9 years ago
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...
ForhadurR 9 years ago
Another similar interesting project: https://github.com/hassansin/atmega16-portable-oscilloscope
rahulb2 9 years ago
hi, i want the progame of atmega 32 base avr oscilloscope
hamrique 9 years ago
Steve25 9 years ago
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!
serasidis 9 years ago
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
Steve25 9 years ago
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!
serasidis 9 years ago
>>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
mass1351 9 years ago
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..
serasidis 9 years ago
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.
MADeye19 10 years ago
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 ?
mtaufiq4 11 years ago
nehanikita 12 years ago
WakeUpWolfgang 12 years ago
WakeUpWolfgang 12 years ago
WakeUpWolfgang 12 years ago
WakeUpWolfgang 12 years ago
serasidis 12 years ago