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 32 bit and 64 bit binaries are available for the following systems: 

  • Windows 10.
  • Ubuntu 16.04 LTS.
  • OSX El Capitan.

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:

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/

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. 

Requirements

  • 1 Ghz multi core CPU.
  • 1 GB RAM.
  • OpenGL 3.2 capable graphics card with at least 512 MB RAM.
  • 32 bit or 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. User interface snapshots are supplied for convenience. The user can switch between different user interface configurations. 
  • Display and visualise captured data. OpenGL is used for rendering. Multiple CPU threads ( scalable to up to 16 cores ) 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.