Skip to content

SoapySDR.Device() Fails When Passed a Python dict on ARM aarch64 platforms #472

@junkyardhokie

Description

@junkyardhokie

On ARM platforms, SoapySDR can enumerate devices correctly, but calling SoapySDR.Device() with Python dict arguments always fails with "no match". It only works when no arguments are passed to Device(). This happens on both:

  • Raspberry Pi 5 (aarch64) running Debian 12 with a UHD B205mini
  • Apple Silicon MacBook (arm64) using a HackRF

In both environments, enumeration works and the device is detected normally. But any call like:

SoapySDR.Device({"driver":"uhd","serial":"XXXX","type":"b200"})
or
SoapySDR.Device({"driver":"hackrf"})

fails with "no match". Only the following succeeds:

SoapySDR.Device()

This indicates a bug in the Python dict argument path inside SoapySDR.Device.make() on ARM platforms. String-based argument paths do not help; the only working case is passing zero arguments.

Environment (case 1: Raspberry Pi 5):

  • Hardware: Raspberry Pi 5 (aarch64)
  • OS: Debian 12 (bookworm)
  • Python: 3.13
  • UHD: 4.8.0.0+ds1-2 (Debian pkg)
  • SoapySDR: 0.8.1-5+b2 (Debian pkg)
  • Soapy-UHD: 0.4.1
  • SDR: Ettus B205mini

Environment (case 2: Apple Silicon MacBook):

Hardware: MacBook Pro M1/M2 (arm64)

  • OS: macOS Sonoma
  • SoapySDR installed via Homebrew
  • SDR: HackRF One

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions