pyscopegui
Oscilloscopes and logic analysers in one view: analog and logic channels from separate instruments, on one time axis.
For a bench with more than one scope: the channels of each, side by side on one plot. pyscopegui reads the scopes live, triggers on any channel, measures between cursors, decodes CAN, UART, SPI and I²C, and keeps the last seconds or minutes of everything to go back over, export to CSV, or save and open again later. Every scope is set up the same way -- volts a division, probe, coupling -- whoever made it.
Works with the PicoScope 2202 to 2205A, the PicoScope 2206 to 2408B and the MSOs, the Rigol DS1000Z series and the Tektronix TDS/TPS 2000 series, and a built-in demo that needs no hardware.
Install and run
To install it:
pip install pyscopegui
To run it:
pyscopegui
To update it:
pip install --upgrade pyscopegui
Python 3.12 or newer, on Windows or Linux. python -m pyscopegui starts it too. On Windows there is also a standalone installer, which needs no Python.
On Linux, Qt needs a system library to draw the window, and Debian, Ubuntu, Linux Mint and the like often leave it out:
sudo apt install libxcb-cursor0
What it does
- Channels and Plot: analog channels on one plot and digital channels in lanes under it, on the same time axis. Drag or zoom either and both move.
- Several instruments at once, and two of the same kind: Add instrument puts each in the Instrument pane with a tab of its own. Each has its own trigger, and is drawn around it; or one leads, and the others are shown at about the moment its trigger comes.
- Triggers: a scope's own Stop, Single, Normal and Auto, and an edge either way, a window, a pulse's width, a runt, a timeout, a logic pattern, or a frame read off a decoded bus, with a holdoff, on the Nth time and after a delay. A PicoScope reading blocks and a Rigol do most in their own hardware.
- Cursors, Measurements and Data: what every channel read at one or two cursors; levels, RMS, frequency and duty between them or over what is in view; and the samples themselves, a row for each.
- Decoding buses: CAN, UART, SPI and I²C read off analog or logic channels, listed in the Decoded buses pane.
- Decoded CAN to pycangui: frames read off a scope's channel are sent on by UDP multicast to pycangui -- a CAN bus tool, also on PyPI -- and any other program on python-can's UDP multicast bus.
- Maths channels: two channels added, taken away, multiplied or divided; or one inverted, squared, scaled, differentiated, integrated or averaged.
- Probes: 1x to 1000x, differential, or a current probe read in amps.
- Python Console: Python inside the window, with commands to drive the scopes and read their samples, and scripts run from a file.
- Workspaces: one for each bench or setup, each with its own instruments, settings and panes, chosen under File > Workspace.
- Export to CSV, all of it or between the cursors, and save and open captures: everything held kept in a file and opened again exactly as it was, beside the live instruments; and CSV files from other tools opened the same way.
- Deep captures stay quick: the last ten seconds of every channel are held, or up to ten minutes, and what is drawn is cut down to a lowest and a highest per column of the screen, so a spike narrower than a pixel is still drawn.
- Panes that dock, float, detach into windows of their own and pin on top, with the arrangement remembered.
- Light and dark themes, or whichever the system is set to.
The manual covers each of these, and is also under Help > Documentation in the application.
Instruments
- Demo signals: two analog and four digital channels, with no hardware.
- PicoScope 2000 series, both ranges of them, and the scope's signal generator. The 2202, 2203, 2204, 2204A, 2205 and 2205A: both channels, streamed continuously at up to 1 MS/s, or read in short blocks at up to 100 MS/s around the scope's own trigger. The 2206 to 2208 in their A and B forms, the four-channel 2405A to 2408B, and the MSO models: two or four channels and an MSO's sixteen logic inputs, streamed at up to 31.25 MS/s, or read in blocks of up to a million samples at the scope's full rate. Pico's library is not included: install the PicoSDK from picotech.com/downloads.
- Rigol DS1000Z series (DS1054Z, DS1074Z, DS1104Z, and the Plus, -S and MSO models), over the network or USB: the four analog channels, a sweep at a time around the scope's own trigger, read from its screen or its whole memory, with its own trigger types. Over the network nothing of Rigol's needs installing; USB needs a VISA library, which Rigol's own software installs.
- Tektronix TDS/TPS 2000 series (TDS200, TDS1000, TDS2000 and TPS2000 over a serial port; the TDS1000B, TDS2000B and TDS2000C over USB): two or four channels, a sweep at a time around the scope's own trigger, or what is on its screen read off with nothing on the scope changed: suited to taking a capture off the scope rather than watching one live.
More
Safety notice and licence
pyscopegui shows what instruments connected to real equipment measure. A scope's ground clip is connected to the computer's ground unless the scope or its USB connection is isolated, and clipping it to a point that is not at ground can damage the equipment, the scope and the computer. Know what you are connecting to before you connect.
pyscopegui is provided under the Apache License 2.0, without warranty of any kind.
Metadata
Release files for pyscopegui 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| pyscopegui-0.2.0.tar.gz | 668.9 kB | With provenance | Details for pyscopegui-0.2.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| pyscopegui-0.2.0-py3-none-any.whl | Python 3 | none | any | Details for pyscopegui-0.2.0-py3-none-any.whl |
Total release size: 1.2 MB
Release files / pyscopegui-0.2.0.tar.gz
| Download URL | pyscopegui-0.2.0.tar.gz |
|---|---|
| Size | 668.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
cae5ac199acd54b40a98e5ee231e915786b32c3ea1dc12adeddf7ca8ed1dde2e
|
|
BLAKE2b-256 checksum How to use checksums |
ca916dd4ec1c6aaf8e047259dc67450bafa047e47c302924fbcdae72361c5166
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 25, 2026.
Transparency logRelease files / pyscopegui-0.2.0-py3-none-any.whl
| Download URL | pyscopegui-0.2.0-py3-none-any.whl |
|---|---|
| Size | 557.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2018b32551d7caa78af6e96e7a244c0f89e0da58a396dd5d35e8c08f5b314a08
|
|
BLAKE2b-256 checksum How to use checksums |
1c710eb5228d8e678b0a784dab070766408c824a65b916261656b4502d073fca
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 25, 2026.
Transparency logSecurity for pyscopegui 0.2.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for pyscopegui-0.2.0.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 25, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.