I saw this posting by NT7S recently and figured this would be something easy to try. I already had several Si5351 breakout boards and a low-pass filter - so why not? Jason describes how to set up everything on this page. You will need to download the sketch and the Python script. The Python script (ntpserial.py) loads the time stamp from your computer to the serial port of your Arduino compatible board. I had to download Python 2.7 as I couldn't get it to run using Python 3.5. I think with a little modification to the script you could get it to do so if, unlike me, you know what you're doing. Just make sure you change the serial port in the Python script to reflect the com port that is connected to your Arduino board.
DEVICE = 'com4' # Change this as necessary in Windows
DEVICE = '/dev/tty20' #or for the Linux equivalent
If you have a Raspberry Pi sitting around doing nothing, it is a good choice to run the ntpserial.py script (if connected to the internet). Python already exists on the Raspberry Pi or most any other computer running Linux.
note: on my raspberry pi I issued this command: ls -ltr /dev|grep -i tty*
and got back ttyACM0 which is called a "dialout" port. It works just fine.
This seems to be a waste of resources since this could probably be done on the PI alone. But, what could be simpler? I've been using the Beaglebone Black to supply the time signal for the past three weeks.
Make these changes to your Arduino sketch to reflect your own call and locator.
unsigned long freq = 14097100UL; //I use 20 meters
//unsigned long freq = 10140200UL; // so these other two freqs are
//unsigned long freq = 7040100UL; // commented out
char call = "AK2B"; // Change this
char loc = "FN30"; // Change this
My setup looks like this
And this morning my 10mw hunk of ether burning rf brought me this little surprise: