Wiki SDR SA PRO
Fobos SDR
In SDR SA PRO the Fobos SDR (RigExpert) is a receiver for 50–6900 MHz with sample rates of 8–80 MS/s over USB 3. The app drives it through the vendor's libraries: libfobos for the standard firmware and libfobos-sdr-agile for the special scanning firmware, with which the instrument sweeps the band by itself. This page covers the driver, how the app recognises the firmware, what the start window shows, the LNA and VGA controls, the sample format, both ways of sweeping and what this device does not have yet. PRO
What works with a Fobos SDR 0.9.43
- Receive only, one channel. The tuner covers 50–6900 MHz.
- Sample rates come from the device's own table: 8, 10, 12.5, 16, 20, 25, 32, 40, 50 and 80 MS/s with the standard firmware; up to 50 MS/s with the special one.
- Everything that works with any IQ receiver: spectrum, waterfall, traces, detectors, sweep, the receiver and IQ recording.
- Levels are in dBFS, uncalibrated; the dBFS — UNCAL badge on the trust bar.
After connecting, the device sits at 2255 MHz with a sample rate of 8 MS/s — the lowest in the table — and LNA step 3 and VGA step 18. The device controls are not saved between launches.
Tested with the built app on a device with board rev. 3.0.0, without an antenna: in 0.9.43 with the standard firmware 2.2.0, in 0.9.44 with the special firmware 3.2.0. The figures on this page come from there and from library probes on the same device.
Two firmwares — two libraries 0.9.44
The vendor provides two libraries, and each sees only a device with “its own” firmware. Both are in the PRO package as separate files in the drivers-pro folder, both are under LGPL-2.1, and each can be replaced by another build of the same library.
| Device firmware | Library | What it gives |
|---|---|---|
| Standard | libfobos 2.4.0 (fobos.dll) | Reception at 8–80 MS/s; the sweep is a software one. |
| Special, with the scanning mode (“agile”) | libfobos-sdr-agile 3.3.0 (fobos_sdr.dll) | Reception up to 50 MS/s; the device does the sweep itself. |
- There is nothing to choose. The special firmware changes the device's USB identity, and from it the app recognises which firmware is installed. The device opens through its own library by itself.
- The app does not write firmware into the device and carries no firmware images. It is written with the vendor's tool.
- Unknown firmware. If the app does not know the firmware, it says so — see the start window.
The WinUSB driver: once, with Zadig
The device needs the WinUSB driver, assigned once with the Zadig tool: pick the “Fobos SDR” device in it, assign WinUSB, reconnect USB and press Refresh in the start window. The same steps are described in detail for the HackRF — The WinUSB driver. The device needs a USB 3 port; to the app, a charge-only cable looks exactly like a missing device.
Choosing it in the start window
In the Select a receiver window the Fobos SDR rows come after the app's own devices; below the list there is a hint about the device. The row has no serial number: the libraries count devices without opening them, and the serial shows on the panel after connecting.
| Row | What it means |
|---|---|
| Fobos SDR #1 | A device with the standard firmware. |
| Fobos SDR #1 (scanning firmware) | A device with the special firmware. |
| Fobos SDR on USB — no driver bound (Zadig → WinUSB) | The device is visible on the bus, but the library does not count it — most likely WinUSB has not been assigned. |
| Fobos SDR with the scanning firmware — the fobos_sdr.dll library is missing or Fobos SDR with the scanning firmware — the fobos_sdr.dll library did not load | The device carries the special firmware, but its library is not in the drivers-pro folder or did not load. Reinstall the SDR SA PRO package. |
| Fobos SDR on USB — firmware unknown to the program (bcdDevice 0x…) | The firmware is neither the standard nor the special one. After Connect — the Could not open the source window with the reason The Fobos SDR carries a firmware the program does not know and the advice to write one of the two firmwares into the device with the vendor's tool and press Refresh. |
Without a valid key the rows are the same, but each ends with — an SDR SA PRO key is needed — see SDR SA PRO.
If the device could not be opened, the app shows the Could not open the source window with the reason and advice and returns to the list:
| What it says | What to do |
|---|---|
| The device is visible but could not be opened | The library counted the device but did not open it. There are two causes, and the library does not tell them apart: another program holds the device — close it; the driver is not WinUSB — assign it with Zadig, reconnect USB and press Refresh. |
| Device visible, but no driver is bound | The device is on the bus, but the library does not see it. Most likely WinUSB has not been assigned. |
| Device not found — No Fobos SDR found on the USB bus | Check the cable and the USB 3 port. |
| The device library did not load | The library for the device's firmware is missing or did not load. Reinstall the SDR SA PRO package. |
The “Source” group on the “Device” tab
The counters, Pause, Back to live and Reconnect are the same as for the HackRF One. Here is what the Fobos SDR has of its own:
- Type
fobos.- Instrument
- The device name, the firmware and the library version. The special firmware is labelled (special, with the scanning mode). At the bottom of the group — a description: board, firmware, serial number.
- Instrument sample rate
- The rates from the device's table. A rate change happens under the running stream, without restarting it: 4–5 ms in the probes.
- LNA, step
- The input amplifier, steps 0…3 — a step number, not decibels; 3 by default.
- VGA, step
- The variable-gain amplifier, steps 0…31; 18 by default.
- Total gain
- the device does not name the dB of its stages — only step numbers (the vendor's figures are in the knob hints, not measured).
The standard library does not name the decibels of the stages, and the app has not measured them. The control hints give the figures from the header of the vendor's “agile” library — LNA: 0 and 1 — 0 dB, 2 — +16 dB, 3 — +33 dB; VGA — 2 dB per step — and what is seen on the device without an antenna:
- the noise floor rises by about 1.7 dB per VGA step (from −76 to −23 dB at LNA 0);
- at LNA steps 0 and 1 the floor is the same, at 2 it is 4–9 dB higher, at 3 another 14 dB higher;
- at LNA 3 the device saturates from VGA step 24.
The default LNA 3 and VGA 18 are +33 and +36 dB by the vendor's figures, like the default 32 and 36 dB of a HackRF. Without an antenna the sample peak at these settings reaches 0.95 of full scale at 50 MS/s. With an antenna on a strong signal the device will saturate — lower the steps.
Retuning happens under the running stream, without restarting it: 13.5–14 ms in the probes within one band of the device's table and 36–41 ms between bands. Whatever the library has already filled from the old frequency (1,048,576 samples — a figure from the library's code) the app discards; how many old samples still sit in the device itself has not been measured. The frequency axis stays at the requested frequency, although the synthesiser dividers of the standard library round it: on the tested device 2250 MHz landed 10 Hz lower.
Samples and recording
- The library delivers float32 samples with a full scale of ±0.25 — the 14-bit ADC code divided by 32768. The app computes dBFS from this true full scale.
- IQ recording uses the
cf32_leformat; the full scale is written as a field in the SigMF sidecar, and the app reads such a recording. See IQ recording.
Losses
- The library reports only complete USB transfers and stays silent about broken ones. So Lost in transit is an estimate by the clock, as with the HackRF: a lower bound.
- Overflow of the app's own ring buffer is counted exactly — Ring buffer (drops).
- In library probes with the standard firmware, 8, 25, 50 and 80 MS/s arrived in full. At 80 MS/s 640 MB/s flow into the app, and spectrum processing skips some blocks; how many has not been measured on the device.
Sweep
By the instrument's scanning — with the special firmware 0.9.44
The device walks a list of frequencies by itself, and the app only sorts the buffers by step number — the same hardware sweep as on the HackRF. A list longer than 256 steps is walked by the device as several lists in turn.
- Measured: 50–6900 MHz at 50 MS/s — 274 steps in two lists, a pass of 0.82 s, 99.6 % covered, no clipped or degraded segments, no lost buffers. With a software sweep in 0.9.43 the same range took 17.6 s.
- The LO micro-shifts for the Spurs check and the switching of lists add no time. Buffers of the old list still on their way from the device are discarded by the app and counted separately — they never get filed under another step.
- The highest sweep rate is 50 MS/s; this firmware has no higher one.
Software — with the standard firmware
The app retunes the device for every segment, as with the RTL-SDR.
- The sweep runs at no more than 40 MS/s: above that no plan can be made. In tuned mode 50 and 80 MS/s remain.
- From each tuning the app takes ±13.5 MHz: the device's analogue filter is about ±17 MHz at any rate.
- Measured in 0.9.43: 50–6900 MHz at 40 MS/s — 299 segments, a pass of 17.6 s (≈0.4 GHz/s), 99.7 % covered, no clipped or degraded segments.
- In the centre of every segment a comb of lines is visible — the device's own signals (DC offset or LO). A spur passport taken without an antenna ought to cut them out; in that run it was not taken.
Limitations
- Receive only.
- No HF below 50 MHz (direct sampling) and no external reference.
- Gain stages are step numbers, not dB; the total gain is unknown.
- With the special firmware — no more than 50 MS/s.
- The app does not write firmware — only the vendor's tool does.
- Transport losses are an estimate by the clock, a lower bound.
- Levels are dBFS, uncalibrated.
The other PRO receivers are the ADALM-Pluto / Pluto+ and the bladeRF 2.0 micro; for the key and the libraries in the package see SDR SA PRO.