Arduino Oscilloscope Under 5 $ - 3 Channel





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 .

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


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


  • I cant upload your c...-farzanadinie

    farzanadinie made it!


  • Epilog Challenge 9

    Epilog Challenge 9
  • Sew Warm Contest 2018

    Sew Warm Contest 2018
  • Gluten Free Challenge

    Gluten Free Challenge

We have a be nice policy.
Please be positive and constructive.




сделайте Частота обновления - 200 Khz . пожалуйста. и как его калибровать . рассчитать делитель на 400 вольт . пожалуйста.

How do you read the oscilloscope on the graph? I want to get readings in voltage but I'm getting 1000.

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:

I have a python program that is graphing and scaling the numbers which comes out as such:

osciliscope python.PNG

How to increase the range to 12 volt?

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

can you show me the block diagram of this project?

please I really need that .

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.