Initial Information

I started having a desire to build something for the ham shack (Dec/2016). It has been a few years since I really was busy on that front and I have been missing it. So, thoughts of a 40m QRP SSB transceiver started to to sound like it would be a good project. Then I decided to apply the KISS principle [keep it simple stupid] and start with a 'preassembled board'. Selection of the BITX-40 from HF Sigs, at a cost is about $59.00 (includes shipping from India), seemed like a really great choice. The BITX-40 is only in the prototype stage at this time and the cost seemed right for a rig to modify and play around with. The BITX 40 unit now (early 2017) comes with a prepogrammed Arduino "mini" microcontroller and a LCD display for use as the VFO in the assembly. uTube videos showed this as a nice little circuit and the various chat boards talk nicely about the VFO stability, though much chatter around programming and small issues. The BITX-40 is meant to be a very 'hackable' rig for each individual, allowing for lots of experimentation - so I will hold the BITX information for a later effort. The BITX-40 is a 'spin-off' of the BITX-20 design that has been around for awhile.

Well, the BITX-40 project had led me to wanting to investigate the "DDS VFO concept" a little deeper. The internet is full of information and uTube videos of using an Arduino microcontroller to control an AD9850/AD9851 DDS circuit to make some very neat VFO boxes. Also, in some units the Si5351 DDS module is used (like in the BITX-40 project). This new knowledge (to me) kick started a desire to obtain, learn and play with the Arduino UNO and AD9850, AD9851 and Si5351 DDS generators. This then became the topic of this post (page). A thought of switching out the Arduino (~$17.00) with a Raspberry Pi Zero (~$5.00) and doing some additional things is floating in my thoughts, but needs a large amount of refinement and learning some basic information (External signal generator, VFO, antenna analyzer, QRP rigs, etc. are part of the thinking). A $12.00 savings for a small project is always very intriguing to a ham, so I will shoot for about $25 as a valid target cost. I needed to learn about the 'Arduino Microcontrollers' became the main initial focus. The 'official' Arduino site is the first place to read and dig-in for learning. The ARRL has a book of projects for the Ham shack using the Arduino, but I have held off for now (I may wish to investigate later).

In my past experiences with homebrewing and building various receivers, the three characteristics that lead to the unit's level of performance were sensitivity, selectivity and stability. These were always the major keys to success. Sensitivity and selectivity seemed to be way easier to work around for me. The frequency stability always was the major challenge to get "adequate" performance out of a given receiver project. Could these DDS frequency units be the simple key to these earlier project performance issues? I predict some further work in my very near future in checking this out.

In my defense, I want to share the blame with Bill Meara, N2CQR/M0HBR, and Pete Juliano, N6QW, of 'soldersmoke' fame. Bill and Pete have been discussing the BITX units for awhile and spiked my interest on warming up the solder iron. Therefore, by dividing the responsibility issue betweem them and me, I decided it is only 33% my fault! What is a ham to do? I feel trapped (again). I decided to get started with a simple Arduino based VFO project and post on that project.

A quick internet search found a nice VFO to copy from {not trying to reinvent, just build a useful unit for the shack}. Richard Visokey, AD7C, has a nice design for a 1 Mhz to 40 MHz VFO that uses the AD9850 DDS; an Arduino and a 1602 LCD Display. The unit is controlled by a rotarty encoder with it's internal push button switch (2013-Mar-25 rev 1.0). This page will follow that design. A large THANKS goes to Richard for his efforts and sharing them with the ham community. Using the available sources to gain the knowledge outlined here, let us get going on this project. I will substitute an 'UNO for the nano unit (Richard's choice), but otherwise will follow his design. Now my responsibilty for this project, because Richard joins Bill and Pete, is down to only 25% (soon I will figure out how to make it all someone elses fault (perhaps a new project design goal).

SARA Arduino Beginning

You cannot really "learn" the Arduino System without actually getting a system and doing some of your own programming!  You MUST actually get involved and type in the programs, find errors, make the corrections, and then repeat it a few times. You must learn each of the steps in going through this entire process -- it is NOT "a read and do" process (you got to get down and play with the dirt if your going to make really good mud). You can read for basic understanding, but you will not really learn "to do" until you actually go through the process steps yourself several times. Your goal should be to get in there and actually learn the entire process. After actually going through all the steps, found in the various sources and tutorials, you will be quite prepared to do your own thing! Trust the 'learning process' and you will learn all that you need. You will be able to impress yourself and others with your new knowledge and make 'professional quality' projects. Another thing to keep in mind is that when you "own the project", it never is really complete. You will want to improve it or change it once it starts working. A MAJOR suggestion is to take the time to comment ALL your programming code right from the start. This is a simple thing when you are initially are writing it, but becomes very strong tool when you comeback later to make changes and then troubleshoot those changes. This is one of the large downfalls for people just starting to program (coding), they convince themselves that the code is easy to understand and that good comments are not needed. That is JUST WRONG, they will eventually learn when they wish to modify the code later and end up spending extra hours trying remember "What were the initial thoughts and process steps trying to accomplish?". All GOOD experienced programmers comment everything as they write it the first time. I will consider that a fair warning and get back on topic (I can get on my soapbox once in awhile, sorry for that).

"What is an ARDUINO?" or An Introduction of Arduino "UNO" Rev.3

The 'simple' answer is that an Arduino is actually set of small microcontroller circuit boards (about eight of them). Most have a USB communication chip, a small amount of power supply items, four indicator LEDs and various supporting electronic components along with the microcontroller chip. Power connector, USB jack, reset button switch and header blocks are on most of the boards, these become the main physical interconnects for an Arduino project. The Arduino "UNO" (the most popular Arduino which is what this page will use) has the ATmega 328 microcontroller and the Atmega16U2 chip (it was an Atmega8U2 up to version R2) and is programmed as a USB-to-serial converter. This allow usage of a USB cable from the Arduino UNO board to your computer. This single connection allows for information transfers with just the Arduino and the one USB cable, attached to your computer. The 'UNO' design is being followed by the 'Leonardo' (newer approach). These are the two most popular Arduinos and there are hundreds of 'shields' for use with Arduino boards. Check the Arduino's main site for lots of details and comparisons.

Two terms you need to know and understand when starting are: 'sketch' & 'shield'. A 'sketch' is the C programing code which is compiled (turned into a binary or hex file) for an Arduino project. So a sketch is the "programming Code" or simply 'the program'[software]. A 'shield' is a direct plug-on circuit board [hardware] for use with the Arduino. There are literally a hundred or more of these small boards allowing you to connect or interface other hardware units to your Arduino. You will become familiar with these terms as you get learning, but knowing the terms becomes important when you first start out.

The "Arduino project" started in 2005 and uses an 'open source' software and 'open source' hardware environment. QST for November, 2015 (page 30) has a nice article on the Arduino, "Introduction to the Arduino Microcontroller" by Glen Popiel, KW5GP. For another set of good tutorial series look at:;; &

It is the reusability concepts of open software and open hardware that allow you to easily and freely use what others have already designed. This greatly simplifies making your own specific projects do very complex things without getting bogged down in the details. Also, the Arduino environment uses 'library' files (written in C++), to expand your programs for your project. Usually just giving credit to the original author is all that is required to make use of many powerful software concepts all for free (a word worshipped by ham radio operators everywhere).

The Arduino Atmega328 has a 'bootloader' usually preinstalled (more on this topic later). The system process steps start by writing C code [sketch] in your computer using an Integrated Development Environment [IDE], compiling (makes a 'Binary/Hexfile' from your C code), and downloading that file into the Arduino via a USB cable. The simple real world connection is to connect an interface [shield] to the header blocks on the Aeduino and by using a prototying breadboard, connect things to convert to the 'outer world'. Remember, a "Shield" is the term used to define a plug-in interfacing electronics board, these are used by many microcontroller development systems and final project users. Some "shield designs" are shared and used on several different controller systems, however, YOU must be careful! See the Adafruit Shield Compatibility Guide as a starting point to study the shield compatibility issues. Another method is to connecting your electronics design directly to the UNO header blocks. Another shield list is at: Shield List which tries to keep track of all the shields available. Another site is SparkFun Shields. These will give you ideas on what is available for your own usage.

The open "Arduino" protyping platform relies on an easy to use environment which gives way to it's very wide usage (both hardware and software). The Arduino project is led (designed) and manufactured by a company headed by Massimo Banzi, CEO of Arduino. Arduino boards are able to read a variety of inputs - light on a sensor, a finger on a button, or a Twitter message - and turn them into an output - activating a motor, turning on an LED, publishing something online, etc. You tell your board what to do by sending a set of instructions (a 'sketch') to the microcontroller using an Arduino board. You use the Arduino C programming language (based on the Wiring language), and a free Arduino Software IDE [Integrated Development Environment]. Most programming languages today have an IDE available, some are free and some you need to purchase. An IDE is a single program with a text editor, a compiler, an assembler, and a linker all rolled into a single development environment. An Arduino sketch is based on a subset of ANSI C and uses C++ library concepts. The best approach is to use an open-source compiler (free) avr-gcc and linked against the open-source AVR Libc. The Arduino language was based in Wiring. The Arduino environment is founded in Processing and includes modifications made by Wiring. The IDE now supports an 'online' version, so you do not need to download and install it on your computer, you can use it 'online'. Also, your work can be stored 'in-the-cloud' not on your computer. Doing this makes the project available on any computer anywhere you wish to use it. You will need to become familiar with the IDE for you to continue with Arduino projects.

Over recent years, Arduino has been "the brain" supporting of thousands of projects, from everyday objects to complex scientific instruments. A worldwide community of makers - students, hobbyists, artists, programmers, and professionals - has gathered around this open-source platform and their contributions have added up to an incredible amount of 'accessible knowledge'. That knowledge can be a great help to novices and experts alike (say 'you' for example). The 'open source' nature is that everyone contributes to the community and the community gains from the 'reuse of the total effort'.

A useful book that I have been using is: "Beginning C for Arduino, Second Edition - Learn C Programming for the Arduino" by Jack Purdum,PHD [ISBN-13(pbk): 978-1-4842-0941-7 :: (electronic): 978-1-4842-0940-0]. Cost is about $25.00 to $50.00 ([pricing from used to new, w/shipping), search the internet or visit a physical library. Oh, Jack is also fellow ham, W8TEE, and has BITX40 work ongoing (he gets involved).

A second book I use is "Sams Teach Yourself Arduino Programming in 24 Hours" by Richard Blum, [ISBN-13: 978-0-672-33712-3]. Cost is about $29.99. I found both these to be easy to read and have been using them for references. Some of the topics get a little deep for a beginner, but the explanations are done quite well and makes the topics understandable. Many 'C' and 'C++' books are available and add to your knowledge. Many of the technical books can be found for reading on the internet for free, just start searching.

The Arduino Product Lineup (yep, more than one product) uses ATmega processors and many different boards have different capabilities. [Checkout Adafruit's Arduino Selection Guideline]. For this site's [SARA] discussion we will focus on the Arduino "UNO" revision 3 {$24.95 from adafruit product #50} see Adafruit product link. To start lets use "adafruit" as learning source for information. They sell most of the devices we will be discussing/working with and have proven to be a great source for information on their products. The UNO Tecnical Specification is here. There are many, many other sources than adafruit - just search Arduino on an internet search engine and start reading. I have used (and do use) Adafuit for many of my Raspberry Pi & Arduino prototyping project needs and they ship quickly and are resonable on pricing. Thay also supply lots of good technical information on how to work with and use the hardware.

It is assumed we will be using a working 'Windows' computer with an internet connection (Other computers can be used - but you should search for specifics). We highly suggest you start with a "genuine" Arduino board. We will be discussing the "Arduino UNU rev 3" unit. Some of the cheaper Arduino clones from eBay, Amazon, etc. may not be quite on par with the inital units and may cause some issues later. They can have different processors, USB chip, missing bootloader code, etc.). Start with one "known good board" (you can go cheap later). You will need a USB data cable with 'A' and 'B' ends (like most printer style cables). I have several I bought at ham swaps for about $3.00 each, Best Buy sells them for about $10.00. A small power adapter/wallwart (center positive and 7 to 12 Vdc at about 1 A) may be desired to power the Arduino as a stand-alone later. There are "shield" available (hardware plug-in boards for many types of feature add-ons) which we leave up to you. I started with a I2C Controlled LCD + Keypad shield and a 16 x 2 LCD display {bought as a kit for $19.95 from adafruit product #772}. We will use the 'Arduino' IDE for our development (there are some others you can find).

Coax that connects things! topic divider

Go back to top ↑


ATmega328 ~ Used in Arduino UNO

The '328 microcontroller high level information:

  • 28 Pin DIP IC
  • Runs at 16 MHz
  • 32 KB of flash storage
  • 2 KB of RAM
  • Powered by 3 or 5 Volts
  • Requires about 0.1 Watts of power
  • Cost is about $5 per chip (if you want to play later)

A major difference between the microcontroller (having no operating system) versus a microcomputer (which requires an operating system, say Mac OS X or Windows or Linux) is the intial booting up process. The microcontroller is very 'barebones', and has a simple bootloader. When you plug it in and turn it on, it immediately runs the bootloader and then whatever you programmed it to do until the power is removed or a reset occurs. Flash storage is where your binary/hex file is stored. The 'flash storage' inside of the chip lasts for a really long time (20+ years). You could program your Arduino, leave it alone for decades, & come back and power it up and it would work just fine. As the cost is small, most just leave the entire Arduino inside their project. It is important to note that their are two microcontrollers chips on the Arduino UNO. The one you program is the ATmega328, the other is a ATmega16U2 which handles some external interfacing stuff.

Lets get on the Arduino UNO (sketching and hardware):

We suggest that you start online at adafruit with Ladyada's Learn Arduino - Lesson #0 and continue thru with lessons 1 to lesson 3. These four lessons teach very basic things, but they are a good framework to build on. Lesson #0 will step you through making sure your Arduino is actually working with your system (kind of important for you to be able to continue).

Lesson #1 will start you with the Arduino IDE; correct Arduino board selection, Correct Serial Port ID (needed for programming); & load a sketch from the IDE to the Arduino.

Lesson #2 will start having you write/change a sketch [program]. Later lessons keep instructing you to control LEDs, motors, switch and other inputs, etc. A nice slow leading lesson path to lots of functionality.

Lesson #3 covers RGB LEDs and further understanding the sketch logic. I think at this point you can start out on your own playing around. The lessons continue out through number 15 with new topics in each lesson. At the end of lesson 15, you will be 'very knowledgeable' and past the 'beginner' stage. If you use one or both of the books we mentioned and step through them, you are not a beginner anymore.

This learning path will get you started towards being knowledgeable about the Arduino UNO and writing/changing various sketches. After this stage, you are free to dream up your own application project and proceed.

The Arduino IDE is like many current/modern computer/controller environments. It uses "libraries" to extend the capability of code and makes easy 'code reuse' a reality. Libraries quickly and easily extend your sketches (programs). It eliminates a lot of work when your program needs special input/output handling (the complex stuff). Generally a library can be found already written to cover your requirements. You should spend some time reviewing what is actually inside the 'standard' IDE library and how you can add new libraries to the IDE. Perhaps even writting some of your own (See Writing Your Library). NOTE: Arduino libraries must be written in C++ and contain a header file (.h) and a code file (.cpp). Please make sure your libraries are stored at a different path than the IDE supplied libraries. If (or when) the IDE gets updated, you can/may loose any libraries you have added! See Arduino Library Examples for exploring what is in the various supplied libraries. You can kind of think of libraries as 'drivers' for your projects. To review the Standard Libraries checkout Arduino Standard Libraries.

Documenting what "version of library" you are actually using is important. Put version information inside comments of your sketch, also what version of IDE you are using! You usually do not control what is inside a library or IDE. They can get updated and modified frequently. Sometimes the newer libraryIDE combination will not complie your sketch properly. Your '.ino' file will may then have errors and not work. This can be difficult to repair (and frustrating to debug) if you have not documented what specific library/IDE you used the first time. This is more of an issue with 'add-on' hardware libraries than with 'standard' libraries. You will need to preoperly document your program code if you want to contain and control these issues.

Adding libraries is an important process you need to explore and fully understand, as many of the ham projects require 'non-standard' libraries. Go slow and understand sample sketches and library structures as these are very important concepts to master. Many issues are discussed in the internet groups on getting a sketch (.ino file) to generate the correct hex file for downloading into the Arduino. Initial libraries (or IDE) get updated or changed and then the compilied hex file is different (or you get errors in the compiling process and it will not generate hex code), in either case the result is an Arduino that does not work. My personal preference is once I get a 'working' hex file on the Arduino, I save a copy of the raw hex file, so I have a saved working Arduino to fall back on as I make changes. As you do not control the libraries, you cannot control the compiling process (changing from a sketch .ino file to a .hex file). You can find instructions on the internet, but once you get a valid compile (no errors), jump out to windows file explorer and search for the same file name as you '.ino' file with a '.hex' extension. Save the hex file somewhere else in your system. The '.hex' file is generated in a temporary fashion in the IDE, but get deleted when the file gets uploaded to the Arduino. So you need do your own save process. It would appear that perhaps a lot of internet chat could be eliminated by simply passing the hex files directly, however, that brings another level of complexity into the dialog, so may not really be a help.

You deserve a "Congratulations!" you are moving very fast if you have gotten here. We will add more here as we get deeper into the knowledge ourselves {currently early in 2017}. I suggest you now go to uTube and find the tutorials by Jeremy Blum, Tutorial #1 Getting Aquainted with Arduino. Watch the whole series and learn as you go. These each move along quite fast so stop and think often. There are currently 15 units that start knowing nearly nothing and move through very advanced topics. Read the referenced books and study the programming concepts presented. Then search the internet for other '.ino' files and see if you can understand those. You will gain knowledge as you see how others have approached the issues. Please know that there are usually a great number of ways you can complete any programming task. The tradeoffs in memory and speed Vs the various programming methods is what you want to understand and learn to use. NOTE: ALWAYS use lots of comments in your sketchs to explain what and why you make a change to the code! When you comeback later to do further work, these comments are worth more than gold in your time in clearly understanding what you wanted the first time.

ATmega168/328 - Arduino Pin Mapping

The following chart shows the ATmega 328 to the Arduino UNO pin mapping as a reference. This may not display on some portable devices, but computer screens seem to do fine (without regard to browser choice). {I will work on it later, I hope.} If your project process leads you into wanting to skip the Arduino and use an Atmega chip directly, this breakdown will be useful.

ATmega 328 Pin Map Image

Reading the comment about the ICSP pins, brings us back to the 'no boot loader' topic. ICSP stands for "In-Circuit-Serial-Programming" which is a set of pins on a board for programming the micro chip while installed on a circuit board. On Arduino these pins have four digital control pins along with power and a ground (six pins total). The warning refers to not interfering with the programmabilty of the Arduino. Try Wikipedia for general understanding and Arduino's ISP Project for further investigation. A side note is that a programmed Arduino can work as a ISP [In-Circuit Serial Programmer] for installing a 'boot loader' onto a second ATmega 328 (perhaps on an Arduino). You can find the ICSP pins on many other circuit boards, say inside a modem like the WRT-54G used for HSMM networks. You get the idea (I hope). Remember those 'clone' Arduino units I mentioned earlier. I recieved one that did not have the bootloader programmed into the unit (it was DOA ~ dead-on-arrival). Using a 'good' Arduino allowed me to install new bootload code and brought it back to a very workable unit. I had saved about $6.00 on this 'clone' Arduino, but it took a few hours of reading and digging to gain the knowledge to bring it back to life. Probably about three hours on this board, so my real saving was very reduced as I do not work for $2.00 per hour. though the learning has greater value going forward.

You can continue searching and reading on the Arduino on you own at this point. We will leave the ATmega 328 for now and go to the AD9850 DDS for some further information.

Coax that connects things! topic divider

Go back to top ↑



AD9850 CMOS, 125 MHz DDS Synhesizer

Here is some of the basic details for the AD9850 and AD9851 DDS on the NJQRP DDS-60 daughter card. The AD9850 has no internal reference clock multiplier, so it requires a faster reference clock then the AD9851. Not having an internal multiplier means that code written for the AD9851 will not work directly on the AD9850 - the code will attempt to set registers that do not exist in the AD9850.

The daughter board contains the electronics to configure the base IC. A data sheet for the AD9850 can be found at Analog Devices (25 pages) OR at AMTEL (over 400 pages). The AD9851 datasheet is at: Analog Devices AD9851

Here is the pinout for AD9850 and AD9851 chips:(nearly the same pinout ~ Pins 5 & 6; 13 & 14; 17). Codes are not the same, so be careful to note the slight differences.

AD9850 Pin OutAD9851 Pin Out

Converting the chip to the daughter board pinouts:

D0 – D7 = Parallel programming bits
GND = Ground (obvious); Vss
CLK = Serial programming clock
Latch = Serial programming latch [FQ_UD pin on 9850]
DATA = Serial programming DATA (internally tied to D7)
RST = Reset. Generally, kept tied to GND
SQW = Square wave outputs (complementary) [Qout] Duty cycle adjustable with blue pot.
SINA = Raw unfiltered AD9850 sine output
SINB = 70 MHz LPF filtered AD9850 output.


The commonly available AD9850 / AD9851 modules on a small circuit board have two rows of 10 pin connections. These are NOT the same as the chip pinouts (above).

Viewed from top of circuit board with the "trimmer pot" at the top.

PinSignal   SignalPin
1 GND   Zout2 (sq) 20
2 D7   Zout1 (sq) 19
3 D6   Qout2 (sin) 18
4 D5   Qout1 (sin) 17
5 D4   GND 16
6 D3   RESET 15
7 D2   DATA 14
8 D1   FU_UD 13
9 D0   W.CLK 12
10 Vcc   Vcc 11


NOTE: Qout 2 is a 70 MHz low pass filtered output. There is an indication that the "DATA" is internally connected to the "D7" pin.

You will find some interesting application feature in various "application notes". Check them out: DDS Application Note files or Analog Devices App Notes. {I like the AN557: An Experimenter's Project paper on incorporating into an Amateur Radio VFO. It is at AN-557 App Note.} Want to sync up two (or more) AD9850 modules then see AN-587 App Note ~ Synchronizing Multiple AD9850/AD9851 DDS-Based Synthesizers.

These are very nice DDS modules when used properly. The Si5351 modules have only square wave outputs, but have wider frequency coverage and are a smaller (lower power) design. Search the inernet for more information (there is quite a lot available).

Coax that connects things! topic divider

Go back to top ↑




Richard Visokey, AD7C, has a nice design for a 1 Mhz to 40 MHz VFO that uses the AD9850 DDS; an Arduino Nano and a 1602 LCD Display controlled by a rotarty encoder with internal push button switch (2013-Mar-25 rev 1.0). The Arduino UNO can be substituted for the Nano and meets the hardware I have, so seemed like a great place to start. The design uses the rotary encoder to set the frequency with the push button changing the resolution (digit) that is to be changed. There is a 'MF Frequency Shift' push button for making a intermediate frequency change allowing the display to show a 'readout' frequency that compensates for an I.F. shift for a receiver. His information: AD7C VFO site with links to project files. The layout concept is an Arduino, an AD9850 DDS, A LCD Readout and a digital encoder connected and controled by a sketch. This yields a 1 to 40 MHz signal source (VFO) for various projects. Some signal output level control may be required for your specific usage requirement, but a stable frequencey control element is obtained from this circuit.

Front panel will have a 16 x 2 display, a rotary encoder knob (with push switch) and a push button for input. Rear panel will have the VFO signal (output) and a power input jack. I use reverse power polarity protection of a fuse (1A and a reverse polarity diode). I do not like smoke when I apply reverse voltage to my projects. I know - do not connect it backwards, but when it is late and I hurry, things seem to happen. Using protection means reverse voltage will blow the fuse (not my electronics). Some things in life deserve just a little protection.

The initial UNO has the MF Frequency switch (pull low on switch push) on Analog pin A5 and the rotary push button (pull low on switch press) on A0. Power from rear panel goes to the VIN of the Arduino UNO and negative supply to GND. The 5+ of the UNO is connnected to the LCD Display and AD9850 DDS and GND from these are tied together and supplied to the rotary encoder. There is an 'internal' 25 kOhm potentimeter (display intensity) with ends to +5 and ground. The center tap goes to pin 3 on the LCD display. Six pins on the LCD display connect to the UNO. The RS (LCD4 goes to UNO D12 and E (LCD6 goes to UNO D13), these are the reset and enable signals. There are four character control wires: LCD 11, 12 13 & 14 to the UNO Digital pins D7, D6, D5 & D4 (four adjacent with reverse order). The final four connections go from the UNO to the AD9850 DDS. UNO D8 goes to AD9850 WCLK; UNO D9 to AD9850 FQUP; UNO D10 to AD9850 DATA; UNO D11 to AD9850 RST. Check your wiring twice! See the AD7C site for a nice schematic. If you desire higher than 0.3 P-P signal you will need a buffer amplifier. See DDS Buffer Amplifier. Also note that as frequency is increased the amplitude falls. Perhaps an AGC circuit would be required, I may play with his later.

As mentioned above the AD7C site has the link for downloading the project files or use AD7C Project file in a zip file. I used the "IF version" of the project files and uploaded through the Arduino IDE process. Follow the process you have been experimenting with all the tutorials and it goes pretty easy!

That was all that I required to get a very nice VFO working. Stabilty is great and it is easy to reset the frequency. I added the a small buffer amplifier and have fed the output into a 'classic' radio, replacing the local oscillator signal, for use with a 455 kHz IF. It works as advertised and I am sure I will continue to expand concepts around the Arduino family and the AD9850/AD9851 modules. Perhaps powering some my old Novice license transmitters (mine expired in 1970 and that does make them "old".)

I want to thank AD7C and others who have done all the heavy lifting on this project. Sure makes it simple for following and adding these tools to my play box. Now I got to go play!

Coax that connects things! topic divider

Go back to top ↑



Side thoughts and References


Electronic Design Automation

Fritzing is a design software package for designers and artists with an interest in physical computing and prototyping. To assist robust prototyping and bringing your ideas to fruition and to document an electronic project, this is a great place to get started. You have a "skecth area" for working on your breadboard project. The 'breadboard' layout is for your use and describing to others what your breadboard circuit looks like. That will flow into a schematic diagram and then into circuit board layout processes. This allows great project tracking from breadboard to printed circuit board.

A quick download and update from Fritzing download gets you started. Read the getting started with Fritzing. You should first build a actual circuit and then document it (Fritzing it!). Then start using the software project for modifications, rebuild and retesting. It makes it easy to show others what you have done by sharing the Fritzing files. Try learning Fritzing for further reading on getting going. New to me, so very little to offer right now. I will try to expand later as I gain knowledge here.


Breadboarding may be a new topic for you. Small plug-in boards can be used with actual components to quickly assemble and test electronic circuits. They can save you time when trying many circuit concpets. This includes Arduino projects. Concpet will start collecting here and grow as time permits.

Breadboarding for Beginners ~ Starting Information on using a Breadboard.

Coax that connects things! topic divider

Go back to top ↑


Arduino References

The following are some useful online references for the Arduino and-or the AD9850/AD9851:

Arduino Libraries

The following are some additional useful Arduino library links you may wish to investigate:


Coax that connects things! topic divider

Go back to top ↑