← Back to all projects

NS1 Oscilloscope

NS1 Oscilloscope

Description

NS1 is a compact, headless, single channel oscilloscope featuring 7.5MHz bandwidth and a sample rate of 62.5MS/s. NS1 is designed to be just enough for many common analysis and debugging tasks. It is not intended to replace a fully featured bench top scope, but rather it is a sidearm for quick checks and computer based analysis. NS1 uses the RP2040 microcontroller for signal acquisition, leveraging its PIO and DMA peripherals to achieve a high 62.5MS/s sample rate. This makes NS1 exceptionally fast for a microcontroller based oscilloscope. Given NS1's lack of a head, waveform visualization and control are handled via Voltpeek. Voltpeek is a custom oscilloscope control software written in Python; it communicates with NS1 over simple USB serial. Voltpeek utilizes a fully command based UI which we consider to be a necessity for an easily usable PC based oscilloscope. Voltpeek can also be used for direct Python scripting to automate waveform capture and control.

Details

  • 16384 point memory depth
  • 4 ranges 1V, 2V, 5V, 10V, all full scale
  • rising edge and falling edge trigger
  • 7.5MHz bandwidth (+0.6dB, -3dB)
  • 62.5MS/s
  • Single Channel
  • +/-4% of full scale DC Accuracy

Here are some example waveforms captured with the NS1:

Frequency Response

Here is a measured frequency response for each of the ranges. The frequency response is shaped digitally via a 3 point FIR filter. That is, this is the overall system frequency response, not just the analog front end response.


Triggering

The system has two triggering modes, force trigger and normal trigger. Force trigger starts the capture when the trigger is initiated, whereas normal trigger waits for a trigger edge event before starting the capture. With normal trigger mode, the trigger event is recorded at the center of the capture. Normal trigger is achieved with a comparator and a settable trigger voltage as shown below:

There is also a trigger correction algorithm in Voltpeek to properly center the trigger event.

Gain and Attenuation Settings
There are two attenuator settings and two gain settings. These are what scale the input signal to create the four possible ranges:

Software

is the software written to control and display the data that is sampled using NS1. Unlike other PC based oscilloscope software, Voltpeek is a command based UI. This is done because click and drag based UIs can be extremely annoying when they are controlling complicated processes. Voltpeek has a similar user interface to Vim. Different commands control the system, and the software can be put in adjustment mode. Adjustment mode is used to adjust the scales, cursors, and trigger level using the h, j, k, and lkeys.

Prior Work

NS1 is not the first oscilloscope project to utilize the Pi Pico/RP2040 PIO and DMA peripherals to create a fast oscilloscope. Some similar projects that have done this are listed below:

Project Logs

Files