More than two years ago I posted a project to this site detailing how I took a little DDS unit I found I eBay and controlled it with an Arduino UNO and LCD. The result was a very simple and stable VFO that just about anyone could build. It was also dirt cheap to replicate. I posted the code, put up some horrible schematics, and let it sit. I never thought much of it.
Little did I know that so many people would be interested in what I had created. I’ve been contacted by a lot of people, sent a lot of pictures of users units, helped a few people trouble shoot some issues, and even got published in a few books. What I do get the most is questions. A lot of questions. So to fix repeating myself a lot on emails here are some of the most popular email questions I get about the AD7C DDS VFO.
Q: Does it work?
A: Sure does. 200+ people have contacted me thanking me after they build the same project.
Q: I get an error on compiling. Something about “rotary.h not found?”
A: You did not import the rotary library correctly.
Q: Do I have to pay you if I build this?
A: No, but you can always donate to firstname.lastname@example.org via PayPal if you wish. I’ll be extremely thankful!
Q: I wish it had THIS feature or THAT feature. Can you add that to the code and send it to me?
A: I could but what would be the fun in that? Learning coding is part of the fun so open up the Arduino code and give it a try yourself.
Q: Can I use any rotary encoder or does it have to be the same model you used?
A: So long as the rotary encoder outputs gray code you should be OK but I can’t guarantee that.
Hopefully that helps quickly answers some questions. I am working on a new version of the code. Nothing special but I am cleaning up a few sections. I don’t like that I have two versions of the code (IF and NON-IF version) so I am combining them into one and allowing a simple code change decide which way the user would like it to function. That and a few other improvements. I’ll post when I am done. Don’t worry… it will be 100% compatible with the existing schematic so no changes there.
Go melt some solder.
Regarding the “rotary.h not found” error, the problem is not actually with importing the library.
The library defines the file as “Rotary.h”. The code includes the line “rotary.h”.
The solution is is simple: capitalize the “R”. Then the code compiles nicely.
Hope this helps.
cool project- thanks for the code. My project is still on the breadboard. I have an old Tentec Omni D that has a pto I hope to replace with an external dds vfo. I want the vfo to cover 5 – 5.5 mhz and the display to show the actual transmit freq. Good thing I am retired cause it might take considerable time to get it right.. I know others have already done this But the best thing is you have enough code to use it out of the box.Thanks again
James, I’m working on doing the same thing. I have the VFO tuning from 5 to 5.5 MHz so far but I’m trying to figure out the code to make the frequency offset for RIT. An adjustable voltage on one of the A/D pins out to do it, I’d think.
Make sure you are using the IF version. The RIT is built in already.
Thanks so much for creating this project. I have learned a lot about Arduino and all the small versions as well. I have built three of these VFOs, 1 for a RF signal generator and 1 for a DSB transceiver I designed, and 1 for my Austrailian MST V1 transceiver which you can see on my QRZ page, all work perfectly. http://www.qrz.com/db/KB6QVI
The Chinese are on to us though, and have been steadily raising the prices of the DDS modules, but still a deal at $10 U.S. I guess. Thanks again.
If I use AD9851 which code must be change ?
Best regards Hamid ,EP4HR
Just adjust the divisor for the clock frequency. It’s well commented below in these comments.
I have built one with the uno. I am interested in reducing size and using a nano or or mini. Is the code the same or are there changes necessary.
Yes. You have to modify the code. Look on this blog and you’ll find a few posts that reference what you’ll need!