Project showcase
Arduino Oscilloscope

Arduino Oscilloscope © CC BY-NC-SA

This project aims to provide insight into the workings of a digital oscilloscope. This project is designed to be an education tool.

  • 36 respects

Components and supplies

Apps and online services

About this project

Arduino Oscilloscope

Arduino-based oscilloscope with advanced features and two channels. It is a DIY Oscilloscope based on popular Arduino platform.

Arduino-Oscilloscope (here-after referred to as Osciduino). There is another project with the same name that is why the title name is changed here, after I saw the another project with the same name ie OsciDuino) is an Arduino-based oscilloscope (tried and tested on Arduino Uno R3 and Mega 2560). Though I would recommend using Mega if you can.

Why and What Can It Do

It is an educational project to get the insight into the internal workings of a buffered digital oscilloscope (DSO) Tthis version includes advanced functionality to the setup, by including features like dual channel, offset, trigger, time/div, volts/div, and likewise.

Inputs and Few Things to Consider

The inputs are taken from 2 analog input pins on Arduino. The pins however support only voltage range of 0 to +5 volts. so ths oscilloscope works well only if the signal being viewed is +5 volts peak to peak maximum and doesn't have any negative halfs. to view negative halfs, the oscilloscope has to be operated in a +2.5 volts peak mode. this is accomplished externally by scaling the voltage and then offsetting it by +2.5 volts.

What Should I Know

An additional display library is included in the master for SPFD5408, if required.Also the schematics for the setup are included in the "arduino files" folder

Currently the code works best with the provided library and thus a specific display driver SPDF5408.This however does not mean that it will not work with other drivers. It's just that behaviour might be differentas I have not tested it with any other display. You are welcome to add support for your display driver.if you want to add support to your display. You can either contribute or create a pull-request. An example is addingsupport for Adafruit 2.5 inch Resistive touch screen display

Installation - Quick Start

This is really simple to do just follow the following steps and you are up-and-running.

First and foremost plug in the Display to Arduino. For this see How to assemble the hardware

  • Plug in your Arduino (Uno or Mega) to the computer using the usb-2.0
  • Open the arduino-oscilloscope-high-freq_v1_5_HW.ino in Arduino IDE
  • Select your board from "Tools" menu
  • Click upload
  • You are up and running

/!\ Make sure that 'CH1' and or 'CH2' is set to 'ON'

Hello World

The following is a "hello world" example for the Osciduino.

Observing charging and Discharging of a capacitor


Power up the Osciduino, as mentioned above in the quick start. Now on a breadboard connect an electrolytic capacitor in series with a resistor to a square wave generator.Place the probe on the resistor capacitor node. Add a common reference ground between Osciduino and the RC circuit.

And you should start seeing the characteristic rise and fall slopes associated with charging and discharging of the capacitor.


Current Problems

The setup requires an external resistive control interface. Which requires callibration on every boot. As resistance changes easily with temperature and long durations of running. This can be mitigated in a lot of ways, for example by replacing the resistive divider switchconfiguration by a touch based scheme or a push button scheme encoded into the free GPIO pins on the Arduino Mega.

Updates and Latest Releases

Starting version 1.5, the hardware extension support will be addedto the project - release v1.5.0

The code is originally based on the one by Mr. Noriaki Mitsunaga



block diagram for the design
Blck diag s0d2vsbyjk


Similar projects you might like

How to Make a Mini Oscilloscope at Home Using Arduino Nano

Project tutorial by CiferTech

  • 50 respects

DIY Arduino Oscilloscope

by Ameduino

  • 35 respects

Arduino Oscilloscope (6-Channel)

by Meeker6751

  • 132 respects

Digital Oscilloscope Experiment Based on Arduino

Project tutorial by Andrew85

  • 27 respects

SmartGPU2 - Arduino Oscilloscope

Project showcase by Vizic Technologies

  • 37 respects

Arduino - Web Oscilloscope (Support Trigger)

Project tutorial by phpoc_man

  • 58 respects
Add projectSign up / Login