← View All Updates
Jan 18, 2018

New Software Features

While waiting for the final prototype to come back from MacroFab, I’ve spent some time cleaning up some odds and ends on the software, testing out the old prototype further, and adding some cool new software features.

First, I’ve finalized the voltage ranges and cleaned up how they’re shown on the GUI. The board will go from +-3.5mV, +-35mV, +-350mV, and +-3.5V full-scale, depending on the gain you use. Notice how little noise there is on this latest version too!

I’ve also written a calibration routine, that will set the DAC offset voltage so that no matter what gain you’re on, or AC/DC coupling, 0V will be in the middle of the screen, as you’d expect! I’ll pre-calibrate your board, and will include a file (in .json format) that will be loaded when you start the python GUI. The file is tied to the 64-bit unique ID of the FPGA soldered to each board, which I now read out into the python software. You can also easily save your own calibration file, in case the best settings change due to various conditions.

I also sped up the USB2 interface. For those of you who bought the add-on USB2 board, this is going to be great. You now really get ~4MB/s transferred to the python software. That’s about 200 Hz, for 4 channels of 4096 samples each! The key was to understand a quirk of the FTDI chip that I’m using to interface from the FPGA to the USB2 connection. The data is only sent to the PC when either 1) the 1kB buffer on the FTDI chip is full or 2) the “latency timer” expires, every 16 ms, by default. So if you send an amount of data which is not an integer multiple of buffer sizes, you have to wait 0-16 ms until the timer expires and sends the last bit of your data! That meant I was only sending 1/16ms or ~50 Hz of data. The trick is you can also tell the FTDI chip to flush the buffer by strobing the SIWU input. You can see me doing this in the scope trace below - the dark blue pulse at the end says “send it all to the PC now!”:

With this we now get ~220 Hz of events sent to the PC over USB2 (vs about 8 Hz over serial!).

One last thing I’ve thrown in is a “persist” display. You might know this from an old analog scope, or a modern digital scope, where you can choose to see many traces at once on the screen. This is especially useful if you want to see rare traces that are quite different from the others, or if you want to see the spread of traces around the average trace. I now optionally store the last N traces and can overlay them on top of each other, where the color of each point reflects how often a traces goes through it. Here’s an example of what it looks like:

This could even show a (“low” speed) eye diagram! If you don’t know what that is, learn here: https://www.youtube.com/watch?v=mnugUjaMN70

$18,598 raised

of $10,000 goal

Funded! Order Now

Dec 14 2017

funded on





Product Choices


The Haasoscope Bundle

Receive 1 Haasoscope + 2 probes + USB-serial adapter + USB blaster + screen


Your very own Haasoscope!

A fully assembled Haasoscope, preloaded with firmware and ready for data-taking! You also might want to grab a USB-serial adapter (for interfacing to a computer) and/or a USB-blaster (for reprogramming the firmware). Haasoscope will retail for $119 after the end of the campaign.


Haasoscopes are happier together - get two!

Two fully assembled Haasoscopes, preloaded with firmware and ready for data-taking! Again you may want a serial adapter and/or USB-blaster, but you just need one of each for both of them. The 2-pack will retail for $229 after the end of the campaign.


Now we're talking about a serious data-acquisition system - 4 Haasoscopes!

Four fully assembled Haasoscopes, preloaded with firmware and ready for data-taking! Again you may want a serial adapter and/or USB-blaster, but you just need one of each for all four of them. The 4-pack will retail for $429 after the end of the campaign.



This lets you reprogram the Haasoscope FPGA firmware from either Windows or Linux using the free Altera Quartus II software via the JTAG connector.


A Cool Screen!

This is a 0.96" 128X64 pixel white OLED screen. It communicates with the Haasoscope over an SPI interface, and can show ADC data from a selected channel, or whatever you tell it to! It can plug directly into the header above the FPGA.


Oscilloscope Probes

Two passive 100 MHz bandwidth oscilloscope probes for connecting to Haasoscope 100 MHz ADC inputs using BNC.


Opto-isolated USB-serial Adapter

For those of you probing some dangerous stuff, you can now act crazy without killing your laptop. This USB-serial adapter works just like the standard one, but is opto-isolated, for 1500V of protection!


High-speed USB Readout Board

In case 1.5 Mb/s is not enough bandwidth for you, grab one of these boards and have high-speed USB2 output from a Haasoscope! Using just 8+2 digital outputs on the Haasoscope, you can get about 4 MB/s, about 20x faster than serial, and still use the same python readout code. It's supported in the stock firmware too! Using 8+4 digital outputs, you could in theory even get up to 40 MB/s using C++ readout code and the free FTDI USB libraries.


A Haasoscope Mug!

Drink your coffee in style and support the Haasoscope dream.

Ask a Question

Have a question not answered in the description above or in the Updates?

Ask Andy Haas a Question or Browse the Crowd Supply Guide


Andy Haas

I teach physics at NYU. I use electronics for research, in teaching, and as a hobby.

Andrew Haas

Seeed Studio

PCBA Manufacturer

Subscribe to the Crowd Supply newsletter, highlighting the latest creators and projects: