Skip to content
Anton Chernov edited this page Sep 7, 2026 · 3 revisions

Oscilloscope

Modern cross-platform client for Hantek USB oscilloscopes. Linux Mint and Ubuntu are the primary development and testing platforms; compatibility with Windows 10 and 11 is planned through the portable CMake-based architecture.

Current version: 0.2.12. Status: Stage 4 live waveform rendering

Development notes

  • C++ test sources registered in CMake source lists receive the same release version updates as production sources.
  • The operational Hantek DSO-2250 operates on interface 0, alternate setting 0, with bulk endpoints 0x02 (OUT) and 0x86 (IN).
  • The DSO-2250 waveform byte order is interleaved CH2 then CH1; parser tests preserve this verified legacy contract.
  • A complete DSO-2250 read is 10240 samples per channel (20480 interleaved bytes), transferred as 40 packets of 512 bytes after capture state 3.
  • The DSO-2250 requires the extended acquisition-configuration command group 0x0b-0x0f to arm; the DSO-2090 SetTriggerAndSampleRate (0x01) is ignored by it.
  • The processing worker decodes complete frames and publishes a mutex-protected waveform snapshot with its trigger point for the renderer.
  • Both channels render on the display grid with Auto, Normal, and Single edge triggering, a movable trigger Position under a fixed "T" marker, and a display window that keeps the trace filling the full width with pre/post-trigger reserve.
  • Each supported-device entry defines the capture protocol used after connection, so adding a model requires recording its complete USB/sample format rather than only its VID/PID.

Clone this wiki locally