Академический Документы
Профессиональный Документы
Культура Документы
Mobiles
Computers
Web
Electronics
Amateur Radio
Homebrewing
SDR
Forum
Misc
Search
AmoghDesai.com
A personal blog about Amateur Radio, technology, gadgets, photography, and
fun
Its been some time I have been wanting to use a SI5351 chip to build a VFO. As the
cheapest version of this chip (at just $1.30) can be configured to generate up to 3
programmable clocks, it can be put to use in a HAM rig very well. One clock as a
VFO and other as a BFO. Simple code on Arduino can generate a LSB and USB signal
with no hassle of pulling crystals down or up with inductors makes it so much easy
and fun. The 3rd output can be put to use as a CW tone generator.
There are many breakout boards for this chip available, but all in the DX land (QRP
Labs, Eatherkit, etc). With multiple projects at hand I was hesitant to order one. I
had also been discussing about it online with VU2SWX, Prof. Sunil Thomas who was
keen to design a breakout board for the SI5351 himself and subsequently I got this
update a couple of days ago at VU2SWX’s Blog:
I quickly ordered the SI5351 chip from RSdelivers here and toner transferred a PCB.
This was my 1st SMD PCB, but it turned out pretty good.
To build this one I had to additionally buy a SMD soldering Iron (MAX 550) and
liquid soldering flux.
Caution: There are errors in this PCB, please wait for an update from VU2SWX.
When I started to build this PCB I figured out there were 2 big errors in the layout.
Both the SI5351 chip and LM1117 regulator IC layout on the PCB was reversed. I
didn’t want to waste more time so mounted the ICs in reverse and finished the PCB
mounting all other components.I burned the SI5351 VFO sketch by AK2B, Tom
Hall here to a Arduino Nano and built the VFO as per this design:
Here’s my VFO on a breadboard: Here is a copy of the sketch I used for testing: VFO
Sketch for Si5351 with IF
The sketch was working perfect but no output from the breakout board. I rechecked
the board for connection issues or soldering errors, everything seemed correct. So I
set out to check the communication between Arduino and the SI5351 chip. I burned
this I2C scanner sketch to the nano and got no result on the serial monitor. This
made clear that there was no communication between Arduino and Breakout board.
I cross checked the Level shifter FETs BS170. I realized the board was made for
through hole components while I used SMD 1206 package. The Pin for both these
packages is different.
I re-soldered the SMD BS170 correctly as per pin out and checked the I2C Scanner
again. and voila ! This is what I got:
output from a Si5351 Breakout Board.
I quickly burned the SI5351 VFO Sketch again and got a clear VFO signal on my
dongle !One of these PCB has already been sent to VU2SWX with all the errors and I
am waiting to hear from him with a corrected PCB.
In the meanwhile if you have any suggestions or feedback, please feel free to post
your comments in the section below.
Amogh Desai
A System Admin by profession, is a tech buff and a licensed Amateur Radio operator with callsign VU3DES. He is
interested in Technology, Amateur radio, Electronics home-brewing, FOSS, Photography and everything tech. He uses
this blog to share his views and ideas with people sharing similar interests.
Tejaswi
4 years ago Permalink
Reply
Satish Chandorkar
4 years ago Permalink
Actually I am eagerly waiting for the final version of this board so that all the
hassle of a stable vfo and L.O. vanishes. Shri Carudatta Uplap has said that
the board will be ready soon. But your board seams to be in advance stage of
design and testing.
Satish
VU2SNK
Reply
Charudatt Uplap
4 years ago Permalink
GR8 Amogh, I am sorry, was getting the boards ready, but then a tooth fairy
gave me a Adafruit BreakOut Board and so the immediate need for the board
was dropped.
A Breakout board for this should not be a big problem and I sincerely hope ,
that someone now makes a dedicated board with the ATMEL Chip and the Si
Chip on one Board Complete project.
Amogh : How much did you get the chip for and any specific reason you used a
crystal ?
regards
VU2UPX
Reply
Amogh Desai
4 years ago Permalink
great.. now will have choices.. this board is more of a demonstration.. need
to also see how well it performs as compared to AD9850..
Reply
vu2swx
4 years ago Permalink
I have posted the corrections to the board. Need more beta testers.
Reply
ashok vu2ash
4 years ago Permalink
Good work Amogh , following you on this project.
Reply
Reply
Riyas
4 years ago Permalink
Very nice! How was the performance of the rx compared to ad9850 and Si570 ?
audio clarity, birdies and noise floor
Reply
Amogh Desai
4 years ago Permalink
Hey Riyas,
It was good. I dint find any specific issue with audio clarity. It is on par with
the AD9850. I don’t have much test and measurement equipment to show
comparisons. But I understand from reports that Si5351 has some amount of
spurs and is quite noisy compared to SI570. Also its performs well if only one
clock is used or 2 clocks away from each other are used. But is not a bad
choice over AD9850 at all. SI570 is very clean and cant replace AD9850 or
Si5351.
Reply
Antony Watts
2 years ago Permalink
Two things
1 I am looking for a single board, Uno format, but including Si5351 & 74AC74
generating IQ signals for SDR
2 To interface with a single board (Arduino Uno size) SDR Transceiver I have
designed
Reply
Amogh Desai
2 years ago Permalink
Hi Antony,
Please check VU2IIA Mahesh’s blog for this kind of setup. He has talso taken
the info from some other blog, but has successfully used an arduino + SI5351
+74HC74 to drive an IQ based SDR.
73s
Amogh
VU3DES
Reply
Krishna
1 year ago Permalink
I complied the sketch but found, it is giving error which I have pasted here. I
have no idea about programming, and where to look for answers, could you
please let me know how to resolve this.
Error :
Arduino: 1.8.5 (Windows Store 1.8.10.0) (Windows 10), Board:
“Arduino/Genuino Uno”
C:\Users\ragin\AppData\Local\Temp\Temp1_LCD_VFO_Si5351_IF.zip\LCD_VFO_S
i5351_IF\LCD_VFO_Si5351_IF.ino: In function ‘void setup()’:
si5351.init(SI5351_CRYSTAL_LOAD_8PF);
C:\Users\ragin\AppData\Local\Temp\Temp1_LCD_VFO_Si5351_IF.zip\LCD_VFO_S
i5351_IF\LCD_VFO_Si5351_IF.ino:157:40: note: candidate is:
C:\Users\ragin\OneDrive\Documents\Arduino\libraries\Si5351Arduino-
master\src/si5351.h:283:7: note: bool Si5351::init(uint8_t, uint32_t, int32_t)
C:\Users\ragin\OneDrive\Documents\Arduino\libraries\Si5351Arduino-
master\src/si5351.h:283:7: note: candidate expects 3 arguments, 1 provided
C:\Users\ragin\AppData\Local\Temp\Temp1_LCD_VFO_Si5351_IF.zip\LCD_VFO_S
i5351_IF\LCD_VFO_Si5351_IF.ino:161:55: note: candidate is:
C:\Users\ragin\OneDrive\Documents\Arduino\libraries\Si5351Arduino-
master\src/si5351.h:285:10: note: uint8_t Si5351::set_freq(uint64_t, si5351_clock)
C:\Users\ragin\OneDrive\Documents\Arduino\libraries\Si5351Arduino-
master\src/si5351.h:285:10: note: candidate expects 2 arguments, 3 provided
C:\Users\ragin\AppData\Local\Temp\Temp1_LCD_VFO_Si5351_IF.zip\LCD_VFO_S
i5351_IF\LCD_VFO_Si5351_IF.ino:165:41: note: candidate is:
C:\Users\ragin\OneDrive\Documents\Arduino\libraries\Si5351Arduino-
master\src/si5351.h:285:10: note: uint8_t Si5351::set_freq(uint64_t, si5351_clock)
^
C:\Users\ragin\OneDrive\Documents\Arduino\libraries\Si5351Arduino-
master\src/si5351.h:285:10: note: candidate expects 2 arguments, 3 provided
C:\Users\ragin\AppData\Local\Temp\Temp1_LCD_VFO_Si5351_IF.zip\LCD_VFO_S
i5351_IF\LCD_VFO_Si5351_IF.ino: In function ‘void loop()’:
C:\Users\ragin\AppData\Local\Temp\Temp1_LCD_VFO_Si5351_IF.zip\LCD_VFO_S
i5351_IF\LCD_VFO_Si5351_IF.ino:186:63: note: candidate is:
C:\Users\ragin\OneDrive\Documents\Arduino\libraries\Si5351Arduino-
master\src/si5351.h:285:10: note: uint8_t Si5351::set_freq(uint64_t, si5351_clock)
C:\Users\ragin\OneDrive\Documents\Arduino\libraries\Si5351Arduino-
master\src/si5351.h:285:10: note: candidate expects 2 arguments, 3 provided
C:\Users\ragin\AppData\Local\Temp\Temp1_LCD_VFO_Si5351_IF.zip\LCD_VFO_S
i5351_IF\LCD_VFO_Si5351_IF.ino:191:43: note: candidate is:
In file included from
C:\Users\ragin\AppData\Local\Temp\Temp1_LCD_VFO_Si5351_IF.zip\LCD_VFO_S
i5351_IF\LCD_VFO_Si5351_IF.ino:12:0:
C:\Users\ragin\OneDrive\Documents\Arduino\libraries\Si5351Arduino-
master\src/si5351.h:285:10: note: uint8_t Si5351::set_freq(uint64_t, si5351_clock)
C:\Users\ragin\OneDrive\Documents\Arduino\libraries\Si5351Arduino-
master\src/si5351.h:285:10: note: candidate expects 2 arguments, 3 provided
C:\Users\ragin\OneDrive\Documents\Arduino\libraries\Si5351Arduino-
master\src/si5351.h:285:10: note: uint8_t Si5351::set_freq(uint64_t, si5351_clock)
C:\Users\ragin\OneDrive\Documents\Arduino\libraries\Si5351Arduino-
master\src/si5351.h:285:10: note: candidate expects 2 arguments, 3 provided
exit status 1
no matching function for call to ‘Si5351::init(int)’
Amogh Desai
1 year ago Permalink
Hey,
Reply
LEAVE A REPLY
Your email address will not be published. Required fields are marked *
Comment
Name *
Email *
Website
Save my name, email, and website in this browser for the next time I comment.
Post Comment
This site uses Akismet to reduce spam. Learn how your comment data is processed.
Custom Search
MOST READ
PUNE HAM and Amateur Radio Club (PHARC) eyeball QSO & Antenna Workshop