/wavebin

Capture and inspect multi-channel oscilloscope waveforms

Primary LanguagePythonMIT LicenseMIT

Oscilloscope Waveform Capture Viewer

GitHub release PyPI - Python Version PyPI - Downloads GitHub license

wavebin reads binary capture files generated by Agilent, Keysight and Rigol oscilloscopes and renders the waveforms in an interactive plot. Waveforms can be inspected, filtered, clipped, subsampled and exported to sigrok PulseView or WAV files.

wavebin has been tested with capture files from a Keysight DSO-X 1102G, Keysight MSO-X 4154A, Rigol MSO5074, and Rigol DHO804. If you have access to waveform files from other Agilent, Keysight or Rigol oscilloscopes, please submit them for testing through the Sample Waveforms issue.

Getting Started

wavebin is available via the Python Package Index (PyPI) and is installed using pip.

> pip3 install wavebin

Keysight oscilloscopes save capture files to external USB Mass Storage devices for easy transfer to a PC. These files use the .bin extension. To open a capture file in wavebin, start the application by running:

> python3 -m wavebin

Next, click FileOpen and navigate to the .bin file.

Alternatively a capture file path can be specified when running wavebin using the -i argument.

> python3 -m wavebin -i [PATH TO BIN FILE]

For more information about the wavebin command-line arguments run:

> python3 -m wavebin -h
                              __    _
   _      ______ __   _____  / /_  (_)___
  | | /| / / __ `/ | / / _ \/ __ \/ / __ \
  | |/ |/ / /_/ /| |/ /  __/ /_/ / / / / /
  |__/|__/\__,_/ |___/\___/_.___/_/_/ /_/  v2.3.1

             vksdr.com/wavebin


usage: wavebin [-h] [-i FILE] [-v] [--no-opengl] [--no-limit]

Waveform capture viewer for Keysight oscilloscopes.

optional arguments:
  -h, --help   show this help message and exit
  -i FILE      path to Keysight waveform capturefile (.bin)
  -v           enable verbose logging mode
  --no-opengl  disable hardware accelerated rendering with OpenGL
  --no-limit   disable subsampling limit (may cause slow frame rates with large captures)

Features

Export to PulseView

PulseView by sigrok is a logic analysis tool typically used with hardware logic analyser devices. It is capable of decoding many serial and parallel protocols with its built-in decoders.

Below is a 115200bd UART waveform captured on a DSO-X 1102G, loaded into wavebin with clipping enabled to create a clean digital waveform, exported to PulseView and decoded using the PulseView UART protocol decoder.

To export waveforms to PulseView, click FileExport to PulseView then navigate to a save location. The produced .sr file can then be opened directly in PulseView.

Export to WAV

WAV files can be opened in most media players (e.g. VLC) and audio editors (e.g. Audacity).

To export waveforms to WAV files, click FileExport to WAV file then navigate to a save location. This will produce a mono .wav file for each waveform. The WAV files names follow the format *_[n].wav, where n is the waveform number starting at 0.

Filtering

A Savitzky-Golay low pass filter is included in wavebin for smoothing waveforms. This filter can be enabled using the Filter Type dropdown menu.

Clipping

The clipping option converts analog waveforms to digital waveforms in a similar way to a Schmitt trigger.

The filtering and clipping options can be used simultaneously. Clipping is always applied after filtering.

Subsampling

When a waveform capture is first loaded, all available sample points will be used to render the waveform. The subsampling option renders the waveform using an equally-spaced subset of points.

Below is a 62.5 MHz wave being rendered with all 20,000 points in the capture file, and then with only 1250 points.

By default, waveforms with over 50,000 points will automatically be subsampled. This can be overridden using the --no-limit switch.

Resources