Using the RP2040 microcontroller as a USB oscilloscope is a staple DIY project, leveraging its 12-bit ADC and 500 kS/s sampling rate. However, the raw GPIO pins on a Raspberry Pi Pico are strictly limited to 0–3.3V. Feeding an unconditioned signal into ADC0 (GPIO 26) will instantly destroy the silicon. To build a reliable Raspberry Pi Pico oscilloscope, you must design an Analog Front End (AFE)—usually an op-amp buffer and voltage divider—and rigorously verify its output with a digital multimeter (DMM) before connecting the Pico. A good baseline reading at the AFE output with a centered AC signal is exactly 1.65V DC. If your DMM reads outside the 0.05V to 3.25V window, your Pico is at risk.

Multimeter Setup for Pico ADC Verification

Before powering up your Pico or running software like PulseView/Sigrok, you must validate the AFE voltage divider and biasing network. Relying on visual inspection of resistor color codes is insufficient; 1% tolerance resistors can still shift your DC bias enough to clip the top or bottom of your waveform.

DMM Configuration Block

  • Dial Position: DC Voltage (V⎓). Do not use AC mode, as you need to verify the DC biasing midpoint of your op-amp circuit.
  • Lead Jacks: Black lead to COM. Red lead to the VΩmA (or VΩHz) jack. Never use the high-current 10A jack for logic-level verification.
  • Range: Manual 4V or 40V DC range. Auto-ranging works, but manually locking the 4V range forces the meter to resolve down to 1mV (0.001V), which is critical for spotting a 3.28V over-voltage condition that auto-range might round to 3.3V.

Probe Placement and Expected Readings

Proper probe placement dictates whether you are measuring the actual signal hitting the RP2040 or just the unconditioned source. Always measure at the physical solder joint or breadboard row immediately adjacent to the Pico pin.

  1. Establish a Common Ground: Clip the DMM black lead and the oscilloscope probe ground spring to the exact same ground rail row as the Pico's GND (Pin 38). Do not use the Pico's metal USB shield as a ground reference; it carries high-frequency switching noise from the USB VBUS.
  2. Verify the VREF Rail: Place the red DMM probe on Pin 35 (ADC_VREF). On a stock Pico, this is jumpered to the 3.3V LDO output. For a precision scope build, this should be driven by an external shunt reference (like an LM4040 3.0V).
  3. Measure the AFE Output: Place the red DMM probe on the AFE output trace (the exact node connecting to GPIO 26 / Pin 31). With no AC input signal, this should read your DC bias midpoint.
Test Point Expected DMM Reading (Good) Expected Scope Reading (Good) Bad Reading & Probable Fault
Pin 35 (ADC_VREF) 3.300V ± 10mV (or 3.000V if using shunt) Flat line, < 15mV ripple < 3.20V: USB cable voltage drop or LDO brownout.
AFE Output (No Input) 1.650V ± 20mV (Midpoint bias) Flat line at 1.65V 0.00V or 3.30V: Op-amp rail lock or missing biasing resistors.
AFE Output (1Vpp Sine) 1.650V DC (Average) 1.15V to 2.15V (1Vpp centered) Clipped peaks: AFE gain too high, exceeding 3.3V rail.

Safety Categories and Mains Measurement Risks

The most dangerous assumption in DIY test equipment is assuming the device provides isolation. The Raspberry Pi Pico has zero galvanic isolation. Its ground plane is directly tied to your PC's USB ground, which is tied to your building's earth ground via the PC's power supply.

WARNING: Mains Voltage Hazard
Never connect a Raspberry Pi Pico oscilloscope directly to AC mains (120V/230V) or non-isolated switch-mode power supply primaries. Doing so will create a dead short through your PC's motherboard to earth ground, destroying your computer and presenting a lethal shock hazard. If you must measure mains-adjacent signals, you must use an isolation amplifier (e.g., ISO124 or AMC1301) on the AFE, and your physical test probes must carry a minimum CAT III 600V rating. The CAT rating applies to the probes and the isolation barrier, not the Pico itself. For detailed safety standards, refer to Fluke's guide on CAT ratings and IEC 61010-1 measurement categories.

Common Mistakes That Give Misleading Readings

When debugging a Pico-based scope, the waveform on your PC screen might look terrible even if the circuit is technically functional. Here are the physical layer mistakes that corrupt your data:

  • Using the Alligator Ground Clip: The standard 6-inch ground lead on a scope probe acts as an inductor. At the Pico's 500 kS/s sampling rate, you are theoretically capturing frequencies up to 250 kHz (Nyquist limit). A long ground lead will pick up high-frequency ringing and inject it into your AFE. Always use the probe's ground spring tip for measurements above 10 kHz.
  • USB Ground Loops: If your Pico is powered by a laptop, and the circuit under test is powered by a benchtop supply plugged into a different wall outlet, a ground loop forms. This manifests as a thick, fuzzy 50/60 Hz hum on your scope display. Fix this by powering the Pico from a USB isolator or ensuring both devices share a single point star ground.
  • Relying on the Internal LDO for VREF: The RP2040's internal 3.3V LDO is susceptible to noise from the USB 5V VBUS line. If your USB hub is powering a mechanical keyboard or a motor, the 3.3V rail will ripple. Because the ADC uses VREF as its ceiling, any ripple on VREF directly modulates your ADC readings, creating phantom noise on the screen. Bypass this by feeding a clean, external 3.0V reference into Pin 35 and cutting the internal trace.
  • Aliasing from Sub-Nyquist Sampling: If you attempt to sample a 1 MHz clock signal with the Pico's 500 kS/s ADC, the software will display a lower-frequency "beat" pattern. This isn't a hardware fault; it's aliasing. Always ensure your analog front-end includes a hardware low-pass filter (anti-aliasing filter) set to roughly 200 kHz to physically block frequencies the Pico cannot accurately sample.

FAQ: Raspberry Pi Pico Oscilloscope

Can a Raspberry Pi Pico oscilloscope measure AC mains voltage directly?

No. The Pico's GPIO pins tolerate a maximum of 3.6V before suffering permanent damage, and the board lacks galvanic isolation. Measuring 120V or 230V AC directly will instantly destroy the microcontroller, short the mains to your PC's USB ground, and create a severe electrocution and fire hazard. To measure mains voltage, you must use a dedicated, certified CAT III or CAT IV isolated differential probe, or build an AFE using a precision isolated amplifier and a step-down transformer.

What is the maximum sample rate and bandwidth for a Raspberry Pi Pico oscilloscope?

The RP2040's ADC hardware is capable of a maximum sample rate of 500 kS/s (kilo-samples per second) when using a single channel. According to the Nyquist-Shannon sampling theorem, the absolute maximum theoretical bandwidth is half the sample rate, or 250 kHz. In practice, due to the lack of a dedicated sample-and-hold amplifier on the raw GPIO pins and the absence of an anti-aliasing filter, the usable analog bandwidth for clean waveform reconstruction is closer to 100 kHz. If you share the ADC across multiple channels, the per-channel sample rate drops proportionally.

Why does my Pico oscilloscope show noisy readings on the 3.3V rail?

Noise on the 3.3V rail of a DIY Pico scope almost always originates from the USB VBUS line. The Pico's onboard RT6150 or similar switching regulator converts 5V USB power down to 3.3V, introducing high-frequency switching ripple (often in the 1–5 MHz range). Furthermore, if your PC's USB port is shared with high-draw devices, low-frequency voltage sags will occur. To eliminate this noise from your oscilloscope readings, power the Pico via the VSYS pin with a clean, linear-regulated 5V supply, or use an external low-noise LDO to generate a dedicated VREF for the ADC.

Do I need a CAT III rated probe for my DIY Pico oscilloscope?

You only need a CAT III (or higher) rated probe if the circuit you are measuring is connected to the AC mains distribution system (like a hardwired appliance or an unreferenced inverter output). If you are strictly measuring low-voltage, isolated DC circuits (like a 12V battery system, an Arduino PWM pin, or an isolated benchtop power supply), standard CAT I or CAT II probes are perfectly adequate. However, the CAT rating of the probe does not protect the Pico; it protects you from the probe's insulation failing during a transient voltage spike.