Si5351A Investigations Part 3

Since the previous Si5351 Investigations post, I’ve made quite a bit of progress integrating the Si5351 into a grabber receiver. First, let’s look at the grabber receiver architecture and how the Si5351 is used in it.


Above you can see the basic block diagram of the receiver. The front end has two switchable plug-in bandpass filter modules (which is switched by a pair of TI TS5A3157 analog switch ICs controlled by the AVR microcontroller). An ADE-1 diode-ring mixer is fed directly from one of the Si5351 ports set for the lowest output level (which is about +8 dBm). The pair of IF amplifiers are TriQuint AG203-63G MMICs, and the actual IF filter is a 6-crystal ladder filter with a bandwidth of 3 kHz (filter plots provided below). Another ADE-1 is used as the product detector, with the BFO signal provided by another output port on the Si5351. Finally, the recovered audio is amplified to line level by a NE5532 op amp and delivered to a 3.5 mm stereo socket by way of a transformer in order to provide good ground isolation between the receiver and sound card.

grx1 grx2

As an interesting side note, you can see my modular bandpass filter boards below. They are your standard double-tuned circuits placed on a 20 mm x 50 mm piece of copper clad, with 0.1 in SIP headers soldered to pads cut out of the material with a rotary tool. There are some extra pins which are reserved for a future module identification system.


Happily, the receiver mostly worked as expected right out of the gate. A few minor tweaks need to be made, such as in the gain of the AF amplifier, but I’m pretty happy with the results so far. Although it’s my intention to pair this receiver with a Raspberry Pi running LOPORA in my garage, right now the receiver is sitting on my bench capturing WSPR RF on various bands, and looks to be doing a fine business job doing that. Frequency stability looks at least as good as my IC-718 on WSPR, based on an eyeball assessment of WSPR spots.


The Si5351 seems to do a bang-up job acting as both the VFO and BFO. What’s nice is that I can easily switch sidebands merely by changing the output frequency of the CLK1 BFO output with one line of code. I haven’t seen any indications of spurious products affecting the receiver yet.

My Si5351A library for avr-gcc is still pretty rough, so I’m not quite ready to publish it yet. Next up on my todo list is to get it in a state where I’m ready to put it up on GitHub, then implement the USB control protocol and client program so that the grabber receiver can be tuned via command line (especially handy when using SSH).

At this point, I’m fairly confident that the Si5351 will make a very fine oscillator system for a grabber receiver. My next line of investigation is to look at the temperature stability of the Si5351 via a thermal chamber lashup. I’ve got a nice Styrofoam cooler, an Arduino knockoff, a 120 V relay shield, a temperature sensor, and a frequency counter I can read via serial port, so I just need a heat source (probably in the form of an incandescent bulb) and I should be good to go. Keep watching for more experiments!

8 thoughts on “Si5351A Investigations Part 3

  1. Jason

    I have read your information regarding the SI5351 part and have purchased a few of these from Adafruit. I am an AVR programmer with medium experience using AVR microprocessors. I have tried to get the ATMega168 to talk to the Adafruit modules but it seems to be locking up waiting for a response from the I2C on the module. It looks to me like the modules are not working. All I am trying to do is init() the SI5351. I haven’t even tried to set a frequency yet. I’m using your si5351 code that you provided. Are there any updates to that code? I’ve looked at the code and it looks like it should be working.

    Any suggestions? Did you use the Adafruit modules?

    Thanks for any help that you might be able to offer.

  2. Hi DJ,

    My avr-gcc version of the code is pretty old, has some bugs, and is missing a lot of features. I put all of my recent development effort into an Arduino branch of the library, which you can find here:

    If you have an Arduino, I suggest that you use that library instead for a stable and full-featured codebase. I will be porting all of my Arudino library work back over to the avr-gcc library at some point in the near future.

    By the way, I don’t use the adafruit board because I sell my own version. I even have one that comes with a TCXO ref osc for better stability:

    Good luck,

Leave a Reply