You can output frequencies up to 160Mhz. Keep this in mind when you use the 4X frequency option.

You can also tune in 1Hz increments if you so desire.
Also, I use clk0 for VFO output and clk2 for BFO.

Jason's latest library has a calibration sketch that can be accessed by:

You can easily adjust the frequency correction using the Serial Monitor and the keyboard. Make note of the offset and put it into si5351.set_correction(); in the VFO sketch. The correction is no longer stored in the board EEPROM so do not comment out the set_correction line as I had mentioned in the past. Also when using the current hardware setup, nothing will change on the LCD while adjusting the frequency - only on a frequency counter.

Looking at the above screen you will notice three Si5351 libraries in my "user libraries" folder. The Adafruit_Si5351 is not a problem since the header file uses a different name. The "Si5351" and "Si5351Arduino-Jason" share the same header file name. I did get an error that said something like "multiple libraries were found for si5351.h files - you must die". Both were Jason's newer library but the one, "Si5351Arduino-Jason" had all the newer upadates and examples so I deleted the "Si5351" folder.

18 comments:

Hello Tom! I see you've implemented my request in Multi-Featured VFO code.Manny thanks!I changed something into (instead of 16x2 lcd, put 20 x4), etc.Just little things HI!!However, I do not know something, that's how with the frequency change LCD displays band.Example: When the VFO on 3.500.000Hz-3.800.000Hz, LCD shows: band "80m",on the 7.000.000Hz-7.200.000Hz shows: "40m" and so all HAM bands.In the case, when VFO is not in HAM band , lcd display: "OUT OF BAND"Please do these changes implement in Multi-Featured VFO! That is one step more to the standalone RTX!I was just finishing SDR RTX planned UT3MK, so that the HW almost over.I have dozens of times looked at the video of NT7S, and what it can do, but that in his code just does not ??All the best to you!Željko-9a3ruP.S. I visit SQ9NJE site,put his sketch for Si5351 SDR ,but have bunch of error?

Hello Tom thanks for putting the sketch together, works great!i added from Ashhar Fahrans Sweeperino sketch a DBm meter to your compilation.I could not get the sweeperino to work with an encoder, Still trying though!With your code and the 8307 meter working together i can play with filters now!one question? what should the output of the si5351 from clk0 read in dbm?Im trying to calibrate it and dont have a scope.Mike kd7ura

Hi mike,This statement which only needs to appear once in setup() sets the power output of the si5351:si5351.drive_strength(SI5351_CLK0,SI5351_DRIVE_8MA); //you can set this to 2MA, 4MA, 6MA or 8MAAs measured into 50 ohms with a spectrum analyzer at 10Mhz,clk0 outputs:8ma = 9.8dbm6ma = 7.5dbm4ma = 4.1dbm2ma = -1.7dbm

Hi Tom,I'm just reading the sketch and see the interrupt enabeling is different from the Arduino manual. The Arduino manual uses 'attachInterrup( interrupt#, ISR, CHANGE). The sketch as given compiles without problem for an UNO bus does not compile for an Arduino DUE or an Arduino M0 pro. Do you know an easy way to make de Arduino sketch to be compiled for the Arduino DUE or an Arduino M0 pro.

Jason has a new si5351 library that changes a few parameters. One of them involves the statement:si5351.init(SI5351_CRYSTAL_LOAD_8PF, 0,0); //If you're using a 27Mhz crystal, put in 27000000 instead of 0You can see that an additional 0 is added (the third parameter) that is the correction factor of the crystal.The set_freq method has also changed and it removes the 2nd parameter requiring only the frequency and the clock.It is very simple to do a search on "set_freq" and just remove the middle parameter and its comma. i.e.si5351.set_freq((vfo * SI5351_FREQ_MULT) + bfo, SI5351_PLL_FIXED, SI5351_CLK0);becomessi5351.set_freq((vfo * SI5351_FREQ_MULT) + bfo, SI5351_CLK0);You need to go to https://github.com/etherkit/Si5351Arduino and view the README.You can download changes at:https://drive.google.com/file/d/0B7yCOxNJVhR5UE9OQS14djI0anc/view?usp=sharing

Thanks Tom, I have it compiling right now but ran into another problem . Direct conversion setting and X4 setting fails to compile. The error referenced long long and I remember reading something about that but have to look for it.

Just a heads up, I have been playing with the code and have made some changes. I changed the LCD to a I2C 1602 connected it in parallel with the Si5351 freeing up a lot of IO pins, updated code to work with new si5351 library and a few other minor changes and corrections. I have the code working in all 3 modes. I'm working on adding band change switches so i can jump from band to band quickly and want to add outputs to change band filters. I know this is a old thread but though i would throw it up here in case anyone was interested. Bill N7OQ