cover photo

BLOG · 31/1/2026

SCOPEY

SCOPEY
This Article is yet to be approved by a Coordinator.

Pocket Signal Generator + Oscilloscope Project

Overview

This project combines a portable DDS signal generator and a smartphone-based oscilloscope into a compact, pocket-friendly setup. It uses common hobby hardware while still providing practical signal generation and visualization up to tens of kilohertz.

The system is split into three functional blocks:

  • Signal generation using an AD9833 DDS module
  • User interface and control using an Arduino Nano with a rotary encoder and display
  • Signal visualization using a Raspberry Pi Pico running the Scoppy oscilloscope firmware connected to an Android phone

Hardware Used

Core Components

  • AD9833 DDS module

    • Generates sine, triangle, and square waveforms
    • Frequency range: sub-Hz to MHz (generator side)
  • Arduino Nano (ATmega328P)

    • Handles rotary encoder input
    • Controls waveform type and frequency
    • Drives the display
  • Raspberry Pi Pico (RP2040)

    • Used as a USB oscilloscope
    • Interfaces with Android phone via USB (Scoppy app)

User Interface

  • Rotary encoder with push button

    • Rotate: change frequency
    • Short press: change waveform
    • Long press: toggle output ON/OFF
  • Display

    • LCD (I2C) or OLED (SSD1306), depending on build variant
    • Shows frequency and waveform type

Power

  • Single power source
    • Android phone → Pico via USB
    • Pico VBUS (5V) → Arduino Nano 5V pin
    • Nano powers AD9833, encoder, and display
  • All grounds shared

System Architecture

Android Phone
│ USB

Raspberry Pi Pico ──── ADC ──── AD9833 OUT

└── VBUS (5V)

Arduino Nano

Encoder + Display


Signal Generation

Waveforms

  • Sine wave (DAC output)
  • Triangle wave (DAC output)
  • Square wave (digital output, VCC level)

Notes on Outputs

  • Sine and Triangle:

    • ~0.6 Vpp
    • Safe for Pico ADC
  • Square wave:

    • Logic-level output (5 V when powered from Nano)
    • Requires voltage divider before Pico ADC

Oscilloscope Functionality

  • Software: Scoppy (Android)
  • Sampling rate: up to ~2 MS/s
  • Reliable measurement range:
    • Clean and accurate: up to ~25 kHz
    • Visible but distorted: 50–100 kHz

Distortion above this range is due to ADC and sampling limits, not the signal generator.


Observed Behaviors and Solutions

Floating Input Noise

When the AD9833 output is disabled:

  • Output pin becomes high-impedance
  • Pico ADC input floats
  • Scoppy displays phantom frequencies (for example ~1 kHz)

Fix: AD9833 OUT ── 100kΩ ── GND

This stabilizes the input and removes false readings.


Frequency Mismatch (Generator vs Scope)

Small discrepancies (for example LCD shows 1560 Hz, scope reads ~1600 Hz) are caused by:

  • ADC sampling jitter
  • Scoppy frequency estimation limits
  • Harmonics and aliasing (especially with square waves)

Within 1–25 kHz, readings are sufficiently accurate for hobby use.


Safety Considerations

  • Android phone is safe

    • USB carries only digital data
    • No analog signal reaches the phone
  • Pi Pico ADC must be protected from:

    • Voltages above 3.3 V
    • Direct 5 V square wave inputs
  • Avoid powering Nano and Pico from separate USB sources at the same time


Final Capabilities

  • Portable, pocket-sized test setup
  • Multi-waveform DDS signal generator
  • Smartphone-based oscilloscope
  • Single USB-powered system

Suitable for:

  • Audio experiments
  • Filter testing
  • Educational signal analysis
  • Hobby electronics debugging

Conclusion

This project demonstrates a practical integration of low-cost hardware to create a compact signal lab. While limited by ADC sampling and voltage constraints, it performs reliably within its intended range and is well suited for learning and experimentation.

Need to work on noise minimisation and extend Vpeak range.

UVCE,
K. R Circle,
Bengaluru 01