Simple Cheap Arduino Oscilloscope


Introduction: Simple Cheap Arduino Oscilloscope

Hello everybody!

I came up with this interesting project, as I am beginning to learn processing, so I thought it would be cool to share it with you. Hope you'll enjoy it!

Ok, just to make things clear, this is by no means a professional, good quality oscilloscope. It's just meant to be simple, interesting to build, and cheap....very cheap. So, without further ado, the bill of materials:

  • 1. Arduino (Uno, Nano, Mini, any board will do the job)
  • 2. Two wires (Jumper wires, crocodile clips, you name it)
  • 3. Two potentiometers (Optional)

As you can see, if you have an Arduino, you're reaIy is a really nice and fun one day project, just makes you feel good when you finish it.

Because of the limitations of the board, without external references the range you get out of it is 0 - 5V. Be careful, by connecting greater voltages you can (will) damage your board, and even your computer!

It's working principle is easy. The Arduino reads the analog input from the A0 pin and then transmits it over the Serial port. That's where Processing kicks in. It graphs the values and outputs them. The readings are actually pretty accurate and usable.

Actually, I've never owned or used an oscilloscope, so my knowledge isn't that great. I know the basic working principles, so that is what I implemented here. You can zoom in and move the wave vertically relative to the baseline, that's all of the added functionality.

You can use the two potentiometers for zoom and position, but you can also use the keyboard shortcuts

  • + and - for zoom
  • Up and Down key for position

Let's move on to the schematics and the actual code.

Step 1: Schematics and Code

Its really easy to hook up, you connect the potentiometers like it's shown on the image, the positive wire of the source you want to measure goes to the A0 pin, and the negative goes to the GND pin. After you've done that, plug your Arduino into your computer and start the Processing sketch, and that should be pretty much it. You'll see the results in the next step.

Step 2: Results, Conclusion

If you've done it right, it will work like this

So that's it, hope you liked it. Feel free to ask or complain about anything in the comments.

Greetings from Serbia!



    • Oil Contest

      Oil Contest
    • Clocks Contest

      Clocks Contest
    • Creative Misuse Contest

      Creative Misuse Contest

    12 Discussions

    Great project, worked first time, thnx!

    There is an error in the schematic diagram, you have GND and Vin connected to the same rail on the breadboard, they should be on seperate rails.



    1 reply

    I didn't realize, thanks for pointing it out, i will edit it. Greetings!

    How to increase the range to 12v

    Nice project! But I have one problem. I uploaded the .ino sketch on the arduino and I downloaded the processing IDE. However, when I run the .pde file it does not recognize the arduino, it gives an output of 0V and the potentiometers don;t work. What am I doing wrong? I have aldeady installed an arduino library available.

    8 replies

    Can you please see if you get a "No port connected" message in the Processing console window?

    Can you look in the device manager to see if you have ajy other serial ports connected

    I alterated your code a bit and now I can use my arduino, but not my keyboard

    I actually changed port = new Serial(this, Serial.list()[0], 115200); toport = new Serial(this, Serial.list()[1], 115200); Anyway, interesting project! :) Thanks for sharing!

    I wanted to suggest you the same thing. Good job :) You have to click on the window first to set the focus on it, then the keyboard will work.