ikalogic-scanastudio
Python SDK for ScanaStudio v6, the software behind Ikalogic logic analysers and pattern generators.
ScanaStudio runs a server that owns the devices and speaks one WebSocket protocol. The interface is a client of that protocol, and so is this package — so everything you can do in the application, you can do from a script: capture, decode, measure, generate patterns and export.
pip install ikalogic-scanastudio
Capture and decode
from ikalogic_scanastudio import ScanaStudio, Trigger
with ScanaStudio.connect() as server:
workspace = server.create("se254") # a demo device: no hardware needed
workspace.capture.run(
samples=1_000_000,
sample_rate=25_000_000,
trigger=Trigger.rising(channel=0, position=0.1),
)
i2c = workspace.decoders.add(
"i2c.js",
{"ch_scl": workspace.channel("I2C SCL"), "ch_sda": workspace.channel("I2C SDA")},
wait=True,
)
for packet in i2c.packets():
print(f"{workspace.capture.seconds(packet.start):.6f}s {packet.title}: {packet.content}")
workspace.export_csv("packets.csv", source="packets", instances=[i2c.instance_id])
server.create takes a demo key such as se254, or hw:<serial> for real
hardware; server.devices() lists both. server.open takes the path of a
.scana instead, and server.attach joins a workspace already running.
⚠️ A demo device generates pseudo-random noise, not protocol traffic. It runs the whole path — capture, decode, measure, export — which is what makes it useful for writing and testing a script without hardware, but a decoder run on it finds structure by chance.
Read the raw signal
for edge in workspace.data.transitions(channel=0):
print(edge.sample, edge.level)
The iterator pages for you, however long the capture. The first edge it yields is the level in force where you started reading, so a window describes itself.
Find out what a decoder takes
for option in workspace.decoders.options("i2c.js"):
print(option)
# ch_sda: SDA Channel (ch_selector) = None
# address_format [Advanced options]: Address display format (combo)
# one of ['HEX', 'Binary', 'Decimal'] = 'HEX'
Pass those by id or by caption, as Python values — a channel number, a combo
entry by name, a flag as True. Anything left out keeps the script's default.
Leave a capture running
The server owns the workspace, so disconnecting destroys nothing. Start a long acquisition, go away, and come back to it:
with ScanaStudio.connect() as server:
workspace = server.create("hw:SP259-000123")
workspace.capture.start(samples=2_000_000_000)
print("running as workspace", workspace.id)
# later, from anywhere
with ScanaStudio.connect("ws://bench.local:4911") as server:
for session in server.workspaces():
print(session.workspace_id, session.device_name, session.state)
workspace = server.attach(session.workspace_id)
workspace.capture.wait()
⚠️ A server listening beyond loopback has no authentication: whoever reaches the port has the devices.
What is where
server.devices(), server.workspaces() |
what you can open, and what is already open |
server.capabilities(device) |
the rates, depths and thresholds it offers |
server.scripts |
the decoder library, which belongs to the server |
workspace.capture |
arming, running and waiting |
workspace.data |
raw edges, packets, items, hex |
workspace.decoders |
attaching and configuring decoders |
workspace.markers |
time markers |
workspace.measures |
measurements between two markers |
workspace.pattern |
the pattern generator |
workspace.events |
everything the server pushes |
Versions
This SDK speaks protocol 7. ScanaStudio.connect refuses a server that speaks
another, since a mismatch means one of the two needs updating. The protocol
itself is documented in
api/schema/protocol.md.
MIT licensed.
Metadata
Release files for ikalogic-scanastudio 0.2.9
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 | |
|---|---|---|---|---|
| ikalogic_scanastudio-0.2.9.tar.gz | 62.8 kB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ikalogic_scanastudio-0.2.9-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 139.7 kB
Release files / ikalogic_scanastudio-0.2.9.tar.gz
| Download URL | ikalogic_scanastudio-0.2.9.tar.gz |
|---|---|
| Size | 62.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
85ea4ce2fc7d835e8082ceb51abe1631bfa9a782966e979bd787e53b479f6b72
|
|
BLAKE2b-256 checksum How to use checksums |
2c0f3cec98902b3bb4eb24c88a5d1aac418dd433ffff6466c634d96f8c253c85
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 4, 2026.
Transparency logRelease files / ikalogic_scanastudio-0.2.9-py3-none-any.whl
| Download URL | ikalogic_scanastudio-0.2.9-py3-none-any.whl |
|---|---|
| Size | 76.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a6740081da52a615caeae2c7114e53f6c4ea170f1bbc2302007d4f6aef84f685
|
|
BLAKE2b-256 checksum How to use checksums |
8011f185acb72c54b99acc9dc2296cb52240dbf70edcd29d2526165928267c96
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 4, 2026.
Transparency logSecurity for ikalogic-scanastudio 0.2.9
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 ikalogic_scanastudio-0.2.9.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 4, 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.