A Simple Si5351 Signal Generator

Lately I’ve been working on some simple receiver designs and decided it’s time to put together a real signal generator. I like the smell of melted solder as much as anyone else but I’m getting tired of rebuilding the wheel for each receiver design I want to try.

With that in mind, I decided to expand upon the Si5351 USB controller I described previously. The original is a useful circuit but if I planned to use this on a regular basis there were a couple of improvements I wanted to make.

First, USB communications using the 3.3V Trinket weren’t as reliable as I would like so I switched to the Trinket 5V version. This meant adding a 3.3V regulator to power the Si5351. In addition, when using the original circuit I usually ended up feeding the clock signals through 5V level shifters so I decided to incorporate them directly.

The resulting schematic is shown in the figure below. The regulator is simply a 78L33 taking its input from the Trinket 5V pin and supplying the Si5351 VDD. The level shifters are CMOS inverters, one for each clock output. The particular chip I used has a single gate per chip but these could just as easily be replaced with a quad gate chip. I just happened to have the single gate chips on hand.

Si5351 Signal Generator Schematic

You may notice there are no I2C level shifters between the Trinket and Si5351, despite their operating at different voltage levels. In previous projects I’ve found level shifters aren’t necessary going between 5V and 3.3V chips so long as the bus is powered from the 3.3V supply and the 5V side reads 3.3V as a logic high. It’s not strictly according to specs but it works and saves a few components.

The circuit is powered from the USB bus and uses the same Python library developed for the original circuit. This library can be pulled down from its GitHub repository.

A photo of the completed circuit in its Altoids Tin case is shown below. Like most of the one-off circuits I’ve done lately it’s built on stripboard using adapters for the surface mount parts. Later I may put together a printed circuit board and, if so, will provide an update.

Si5351 Signal Generator


  1. Hi,
    Will this work with HDSDR directly ?

    Im looking to use si5351 powered QSD sdr covering 0-30Mhz using si5351 . But the issue is there is no software available to control si5351 from HDSDR directly. Will this work with HDSDR ??


    • joesugar

      The library associated with this circuit was intended for Linux so it will not work with HDSDR as written. However, I’ve written extio DLLs to control other I2C clock generators so I know it can be done and doing so is on my list of projects. Let me see what I can dig up and I’ll post it when it’s ready. Since you’re referring to HDSDR I assume you’re interested in a Windows DLL?


  1. Controlling The Si5351 Signal Generator From HDSDR | Computer/Electronics Workbench
DuWayne's Place

Computers, Electronics, and Amateur Radio from KC3XM

QRP HomeBuilder - QRPHB -

Computers, Electronics, and Amateur Radio from KC3XM

Open Emitter

Computers, Electronics, and Amateur Radio from KC3XM

Ripples in the Ether

Emanations from Amateur Radio Station NT7S

m0xpd's 'Shack Nasties'

Computers, Electronics, and Amateur Radio from KC3XM

%d bloggers like this: