sdrpp network audio playback
I guess my winter pause project involves some software defined radio and it has been a long time since I've tried this. I borrowed the rad1o badge from a friend and have done some work to get it working as a hackrf . Thankfully hackrf ships a firmware for the rad1o badge and it is just an update to get it in sync with libhackrf, though you do lose the portapak features.
In the intervening 8 or so years there are a lot more and more user friendly tools available and I thought I would try out sdr++ (sdrpp in many places because the plus sign causes trouble with software. I'm not sure my blog engine can handle it either...).
sdrpp gives easy access to a frequency and waterfall view of the spectrum, supports many software defined radios and is able to demodulate various audio modes.
The first "check" with any sdr is to demod broadcast fm, that is "listen to the radio". Broadcast fm is a target of choice because it is put out with a ton of power, there are many stations and it requires an antenna as complex as a piece of wire (any length!).
I quickly found that the sinks menu of sdrpp only offered network audio. I think there is something up with the FreeBSD port or portaudio. I couldn't figure out how to debug this and debugging this isn't my project!
Instead I tried the network output, but other than "its pcm" in a github issue I couldn't find any information on what I needed.
Eventually I got to this:
nc -kul 127.0.0.1 7355 | sox -traw -r48000 -b16 -e signed-integer - -d
start up netcat on localhost and the port in the sdrpp ui (7355 for me). Pipe the audio to sox at 48000 (or whatever you configure) and treat it as raw signed-integer input.
This let me demod audio and scroll around the band. It might be sdrpp or it might be the part of Germany I'm in right now, but all stations were playing the same audio, different strengths and clarities, but the same audio.
Figuring out that is a different problem.