Reply to comment
No updates for a while. We're getting ready to move house so I've been busy with lots of things around that.
Thanks to those who have emailed me reporting that they've built the Arduino DDS-60 controller.
Bob, N9KR pointed out that there are inexpensive DDS boards on eBay that work with my software with minor changes. These use an AD9850 chip which is very similar to the AD9851 in the DDS-60. Search eBay for AD9850. Most are "Buy it now" for about $18.99 with free shipping to the US from Hong Kong. These are not kits but assembled modules ready to go.
Bob reports that to cope with the difference between the AD9851 and AD9850, he only had to change the WriteByteToDDS(0x09) in WriteToDDS to WriteByteToDDS(0x08).
The clock frequency on these boards is 125 MHz whereas the DDS-60 uses 180 MHz. That requires the following changes.
const long CLOCK_BASE = 180000000 & 0xFFFF0000;
const long CLOCK_BASE = 125000000 & 0xFFFF0000;
and to make the calibration provide the + or - 100 ppm:
const unsigned long CLOCK_LSB_MIN = 0x4EB0;
const unsigned long CLOCK_LSB_MAX = 0xDB50;
const unsigned long CLOCK_LSB_MIN = 0x286C;
const unsigned long CLOCK_LSB_MAX = 0x8A14;
I haven't tried one of these myself but it sounds like a very inexpensive way of building a DDS. I don't know what they're like in terms of spectral purity or stability.