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.0.tar.gz (355.8 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.0-cp39-abi3-win_amd64.whl (2.8 MB view details)

Uploaded CPython 3.9+Windows x86-64

python_aaronia-0.5.0-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.0-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.0.tar.gz.

File metadata

  • Download URL: python_aaronia-0.5.0.tar.gz
  • Upload date:
  • Size: 355.8 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.0.tar.gz
Algorithm Hash digest
SHA256 50555a4a0abfe83286b0ae0272577004b54dfb8ec9080d68dace128d2c2d2d47
MD5 092bf8a23fefebd979cce45e455600bf
BLAKE2b-256 49e6baf3bd32dd3522b561cf635de97f7a2dbde88d155f1e4d92a5d058a72cf9

See more details on using hashes here.

Provenance

The following attestation bundles were made for python_aaronia-0.5.0.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.0-cp39-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for python_aaronia-0.5.0-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 26eb3a6fd8b02da42c1ad244ee80df17efaa0d25de292c9e4cf3ce46bd05397b
MD5 0153dae59911b2f1d65615a897843da9
BLAKE2b-256 60dc3276eb26ff581398b7712285840f812b1d14c9435527cc643922243486db

See more details on using hashes here.

Provenance

The following attestation bundles were made for python_aaronia-0.5.0-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.0-cp39-abi3-manylinux_2_39_x86_64.whl.

File metadata

File hashes

Hashes for python_aaronia-0.5.0-cp39-abi3-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 91cb3db81d3c9e6d34dda4bbf5f292f7b096c9359434be224a9f1696cbffaecc
MD5 8583ef5b177a8986ec82d6d6778dec6d
BLAKE2b-256 38a4756f8be1ee9c78567a0a6855164d105426c584cd8e33415946ff5d921bd1

See more details on using hashes here.

Provenance

The following attestation bundles were made for python_aaronia-0.5.0-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.0-cp39-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for python_aaronia-0.5.0-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 29a16f114a9cff69f9001d83f310c87b1f5da663df9fff27db5c47f4faf116f6
MD5 8f2e5d501f3b18b5fd69b4e744406187
BLAKE2b-256 a00c3e3deb44a1822d2092e65399f2ff6dd34c6c0547759ebbaaecae171115a3

See more details on using hashes here.

Provenance

The following attestation bundles were made for python_aaronia-0.5.0-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

0.5.1

4 files

This release

0.5.0 This release

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