Sunday, 24 March 2013

Arduino VFO

The m0xpd wallet has been dusted off - to the extent that I actually invested in a genuine Arduino (!!!) 

Nothing against the penny-pinching WotduinoTM - but I need to be able to show true compatibility for some "public appearances" in the future and there's nothing more convincing than hearing the tune played on a genuine Stradivarius fiddle.

As opening application for the kosher Arduino, I rustled up a VFO system - much in the style of the excellent pa0klt VFO I got from Jan at SDR-Kits a few years back.

I took another of my Arduino DDS shields (this time made up with a socket for the DDS module, as I wanted to be able to plug different units in for testing). Then I took my code for driving the DDS module and mixed in some rotary encoder interfacing and some calls to the Arduino LiquidCrystal library to drive a 16*4 LCD.

Here's the finished result...

 Like my Arduino QRP rig, the VFO currently jumps the gaps between the amateur bands - although there's nothing to stop me having a continuously-variable frequency, with no inter-band gaps if I choose. That's the beauty of this approach - it is flexible and entirely configurable. Something other VFOs can't match.

It's also inexpensive - even if you insist on buying a pukka Arduino, you still might get change from £25.

Cheap chips!

...-.- de m0xpd

1 comment:

  1. Oh great, I am working on the same thing, I want to use it with a multiband BITX. 3 pins for LCD (HD44780 + 74HC164 shift registers), 2 for encoder, 3 for BPF bandswitch, 3 for buttons (band/step/split), 1 for TX sensing, 1 analog input for voltage, 1 analog input from AGC (for S-meter), 2 analog inputs for FWD/REF ... almost all used. I should be getting the AD9850 next week and dig more into it, for now I only implemented the display for mode(USB/LSB), freq and voltage, the encoder and the band and step buttons. I use only two steps (50Hz and 1000Hz), is enough for SSB with my 16-position encoder; I'll post something on my blog when I'm done.