Note: This project ulimately got packed up into the Si5351 Signal Generator/VFO.
With some of the gifties I received last week, I started to put together the beginnings of a DDS driven VFO using the Si5351 breakout board from Adafruit, controlled over i2c by an Arduino Duemilanove. (Credit where credit is due, this is heavily-based on m0xpd’s VFO, detailed over on his very fun Shack Nasties blog.)

The wiring is fairly simple, between the Arduino, the Si5351 Breakout, and the LCD screen. Here’s the breakdown:
- Arduino
- Pin 1: Reserved for future encoder
- Pin 2: Reserved for future encoder
- Pin 3: Reserved for future encoder
- Pin 4: ‘Up’ button (internal pullup enabled)
- Pin 5: ‘Down’ button (internal pullup enabled)
- Pin 6: ‘Up’ button (internal pullup enabled)
- Pin 7: LCD Screen RS Connection
- Pin 8: LCD Screen EN Connection
- Pin 9: LCD Screen DB4 Connection
- Pin 10: LCD Screen DB5 Connection
- Pin 11: LCD Screen DB6 Connection
- Pin 12: LCD Screen DB7 Connection

Here’s a very quick and dirty schematic of the circuit. The antenna symbol is meant to represent the output of the DDS.

The full code driving this version is on Github. I’ll dive into this code and some more explanation as the project develops, but I thought it would be worth getting out there for now: