Docs | ||
Gateware | ||
Hardware | ||
Software | ||
.gitignore | ||
CODE_OF_CONDUCT.md | ||
LICENSE | ||
README.md |
ThunderScope
Low-Cost Four Channel 1GSPS Oscilloscope using Thunderbolt/USB4 to stream data to PC for processing and display.
Join our development discord server
We are now at #thunderscope:matrix.org on matrix or #thunderscope:libera.chat on IRC as well!
Some older long-form documentation is on the Hackaday.io project page
Get the hardware through our crowdsupply page when we launch:
Catch up with these videos on the project:
TEARDOWN 2023 - Open Sourcing the Secrets of Oscilloscope Design
Hackaday Supercon 2023 - A Circuit to Measure Circuits: How do Oscilloscopes do it?
Teardown Session 39: ThunderScope
Quick Start Guide
XDMA
These are instructions for the XDMA gateware, which is currently the most stable gateware and driver.
- Install the XDMA driver for Linux or Windows
- On Windows, first run
Bcdedit.exe -set TESTSIGNING ON
in administrator powershell and restart your computer- Then use the MSI installer, when asked if you want to use polling, click no
- On Linux, run
sudo make install
in the xdma directory- Run
make
in the tools directory - Create a udev rule so you don't have to run everything acessing the hardware as root:
- create
/etc/udev/rules.d/70-thunderscope.rules
file with the lineACTION=="add", SUBSYSTEM=="xdma", TAG+="uaccess"
- create
- With a TS connected, run
sudo ./load_driver.sh
in the tests directory- Output should be
The Kernel module installed correctly and the xmda devices were recognized.
- Output should be
- Run
- On Windows, first run
- Build TS.NET.Engine using the build scripts
- Dependences for build scripts on Debian/Ubuntu Linux:
sudo apt-get install -y dotnet-sdk-8.0 libgdiplus
- On Windows, should just need Visual Studio with the C# plugins
- Copy appsettings.json and thunderscope.yaml into the same directory as the TS.NET.Engine application
- Dependences for build scripts on Debian/Ubuntu Linux:
- Install ngscopeclient, following the instructions in their user manual
- Run TS.NET.Engine and ngscopeclient
- Add ThunderScope in ngscopeclient under Add -> Oscilloscope with "thunderscope" Driver, "Twinlan" Transport and "Localhost:5025:5026" for the Path
LiteX
Follow the instructions in the LiteX guide to build the gateware and software for running LiteX firmware on the Thunderscope.
Troubleshooting
If you are getting under ~1000MB/s throughput on Linux, try turning off VT-d (Intel) or IOMMU/AMD-Vi (AMD) in BIOS or using "intel_iommu=off" in GRUB (Intel)
Beta 2 Front End Rework
Remove the covers on the front end shielding cans, repeat the steps below for each channel.
- Replace "1" with a 220pF 50V COG 0402 Capacitor (GCM1555C1H221FA16D), this will flatten the crossover response and eliminate peaking for square waves under ~100kHz.
- Replace "2" with a 1.2nF 100V C0G 0603 Capacitor (GCM1885C2A122FA16D), this will increase the frequency for which the maximum 100Vpp input voltage rating applies.
- Replace "3" with a 50Ω 0402 Resistor, this will eliminate peaking past 300 MHz in the frequency response
Baseboard Hardware
Revision | Label | Status | Location |
---|---|---|---|
Rev.1 | N/A | DEPRECATED | Hardware/Altium/Thunderscope_E |
Rev.2 | N/A | DEPRECATED | Hardware/Altium/Thunderscope_Rev2 |
Rev.3 | Alpha | DEPRECATED | Hardware/Altium/Thunderscope_Rev3 |
Rev.4 | Beta 1 | ACTIVE | Hardware/Altium/Thunderscope_Rev4 |
Rev.4.1 | Beta 2 | ACTIVE | Hardware/Altium/Thunderscope_Rev4.1 |
FPGA Module Hardware
Revision | Status | Location |
---|---|---|
TE0712 | ACTIVE | Trenz Electronics TE0712 Module, 100T or 200T Varients |
Rev.1 | DEPRECATED | Hardware/Altium/FPGA_Module |
Rev.2 | ACTIVE | Hardware/Altium/FPGA_Module_Rev2 or Hardware/KiCad/FPGA_Module_Rev2 |
Firmware
We have two types of firmware, LiteX and XDMA. We are in the process of updating the LiteX firmware to work on the latest hardware, and we will use it moving forward. Until then, use the XDMA firmware if you are not working on LiteX.
TODO: Table of Beta Unit serial numbers with module types and firmware locations
Serial Numbers | Module Type | XDMA Firmware Location |
---|---|---|
TS0004, TS0006, TS0015 | TE0712 100T | Firmware/XDMA/output/xdma_prj_100t_full.mcs |
TS0007, TS0008, TS0011-TS0014 | TE0712 200T | Firmware/XDMA/output/xdma_prj_200t_full.mcs |
TS0009, TS0010, TS0016-TS0018 | Custom Rev.2 | Firmware/XDMA/output/xdma_prj_50t_full.mcs |
Follow the instructions in the Software/xdma_driver_linux or Software/xdma_driver_win_src_2018_2 folders to install the XDMA linux or windows driver before proceeding with installing the rest of the software.
For LiteX developers, the Linux driver is stable. Windows and Mac drivers are in development.
Software
Our primary software is TS.NET, which takes in data from the hardware, triggers on it, and sends the triggered data over to ngscopeclient