SDR receiver experiment (warning: very nerdy)

I bought a nanoVNA RF network analyzer. A Vector Network Analyzer is a piece of equipment that allows you to directly observe how radio frequency electronics behaves.

The device turned out to be designed from very inexpensive components that converted all the high frequency stuff to audio frequency before performing the actual analysis. This was achieved using an audio A/D converter and some small microcontroller.

I have previously wanted to design a simple SDR receiver that could operate independently of a computer to be deployed remotely for data collection purposes. I suggested this system that is in part inspired by the nanoVNA:

System diagram

At the heart of the system three signals need to be synthesized to control the receiver. Normally this would be a complicated task but as in the nanoVNA a single SI5351 clock generator chip should be able to generate all these signals simultaneously.  Two of the signals needed to be the same frequency but have a 90 degree phase offset from each other so I did a quick test to verify that the SI5351 could indeed do this:

To test the part of the circuit that connects the down converter and the A/D converter I made this circuit:

I/Q demodulator circuit

The SI5351 is controlled by I2C from a microcontroller. A 25MHz crystal oscillator provide the reference frequency. The SI5351 drives the main channel mixer and the output mixers. The main channel mixer is band pass filtered for better sideband rejection. The balanced signal from the output mixers are low pass filtered before being amplified and buffered by operational amplifiers.

I used my homemade PCB CNC to make a prototype of the demodulator:

Tiny pitch PCB routing
Finished prototype

Considering the really tiny pitch for the SI5351 the result is not half bad.

To test the circuit I programmed the SI5351 to generate a 29.8MHz signal for the main mixer and two 39.8MHz signals for the I and Q mixers. I then connected  a 10MHz signal generator to the input and two channels of an oscilloscope to the I and Q outputs. I could now generate two quadrature signals (sine and cosine) on the output by sweeping the frequency generator up and down past 10MHz. At exactly 10MHz input the frequency of these signals fell to zero:

Audio frequency I and Q signal

My current test setup uses a cable modem tuner as the first downconverter to convert from whatever frequency band I want to receive to a 40MHz ‘ish intermediate frequency. I  then use the above circuit to convert this to Audio frequency quadrature I and Q signals. An stereo audio AD converter is then connected via. I2S  to a ESP32 microcontroller. Inside the microcontroller the I and Q signals are de-modulated in software to whatever the transmission originally contained. In this setup audio transmissions (e.g. AM, FM and SSB) is converted back to audio that is in turn sent to a speaker via. I2S interface and audio DA converter:

Test setup

This experiment has made me confident that it will be possible to design a really inexpensive stand alone SDR receiver.  I need to find a simpler solution for the down converter but by using the ESP32 microcontroller and other cheap and readily available parts I plan to develop a small internet connected remotely deployable SDR that can be used for ranging and monitoring purposes.

I will post the results here as they become available.


Leave a Reply