Skip to content

drandyhaas/HaasoscopePro

Repository files navigation

HaasoscopePro

An Affordable 2 GHz 3.2 GS/s 12 bit open-source open-hardware expandable USB oscilloscope

Firmware overview: firmware schematic.pdf

Video tutorials

See this YouTube Playlist !

Versions

  • old: v27 is the firmware that shipped with the first round of units
  • old: v28 firmware fixed trigger stability
  • "main" branch is currently v29 firmware and adds more software features
  • old: "v29_cleanup" branch has a beta version of the software with yet more features
  • old: "v30" branch has v30 firmware which adds trigger delay and holdoff options and more software features
  • "v31” branch has v31 firmware which adds fan PWM control and more software features
  • "v31_test" branch: new development is occuring here

To use a different branch, do git pull && git checkout "branchname", select the branch name in the drop down box on github and then download the zip file of the code, or (for v30+) download a release zip file for your platform (Windows, Mac, Linux). Then run the new software, update the firmware (if needed) on your board from that new software, and power cycle the board (automatic firmware reload for boards with v29+ firmware).

Quick start (Windows/Mac)

  1. Download code and unzip it, or another zip file version from another branch, or (for v30+) download a release zip file for your platform.
  2. Install FTDI D2xx driver
  • for Windows: install by running the setup exe at HaasoscopePro/software/ftdi_setup.exe
  • for Mac: sudo mkdir -p /usr/local/lib; sudo cp HaasoscopePro/software/libftd2xx.dylib /usr/local/lib/
  • for Linux: sudo cp HaasoscopePro/software/libftd2xx.so /usr/lib/
  1. Plug Haasoscope Pro into your computer via USB (5V 2A at least!)
  2. Run HaasoscopeProQt in the HaasoscopePro/software/dist/(OS)_HaasoscopeProQt directory

Fuller way of running (Windows/Mac/Linux)

  1. Install python3 and git for your operating system
  2. Install dependencies:
    pip3 install numpy scipy pyqtgraph PyQt5 pyftdi ftd2xx matplotlib
    (matplotlib not needed for v30+)
  3. Get code:
    git clone https://github.com/drandyhaas/HaasoscopePro.git
  4. Install FTDI driver (see Quick start above)
  5. Plug Haasoscope Pro into your computer via USB (5V 2A at least!)
  6. Run:
    cd HaasoscopePro/software
    python3 HaasoscopeProQt.py

Tips

  • If not enough power is being supplied, plug in via a powered USB hub, a USB PD hub with 15W reserved for ports and a USB-C cable, or use an external 5-24V 20W+ power adapter with 2.1mm plug
  • If you get security issues on Mac, do: xattr -cr Mac_HaasoscopeProQt
  • If the board is not found on Linux, use this udev rule and then plug it in: sudo cp HaasoscopePro/software/ft245.rules /etc/udev/rules.d/
  • If you get an error like "qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found", try: sudo apt install libxcb-xinerama0

To remake exe for quick start

  1. pip3 install pyinstaller
  2. cd HaasoscopePro/software
  3. .\windowspyinstaller.bat or ./macpyinstaller.sh or ./linuxpyinstaller.sh

Repository structure

  • adc board: Design files and documentation for the main board, based on Eagle 9.6.2
  • adc board/Kicad: An import of the main board design files into KiCad 8
  • adc board firmware: Quartus lite project for the Altera Cyclone IV FPGA firmware (see README in there for more info)
  • case: Front and back PCB panels for the aluminum case
  • software: Python files for the oscilloscope program
  • sub boards: Eagle design files and documentation for smaller test boards that were used during development

2 GHz Active Probe

All designs for the accompanying active probe are in a separate repository

Editing the GUI

The Haasoscope Pro GUI can be edited using Qt Designer, on software/HaasoscopePro.ui or HaasoscopeProFFT.ui etc.

Other GUIs

  1. HaasoscopeProGUI is a PyQt6-based GUI aimed to provide a professional look and experience, but may not have all the latest features, like multi-scope support, oversampling, etc.
  2. ngscopeclient is a very powerful multi-instrument analysis suite. HaasoscopeProQt must be running, which then automatically opens the LAN port and accepts connections from ngscopeclient. See the ngscopeclient user manual for details.