The second weekend in January 2017 afforded time to build something I’ve been wanting to build for several years, my first DDS VFO. I’ve built a kit DDS VFO with pre-soldered surface mount parts and burned-in firmware, but this was to be a scratch build with Arduino Nano, Arduino/C code with modifications, and a Silicon Labs si5351 on a breakout board. I used the wiring map and script from Tom AK2B. It is modified from one by SQ9NJE and uses Jason NT7S si5351 library. The script is elegantly simple, supporting a single push-button to cycle frequency increments, and dealing with encoder interrupts, contact debouncing, refreshing the LCD display, IF offset and VFO/BFO outputs. At the code level Jason’s si5351 library hides the gutsy device interfacing, giving you just a handful of common-sense functions to call… for example, set_frequency() takes as its argument the frequency in centi-hertz (1/100th of a hertz) and the ‘clock 0/1/2’ flag. It couldn’t be simpler. The Adafruit board contains the si5351 and a 25MHz clock (from local IoT supplier Core Electronics). I chose Veroboard as the substrate for the controller proper, and it proved suitable. Here’s a video demonstration of the VFO’s features.