This week, I got my homebrew SDR code working on a simple testbed. Nothing fancy, but I can receive and demodulate signals.
It’s always a thrill to design, code and run software that works the way you want. Above, you can see a simple testbed that tunes my Perseus to WWV and turns the data into audio I can listen to.
You can take a few minutes to watch this video demonstration.
As you can see, I am developing this software in several parts. First is a radio driver that connect to the hardware and obtains my data. In this case, I am driving the Perseus, but shortly I will add my dual channel receivers. Second, is an input data queue or processor that passes the data to the third stage, an complete software defined receiver.
My input data processor will also be responsible for saving and reading multiple channels to/from storage. I will also use this section to combine channels for modern diversity reception.
The really good news is that I got the SDR code working to filter, level and demodulate signals received from any receiver. So, now I just need to focus on the front end drivers and data manipulation.
SDR Code Working – My Helpers
All of the heavy lifting is being performed by Intel Integrated Performance Primitives signal processing. This free library is amazing and fairly easy to load and use. PortAudio comes in handy, as well. All the rest in pure Delphi Community Edition.
As an added twist, I am developing the application in both 32 and 64 bit Windows concurrently.
My next step is to develop a driver for RSPduo with its USB connectivity. Then, I will move on to Afedri over Ethernet. Along the way, I need to write code to save multiple channels of IQ data to file. Not sure how to do that, yet!