I initially set out to use the AD9959 DDS and invested a great deal of time writing the code to make it function as a VFO, BFO and local oscillator for other stages of the transceiver, however I have ran in to several issues with it in terms of reliability, spectral purity and overall complexity.
The DDS would routinely shut down and require a reboot for no apparent reason, the output amplitude required a great deal of code and logic to manage it in terms of a wide-band coverage, one of the clever features of the AD9959 is the ability to control the output amplitude of each channel independently, this required many lines of code and time consuming calibration for each band the transceiver will cover – it did work but was generally a pain in the arse!
Another issue was harmonics, the output from the DDS shown on the Spectrum Analyser was not encouraging, the only way to tame this was to reduce the output level of the DDS channel, unfortunately this took the level below +7dBm, which due to the architecture of this design using SRA-1 passive mixers, was not enough.
I decided to go back to the drawing board and having seen a great deal of success with the SI5351 from guys like Pete Juliano N6QW and Jason Milldrum NT7S, I thought I would spend some time playing around with a couple of the Adafruit SI5351 clock generator modules. To my surprise they work very well, much better than any DDS I have tried, for example the output was clean over most of the tuning range of the prototype VFO, I did notice some harmonics on the lower tuning range below 10MHz but that is not a problem in this design for me. I swept the SI5351 from a few Khz all the way up to 225MHz – the amplitude hardly flickered, albeit a couple of db +/- over the whole range but the level did not drop below +12dbM over the whole range – the spec for the SI5351 notes a 3V peak to peak output or +14dbM into 50 ohms so good enough for my projects.
I have used two of the Adafruit modules in my new design to provide the VFO, BFO, CIO and PTO (Passband tuning oscillator for the IF Shift function), the power consumption is far less than the AD9959 DDS which took around 930mA at runtime, the overall consumption from the SI5351 modules, including the Arduino Due and the additional Arduino Nano for the BFO comes in around 120mA.
I mentioned in a previous post that I obtained some ready rolled AD831 mixer modules from China, they work very well however I have chosen not to include this device in the Product Detector as the gain is too much, the AF pre-amplifier module was simply overloaded and would cause the loudspeaker to squeal, plus the overall noise floor was much greater than a that of the SRA-1 passive mixer. I will include the AD831 mixer in the transmitter stage later on.
The final major change is the transceiver display, I originally designed the software to drive a 20 x 4 LCD module, however there were a couple of issues which put me off going forward with it in the end design. First main issue was refresh rate, I wanted to save my precious I/O on the Arduino Due for band switching etc so I opted for a display with an I2C controller, however the flicker when tuning the VFO was very apparent and quite frankly very ugly, also the flexibility in terms of font size and scaling was limited so I purchased a 256 x 64 OLED with an SPI interface, here in the UK these modules are very expensive, around £50-£100 depending on supplier and type of display, you can get those tiny OLED displays for less than £10 in the UK but for the scale of transceiver I am building it would look odd and with my bad eyesight will be difficult to read.
Here is the stock image from the Chinese supplier, I must say I am very impressed with the build quality, visual impact and flexibility – more importantly there is no “lag” when tuning the VFO unlike the classic LCD module and for less than £26 delivered to the UK I was very happy.