Build Your Own Arduino Nano Based DIY Oscilloscope With OLED Display – Complete Guide
by Jhuman in Circuits > Arduino
98 Views, 1 Favorites, 0 Comments
Build Your Own Arduino Nano Based DIY Oscilloscope With OLED Display – Complete Guide


Are you an electronics hobbyist looking to build a compact and functional oscilloscope on a budget? This guide walks you through creating your own Arduino Nano-based oscilloscope with an SH1106 OLED display. Using basic components and open-source code, this project helps you visualize waveforms and measure frequency, voltage, and duty cycle.
Whether you're a beginner or an advanced maker, this project is both educational and practical.
Supplies
Hardware Required
- Arduino Nano
- SH1106 128x64 I2C OLED display
- Tactile push buttons (4 for SELECT, UP, DOWN, HOLD)
- Voltage divider resistors
- Schottky diode
- Capacitor (104)
- Breadboard or custom PCB
- Jumper wires
- Power supply (5V regulated)
Circuit Diagram Overview

The circuit connects the signal input through a voltage divider and optional attenuator into the Arduino Nano's analog input pin A0. The I2C OLED display connects to A4 (SDA) and A5 (SCL). Push buttons use diodes to combine input signals and are connected to digital pin D2 for interrupt-based operation.
For signal safety and accuracy, a Schottky diode prevents overvoltage, and resistors scale the input voltage properly.
Features of the Arduino Oscilloscope
Compact design based on Arduino Nano
OLED Display (SH1106) for real-time waveform visualization
Vertical and horizontal scaling (0.2V–50V, 200µs–200ms)
Frequency and Duty Cycle calculation
EEPROM storage of last settings
Trigger polarity detection
Hold function to freeze waveform
Selectable input attenuation (x1, x10)
PCB Layout and 3D Model

Discover Easy, Affordable, and Reliable PCB manufacturing with JLCPCB!Register to get $70 New customer coupons:https://jlcpcb.com/?from=EST Special Deal: Get a $30 coupon for JLCPCB premium 6-layer PCBs: https://jlcpcb.com/6-layer-pcb?from=getcoupon
The PCB is compact and integrates:
- An Arduino Nano socket
- SH1106 OLED display
- Four push buttons
- Voltage divider and attenuator circuits
- Power terminal and decoupling components
This layout allows for clean assembly and easy usage in a handheld device or benchtop tool.
Arduino Oscilloscope Code
The core functionality is driven by a sophisticated yet compact Arduino sketch. The key features of the code include:
- Waveform Acquisition: Captures 200 samples per screen refresh.
- Frequency Analysis: Calculates waveform frequency and duty cycle.
- EEPROM: Saves settings (voltage scale, time base, trigger polarity).
- User Interface: Buttons allow cycling through settings. OLED displays real-time data.
- Trigger Detection: Positive or negative edge trigger modes.
- Battery Voltage Mode: Pressing a button at boot displays the battery voltage.
📄 The full code is open-source and based on the work by radiopench (2020), adapted for SH1106 OLED using the Adafruit_SH1106 library.
Downloads
How to Upload the Code
Connect your Arduino Nano to your computer via USB.
Install the required libraries:
- Adafruit GFX
- Adafruit SH1106
Open the code in the Arduino IDE.
Select Board: Arduino Nano and correct COM port.
Click Upload.
Operation Guide
- SELECT: Cycles through control options (Vertical Scale → Time Base → Trigger).
- UP/DOWN: Adjusts current selected parameter.
- HOLD: Freezes or resumes the waveform display.
- Auto Save: Settings are saved 5 seconds after the last button press.
💡 On startup, press UP or DOWN to enter voltmeter mode (5V or 50V range).
Applications
- Signal visualization
- Frequency measurement
- Debugging small electronics circuits
- Educational tool for learning about waveforms
Video Reference

Discover Easy, Affordable, and Reliable PCB manufacturing with JLCPCB!Register to get $70 New customer coupons:https://jlcpcb.com/?from=EST Special Deal: Get a $30 coupon for JLCPCB premium 6-layer PCBs: https://jlcpcb.com/6-layer-pcb?from=getcoupon
Conclusion
Creating your own Arduino-based oscilloscope is not just cost-effective but incredibly rewarding. It blends hardware design, firmware development, and real-world signal analysis. With just a few components and a bit of soldering, you can own a pocket-sized oscilloscope for your bench.