I’ve been toying with the idea of putting an oscilloscope into the expansion bay, inspired by the Thunderscope project. Right now I have a rough block diagram and some incomplete schematics, but I’m curious what features people would actually want in something like this.
The current plan is to use two HMCAD1511 ADCs running in single-channel mode at 1 GSPS each and potentially dual-channel mode at 500 MSPS per channel if I have the space for the frontends. The RP2040/RP2350 would be used to relay status “LEDs” over a command line tool and also to initialize and program the clock generator. It would also be used to control the power rails allowing you to turn off the oscilloscope, so it doesn’t burn power idling. The FPGA, an Artix 7 35T would be connected to the host over PCIe Gen 2 x4, which should give us 2 GB/s of bandwidth!
Part of the reason for using two HMCAD1511s instead of running them in quad channel mode is to experiment sample interleaving. I’ve wanted an excuse to mess around with interleaving ADC samples for a while, and this seemed like a fun project to try it on!
As soon as I posted this I realized that, I would get less 80% of the actual PCIe bandwidth due to TLP headers and 8b/10b encoding. I could either move up a family to the Kintex 7 160T (for 23$ more at JLC) which should let us use 8 lanes instead of the measly 4 lanes that the Artix gives us or do some fancy stuff with burst sampling for a short period like particle detectors do on triggers with the FPGA rather than using the host like Thunderscope does.
I also wanted to know what specs people would like to see from this, like impedance and max voltage input.
I like this but just an idea to make it more appealing to all users, not just of the FW16.
Have the analog and ADC on a daughter card, then the FPGA to thunderbolt/USB4 to the laptop. One can then change out the daughter card to be:
Oscilloscope capture.
Vector Scope (TX and RX of signal)
RF RX/TX
Other
Also, have a clock in/out, so that one can plug two devices in to each of the two USB4 ports of the FW16 and have the ADC samples in perfect sync. Maybe GPS sync the two devices so one can put GPS timestamps on the sample. GPS timestamps are better than UTC as GPS does not have leap seconds that UTC has.
If you have a use case for a single capture channel using all the PCIe gen 4 x8 lanes, then putting it on the expansion bay is the only way to go.
I actually have been looking at USB4/Thunderbolt to PCIe ICs, all of them are impossible to obtain datasheets for unless you sign a NDA and are a business. Most of the adapters are either designed for an M.2 form factor which is impossibly hard (for me at least) to fit an FPGA plus generous enough space for an daughter board. Other ones that do support the PCIe card form factor need an external power source, which makes it less portable than desired.
I was looking at connectors for low profile board to board connectors and the only one I think is usable are the DF40s since they have a mated height of 1.5mm. But I am not certain, even with the shielded variant, that they would be able to handle general RF signals without significant loss and crosstalk.
I can’t believe I forgot about that, thanks for reminding me!
Before anyone gets too excited about this.
The Thunderscope project. A USB4/Thunderbolt oscilloscope, that this may be based off, has been about 5 years in development. Most of that time has been trying to get the Analogue/ADC side working well.
So, just saying, it is not an easy task.
That is partly why I suggested making the Analogue/ADC part a daughter board.
Users could then start off with an average Analogue/ADC section, and then upgrade it over time, as it is optimized, while keeping the FPGA that is the relatively easy part to get right.
I.e. start off with say a cheap Analogue section that does quite well up to about 10Mhz or something like that, and then advance to 300-500Mhz later.
Maybe design it such that the FPGA is on the expansion bay, and then a external cable and box carrying the SERDES signals to an external ADC/Analogue box.
I have used scopes built by Agilent and Tektronix, which had Windows as the underlying OS - and that killed performance in a big way.
The Agilent one that I used was a small machine, and I managed to confuse the machine in some way, and from that I learned that it used embedded WinXP (IIRC) but then the scope hardware transferred the data capture to an excel spreadsheet to display it. That thing was slower than a wet week. I couldn’t get over the inefficiencies in it, I don’t know what processor it used, but it was a real slow one.
The Tektronix one I used was a 10GHz/channel, multi-channel that cost a horrendous amout of money. The IT people wouldn’t let us put it on the network as they couldn’t load anti-virus software on it, and it used Win7 which was approaching EOL then anyway. And the time delay from a capture happening to getting a screen display of waveforms was not great either.
Bring back the Tek 3000 series and 4000 series scopes. They are the highest performance ones that don’t use Windows underneath, and the data display speed is much better.
The “thunderscope” is quite amazing really.
I does not store anything, it transfers everything in real time, over thunderbolt/usb4 to the PC, and then uses open source software, “ngscopeclient”, on the PC to display the waveform, and do whatever processing one needs to the waveform.
For example, I linked up my ancient oscilloscope. It captured a waveform, and I used software to decode the USB CC signal.
Some details here:
The main advantage of something like the “thunderscope” is the bandwidth of the link between the device and the PC/Laptop. It has a 40Gbps link to the PC, so it can capture and send to the PC at high sample rates, and effectively gives the oscilloscope an nearly unlimited capture buffer. I.e. your PC/Laptops RAM, so could be 128GB RAM as a capture buffer. Or, if a server, it could be 4TB capture buffer. The size of the capture buffer has always been a problem with standalone oscilloscopes.
Once you get above 8Ghz/channel, the oscilloscopes / vector scopes get horrendously expensive.
I have used one at work that cost over $ 250,000.