Our annual conference, Teardown, kicks off in 4 days. Join us in Portland, OR, USA.

Haasoscope Pro

An Affordable, High-Bandwidth, Real-Time Sampling USB Oscilloscope

Limited items in stock

View Purchasing Options
May 16, 2025

Project update 7 of 7

Production Has Begun & Support Has Been Added for ngscopeclient!

by Andy Haas

Well, it’s been an interesting month to say the least. This campaign ended on April 10, one day after "liberation day", when new tariffs were placed by the US on products from most of the world. A day later, the US-China trade war escalated, and US tariffs on China skyrocketed to 145%. This is on top of the existing 25% tariff on electronics from China to the US, so was 170% total! About half of the Haasoscope Pro is produced in China, the PCB and some PCB assembly (PCBA), with only major parts like the ADC assembled in the US along with final assembly (connectors, the case, etc.) and testing in the US. With a 170% tariff I simply could not have afforded to make the Haasoscope Pro. But I ordered all the parts and prepared production, then refreshed CNBC every 15 minutes hoping for a break. :) My backup plan, if tariffs didn’t wane, was to move assembly to another country, like Canada - but that would mean moving to Canada for a couple weeks! (Canada is lovely, and I’m sure it would be a nice "vacation", but it would be a logistical hassle and still expensive.)

Fortunately, on May 12, the SAME DAY the final part arrived at the factory in China, it was announced that the US-China tariffs would go back down to "only" 30% (plus the existing 25% on electronics) on May 14. This is still many thousands of dollars I hadn’t budgeted for, but I can manage it for now. (Certainly prices would have to rise in the future if such tariffs remain.) But all drama aside, I’m happy to report that I’ve now launched PCB fabrication and (most of) PCB assembly! The semi-assembled boards should arrive in a couple weeks. So amazingly I’m still about on schedule for a July 1 completion date. If you missed out on the campaign, you can still pre-order a Haasoscope Pro. (We are making extras to have in stock shortly after the campaign orders ship out.)

Here’s a render of the final board:

While waiting for parts to arrive, we’ve continued to work hard on the firmware and software. Dmitri has been making great progress on his beautiful PyQt6 GUI, which we’ll showcase in another update. I also reorganized the firmware a bit, leading to this (rather pretty!) overview of the logic, using different colors to indicate different types of connections like clocks, data, control, reset, etc.:

On the software side, I added a full auto-calibration feature for adjusting timings when in 6.4 GS/s oversampling mode using two Haasoscope Pro’s with the Haasoscope Pro Oversampling Cable. It automatically minimizes the the timing offset between the two scopes by adjusting the fine delay registers of the ADC, at a resolution of ~2.2 ps. And trigger timing is also automatically calibrated between multiple Haasoscope Pro’s, using an "echo" method I’m really proud of. The problem is that you don’t know what Ethernet (LVDS) cable was used to connect the units, so you don’t know the trigger delay, which is about 5 ns / meter of cable. That doesn’t sound like much, but it is when you are sampling at 3.2 GS/s - that would be 16 samples delay for just a meter of cable. To calibrate, the first unit sends a test pulse to the other unit, which then responds with an echo reply back to the first unit. Based on the delay of that echo, you can estimate quite accurately the length of the cable (after dividing by 2, since it has to go there and back, and accounting for the known time it takes the other unit to generate the echo). The method automatically syncs triggers now to within one sample, ~0.3 ns.

Last but not least, I added ngscopeclient support. This was probably the single most requested feature, since it then lets you integrate the Haasoscope Pro into the rest of your measurement setup, and take advantage of all the incredibly powerful features of ngscopeclient: protocol decoding and analysis, eye diagrams, waveform history, etc. Interfacing to ngscopeclient actually turned out to be pretty easy. When the normal Haasoscope GUI starts, it opens a TCP socket. ngscopeclient then connects to that socket from the Haasoscope Pro scopehal driver, and communicates via simple SCPI commands to get waveforms. You can run on the same machine by connecting to "localhost", or even get waveforms from the Haasoscope Pro over the internet to ngscopeclient anywhere in the world just by opening up the right port. It’s fast (about 10-60 waveforms/s depending on memory depth) and looks good:

That’s it for now. I’ll update you again in a couple weeks once the boards arrive!


Sign up to receive future updates for Haasoscope Pro.

Haasoscope Pro is part of Altera Innovation Lab

Key Components

EP4CE30F23C7N · Altera Cyclone IV FPGA
handles all data communication

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