Introduction: Arduino Oscilloscope Under 5 $ - 3 Channel
Oscilloscopes are used by electronics enthusiasts , hobbyists and it is one of the common tools on a workbench . But buying one can get expensive so finally i decided that why not to make one using an arduino. So this basic project will help you increase your skill and in the end you will end up having a nice DIY tool for you bench which will make some things easy for you .
Arduinos are great , they use 8-bit microcontroller which has digital inputs outputs , SPI , I2C lines , Serial Communication , ADC etc . So using arduino for this project would be a nice idea .
Step 1: Materials Required
As i would like to keep things simple and cheap all you need is :
A laptop x1
An Arduino x 1 (UNO,PRO MINI anyone would work i used NANO ) Except MEGA
Jumper Cables x 2
Breadboard x 1
Alligator Clips x 2
Male to Male 3.5 mm cable x 1
An audio source or a signal source of whose waveform you want to see.
Step 2: The Code and the Oscilloscope Program
After you have plugged in the arduino just upload the provided Code in the zip file .
What code does is it just simply reads the analouge voltage on arduino's analouge pin A0 to A5 or A7 (depending upon the board) and then covert that analogue voltage into a value ranging between 0-1023 and then that value is sent to the computer through the usb port .
Pins A0 - A5 or A7(depending upon the board) acts as 6 or 8 channels of the oscilloscope but the software is designed to display only 3 channels at once .
Then when you open up the oscilloscope program after uploading the sketch select the baud rate and COM port then just open up the channels
The oscilloscope program is designed to take the values form the arduino and plot it on a graph and just join those points with a line which gives you a nice looking waveform just like an oscilloscope .
Attachments
Step 3: Code of Conduct
Step 1 : Plug in your arduino
Step 2 : Upload the code
Step 3 : Put the signal through arduino's pin A0 - A5 or A7 (depending upon the board) in my case i choosed an audio signal coming out from my phone via male to male 3.5mm jack .
Its one end was connected to the phone and on the other end i connected its ground to arduino's ground and the other alligator clip was connected to one of the audio channels (in my case the right channel of the audio signal) .
Step 4 : Open up the oscilloscope program
Step 5 : Select the COM port and select the baud rate
Step 6 : Open up the channels and THERE U GO !!!!!
"REFER THE VIDEO BELOW FOR MORE ..."
Step 4: Features:
Features:
This oscilloscope has a resolution of about : .0049 volts (4.9 mV) per unit.
Refresh Rate - 1Khz
Baud Rate :115200
Voltage Range : 0 - 5v DC
It can display 3 channels at a time
NOTE : Do not exceed the 5v limit on the oscilloscope or else you will fry the arduino .
Limitations:
1. Voltage range cannot be exceeded its lies between 0-5V DC ONLY
2. Any signal above 1kHz would not be detected by the arduino or either it will show garbage values
3. Don't try to measure the AC signals as Analouge pins of arduino are not designed to do so , so at the end you will end up by either damaging the arduino or either it will only show the positive half of the arduino.
Step 5: Well There You Have It !!
So i think that was pretty simple how we can make a simple arduino based Ocillosocpe as this was my first experience with arduino oscilloscopes let me know if i did a mistake . Hope you like it . If you guys have any question post it in the comments section down below .Now you can easily hack into small electronics and can easily find out what kind of wave is going at what voltage level in short you've got a great tool
Have Fun ! and do consider voting me ....

Participated in the
Make it Move Contest 2016

Participated in the
Home Hacks Challenge

Participated in the
Robotics Contest 2016
3 People Made This Project!
- arvi36 made it!
- anrahman made it!
- farzanadinie made it!
40 Comments
Question 3 years ago on Step 1
where do I buy a Arduino for less than $5?
4 years ago
How can I get the code?
Question 4 years ago on Step 4
I am having some problems downloading the software. I am using Windows 7, and every time I download your oscilloscope it requires me to choose the application I wish to open it with, then it just doesn't open regardless of what application I choose. If you could give me a recommendation on how to open the download file, that'd be much appreciated. Thanks!!
Answer 4 years ago
Do one thing you can contact me on my personal email id i.e amansinghaljpr@gmail.com
4 years ago
Can I make it with the smaller bread board?
Question 4 years ago
Can I make it with the smaller bread board?
5 years ago
сделайте Частота обновления - 200 Khz . пожалуйста. и как его калибровать . рассчитать делитель на 400 вольт . пожалуйста.
5 years ago
How do you read the oscilloscope on the graph? I want to get readings in voltage but I'm getting 1000.
Reply 5 years ago
To answer that you can change the arduino code to take the analog read multiplied by the scalar of the arduino's analog input. This means:
analogRead(A0) * (5.0 / 1023.0)
This is because there is a 5v range and 1023 data points the arduino fits it into. You could also make your own program to handle this on the pc side, but that is your choice.
If you need more info on this:
https://programmingelectronics.com/tutorial-09-rea...
Reply 5 years ago
I have a python program that is graphing and scaling the numbers which comes out as such:
6 years ago
How to increase the range to 12 volt?
Reply 5 years ago
I read 12v with a circuit consisting of a couple resistors, an npn transistor and a diode. See the diagram I included. The npn transistor acts as a switch triggered by the 12v signal to read the arduino's own 5v. Very handy for automotive applications ;)
Reply 6 years ago
I'll update you about that very soon
5 years ago
I got the code loaded onto my Uno, however when I connected gnd from the board to gnd on the aux cable and A0 to the tip of the aux cable nothing showed up in Serial Oscilloscope. It was set to the correct com port and baud 9600 with the channels set to 1,2,3 just like in the video and it still didn't work. I don't know what I'm doing wrong, and I would love it if you could tell me what I'm doing wrong.
6 years ago
can you show me the block diagram of this project?
please I really need that .
6 years ago
What if I want to do this on tablet? Is it possible ? my project is tablet-interfaced arduino based oscilloscope. And I need to know the correct block diagram of my project? please help me.
6 years ago
Hello my friend, I have a question, how do you setup arduino code and hardware to use more than one channel at time?
6 years ago
Will it work for waves with both positive and negative values?
Reply 6 years ago
No it only work for positive values .
6 years ago
hi
when i try to use the SERIAL OSCILLOSCOPE.EXE program it opens a window and says that "serial oscilloscope has stoped working. windows is collecting more information about the problem.this might take several minutes..."
do you know how can i fix this?