About this project
fynescope is a prototype graphical user interface and control application for PicoScope 2000B and 2000B MSO Series PC oscilloscopes. It is written in Go and built on the Fyne widget toolkit together with the PicoScope 2000A series SDK. Supported platforms are Linux and Windows 11 (x64, ARM64 / Raspberry Pi 4 and newer).
Core capabilities
- Time-domain oscilloscope f(t): multi-channel waveform capture, vertical and time divisions, linear and sin(x)/x interpolation, persistence, and an independent Time Zoom window for simultaneous wide-scale and detail inspection.
- Mixed-signal (MSO) support: digital channel visualization (D0-D15) for MSO models such as the 2206B MSO, digital edge/pattern triggers, configurable logic thresholds (TTL, CMOS, ECL or custom), and flexible channel stacking.
- Triggering: Simple Edge, Advanced Edge, Window, Interval, Pulse Width, Window Pulse Width, Runt, Dropout, Window Dropout, Logic, and Complex multi-channel triggers.
- Protocol decoding: built-in UART and SPI decoding on analog channels with inline frame token overlays and error flags.
- Spectrum analyzer FFT: real-time frequency-domain analysis with linear or logarithmic frequency axes.
- Frequency response analysis f(f) / Bode plots: automated frequency sweeps with magnitude and phase plots, integrated with the built-in AWG or external SCPI signal generators.
- X-Y mode f(v): plot one channel against another to analyze phase relationships and Lissajous patterns.
- Virtual/math channels: real-time computed channels from physical inputs using arbitrary expressions (for example chA + chB, chA * chB, offsets and scaling) via the expr engine.
- Digital and analog filters: real-time low-pass, high-pass, band-pass and band-stop FIR/IIR filters with zero-phase (FiltFilt) capability, plus simulated RLC filters in demo mode.
- Correlation: real-time Pearson scalar correlation and cross-correlation between channels.
- Signal generator / AWG: control of built-in arbitrary waveform generators (sine, square, triangle, ramp, DC, noise, sweeps).
- SCPI support: control external SCPI signal generators over USB for automated testing and Bode plot generation.
- Hardware-free demo mode: built-in signal simulator producing multi-channel analog waveforms, digital patterns, sweeps and noise, so the full UI can be explored without hardware.
- Remote web server and voice control: live MJPEG streaming to a web browser with hands-free voice commands via the Web Speech API (-webport), protected by basic authentication.
- Remote HTTPS REST API: query oscilloscope status and configure parameters programmatically (-apiport, -apiauth).
Build and usage
Demo mode runs without PicoSDK or a C toolchain: go run -tags=demo . -demo. Building with real hardware support requires Go 1.27, a C compiler and the official PicoScope SDK (libps2000a). Build tags include demo (pure-Go simulator), sim (hardware simulator mocking the PicoScope C driver interface), scpi (external SCPI generator control for Bode sweeps) and web (MJPEG streaming and voice control server). Common CLI options cover demo mode, screen size scaling, web port, API port, GIF export, log level and version/about output.
Documentation and limitations
The repository includes a github-wiki directory and an online GitHub Wiki covering getting started, features and controls, demo mode, generator control, virtual channels, trigger modes, protocol decoding, resolution increase, web server and voice control, testing and debugging, program structure, and limitations. The project states that some features of the official PicoScope 7 software are not implemented, such as deep statistical measurements, mask limit testing, and additional protocols. Development tools mentioned include LiteIDE and AI coding assistance. The project is licensed under BSD 3-Clause and incorporates code and API structures from other open-source projects and hardware providers.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.