Skip to content

Use your Rasperry Pi Pico and Android Phone as an Oscilloscope and Logic Analyzer

Notifications You must be signed in to change notification settings

fhdm-dev/scoppy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

97 Commits
 
 
 
 
 
 

Repository files navigation

Woo-hoo. Scoppy can now sample at 2MS/s (previously 500kS/s was the limit). See here for configuration instructions and our related article on hackster.io

Scoppy

Scoppy is an oscilloscope and logic analyzer powered by your Android phone/tablet and Raspberry Pi Pico or Pico W. Signals are measured by the Pico and the waveforms are displayed on the Android device. No programming is required and both the app and firmware are free to download1. Installation is super easy and should only take a few minutes.

The Pico W version allows you to use your phone/tablet as the oscilloscope display without the need for a physical connection between your phone and the Pico W.

The aim of the Scoppy project is to give electronics novices and hobbyists and STEM students access to an ultra-ultra cheap oscilloscope that is useful for viewing low voltage, low frequency signals. Scoppy is also a logic analyzer with a sample rate of 25MS/s.

What you'll need

  • An Android device that's running Android version 6.0 (Marshmallow) or higher. The device must also support USB OTG (On-The-Go) - most modern phones/tablets do (if you don't see the app when browsing the Play Store then your device probably doesn't support this feature)
  • A USB OTG adapter/cable compatible with your phone/tablet (not required when using the Pico W and connecting via Wi-Fi)
  • A Rasperry Pi Pico or Pico W board

The Scoppy app can also be run in Windows using android-x86 on a VM. However we don't provide official support for this. See this awesome instructional video by picoLabo (Japanese with English captions).

Getting started

See the Installation and Getting Started guide.

Want more information?

Start at the documentation index.

Discussions/Forum

Go to the Discussions section of this repository to well ... discuss Scoppy. For example, ask and answer questions, give feedback, request features, report bugs, share your front-end designs or comment on just about anything related to Scoppy, Oscilloscopes, Logic Analyzers or electronics in general.

Measuring different voltage ranges (oscilloscope mode)

To remove the 0-3.3V input voltage limitation (and do whatever signal conditioning magic takes your fancy) you’ll need to add an analog front end. This can be as simple as a voltage divider or as complex as you want it to be. The Documentation contains some examples of simple and cheap AFE designs.

Here's an example of a two channel, super-cheap front end that is easy to build and uses readily available components. This front end features high input impedance and over/under voltage protection.

Two channel front end

Or for something a bit more fancy, here's a front-end that automatically adjusts the sensitivity (input voltage range) as you change the volts/div setting in the app. It also features 10X probe compatibility, an input impedance of 1M||22pF and status LEDs for triggering and Wi-Fi. The schematic and PCB design can be found here at OSHWLab. The boards can also be purchased at the FHDM store.

FScope

Tips

  • If the traces or grid lines look too narrow then you can change the width in Settings (tap Menu to see the Settings option)
  • Long-pressing most of the control buttons will set the corresponding setting to a default value eg. long-pressing the horizontal position button will reset the horizontal position back to zero. Long-pressing the trigger level button will set the trigger level to the centre of the waveform.
  • Long-pressing any of the +/- buttons will continuously change the corresponding value. The longer you press it the faster the value will change.
  • Tap the GND indicator (the right pointing arrow on the left of the screen) to change the selected channel. The selected channel is the one that responds to vertical swiping/zooming and tapping the vertical scale and position buttons.

Quirks

  • If the screen turns off or the app is no longer in the foreground, the run mode will change to STOPPED (to prevent draining the battery). You will need to tap RUN to restart the scope.

Troubleshooting

  • If your phone has a Micro-USB connecter then check that the Micro-USB plug of the OTG cable/adapter is plugged into the phone and not into the Pico!
  • If the Pico doesn't seem to be connecting try the following:
    • tap STOP and then RUN
    • OR
    • unplug the USB cable and plug it back in
  • If it's still not working then it's possible that your phone/tablet doesn't support USB OTG. You can test this by attaching a USB thumb drive to the OTG cable/adapter. You should be able to browse the files on the drive.
  • Some diagnostic information is also writtern to the Pico UART on GPIO 0 & 1
  • If using a Pico W see the Wi-Fi troubleshooting page

Specifications and features (oscilloscope)

  • Max. Sampling Rate: 500kS/s (shared between channels)
  • Max. Analog bandwidth: 150kHz
  • Time/Div: 5us - 20secs
  • Memory depth depends on sampling rate. It ranges between 2kpts (shared between channels) and 20kpts in Run mode and up to 100kpts for Single shot captures.
  • 2 channels
  • Auto and Normal triggering
  • Cursors
  • X-Y Mode
  • FFT
  • Wireless connectivity

Specifications (logic analyzer)

  • Max. Sampling Rate: 25MS/s (per channel)
  • Time/Div: 50ns - 100ms
  • 8 channels

Known Bugs

  • When long-pressing the + or - buttons, moving your finger laterally will have the same effect as lifting your finger off the button. The only workaround is to keep your finger stready when long-pressing these buttons.

Reviews/Instructables/DIY Oscilloscope

Tutorials/Experiments

Other Front-End Designs

Commercial Products Using the Scoppy App

Links

1Advertising and in-app purchase

The free (zero cost) version of the app is limited to one channel. A single banner ad may be displayed at the top of the screen. To enable the extra channel(s) and remove all advertising a small in-app purchase is required. For most countries the price is approx. US$3 for a lifetime purchase. However if you live in an economically disadvantaged country the price may be MUCH lower eg. it is INR 4.00 in India.

Gallery

Scoppy Oscilloscope App Screenshot

Scoppy Development Scoppy app on a Nokia 2.1

Scoppy Logic Analyser Logic Analyzer mode

Scoppy FFT FFT of a square wave

Scoppy FFT Both Channels FFT showing both channels and the YT (scope) window

Scoppy XY + YT X-Y and YT displayed simultaneously

Scoppy on a tablet Scoppy and the FHDM DSO-500K Oscilloscope

About

Use your Rasperry Pi Pico and Android Phone as an Oscilloscope and Logic Analyzer

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages