Skip to main content

python-aaronia

Python bindings for sdr-aaronia-rs — stream IQ samples from Aaronia SPECTRAN V6 devices (via an RTSA-Suite PRO HTTP server block or the native SDK) or play back recorded .rtsa files, straight into NumPy or Apache Arrow.

  • PyPI package: python-aaronia · importable module: aaronia
  • Wheels: abi3, CPython ≥ 3.9, one wheel per OS/arch (plus an sdist for everything else — building from source needs a Rust toolchain)
  • License: GPL-3.0-or-later

Install

pip install python-aaronia

Or from a checkout (requires Rust + maturin):

cd python-aaronia
maturin develop --release

Quickstart

import aaronia

cfg = aaronia.AaroniaConfig()
cfg.http_base_url = "http://localhost:54664"  # RTSA-Suite HTTP server block
cfg.center_freq = 2.44e9                      # Hz
cfg.sample_rate = 15.36e6                     # Hz
cfg.format = "F32"                            # wire format: F32, F16, or I16

src = aaronia.AaroniaSource()
src.start_streaming(cfg)

samples = src.read_samples_numpy(65536)       # numpy complex64 array
batch = src.read_samples_arrow(65536)         # pyarrow FixedSizeListArray of [re, im]

src.set_center_frequency(2.41e9)              # live retune, no teardown

print(src.cumulative_drops(), src.take_overrun(), src.last_timestamp_ns())
src.stop_streaming()

File playback: set cfg.file_path = "capture.rtsa" instead of http_base_url.

Configuration (AaroniaConfig)

Every field is readable and writable.

Field Meaning
http_base_url RTSA-Suite HTTP server URL; pins the HTTP backend
file_path Path to a recorded .rtsa file; pins the file backend
device_serial Device selection for the native-SDK backend
center_freq Center frequency, Hz
sample_rate IQ sample rate, Hz (the Aaronia "span")
reference_level Reference level, dBm
format HTTP wire format: "F32", "F16", or "I16" (true low-bandwidth mode)
receiver_channel "Rx1" (default), "Rx2", or "Rx1And2" (native SDK, full V6)

Unknown format/receiver_channel strings raise ValueError instead of silently defaulting.

Semantics worth knowing

  • One copy per read. Samples are copied once out of the Rust receive buffer into a NumPy/Arrow-owned buffer — safe to hold indefinitely. (Not "zero-copy"; one copy is the honest count.)
  • Blocking calls release the GIL. Other Python threads keep running; KeyboardInterrupt is delivered between calls. Reads block until count samples arrive or an internal 30 s timeout raises AaroniaTimeoutError.
  • Typed exceptions. AaroniaConnectionError (unreachable endpoint), AaroniaTimeoutError, AaroniaHardwareError (device/SDK errors), ValueError (invalid configuration) — mapped from the Rust error enum, with the full cause chain in the message.
  • Dual-channel (receiver_channel = "Rx1And2", read_samples_dual_numpy(count) → two time-aligned arrays) requires the native-SDK backend: Windows/Linux with the Aaronia SDK installed, and a full (two-input) V6. Hardware-unverified — the development device is a single-channel V6 ECO.

Source methods

Method Purpose
start_streaming(cfg) / stop_streaming() Session lifecycle
read_samples_numpy(count) NumPy complex64 array
read_samples_arrow(count) PyArrow FixedSizeListArray of [re, im] float32 pairs
read_samples_dual_numpy(count) (rx1, rx2) NumPy arrays (dual-channel captures)
set_center_frequency(hz) / set_sample_rate(hz) / set_reference_level(dbm) Live retuning
cumulative_drops() Total server-reported dropped samples
take_overrun() True once per detected receive-side overrun
last_timestamp_ns() Epoch-ns timestamp of the last received block (HTTP backend; 0 otherwise)

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

python_aaronia-0.5.1.tar.gz (359.0 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

python_aaronia-0.5.1-cp39-abi3-win_amd64.whl (2.8 MB view details)

Uploaded CPython 3.9+Windows x86-64

python_aaronia-0.5.1-cp39-abi3-manylinux_2_39_x86_64.whl (3.7 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.39+ x86-64

python_aaronia-0.5.1-cp39-abi3-macosx_11_0_arm64.whl (3.2 MB view details)

Uploaded CPython 3.9+macOS 11.0+ ARM64

File details

Details for the file python_aaronia-0.5.1.tar.gz.

File metadata

  • Download URL: python_aaronia-0.5.1.tar.gz
  • Upload date:
  • Size: 359.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for python_aaronia-0.5.1.tar.gz
Algorithm Hash digest
SHA256 ad7c630ac614d7ce332c73a4dcd17184b29228db267505304ddb6943bab29acc
MD5 6beb6708bcec5e81a0c9bbf6573ce8ab
BLAKE2b-256 ed84fd063dc5a37045a323328de1cfa4ce00292f45b19b870d923e9deb13b865

See more details on using hashes here.

Provenance

The following attestation bundles were made for python_aaronia-0.5.1.tar.gz:

Publisher: release.yml on isaacbentley/sdr-aaronia-rs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file python_aaronia-0.5.1-cp39-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for python_aaronia-0.5.1-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 e54f73dcbab60706b9d397a92de72555f3b8936e66cfe0cddfb75f2b1c34994a
MD5 472e89d6ecccc867a5cb275966ea77cd
BLAKE2b-256 854eeb894480b1bb6d729c4b123c217b34815c760448ca9a0db7e291bf250a81

See more details on using hashes here.

Provenance

The following attestation bundles were made for python_aaronia-0.5.1-cp39-abi3-win_amd64.whl:

Publisher: release.yml on isaacbentley/sdr-aaronia-rs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file python_aaronia-0.5.1-cp39-abi3-manylinux_2_39_x86_64.whl.

File metadata

File hashes

Hashes for python_aaronia-0.5.1-cp39-abi3-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 6ed169aeb2b8586f091d1db82cafff7c7d966ef6240898f9d0530a616232c477
MD5 f732c7aa72f810542aa4b8ba3abee27f
BLAKE2b-256 ac3c65d0cdb6c87f6c80fbe47f1af3d29cb18128115a0f7e3228309f6263cb25

See more details on using hashes here.

Provenance

The following attestation bundles were made for python_aaronia-0.5.1-cp39-abi3-manylinux_2_39_x86_64.whl:

Publisher: release.yml on isaacbentley/sdr-aaronia-rs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file python_aaronia-0.5.1-cp39-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for python_aaronia-0.5.1-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 58761e3bfa1d5408f0e8fe2cb52bd03a4db0cee5f629bc2c106b83d90089bc05
MD5 bd3fe9c5afc1af16e2439cf37daa617b
BLAKE2b-256 3e6f8bbbee0f458ad469ec6420309332300268c1d64c532df260ad382d4ba053

See more details on using hashes here.

Provenance

The following attestation bundles were made for python_aaronia-0.5.1-cp39-abi3-macosx_11_0_arm64.whl:

Publisher: release.yml on isaacbentley/sdr-aaronia-rs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.11.2

4 files

0.11.1

4 files

0.11.0

4 files

0.10.0

4 files

0.9.0

4 files

0.8.2

4 files

0.8.1

4 files

0.8.0

4 files

0.7.7

4 files

0.7.6

4 files

0.7.5

4 files

0.7.4

4 files

0.7.3

4 files

0.7.2

4 files

0.7.1

4 files

0.7.0

4 files

0.6.2

4 files

0.6.1

4 files

0.6.0

4 files

This release

0.5.1 This release

4 files

0.5.0

4 files

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