Monday, 22 April 2013

More Analog and the RBN

In the midst of yesterday's fun-and-games with the VFO, I was trying to engage in the G-QRP valve day with my (replica) Paraset. It was an almost complete failure!

 Unfortunately, I had greater than S8 noise around 3560kHz all day (I'm rock-bound on the Paraset to 3.56MHz or 3.579MHz) and the receiver isn't really usable on 40m in typical conditions.

Still, I plugged away in between playing with coils and SA612s and varactor diodes.

Here's the Paraset, squeezed onto the bench...

 

I didn't hear anything beside the aforementioned noise all day - but I do know that my signal was getting out there - thanks to the brilliant "Reverse Beacon Network"...

 

When I say "getting out there" it was - at least - getting the 287 miles to Brendan, ei6iz. Thanks Brendan!

I've never used the RBN before - but now I'm a convert and I'm sure it will feature heavily in all my working.

I'm fast coming to the conclusion that weekends are a wash-out for radio - and certainly a bad day to operate QRP with the additional handicap of a pre-historic rig! There's much more noise at my QTH on the w/e (presumably due to more electronics being used in residential areas when folk aren't at work). Then - of course - there's all that awful  "_ . ... _" QRM.

I had to give up in the late afternoon to tighten my trousers and QSY my Baritone voice up to Tenor to sing in a SATB context, before enjoying some more Morse in the evening.

All in all, a nice day - albeit a frustrating one.

 ...-.- de m0xpd

Sunday, 21 April 2013

Analog Nostalgia

Having sold my soul to the devil (as some would see it) by playing with a digital synthesized VFO (Blogs passim), I decided it would be fun to take a walk down memory lane and look at a traditional (Colpitts) VFO.

I still wanted to keep things under the control of the Arduino (or a similar micro-controller), so I looked at varying the frequency of a conventional SA612-based oscillator using a varicap diode.

Here's my basic scheme, which contains no novelty...

I started by making the oscillator sans varicap and soon was strolling down memory lane and meeting drift, temperature sensitivity and all the other quirks that make analog such fun! I could easily control the frequency of the oscillator by deriving a control voltage from a pot - so I was ready for the next step...

I made a controllable voltage source on the Arduino, using the same LCD display and rotary encoder interface that formed the basis of the simple DDS-based VFO. Instead of controlling a DDS, I now generated "d.c." voltages using PWM methods with the inbuilt "Analog Write" function. This voltage was fed to the control input of the system above.

It wasn't a great success, for two reasons...

Firstly, the analogWrite function accepts an 8-bit argument, giving only 256 different voltages on the output - this isn't really enough to give both range and resolution in a VFO.

Secondly - and more of a show stopper - the PWM signal was very difficult to smooth to a d.c. value, suitable for driving the varicap diode. To try to make things easier, I upped the PWM rate from Arduino's standard, pathetic 490Hz to 32 kHz, to give the low-pass filter more "room" to isolate the non-zero frequency components from the wanted d.c. component. I also experimented with various types of low-pass filter (as shown in the rectangular box in the schematic above) but got bored (especially as the 256 control levels wasn't enough) and jumped ship on PWM. It might be good enough for motor speed applications, but that's about it!

Fortunately, the junk box offered up a 12-bit DAC (a Microchip MCP4922), which has an SPI interface. There is an Arduino SPI library - but it uses pins I had already assigned to my (parallel) Hitachi LCD interface. It was easier to write some bit-banging SPI code to get the MCP4922 putting out REAL d.c. than to re-work the LCD (by pulling out wires and re-assigning pins).

Here's the complete system on the bench...

   

The oscillator is seen at top right, with the control voltage arriving on the white crocodile clip. This is generated by the MCP4922 nestling in the little solderless breadboard, under the control of the Arduino.

The display tells me what's going on - translation between the 12-bit numeric code and the actual voltage is just a linear scaling exercise.

Now, with clean d.c. control voltages, the VFO is running as sweetly with digital input from the Arduino as it did with control voltage derived from a pot. Only there is all the flexibility conferred by the digital system. I could, for example, now make an Arduino-based CW transceiver without the DDS module - with all the frequency offsets and incremental tuning etc under digital control.

I could also wear a hair shirt, become a vegetarian and subject myself to other mortifications.

No thanks - I'm happy with the DDS.

QED

 ...-.- de m0xpd

Sunday, 14 April 2013

Using the Arduino VFO

I've been playing with the Arduino VFO system, after she made her brief appearance as a blushing debutante in the sumptuous elegance of the Norbreck Castle Hotel. Regular readers will remember the special affection I have for this "magnificent" location.

First experiment was to convert George, g3rjv's classic "Sudden" receiver to digital VFO operation, which was achieved with what HF used to call "laughable ease"...

   

(details of this conversion will be published later).

Readers may recall that I used up some of the free space on the Arduino DDS shield by deriving a pair of quadrature squarewave signals, à la software defined radio, intending to play with Tayloe detectors. Well - yesterday I started to uphold the intention, brewing up a simple circuit with a 74BCT3253 and a 5532 double op-amp...

   

It works quite well, with the Arduino VFO liberating the receiver from the rock-bound limitations of simple SDR receivers, like the Softrock I cut my teeth on back in 2008...

   

 Here's a closer look at the board (where you'll see that I left the Sudden experiment in place)... 

 

RF from the antenna and the pair of quadrature squarewaves from the VFO system enter stage left, after which there's a filter and a transformer (essentially a Balun to convert the unbalanced feed to a balanced input to the detector). Then the 74BCT3253 sits on one of my SOIC - DIL modules, where it switches the RF to generate two signals which, after amplification by an NE5532, form the I and Q input to an SDR program.

I tried Winrad - but then switched to HDSDR.

Here's a screenshot of me listening to m0roa early this afternoon...

 

as you see, I set the "offset" between HDSDR's "local oscillator" and "VFO tuning" at 10kHz and tuned using the rotary encoder on the Arduino VFO, which makes the whole experience feel more like radio!

I changed the display on the Arduino VFO to add the 10kHz offset - so the LCD shows the correct frequency my receiver is "hearing" - even though the DDS is generating a signal of four times this (minus the offset). A vivid demonstration of the flexibility of the Arduino-based VFO.

I also experimented with generating some CAT controls for HDSDR in the Arduino - I can change the VFO tuning, but not the local oscillator setting - ironic, given that the Arduino is generating the LO signal! If anybody knows if CAT control of the LO setting in HDSDR is possible, I'd like to hear from them. OK - after a few more minutes playing around, I found how to set the Tune fixed to 'LO<->Tune-Offset' option - now I have the screen on the computer displaying the same as the VFO's LCD screen (by sending the appropriate CAT command to HDSDR).

All of which reminds me of just how much I dislike software defined radio. Never mind - next Sunday its G-QRP Valve day!

 ...-.- de m0xpd