Skip to main content

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.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ikalogic-scanastudio 0.2.5
File Size Uploaded Provenance
ikalogic_scanastudio-0.2.5.tar.gz 54.2 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for ikalogic-scanastudio 0.2.5
File Interpreter ABI Platform
ikalogic_scanastudio-0.2.5-py3-none-any.whl Python 3 none any Details

Total release size: 120.7 kB

Release files / ikalogic_scanastudio-0.2.5.tar.gz

Download URL ikalogic_scanastudio-0.2.5.tar.gz
Size 54.2 kB
Tags Source
SHA-256 checksum
How to use checksums
a9dcc6bd3ecd1df4fd8277dc43239ae6861bb93788d60f0a72b28301980b1c21
BLAKE2b-256 checksum
How to use checksums
ad0a76a0cd845bf2f29d8a7be99e4201cc6e58a329c6469036d2766ac99fc150
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 Sep 4, 2026.

Transparency log

Release files / ikalogic_scanastudio-0.2.5-py3-none-any.whl

Download URL ikalogic_scanastudio-0.2.5-py3-none-any.whl
Size 66.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a3d9934d23a389a09c3f2dacc0a3da839e850f51df2187097e113b029ef71f17
BLAKE2b-256 checksum
How to use checksums
9ead9e43c438517f3024c0a9824b9c3923979c270d79397ca7bd3388d73e60fe
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 Sep 4, 2026.

Transparency log

Security for ikalogic-scanastudio 0.2.5

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.

Select from 2 files

Attestation for ikalogic_scanastudio-0.2.5.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 Sep 4, 2026.

Transparency log

A 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.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page