Si5351 Libraries and Breakout Board

A few exciting developments here on the Si5351 front. First off, I took the C code from my Si5351 library for avr-gcc and converted it to an Arduino/C++ library, which you can find here. It replicates the functionality in the avr-gcc library, but makes it quite a bit easier to rapidly implement designs. I’ve tested this design on an Arduino Uno and an Arduino Uno clone, but I see no reason why the library shouldn’t work on other Arduino variants as well. Please give it a try and leave feedback on the GitHub page if you find bugs or have suggestions for improvements.

The other news is about the Si5351 Breakout Board that I mentioned in the last post. I just got the 3 purple PCBs back from OSHpark and they are most excellent.


I got one quickly populated with components and paired it with an Arduino in order to test the new library. As you can see in the photo at the top of the post, it’s a pretty small little board, but it’s pretty powerful for its size. All you do is connect VCC, GND, and the I2C SDA and SCL lines to the Arduino, and you get three independent transformer-isolated outputs on SMA connectors that can generate 1 to 150 MHz (in the future the library will be modified to allow the full 8 kHz to 160 MHz range)


Will I end up selling these as a kit? I’d like to but I’m uncertain at this point. Oddly enough, I just found out that it’s highly likely that Adafruit will also be selling a Si5351 breakout board. If you watch the video below at about the 6:22 mark, you’ll see it.

I’m a bit surprised by this, as RF is not something that I was aware that Adafruit was interested in. To be honest, it will be difficult to compete against the relatively much larger fish in the hobbyist pond that is Adafruit. Although, it looks as though my breakout board has something that the Adafruit board does not: isolation output transformers. Most likely, I will do one trial kitting run and see if there will be enough interest for another after that. Keep an eye on the blog for further news about that in the near future.

27 thoughts on “Si5351 Libraries and Breakout Board

  1. The breakout board is a great product. Could you give us a part number on the isolation transformers? Thanks.

  2. Hey Hackaday readers, thanks so much for your interest in the Si5351 breakout board! When I submitted my link to Hackaday, I mainly did it to promote the Arduino library, as I have a few tweaks to make to the breakout board. They posted about the Breakout Board anyway (which is great), but it just caught me a bit flatfooted. I am really busy trying to get ready for Field Day this weekend, but I will try to get the schematics and BOM up to GitHub tonight. If not, no latter than Monday. Please watch the blog or my Twitter account for notification of that. Thanks!

  3. Hi Jason. Thanks for sharing all about the sw and hw. Is it possible to program the 5351 to output the same frequency to all 3 outs ? I would like to connect them to 3 RTL-SDR dongles in place of their 28.8 MHz crystal . I see you have an SMD crystal in the PDF schematic: would it be possible to replace that with an SMD TCXO for improved output stability ?

  4. I forgot a third question: are you selling populated boards ? If so please let me know the details, I can use paypal…. thank you, Mario

  5. Hi Mario,

    Yes, you can set all of the outputs to the same frequency with no problem. You can use an oscillator with the Si5351 instead of a crystal, although I did not put in the capability to power it on the breakout board. If you found a TCXO with the same footprint as the crystal that I used and a bit of hacking, you could probably get it on the breakout board somehow. Perhaps I can find a way to add that capability in the next revision of the board. Finally, I do not have any populated boards or kits for sale yet, as I still need to make some revisions to the board. But hopefully in the next few weeks I can that revision completed and ordered from OSHPark so that I can move on with sales.


  6. Hi Jason. Thank you for your kind reply. I will search info about the TCXOs footprint. At the moment I already have one @ 28.8 MHz but I don’t clearly understand if I could use that frequency or if I have to find one at “25/27 MHz” like you mention in another post. I’ve actually seen that their software has only those 2 values selectable. Anyway I will dig the web to find more info on footprint , prices and availability since I expect 25 and 27 to be easier to find than 28.8. If you will move to sales I guess you will deliver with a crystal leaving the TCXO as an option to be mounted by users: Just let me know so that I can plan for purchases… 🙂 Sometimes it requires weeks to receive these components….

  7. Mario,

    You may only use either a 25 MHz or 27 MHz crystal or oscillator with the Si5351, nothing else. I did find a 25 MHz TCXO that would fit on the same footprint as the crystal that I’m currently using. I think I can just respin the PCB so that VCC and GND is provided to pins 4 and 2 of the package. I’m not 100% this will work, but I think it should as long as the crystal truly has no connections on pins 2 and 4 as shown on the datasheet.

    Here’s the TCXO part on Digi-Key. I’m not sure if it will meet your requirements, but it should be a nice upgrade from the crystal.

    I’m currently working on a new spin of the Breakout Board and hope to order some of them from OSHPark soon. Once I verify that the new board works, I’ll release it in the wild, and see if I can offer a kit.


  8. Hi Jason. Sorry for late reply.
    Just registered here for easier access.
    I think that TCXO is fine for this purpose and my needs.
    Just one note about the NC pins: I think the datasheet is for two possible TCXO versions.
    Your URL is for FOX924B-25.000 and that one has only pin #1 not connected:
    #1 NC
    #2 GND
    #3 Output
    #4 Vcc

    Will wait for notifications of new comments here or you can write me directly (email added during the registration process).

    Thank you again and ciao,

  9. Using Jasons library ( thank you very much for providing it ) i did try to find its frequency limits. According to Jason, this should be 1-150 MHz, but at least my Si54351A only could be used up to 125 MHz. So i would be interested in hearing about experiences from others.

    BTW: I did realize a simple Si5351 generator where any output frequency is possible by entering data via 4×4 keypad.

    Klaus, DJ7OO

  10. Thank you very much for the report Klaus. It’s entirely possible there’s a bug in my code, as I doubt the actual IC is at fault here. I will try to look into this as soon as I can.


  11. Hi Jason.
    I just came across the web sight with the info about the Si5351 and Arduino code. sounds just like what I have been looking for.

    I am working on a transceiver using the DDS vfo using the ad9850 chip. works, but pretty dirty output. lots of phase noise. your design using the Si5351 looks promising. can it be tuned using an encoder to get vfo ability? also at the same time could the other outputs be used for BFO outputs?

    I am not a computer guy and so much of this is above me, but I still like to home brew . sure am glad people like you make this stuff available to others so we can play too.

    Your latest entry has been a while ago. have you got breakout boards or kits for sale yet?

    Thank you, Paul WA7SDI.

  12. Hi Paul,

    Thank you for the kind remarks. Yes, the Si5351 can be tuned with an encoder and a 2nd output can be used as a BFO. If you look at my previous post about the Si5351-based SSB rig, you’ll see some more details about a rig that I built around the Si5351 that has both of those features.

    Unfortunately, I have not got the kits for sale yet, but it is high on my priority list. I need to make a few revisions to the breakout board design, then I will produce a kit.


  13. Hi Jason,

    Do an interface kit for the 5351C Version (ext Ref in and 8 prog outputs) and you will sell this many times. Ham Radio operators often use old 5,10 or 15 MHZ GPSDO’s with only one output. So your interface board based on the 5351C would give them a high stability 8 Port output. People are breacking their heads on the timenuts mailing list on how to convert the 15MHz ref output of this:
    I do have this Lucent GPSDO and a 5351C Eval Board from SILabs and it does work perfectly!

    Kind regards

    Peter, HB9DQY

  14. Hi Jason.

    I have been going over your posts here and there and I can not find a complete schematic for the Si5351 break out board hooked up to the Arduino, encoder,LCD and break out board. I did find a block diagram for the “Si5351 based SSB rig” but not enough info there for me to figure it out. could you please tell me where I can find the info to hook it all up in a schematic diagram.

    I have the break out board and other parts ordered and am looking forward to putting together a QRP rig like your 40M rig. perhaps we can QSO after the noon time net?

    Thanks and 73, Paul WA7SDI.

  15. Hi Peter,
    I will certainly keep that in mind. My plate is awfully full, but I may be able to squeeze in some time to do a version for the C variant. Maybe someone from the timenuts would want to extend my code on GitHub to support all of the features of the C variant. 🙂


  16. Hi Paul,
    Sorry that the documentation is a bit weak right now. When I make it a proper kit it will be much better.

    If you look at the README file in the Arduino library ( you will see a discussion of how to connect it there. Basically you just need VCC, GND, plus connections to the two I2C lines designated SCL and SDA. Those are different pins on each Arduino variant, but just consult the documentation for your version to find out where to connect to. After that, set the jumpers based on what voltage level your I2C lines are at and whether you need to use the on-board 3.3V regulator or not.

    I would be more than thrilled to have a QSO with you once you get your rig working! Just let me know and we can set up a sked.


  17. Hi Jason.
    I have been working with the Si5351 and using your code from Adafruit . I did manage to download the code and run it in the Arduino IDE but it looks to me that it is just a test code. and it did work! but I thought the code was to make the Si5351 workable as a vfo-bfo with encoder control? did I download the wrong program?

    I have seen other peoples projects on utube showing nice digital displays with encoder and many optional settings. they say they are using your code but I have not found it yet. can you tell me where I can find code so I can make similar projects.

    73 Paul.

  18. Hi Paul,

    Sorry for the confusion about the code. My Arduino library for the Si5351 is simply used to drive the Si5351, nothing more. There are lots of other libraries out there for reading an encoder and driving an LCD, so just a little bit of cut and paste and some glue code should get you something similar. You may wish to reach out to those people who have completed receivers projects to see if they would be willing to share their code with you.

    Good luck,

Leave a Reply