Introduction: Arduino Oscilloscope Under 5 $ - 3 Channel

Picture of  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

Picture of 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

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

Step 3: Code of Conduct

Picture of 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 !!!!!


Step 4: 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 .


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


ajmal hassan (author)2016-06-26

How to increase the range to 12 volt?

carrera30 (author)ajmal hassan2017-10-24

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 ;)

I'll update you about that very soon

mcstarcoin (author)2017-05-10

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.

jonaameelgaar14 (author)2017-03-04

can you show me the block diagram of this project?

please I really need that .

jonaameelgaar14 (author)2017-03-04

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.

CarlosV190 (author)2017-02-10

Hello my friend, I have a question, how do you setup arduino code and hardware to use more than one channel at time?

PedroM31 (author)2016-07-10

Will it work for waves with both positive and negative values?

amansinghaljpr (author)PedroM312016-07-13

No it only work for positive values .

LeroyD6 (author)2016-06-23


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?

LeroyD6 (author)LeroyD62016-06-23

nevermind i fixed it.

but i wanted to ask if there is a way to make the arduino an order to set a digital pin to HIGE or LOW whenever the oscilloscope program triggerd?

i mean to make the oscilloscope send or write information to the arduino and by that make the arduino do stuff automaticlly like move a stepper motor or turn on a LED.


amansinghaljpr (author)LeroyD62016-06-23

Yes of course there is a method for it . All you need to do is edit the code in such a way that whenever a particular value hits the analog pin a particular digital pin goes high . Please inbox me or write an email on if you are not able to do it .

ThomasB239 (author)2016-06-09

not usable with os X

I am really sorry for that ill try to make it OSx compatible if i could get my hands on a MacBook

Syedhamzaali (author)2016-05-08

Why you excluded arduino mega???

I never had my hands on an arduino mega so i am not sure that i will work with it in that manner or not . As far as my knowledge goes it should work with it too

farzanadinie made it! (author)2016-05-03

I cant upload your codinggg ...why...pls help me

you have a general problem is not related to code . Just try reinstalling the arduino drivers while your is board is already connected . Then choose the correct board , correct COM port and it will work perfectly fine . After all this try uploading the code again ... if still there is a problem please do let me know I'll help u out

farzanadinie (author)2016-04-28

Hi . Its an interesting n awesome work . Such a very good achievement ! I would like to apply this diy oscilloscope into my ecg project . Do i need to upload any app in my laptop before proceed to this diy?

My friend all you need is an oscilloscope application which is provided in the zip file nothing else. The code and necessary application is there is the zip file so no need to install anything else so just have fun making the project and enjoy

mohkaz (author)2016-04-25


amansinghaljpr (author)mohkaz2016-04-26

For what ?

Abdelali2 (author)2016-04-22


amansinghaljpr (author)Abdelali22016-04-22

Thank you :)

Abdelali2 (author)amansinghaljpr2016-04-22

hi . can we made it with an arduino uno card ?

amansinghaljpr (author)Abdelali22016-04-22

Yes of course you can use arduino uno code and all the steps will be same . The only difference is arduino uno has 6 analog pins so they will act as 6 channels of arduino .

Raphango (author)2016-04-21

Awesome!! Congrats!!

amansinghaljpr (author)Raphango2016-04-22

Thank you :)

igel1 (author)2016-04-20

Can you make an oscilloscope program to run on mac?

amansinghaljpr (author)igel12016-04-21

i am so sorry about that . I never got a chance to get my hands on a mac so i don't know weather this code will work on mac or not but yes if it would be possible for me to make this code run on a mac i'll let u know.
And please do vote for me ;) have a nice day.

Yonatan24 (author)2016-04-20

Hi, I've added your project to the "Make Your Own Oscilloscope!" Collection

This is the link If you are interested:

amansinghaljpr (author)Yonatan242016-04-20

Hey thanks a lot for adding my instructable to your collection .. and do consider voting me . :) ;)

About This Instructable




Bio: Hi , folks i am Aman and i like to make electronics projects and robots. I also like to make aero models like a plane and ... More »
More by amansinghaljpr: Arduino Oscilloscope Under 5 $ - 3 Channel Graphene Battery : Battery of FutureUltimate Guide For Making a LED CUBE
Add instructable to: