November 30, 2010:
Version: v1.0

si5351a VFO for MKARS-80 Transceiver

Upgrading an 80m SSB kit transceiver with a high performance si5351a VFO along with RIT and S-meter features.


A few years ago, I purchased a kit for an 80m SSB transceiver. The MKARS-80 design was based on the popular BitX-20, but expanded by Steve Drury G6ALU to include 'huff-and-puff' analog VFO stabilisation and frequency display by adding a PIC microprocessor. The original design is shown opposite.

It took me some time to finally get around to building the kit. My interest in 'huff-and-puff' stablisation had declined over that time - I'd built a version for my KNQ7 40m transceiver - and the limited coverage of the analog VFO, designed for the UK 80m band, was a bit limiting in the wider domestic 80m band. The high tuning rate of the tuning capacitor in the original which covers 300kHz in a single 180 degree swing of the tuning control, augmented by a second fine tuning pot, was also potentially limiting.

That's not to suggest there is anything wrong with the original design. It's fine.These issues are just the result of my inherent desire to add, modify or otherwise mess with stuff just as soon as it crosses my desk.

Integrating the si5351a into the MKARS-80

As I considered these issues, I realised that it would be relatively easy to upgrade the MKARS-80 with my single-band ATtiny85 si5351a VFO. Not only would the band limitation be resolved, but the change would also provide improved stability, a variety of tuning rates, and a significant reduction in parts on the PCB. Analog VFOs, the crystal CIO/BFO and various buffers all require a number of parts. My tiny si5351a VFO requires very few parts or PCB real estate.

With further thought, I realised that any change would be more beneficial for existing MKARS-80 users if I could also reuse the existing LCD display. That requires a processor with quite a few more pins. I realised the Arduino Nano would be perfect for the task. it's cheap, widely available, it does not require a specialised programmer, and it is quite small.

Design Details

Here’s the schematic of the new MKARS-80 si5351a VFO. Like my other si5351a designs, it's quite simple, really, with very few parts.

(Right-click on the schematic for more details. Apple users.....Well,  you know the drill)

The 3.3V  I2C interface required by the si5351a is the first issue. That's handled using the NXP-recommended approach with two FETs (Q1, Q2) and four resistors. The same approach is used in the popular si5351a modules 
available from Adafruit, Sparkfun and otherss. I did experiment with just using a pair of resistors as suggested by Miguel PY2OHH but that did not work with my software. I suspect that his simple approach would work fine if I ignore the I2C ACKs, but my software attempts to be reasonably I2C protocol compliant.

Only two si5351a outputs are required; one for the VFO and the other for the CIO/BFO. They drive the diode mixers directly. Seems to work very nicely in practice.

The rotary encoder tunes the VFO
while it's integrated push 'step' switch selects the tuning rate. The encoder mounts in place of the polyvaricon tuning control. The 'Fine Tune' control is no longer required, but it can be reused as a Receiver Incremental Tuning (RIT) control with my new software. As usual, the RIT offset is ignored in transmit. That required detection of the +12V PTT voltage by the Arduino Nano via R2 and R3.

The MKARS-80 reports battery voltage on the LCD so, in addition to retaining my S-meter display feature, I included this in the software for the si5351a VFO upgrade as well.


So far, I've only built two prototypes, the first as a 'quick and dirty' proof of concept, the second to add all the additional interfaces required for the full implementation. Here's what the second prototype looks like at the moment:

Yes, I know, it's a pretty awful picture. But you can get the idea. Tuning control is at upper left, RIT control (replacing fine tuning) is below. The two presets at the lower right simulate S-meter and battery voltages for my tests. the preset under the LCD is to adjust LCD contrast. VFO outputs are at the upper right. I've brought out all three on the prototype, but only two are actually used in the MKARS-80.

The display shows frequency (to the nearest 5Hz step),  the step size (upper right), battery volts (lower left), S-meter (lower centre bar graph), and RIT offset (lower right, +/-5kHz is the current range).

PCB Decision

I'm trying to decide at the moment if a PCB for this is warranted. My thinking was to design an 'add-in' board which could be mounted over the original MKARS-80 PCB. I'm really in two minds about that because it's probably not warranted for just one or two transceivers. However, if you are interested, let me know via email and I'll assess the interest. 

Programming the Arduino

I use a little utility XLoader to program the Arduino with the HEX code directly. Just download the utility, run it, point it to the COM port you're Nano is on, and point it at the place you've saved the HEX file (available for download below).

Pull out and then reinsert the USB cable between the Nano and your PC. As soon as the red lights on the Nano illuminate, click the 'Upload' button on the utility.

Presto, like magic, the job is done.

Note: The details of the design and the software provided here are available for personal use only, and not for sale or distribution. People wanting to distribute kits etc can contact me for details via my email address which can be found on the main page of my website.


Clearly, this is something of a work in progress. At this stage, it's working nicely on my bench with the MKARS-80. I've also got a tidy pile of (analog VFO and buffer amp) parts left over from the MKARS-80 kit build, and great swathes of bare PCB on the MKARS-80 board itself. 

I'll progress the project onto the next stage either with a new PCB or by integrating the rough prototype seen here along with the MKARS-80 transceiver board into a suitable enclosure.


MKARS80_si5351vfo: This software zip file available here just includes the HEX file at the moment. The source file, in Bascom, is still 'under development' so I'll just wait a bit before releasing it into the wilds of the internet.

Want to go back to the main page? Click here to return directly.