Cross platform

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

  • Windows 10.
  • Ubuntu 20.04 LTS.
  • OSX El Capitan or later.

This means it will also run on Windows 7 and 8, 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 build using the following libraries. Each has its own GPLv3 compatible license. Those libraries are:

GLEW BSD - 3 clause
KISS-FFT BSD - 3 clause
LibUSB LGPL version 2.1 or latter
wxWidgets GPL version 2 or later

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

Recommended requirements

  • 2 Ghz multi core CPU or better
  • 2 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++. 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 parameter 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.


  • Lua scripting is embedded into application and supports controling hardware and runtime data modification.