FT301 DDS VFO
FT301 external DDS VFO
As long as I have my Yaesu FT-301 the hunt was on to get a external VFO for that beautifull rig. Unfortunatly that thing is very hard to get, so when Hans Summers stared to sell his Ultimate Arduino Shield kitt on QRP-labs.com idea's were forming in my mind.
The idea behind the Ultimate Arduino Shield kitt is to get a quick start on using a DDS in a Arduino system and combined with a AD9850 DDS (you can get them for a nice price on ebay) you can generate a almost clean sinewave output from 400mV top/top which can be used perfectly as a . . . . VFO :-)
After receiving the Ultimate Arduino Shield kitt from QRP-labs.com, soldering it together and inserting the AD9850 DDS from a ebay seller the coding was on. For controling the AD9850 DDS I used the AD9850 library from Poul-Henning Kamp . . . .
and after getting the first signal out of it, I added a LCD-keypad shield to show the current frequency and allowing to change it.
The FT301 uses a VFO in the range from 5Mhz to 5.5Mhz allowing to tune a 500Khz piece of a selected band. That 500Khz is shown on a white (0 - 500Khz) and orange (500Khz - 1000Khz) roller indicator. The band base frequency of the band (e.g. 14Mhz for 20m) is used to determen which roller indicator should be used (e.g. the white one for 20m). The VFO frequency is the reverse, so the range from 0 - 500Khz leads to a VFO frequency from 5.5Mhz - 5Mhz (e.g. for a 0Khz tune frequency the VFO had a freqency of 5.5Mhz).
The FT301 has a external VFO connector (model 5 pins DIN) on the back of the rig.
- Shield for signal
- 6V switch power (switch on when ext VFO is selected for RX of TX), which can be used to power a small 6V relay to pass pasthrough or block the output signal from the DDS VFO (handy when working in Split)
- VFO signal (is connected to the internal VFO which is switched of when external VFO is selected voor RX or TX). External VFO should send no signal when internal VFO is used (see pin 3).
- 13.5V continues power (always handy to power the external DDS VFO).
Viewed from the back of the socket of the front of the plug.
At first I thought a copy of that system would be more then enough and after changing the code I could change the step with the Left - Right buttons from 10Hz, 100Hz, 1Khz to 10Khz which could be added to the frequency by the Up button or decrement to the frequency by the Down button. The frequencies in the display are shown just like on the white and orange roller indicators.
But using it for a half a hour on my FT301 I didn't really like it. So a went back to the drawingboard and thought about a new way of selecting and displaying the frequencies.
I changed the frequency steps from 10, 25, 100, 250, 1K, 2.5K and 10K allowing to scroll faster through the 500Khz frequency range. Also to make it more for a lazy ham operator, the code now included the Dutch HF bandplan (including limites) So when pressing the select button, the operator can selected the desired FT-301 band by use of the Left and Right switch (160M, 80M, 40M, 20M, 15M, 10Ma, 10Mb, 10Mc, 10Md) and get a absolute frequency readout.
And off-course a little ego flatering should be done on start-up ;-)
After laying this project a side for a few months, I picked it up again and added some new features to it like support for AD9833 and the MAX7219 LED display driver.
The code now contains defines to switch on and off the variouse components.
Before it can be permanent used on my FT-301 there are some points of improvement like :
- add debounce for the keys
- add more sourcode comment (work in progress)
- decide what kind of DDS I would like
- Finaly when all works like I want it, make a nice PCB for the DDS with a output buffer (500mV top/top is almost the same as the FT-301 VFO signal) and a Arduino Nano
The source code can be download from GitHub : https://github.com/ph2lb/FT301VFO/
Enjoy, but remember it, not ready yet.