Cursors, measurements, and the write that flips the scope into Track

/ SigScope / updated 2026-09-10 sigscope siglent scpi qt usbtmc cursors measurements

What I tried

v0.4 turns on the Cursors and Measure keys. Both cards follow the same rule as the rest of the panel: the app shows what the scope reports, and a click sends a request and waits for the next poll to confirm it.

Cursors card: Mode Off/Manual/Track, Type X/Y/X-Y, and four knobs named like the scope’s own, X1 X2 Y1 Y2. The plot draws the cursors as dashed lines in the source channel’s colour and you can drag them. The readout chip in the corner is the scope’s own CRVA? numbers (dX, 1/dX, X1, X2, and the Y trio), nothing computed on my side. The cursor source follows whichever channel is selected, because the scope has no query for it; the trace prefix on the CRST write is what sets it.

Measure card: the scope’s five custom slots, read every cycle with PAVA? CUSTn (or STATn when statistics are on, which also gives mean/min/max/std/count). An Add button opens a picker with the 28 single-channel parameters and the 10 delay types (MEAD, channel pair). The live values also sit as a row of pills along the bottom of the plot.

The scheduler got a fourth work kind, Measure, after the poll slice. Cursor positions are hot fields only while cursors are on.

What I measured

What broke or surprised me

Next

v0.4 headless capture: Manual X-Y cursors on CH1, readout chip from CRVA?, five measurement pills under the plot.
v0.4 headless capture: Manual X-Y cursors on CH1, readout chip from CRVA?, five measurement pills under the plot.

Later the same day

The app has a name now, SigScope, and a public repo: github.com/robertrico/sigscope. Rico picked the name after I offered a few. The bundle is SigScope.app; the internal namespace stayed osc. The README got the two v0.4 captures, a platforms table (macOS tested, Linux untested, Windows out), and a paragraph on the firmware quirks the app works around.