KejPi / AbracaDABra

Abraca DAB radio: DAB/DAB+ Software Defined Radio (SDR)
MIT License
70 stars 8 forks source link

Airspy support #4

Closed KejPi closed 2 years ago

KejPi commented 2 years ago

Add support for Airspy devices.

andimik commented 2 years ago

Thanks to b7d559db664ee1 now the Airspy (mini) is supported.

$ ./gui/AbracaDABra
[...]
RTLSDR: No devices found
void MainWindow::changeInputDevice(const InputDeviceId&) 5
AIRSPY: Tuner Sensitivity gain set to 11
AIRSPY: Tuner VGA gain set to 6
virtual void AirspyInput::tune(uint32_t) 215072
void AirspyInput::run()
AIRSPY: Tuner VGA gain set to 6
    Service: Slo 2 Val 202 SID = 0xE49202, SCIdS = 0

image

image

Note, that there is always a crash Segmentation fault (core dumped) when you want to stop the rawfile recording (I guess at AirspyInput::stopDumpToFile())

Here is a backtrace log of gdb

gdb_bt_airspy_stoprecording.txt

KejPi commented 2 years ago

Implementation is still not completed, there is only basic functionality at the moment, bugs and performance issues are expected. By the way, raw file is dumped in float format for Airspy at the moment, I will probably change that to int16 to reduce file size.

KejPi commented 2 years ago

Airspy Mini support implemented, not tested with any other Airspy device, but it will work only with devices supporting 4096kHz sampling rate. CPU load is about 3x more than average load when using RTL-SDR due to filtering and other processing done in Airspy driver.