-
Notifications
You must be signed in to change notification settings - Fork 7
Hardware Setup
NyxScope works with any SDR that has a Windows driver. The hard part isn't NyxScope — it's the device's native driver/firmware. This page walks through the install steps and known gotchas for each supported family.
| Device | What you install | Notes |
|---|---|---|
| RTL-SDR (and clones) | WinUSB via Zadig | One-time, but Windows Update can occasionally undo it |
| HackRF One | HackRF Windows driver + SoapyHackRF | Install official firmware first |
| Airspy R2 / Mini | Airspy Windows driver + SoapyAirspy | |
| SDRplay (RSP series) | SDRplay API Service + SoapySDRPlay3 | API service must be running |
| LimeSDR / LimeSDR Mini | LimeSuite + SoapyLMS7 | Check FX3 firmware version |
| PlutoSDR / Pluto+ | USB or Ethernet — no driver needed | Native Rust network client; libiio not required |
| Fobos | Fobos Windows driver + SoapyFobos | |
| bladeRF | bladeRF driver + SoapyBladeRF | FPGA bitstream version matters |
Network SDRs (rtl_tcp) |
None — auto-discovered via mDNS |
The most common starting hardware. Steps:
- Plug the dongle in.
- Download Zadig from zadig.akeo.ie.
- In Zadig: Options → List All Devices.
- Find your dongle — it'll show as Bulk-In, Interface (Interface 0) with VID
0x0BDA, PID0x2838(most common). Other PIDs (0x2832) also work. - To the right of the driver dropdown, pick WinUSB.
- Click Replace Driver. Wait until it reports success.
- Unplug and replug the dongle.
NyxScope's Device dialog should now list the dongle.
Common Zadig mistakes:
- Selecting the wrong device (e.g., your USB mouse). Look for "Bulk-In Interface" specifically.
- Stopping after step 6 without unplugging/replugging.
- Driver install needs admin rights — Zadig should prompt.
If Zadig doesn't see the dongle at all: the USB cable may be data-blocked (charging-only) or the dongle is dead. Try a different cable and port.
If the dongle was working and suddenly stopped: Windows Update sometimes replaces the WinUSB driver with the original DVB-T driver. Re-run Zadig.
HackRF, Airspy, SDRplay, LimeSDR, Fobos, and bladeRF all go through SoapySDR. The general pattern:
- Install the vendor driver for your device first (HackRF Windows installer, Airspy driver, SDRplay API service, etc.).
- Install SoapySDR core + the module for your device (the
Soapy<Vendor>library). - Restart NyxScope. The Device dialog enumerates all SoapySDR-visible devices.
The SoapySDR project ships pre-built Windows installers for the common modules. Search for SoapyHackRF, SoapyAirspy, etc.
HackRF One. Flash to the latest firmware release before doing anything else. Old firmware has TX/RX path bugs that look like NyxScope problems. Use hackrf_info from the HackRF Tools to confirm.
Airspy R2 / Mini. No firmware update required for normal operation, but airspy_info from the official tools is the first thing to run if NyxScope can't see it.
SDRplay (RSP series). Requires the SDRplay API Service running in the background. Check Services.msc — if SDRplay API Service is stopped, NyxScope won't find the device. SoapySDRPlay3 (NOT the old SoapySDRPlay) is the module to install for RSP1A/RSPdx/RSPduo.
LimeSDR / LimeSDR Mini. Verify FX3 firmware version with LimeQuickTest. Lower-than-expected firmware causes random USB hangs. The Mini has a sensitive USB-C connector — see USB notes below.
PlutoSDR / Pluto+.
- USB mode (Linux only): the libiio path. NyxScope ships a subprocess-isolated bridge so libiio crashes can't take down the app.
-
Network mode (all platforms): uses NyxScope's native pure-Rust iiod client over TCP port 30431. Just give it the IP. Default is
192.168.2.1. NyxScope auto-discovers Pluto at192.168.2.1and at any custom IP you've configured. - The Pluto+ dual-RX is supported — NyxScope's
SdrRegistrycan manage both receivers in parallel (backend complete; multi-SDR UI is preview-only as of 1.25.0).
Fobos. Recent driver releases work cleanly. Verify with fobos_devinfo (ships with Fobos drivers).
bladeRF. Match the FPGA bitstream to your bladeRF model and firmware version. Mismatch produces "no compatible FPGA" errors. Run bladeRF-cli to load the bitstream once per session OR install it as the auto-loaded default.
NyxScope auto-discovers rtl_tcp servers on the LAN via mDNS — no IP entry needed. To advertise your rtl_tcp server for auto-discovery:
-
Linux: use
avahi-publish-service rtl_tcp _rtl_tcp._tcp 1234(replace 1234 with your port). -
Windows: Bonjour Print Services provides mDNS; or run
dns-sd -Rfrom the dnssd tools. - macOS: built-in Bonjour handles it.
Servers without mDNS still work — type the IP and port manually in the Device dialog → Add manual rtl_tcp server.
A surprising amount of "my SDR doesn't work" turns out to be:
- A charging-only cable (no data lines)
- A USB-C cable that's wired weirdly (some are USB 2.0 only despite the shape)
- A long thin cable causing voltage drop under load (HackRF and SDRplay draw real current)
If your device enumerates intermittently or drops mid-scan, swap the cable for a short (under 1 m), known-good USB 3.0 / USB-C cable before debugging anything else.
Once the driver is in place, before launching NyxScope:
| Device | Quick test |
|---|---|
| RTL-SDR |
rtl_test -t (from RTL-SDR tools) — should not error |
| HackRF |
hackrf_info — should print firmware + serial |
| Airspy |
airspy_info — should list the device |
| SDRplay |
SDRconnect (vendor app) — should see the device |
| LimeSDR |
LimeQuickTest — should pass |
| PlutoSDR (network) |
ping 192.168.2.1 — should respond |
If the vendor tool can't see the device, NyxScope won't either. Fix the driver layer first.
After confirming the vendor tool sees the device:
- Restart NyxScope (the Device dialog enumerates at launch).
- Check the Windows Device Manager for yellow exclamation marks on the USB device.
- Run NyxScope as Administrator once to rule out a permissions issue (then run normally afterward — admin isn't required day-to-day).
- See Troubleshooting for the "SDR not detected" section.
Next: Trunking-Configuration for setting up P25 / EDACS / NXDN, or Troubleshooting if something's still broken.