Table of Contents
Overview:
In this project, Learn how to build a smartphone Oscilloscope using Raspberry Pi Pico board and Scoppy. Yes, you heard right this is the cheapest of all the Oscilloscopes in the market and easy to build with no programming. Generally Oscilloscopes are used to measure the signals and check the waveforms of them.
There are two types of oscilloscopes Analog and Digital. Due to the latest technology inventions Analog ones are overtaken by Digital ones which are cheaper than analog ones and the visualizations are displayed accurately on LCD displays. But still hobbyists and makers cannot afford those oscilloscopes whose prices start from 400$ which is very high. Taking this into consideration a developer from GitHub named fhdm-dev developed a DIY digital oscilloscope whose components are 100 times cheaper than the oscilloscopes available in the market.
If you need an Oscilloscope at very very cheap price than this project is like a treasure. So, Lets learn how to build it ourself with Raspberry Pi Pico and some electronic components. It visualizes the wave forms on your Smartphone using an Android application called Scoppy, it shows Square wave or Sine wave and detects the signals upto 250kHz frequency for each channel.
Bill of Materials(Required components):
The First step in our project is to know what are the components required to build the smartphone oscilloscope, So that you can check the availability and buy them online or from stores.
Product Name | Quantity | ||
---|---|---|---|
Raspberry Pi Pico Board(seedstudio) | 1 | https://amzn.to/36gKUlu | https://amzn.to/3sTnD1Z |
100K ohm Resistor | 1 | https://amzn.to/3hBlqlq | https://amzn.to/3sXBKmI |
1k ohm resistors | 2 | https://amzn.to/3hBlqlq | https://amzn.to/3sXBKmI |
OTG adapter to connect with smartphone | 1 | https://amzn.to/3II60Yg | https://amzn.to/3vRhWU5 |
Few Connecting Wires | https://amzn.to/3H2BV4e | https://amzn.to/3J0WVu2 | |
Micro USB cable | 1 | https://amzn.to/3s1a8g3 | https://amzn.to/364yInH |
Breadboard (Optional) | 1 | https://amzn.to/3CcBR16 | https://amzn.to/3tH3k6X |
Raspberry Pi Pico Overview:
Raspberry Pi Pico comes with a new RP2040 microcontroller chip with dual core ARM cortex M01processor with frequencies upto 133MHz. It has 30 GPIO pins out of which 3 are analog pins and other pins can handle wide range of communication protocols like SPI, I2C and more . It has specifications listed below
- 264kB on-chip SRAM
- up to 16MB of off-chip Flash memory
For more details about raspberry Pi Pico refer the company datasheet. The board has SoC chipset, micro USB port and few component on the top and the pin names are printed on the back of the board. As per the Raspberry Pi Pico Pinout diagram we will connect the signal to be observed with GPIO26(pin31) and GPIO27(pin32) and visualize it in the form of waves.
Scoppy Oscilloscope Project Overview:
Scoppy Project combines Raspberry Pi Pico board and your Android phone or Tablet to build a very cheap Digital Oscilloscope along with Logical analyzer. Signals and waveforms are displayed on your Smartphone screen. To build this you don’t need any programming or code, You just need to download the latest firmware from the below links and upload it to Pico board. Both the firmware available on GitHub and Android application available on google PlayStore are free to download and use. The Scoppy firmware is open source you can build uf2 file with customizations if you want.
Download Scoppy Firmware: link (pico-scoppy-v8.uf2)(104kb)
Download Scoppy Android Application: link
Scoppy project helps the developers and hobbyists to measure the low voltages and the low frequency signals and visualize them on Android smart phone at a dirt cheap price. Scoppy is not only an Oscilloscope but also a logic analyzer with sampling rate of 25 MS/s(Million samples per second).
What are the requirements to use Scoppy?
- Needs an Android Smartphone running Android version 6.0 (Marshmallow) or higher.
- A Raspberry Pi Pico board
- An OTG adapter to connect USB cable to Android device.
- And mainly a human being ( whatt!! haha just joking)
How to install and use Scoppy with Raspberry Pi Pico
The installation process is very easy, Just follow the below steps to install the firmware on Raspberry pi Pico and install the Android application on Smartphone.
Step1: Upload firmware to Raspberry Pi Pico
- Download the latest Scoppy firmware .uf2 file from this link to the PC.
- Hold the BOOTSEL button on the Raspberry Pi Pico board and connect it to PC through USB and Release BOOTSEL once the drive RPI-RP2 appears on your computer.
- Copy the .uf2 file and paste it in the Pico RPI-RP2 drive.
- The onboard LED will blink indicating the upload. and restart after completion.
Step2: Download Scoppy Android application on Smartphone
- From your Smartphone open Playstore and search for Scoppy then you will find “Scoppy – Oscilloscope and Logic Analyzer” from FHDM Apps. Direct Playstore link is provided above.
Step3: Connect the Raspberry Pi Pico to Smartphone
- Connect the micro USB side to the Pico board and other end to the OTG adapter.
- Connect the OTG adapter to Smartphone
Step4: Start the Scoppy app
Now open the app and learn few things with demo content. Twerk with few settings and features so that you can understand how the app works before the real testing’s. You can change the Demo to USB from the settings.
User interface of Scoppy is displayed below along with brief overview of them.
From the above User interface screenshot you can see it is very similar to the Digital Oscilloscopes. In the image we just choose the image source as demo which you can see at the bottom right corner. In the demo we turned on dual channel signal inputs which are in the form of sine wave.
We can control the Horizontal and vertical positions from the right side controls. As we know the horizontal X axis coordinate is used to represent the evolution of the signal on a time axis and Vertical Y axis is used to represent the amplitude of the signal in the value of Volts. So time/division and volts/ division can be controlled through the right sidebar.
You can use the trigger option to check the signal which has three modes off, Auto, Normal. You can also change the wave forms to Rising Edge or Falling edge from the side bar. Through the Menu you can change few settings like generating square waves and more. You can explore everything in the demo.
Here we turned on dual channel just to demonstrate through demo version, but when you choose USB then you cannot use Channel 2 in the free version. To use Dual channel you need to get a premium version which costs 1$ per year or 2$ per lifetime which is affordable and value for money if you need dual channel support. The Premium version is ad free.
How to connect signal source to Raspberry Pi Pico
Till now you might be puzzled where to connect the input signal source. As we discussed Pico board has 3 Analog inputs. So, we have to connect the input signal GPIO26 for single channel and 2 GPIOs(GPIO26, GPIO27) for dual channel.
The Input signal voltage should range between 0 and 3.3V, and the signal to be analyzed must be within this allowed range. For measuring out of range voltages, you will need analog circuitry like a voltage divider or something more complex depending on your requirements.
Example to feed external signal to DIY smartphone Oscilloscope
To connect an external signal we are using a high value resistor 100k ohms which works as a protector for Pico board from high currents. We also need two 1k ohm resistors which are connected to 3.3v and GND pins and join the other ends of both resistors together as you can see from the below circuit diagram. We joined both because we need to measure both the Positive and negative signals .
Circuit diagram:
You can use Alligator clips for 100k ohm end and 1k ohm resistors end which makes it easy to hold the input wires.
Now, Connect the USB cable other end via OTG adapter to Android smartphone. As soon as you connect you will get a popup “Allow scoppy to access the Pico?”. Click on OK.
Testing External Signals:
With this connection you can measure the signals ranging from -1.65 to +1.65 which makes a maximum of 3.3volts. You can measure the frequencies up to 250kHz which is the standard sampling rate of Raspberry Pi Pico.
To test this Smartphone Oscilloscope using Pico we need a function generator. So you can design a function generator using Arduino and Rotatory encoder. Through it we can generate a Square wave with variable frequencies. Connect the output from the signal generator to the Pi Pico input. You can adjust the rotatory encoder to see the waveforms and frequencies.
Now it your choice to keep on discovering. To test this DIY Oscilloscope refer our Square wave generator and Triangular wave generator circuits and connect them to this device and observe the waveforms.
Refer few analog front end examples here.
If you have any doubts please feel free to write us through the comment section below. If you like this project please share it with your friends and follow our Facebook channel “Circuit schools”.
Good evening
I really appreciate your work that make the project so amazing and atractive…
I accomplished at instructions as you mentioned above, but the scoppy app did not show the signal i apply to the pico board and the scoppy still showing “usb idle” …
Plz tell me what to do to overcome this case…
Thanks alot in advance
Hello Muhannad,
I think the Issue is with OTG cable or mobile. To test weither the pico board is connected to smartphone or not refer this video and try it to check the status of it.
Video: https://youtu.be/vrXL-BLjC1I