Cross platform

Oscilloscope software is designed to run on all major desktop operating systems. This includes Windows, Linux and Mac OSX operating systems. Precompiled 64 bit binaries are available for the following systems:

  • Windows 10.
  • Ubuntu 22.04 LTS.
  • OSX Catalina or later.

It will also run on Windows 11 and other flavours of Linux and other OSX versions. You can always recompile and repackage it for any chosen desktop operating system since it is open source.

Open Source

Oscilloscope software executable is open source software licensed under GNU General Public License version 3 or later ( GPLv3 ). Oscilloscope code is licensed under GPLv3. It is built using the following libraries. Each has its own GPLv3 compatible license. Those libraries are:

cJSON MIT https://sourceforge.net/projects/cjson/
GLEW BSD - 3 clause http://glew.sourceforge.net
KISS-FFT BSD - 3 clause http://kissfft.sourceforge.net
LibUSB LGPL version 2.1 or latter https://www.libusb.info
SDL2 MIT https://www.libsdl.org
wxWidgets GPL version 2 or later https://www.wxwidgets.org/
pybind11 BSD - 3 clause https://pybind11.readthedocs.io/en/latest/

You can download the sources, recompile, modify, copy, distribute … etc as long as you distribute sources under the same conditions ( GPLv3 ).  
Download software and see license folder for license details.

Recommended requirements

  • 2 Ghz multi core CPU or better
  • 4 GB RAM of more.
  • OpenGL 3.2 capable graphics card with at least 512 MB RAM.
  • 64 bit operating system.

Design overview

The software is written in c/c++. Its main tasks are:

  • Capture USB data. One CPU thread is dedicated for fast USB data capture.
  • Reflect user interface configuration back to the hardware. The user interface is responsible for sending configuration data back to the hardware. Every time the user changes settings, this must be reflected in hardware.
  • Display and visualise captured data. OpenGL is used for rendering. Multiple CPU threads can be assigned to prepare render data. One CPU thread is dedicated for submitting data to the graphics card for rendering.
  • Measure captured data. Mostly combinations of voltage, frequency and time.

Features

  • Python API is available which allows to control hardware and read samples directly from Python scripts. C/C++ functions are wrapped to Python and data structures are directly mapped to Numpy arrays which enables high speed data processing in Python.