DIY SmartPhone Oscilloscope using Raspberry Pi Pico

This article teaches you how to create your own DIY smartphone oscilloscope using a Scoppy and Raspberry Pi Pico. An oscilloscope is occasionally required when working on research and development projects and repairing electronic hardware. Multimeters are also an option, although they have the drawback of not being quick enough to pick up the signals. For lab and business use, a standard oscilloscope is available.

A commercial oscilloscope is expensive for beginners, as you will see when you look at the pricing. If you work in the electronics industry as a technician or a hobbyist and are unable to purchase these, there is a workaround for you. A microcontroller can be used to create a straightforward DIY SmartPhone oscilloscope for a very low cost—possibly around $5.


In this project, I’ll demonstrate how to create your own oscilloscope using a smartphone and a Raspberry Pi Pico. You did hear correctly. With the Raspberry Pi Pico and some passive components, a straightforward oscilloscope may be created. Additionally, you can feed the signal to your mobile phone in order to detect the sine or square wave. There is an app called Scoppy that is specifically made for this use. The signal is detectable up to a frequency of 250 kHz.

Components Required

  • Raspberry Pi Pico RP2040
  • Resistor-100K,10K
  • USB Cable
  • Connecting wire
  • Breadboard

About Raspberry Pi Pico

The Raspberry Pi Foundation created this Raspberry Pi Pico. It has a dual-core Arm Cortex-M0+ microcontroller, the RP2040, with 264KB of onboard RAM and support for up to 16MB of off-chip Flash. It features many versatile input-output possibilities, including I2C, SPI, and ports that are specifically programmable.

The analog pins on this board are designated as GP26 and GP27 at the back. As any signal fed from the outside should be in the form of a sine, square, or another analog signal, we will utilize this pin to identify the signal.


The Android smartphone and Raspberry Pi Pico power the Scoppy, an oscilloscope, and a logic analyzer. The Pico measures signals and the Android device displays the waveforms. Programming is not necessary. Since it is an open-source project, you can get the firmware and the software for free. You can download it from Playstore. Installation is super easy and should only take a few minutes.

The Scoppy project aims to provide amateurs and novices in electronics with access to an extremely affordable oscilloscope that may be used to view low voltage, low-frequency signals. Scoppy has a sample rate of 25 MS/s and is also a logic analyzer.

Requirements to use Scoppy

  • An Android device that’s running Android version 6.0 (Marshmallow) or higher.
  • A USB OTG adapter/cable compatible with your phone/tablet
  • A Raspberry Pi Pico board

How to use Scoppy with Raspberry Pi Pico

1. Install the Scoppy Android App

Install the Scoppy Android app from the Play Store.

2. Install the firmware onto your Pico

Download the firmware onto your computer. It is here: pico-scoppy-v8.uf2.

Connect your Pico to your computer by pressing the bootsel button. UF2 file onto your Pico by copying it. The onboard LED should start blinking.

3. Connect the Pico to your Phone/Tablet

Connect the OTG adapter or cable to the Android device’s USB input. The Pico’s USB cord is attached to the other end of the cable, which is the other end.

4. Start Scoppy

Connect your signal source’s +ve output to GPIO 26 on the Pico and the ground to gnd. You will be able to measure signals between 0V and 3.3V using this. Of course, the signal voltage needs to be within the RP2040 ADC pins’ permitted range. Connect the signal to GPIO27 for Channel 2.

You can observe the test signal on GPIO 22 by connecting it straight to the ADC pins if you don’t have a suitable signal source (GPIO 26 and 27). GPIO 22 is a square wave at 1 kHz with a 50% duty cycle.

Oscilloscope Screen & Interfaces

This is the Scoppy Oscilloscope user interface. The screen resembles an oscilloscope in appearance. The option to choose the input signal is located on the right bottom. A USB port can be used to feed the input signal. However, the software developer has provided a demo signal for demonstration. The demonstration signal is a sine wave with a frequency of 50 Hz.

The performance of the signal can be observed by sliding left and right. The options for horizontal and vertical adjustment are on the right side. For checking up on the signal, there is also the trigger option. When using the trigger feature, you can choose between off, auto, and normal mode. The time per division can then be manually changed from here. The functionality of the volt per division can likewise be changed in a similar manner. You can manually check every other function to find out more about it.

The oscilloscope is a dual-channel oscilloscope that allows for the reading of several signals. The measurement parameters can be changed, and each channel can be turned on or off. You can utilize both the channel1 and channel2 signals for the demo signal. However, if you choose USB as the mode, you will only get one channel. You must switch to the premium version in order to access the second channel. You can spend extra money to use another channel because the software is so fantastic. Anyhow, for signal testing, we will only use one channel.

Hardware Assembly

How can a DIY smartphone oscilloscope be fed an external signal is now the question. For this, we will connect a 100K resistor across the GP26 Pin, which is an extremely high-value resistor. This will guard against overcurrent damage to the Pi Pico. Likewise, we require two 1K resistors. Both the GND pin and the 3.3V pin need resistors attached, one to each. The resistor’s opposite end is then connected. This is what we’re doing since it’s important to measure both the good and negative signals.

DIY SmartPhone Oscilloscope

Here is the application’s schematic. We will use a 100K resistor to transmit the function generator’s signal to this GP26 pin. The virtual ground pin is located on the other pin. These two pins are utilized to supply an input signal.

To connect the Pi Pico to a smartphone, we require this OTG device. This OTG is conveniently offered in the marketplace. Connect one end of the USB OTG to the Raspberry Pi Pico Board and the other to your smartphone. You’ll notice a pop-up window appearing on your smartphone. It will request permission to access the Pico. Select OK.

Testing External Signals

In order to test this DIY smartphone oscilloscope, we need a function generator. However, I lack a function generator. So I used an Arduino and a Rotary encoder to construct a signal generator. I am able to produce a square wave with variable frequency using this function generator.

  • Connect the Pi Pico Input to the function generator’s output. Use the Vin pin as well as the virtual ground.
  • Now Pico is being fed at the set frequency of 20Hz. As a result, a distinct square wave is produced. Additionally, the frequency is nearly identical when compared.
Scoppy Oscilloscope Raspberry Pi Pico

The pulse on the screen corresponds to the 800Hz signal. Waveforms are still very distinct.

Smartphone Oscilloscope

Different signals can be fed in KHz as well. Even the frequency of 1.2KHz is suitable.

There is no distortion in the stream even at 8 kHz.

Now The frequency has now been greatly increased to 46KHz. Even yet, there is a small signal switching while we are still receiving a square wave.

You can measure the frequency up to 250KHz as this is the standard sampling frequency of Pi Pico. So design your own oscilloscope and observe the signal.

Measuring High Voltage Signals

Only 3.3V can be read by the Pico. The minimum range is -1.65V and the highest range is +1.65V because we are utilizing a voltage divider network. Therefore, it can only measure input voltage up to 3.3V. What if we need to measure something higher than 3.3V? How can we utilize this, for instance, if we wish to measure a 100V peak-to-peak signal?

The device won’t be harmed by high voltage because we connected a 100K resistor across the signal pin, but it won’t measure it because some signals will be chopped.

DIY SmartPhone Oscilloscope

If you wish to read a high voltage signal, which I won’t advise you to do, you can use the typical circuit schematic for this. The signal will be divided into three samples using the following voltage divider network. If a 100V signal is applied here, you will receive 100V, 10V, and 1V signals, correspondingly. A rotary switch, which is readily available on the market, can be used. Additionally, choose the range based on your needs.

Project PCB Gerber File & PCB Ordering Online

Here is the PCB you need if you don’t want to put the circuit together on a breadboard and want it for your project. Using the EasyEDA online circuit simulator, the PCB Board for the Raspberry Pi Pico Oscilloscope is created.

Oscilloscope PCB

The Gerber File for the PCB is given below. You can simply download the Gerber File and order the PCB from

Download Gerber File: Pi Pico Oscilloscope PCB

Now you can visit the NextPCB official website by clicking here: So you will be directed to the NextPCB website.

Now that the Gerber File has been uploaded, you can order from the website. Excellent and high-quality PCBs are used. For PCB & PCBA Services, the majority of consumers rely on NextPCB for this reason.

The PCB Board can be used to construct the components.

This is how you can design your own DIY SmartPhone Oscilloscope using Raspberry Pi Pico & Scoppy at home for many of your projects.

Leave a Reply

Your email address will not be published.