You can build a lot of cool things with a Raspberry Pi Pico, but did you know that you can use one to build an oscilloscope?  The Scoppy project lets you turn a Pico into a rudimentary 2-channel scope, using an Android phone or tablet for the display. 

Scoppy Pico Scope

An oscilloscope is an essential tool for electronics technicians, engineers, and experimenters. A scope lets you view voltage fluctuations in real-time, allowing you to see the shape of a sine wave, for example.

But scopes aren’t cheap, even a low-cost one can set you back several hundred dollars.

Today we will put together a scope that won’t break the bank, in fact, if you had to buy everything new (except the phone or tablet used as a display) it would set you back less than 10 dollars. And, as a bonus, it’s also an 8-channel logic analyzer. 

Now, to be fair, the scope we are constructing is hardly a serious test instrument. It has a very limited bandwidth and without adding some additional circuitry it lacks a calibrated front-end, essential to taking serious measurements. 

But, if nothing else, it’s a lot of fun, and it might have some limited use in checking out low-frequency signals such as audio signals. 

Scoppy Features

As I said, the specifications of the Scoppy Pico oscilloscope can’t really compare with a proper test instrument.

Scoppy has a maximum sampling rate of 500kS/s, and that is shared between its two channels. Its resolution (measured in time/div) is 5us to 20 s. And it has a memory depth ranging from  2kpts and 20kpts (again, shared between channels) and up to 100kpts for single-shot captures.

It also can serve as an 8-channel logic analyzer with a sample rate of 25MS/s.

One major limitation is the input voltage range. Because the input to Scoppy is actually the input to the Pico’s analog to digital converter, Scoppy can only accept signals between 0 and 3.3-volts, and it can’t take negative voltages.  However, we can get around that limitation by building a proper front end or even, as I will show you, by using three resistors.

Hardware Requirements

The hardware requirements for Scoppy are pretty basic:

  • A Raspberry Pi Pico microcontroller (you’ll probably want to solder some pins onto it).
  • An Android phone or tablet – sorry, no iPhones or iPads!
  • A USB OTG (On The Go) cable or adapter, to connect the phone/tablet to the Pico. 

To make a simple front-end, you’ll need three resistors:

  • Two 1k resistors.
  • One 100k resistor.

Now let’s build our Scoppy!

Installing Scoppy

There are really only a few simple steps to building the Scoppy:

  • Download and install the Scoppy App onto the Android device.
  • Copy the Scoppy UF2 file to the Pico.
  • Connect the Pico to the Android device using a suitable USB OTG cable.

Here are a few more details about the procedure.

Scoppy Android App

The Scoppy Android App is available on the Google Play Store.  You can download it directly from your Android device, or use your web browser while logged into your Google account.

The app is free, but it is advertiser-supported. If you want to eliminate the ads you’ll need to buy it, like most apps it only costs a couple of dollars. I felt it was worth it, but you might want to use it for a while to see if you agree.

Scoppy Pico UF2 File

All the software for the Pico is on a UF2 file, which you can download from the Scoppy website.

Once you have the file on your computer, you’ll need to do the following:

  • With the Pico disconnected from the computer, hold down the BOOTSEL button (the only button on the Pico).
  • Keeping the BOOTSEL button depressed, insert the MicroUSB cable that has its other end connected to the computer.
  • Once the Pico is plugged into the MicroSD cable, release the button.

This will create another drive on your computer.

Take the Scoppy UF2 file that you downloaded and copy or drag it into this new drive. Once the file copy has finished, the drive will disappear.

Now, look at the Pico. If its onboard LED is flashing at a steady rate, then you have successfully installed the Scoppy software.

Testing Scoppy

Scoppy uses two of the Pico’s analog inputs as its inputs.

  • Channel 1 is ADC0, also called GP26.
  • Channel 2 is ADC1, also called GP27.

It also has a 1KHz square wave output on GP22, and we can use that to test our Scoppy.

Test Hookup

All it takes to test Scoppy is a single-wire hookup, as illustrated here:


This feeds the 1KHz square wave into the channel 1 input on GP26.

Running the Test

With the Pico wired as above, connect it to your Android device using the USB OTG cable.

Now start the Scoppy app. You’ll need to accept the permissions it requires.

Press the Run button and observe the display. If you don’t see the waveform, try adjusting the vertical and/or horizontal settings. You can also swipe on the screen to make these adjustments.

As long as you followed all the instructions faithfully, you should eventually be able to see the waveform on the display, along with some real-time information in the bottom left corner.

Experiment with the controls, and try stopping and starting the display. You can also move your wire to channel 2 on GP27 and change the input and trigger to check it out as well.

Improving Scoppy

While Scoppy is cool, it does have several shortcomings, the most serious one being the input voltage range.

You can improve upon this by constructing a better front end for your new Pico oscilloscope.

Improved Front End

On the Scoppy website, they provide the design specifications for four different front-ends that you can build to improve the performance and versatility of the Scoppy oscilloscope.

Each of these designs uses low-cost operational amplifiers, and they can be put together on a solderless breadboard, along with the Pico. The articles are quite detailed, and even feature images of the component placement on the breadboards.

All the designs are for a single channel, but of course, you could just build two of them to create a dual-channel input.

By using one of these designs, you’ll be able to accept higher voltages, as well as AC and negative voltages. But please be aware that none of them are meant for direct connection to high voltage circuits, so don’t use these with line voltage or any other high voltages!

Basic Front End

We can also experiment with a simpler front end, one built using the three resistors that were in the parts list.  Here is how to hook it up:

In this dipole design, we are building a voltage divider with the two resistors, and using the divided voltage as our ground reference. This means that the Pico’s ground and the input ground are not the same, however as long as we only have an input connected while we are attached to our Android device this shouldn’t be a problem.

The 100k resistor buffers the input and allows higher voltages to be input.

Using this arrangement, we should be able to measure simple AXC waveforms from a signal generator.

Basic Test

Connect a signal generator or low-level audio source to the inputs of our basic design. Make sure to only have this connected while the Pico is powered by the Android phone or tablet, otherwise, the ground resistor will likely get shorted out.

Now observe the Scoppy display while you change the type and frequency of the input waveform. In my tests, the Scoppy actually produced a pretty impressive display, at least at lower frequencies. 

Conclusion

While Scoppy is no substitute for a “real” oscilloscope, it is a great project to experiment with, and it might even have some practical use if you build an improved front end and calibrate it properly.

In any case, Scoppy is a great example of the amazing projects that you can put together using a Raspberry Pi Pico. Give it a try and see what you think!

 

Pico Oscilloscope
Summary
Pico Oscilloscope
Article Name
Pico Oscilloscope
Description
Build a small oscilloscope using a Raspberry Pi Pico and your Android phone or tablet. The Scoppy Android app makes it all possible. It will even function as an 8-channel logic analyzer!
Author
Publisher Name
DroneBot Workshop
Publisher Logo

If you have a question...

Comments about this article are encouraged and appreciated. However, due to the large volume of comments that I receive, it may not be possible for me to answer you directly here on the website.

You are much more likely to get answers to technical questions by making a post on the DroneBot Workshop Forum. Your post will be seen not only by myself, but by a large group of tech enthusiasts who can quickly answer your question. You may also add code samples, images and videos to your forum posts.

Having said that, please feel free to leave constructive comments here. Your input is always welcome. Please note that all comments may be held for moderation.

1 Comment
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
kthulu
6 months ago

first of all, great tutorial as usual! secondly, the bootsel button on my pico came off and trying to solder it back on just made things worse…i was wondering if there was any alternative method of getting stuff onto my pico or am i hoopajooped? usually pin combos or something along those lines is the modus operandi, but i havent been able to find any infos as of yet. any help would be muchly appreciated!

1
0
Would love your thoughts, please comment.x
()
x