Monday, 27 October 2014

Rishworth, SDRduino and the Si5351

Just back from the 25th G-QRP Mini Convention, where I disappointed the punters by presenting again. I broke up the monotony of my talk with some examples of "QRP" TV test cards and thought it would be nice to design a new one, featuring our beloved Franciscan...

My subject took the simple ideas of last year's "Occam's Microcontroller" project and stretched them to embrace Software-Defined Radio, whilst keeping it all within the Arduino family.

The idea was embodied in the SDR rig which you see below, mounted on a piece of scrap plywood from my youngest daughter's house renovation project...

This project will, henceforth, be known (with apologies) as SDRduino.

Those fortunate enough to have missed the talk can see my slides here.

The Si5351 generated quite a lot of discussion at the Convention and I promised to put up some code. There is now a version of the "RF for Superhets" code available from this Github repository. I've tested it on 40m on my modular BITX - but would appreciate any bug reports from early "beta test" users!

...-.- de m0xpd

Sunday, 26 October 2014

Julian, g4ilo, SK

Julian Moss, g4ilo, died peacefully on Friday evening.

His website and blog taught us all so much about radio.

His other blog taught us all so much about living.

Rest easy, Julian.

...-.- de m0xpd

Sunday, 19 October 2014

QRP HomeBuilder QRT

Those of you who monitor the QRP-L list already will know that Todd Gale, ve7bpo, has taken down the QRP HomeBuilder website

This excellent resource has been a site of special interest to me over the years as the home of the Funster 40, which motivated my own Funster Plus rig.

Todd's work has always been of the very highest quality, being solid, evidence-based, honest engineering. It has been coloured in recent years by the introduction of some new dimensions of "comedy" or "character" which I don't claim to understand - but that doesn't change the core quality of Todd's offering.

Fortunately - although the website is no more - Todd has generously made an archive of the site available for download as a PDF. I don't know how complete that archive is - but it is there for all to capture, as I have done. Ironically, given that I referred to his excellent library for the Si5351 recently, Jason, nt7s is one of the people hosting the archive here.

Of course, QRP HomeBuilder is now removed from the links at the right hand side of is page - and the space that it has made in 'M0XPD's LINKS' has been occupied by Jason's 'Ripples in the Ether'.

We all owe Todd an enormous debt of gratitude for all he has done at QRP HomeBuilder - but, as Benard Ighner's song says,

Everything must change 
Nothing stays the same 
Nothing and no one goes unchanged 

Todd hasn't stayed the same - he has started a new initiative: Popcorn QRP , which takes its place in the links.

I look forward to continuing to learn from Todd's experiments.

...-.- de m0xpd

Sunday, 12 October 2014

Si5351 in the BITX

Having played with the little Si5351 device in the Adafruit breakout board last weekend, I took the opportunity to build it into a VFO system and attach it to a receiver...

The new VFO was functionally a re-work of the dual DDS system I put together for my BITX at the tail end of last year, even sharing the same breadboard and Arduino NANO controller I used in early experiments...

On the breadboard you can see (from left to right) the NANO, a rotary encoder for tuning and the Si5351 breakout board. The LCD reveals that the system is running a modified version of my dual DDS code, which led to the SPRAT article with Pete Juliano, n6qw, "RF Generation for Superhets". This code generates both "BFO" and "VFO" signals - thereby making use of two-of-three of the available oscillators on the Si5351.

The system worked FB - so I hooked it up to my experimental "Breadboard BITX" receiver for a test. Again, everything worked perfectly (once I had set up the code's implementation of the BFO to the correct frequency for the particular 10 MHz IF filter I had mounted at the time).

However, the implementation of the "VFO" system on its own separate solder-less breadboard, seen in the photo above, was all a bit clumsy - so I exploited the simplicity and small physical size offered by the new Si5351 signal generator and tidied things up...

Above you see a complete BITX receiver (that's to say - only the parts required to operate as a receiver are present but all of them are fully bi-directional) on a single plug-in breadboard. Antenna input at "top left", speaker output at the bottom.

An annotated picture will save a thousand further words of description ("BA" = Bidirectional Amplifier)...

As you see, I made a new plug-in tuning module, hosting a rotary encoder. What is not so clear from the picture is that on each side of the tuning knob are push buttons that drive the remainder of the user interface (moving the "cursor" to select tuning rate, navigating the menu structure, etc).

The system seems to work every bit as well as before (as far as I can judge from a few minutes subjective listening in rather noisy band conditions on 40m) with the exception that there is a rather strident "noise" when it is tuned to 7.143 MHz the origin of which I can't explain. Also, I haven't yet done anything to optimise the level of the input to the amplifiers (and / or adjust their gain) I provided for the mixers I just stuck the signals from the Adafruit board straight in and saw what happened. Whilst the system is already working well, I suspect things can only get better.

There will be a release of the "Double DDS" code for the Si5351 - but I'm not yet ready for that. When it is suitable for public disclosure, you'll be the first to know.

This little Si5351 certainly is living up to expectations - I want more.

...-.- de m0xpd

Sunday, 5 October 2014


I've been wanting to get my hands on an Si5351 for months, excited by the prospect of three programmable oscillators in a tiny, inexpensive package. Well - today, it happened...

I got a couple of the nice little breakout boards from Her Ladyship, Limor Fried

As is usual for Adafruit products, this board is supported by an excellent tutorial and some software.

The tutorial support includes everything you need to know to get running with the Si5351 in an Arduino context (although the board can be used with other systems too) and the software is in the form of an Arduino sketch.

I had a MEGA lying on the bench - so I hooked my new Si5351 up to that (it needs just power and the two wires of an I2C interface)...

I downloaded the Adafruit library and example program and soon had the little chip squirting out square waves...

The Si5351A3 has three (independent) outputs and I only have a two channel 'scope here at the moment - so here are three channels captured on the ripoff logic analyser I purchased from Banggood the other day...

It works - but I have to say the Adafruit library is hardly "ready to use".

Fortunately, Jason, nt7s, has come to our rescue with a much smoother library which is also available for download from a GitHub repository.

I tried that code with the MEGA / Adafruit breakout combo and found it much easier to generate Ham-friendly RF.

Here's a 14 MHz signal...

which was set up very quickly and cleanly, as you can see below - all thanks to Jason's efficient library...

This is the way I'll be moving forward with the Si5351 - thanks Jason.

I wonder if I can drive it with the Arduino DUE.

...-.- de m0xpd

Wednesday, 24 September 2014

Hats off to India

Having saluted China's achievements in space exploration it is only fair that we should also recognize another nation's entry into the elite club...

India today successfully placed an object into orbit around Mars - here's a graphic from the front page of the rightly proud Indian Space Research Organisation...

There is something extra-special about inter-planetary exploration that commands additional kudos.

Now we've demonstrated an inter-planetary capacity, perhaps we can inspire solutions to problems within arm's reach.

Well done India - hats off to you!

...-.- de m0xpd

Saturday, 6 September 2014

Automated IF Filter Measurement

Readers will have seen how I have used an Arduino to generate sweeps of the Intermediate Frequency of a receiver, allowing me to visualize the response of a crystal filter in situ. Well now - with the recent work on peak voltage detection associated with the "Power" meter - I've found myself in a position to automate more of the process...

An m0xpd DDS shield generates a sweep of the IF range of interest, in controllable frequency increments (currently I'm using 50 Hz steps). Its output is fed to a broadband amplifier (actually one of the plug-in BITX amplifiers), which drives the crystal IF filter under test (in this case, it is the little 12 MHz plug-in module described previously). The output of the filter is fed to a second amplifier, which is terminated by 50 Ohms.

The immediate intention is that this copies the arrangement in the BITX receiver - as I want to be able to make in-situ measurements of the IF filter response in a BITX (for reasons that will become clear over the coming months). Surrounding the filter by the bi-directional amplifiers and the 50 Ohm termination (which copies the loading presented by the pi pad in front of the second mixer)  matches the conditions in the BITX. Later, this might develop into a more general "test bed" for measurements on any crystal filter.

The voltage developed over the 50 Ohm termination (actually realised by my here rather over-specified new dummy load) is sensed by my "power meter". The result is sent by serial link to a PC, for each frequency measured in the sweep. The results are sent in tab-delimited form, with the frequency sent first, then the peak voltage measured at that frequency (represented by the ADC code - although any other format is possible - and easy!).

Here's the whole shooting match in the flesh...

As you can see on the 'scope trace in the top right hand corner of the image right at the top of this post, the output of the second BITX amplifier is actually pushed into asymmetric non-linearity at this signal level, with its negative peak level significantly larger in magnitude than its positive.

This is exactly what's expected of this simple amplifier, as confirmed by this little LT SPICE model...

Of course, as (bad) luck would have it, your humble servant's peak voltage meter reads the POSITIVE peak voltage - I was rather worried that I'd lost a lot of dynamic range and that the system wouldn't work - but I pressed on...

The serial data from the Arduino can be read into any terminal program (PuTTY, Realterm, etc) - but I used the Serial Monitor feature within the Arduino environment for simplicity.

Here you can see (an extract of) the data read into the Serial Monitor, which is then copied into Excel (or your favourite spreadheet) for plotting...

The ADC code is the raw number read from the analog to digital converter (proportional to the peak voltage), which I've converted first into voltage, then into dB re 1 V ("dBV").

A plot of the magnitude frequency response of the IF filter is easy to produce...

As a further test of the system's flexibility, I switched my attention to an 8MHz IF filter I'd been using previously for CW applications and plugged it into the "Filter under Test" position...

I changed the start and end points of the frequency sweep in my code and ran a new test...

I knew this was a nice, clean filter - but I didn't know quite how flat it was!

This test takes about ten seconds to run. With a prepared "template" in Excel, it takes about another 10 seconds to copy the data from the Serial Monitor window into Excel and produce the graph!

The bare bones of my code are seen below - they're quite enough to communicate (as "pseudo-code") the intention of what I'm doing to anybody who wants to follow.

The code runs a sweep of frequencies (variable f), starting at fStart and running to fEnd, with an increment fStep. There's a delay of T milliseconds between each increment (on top of all the other tasks). The code uses my DDS library (of course).

Measuring the IF response of my SSB rigs in situ is now easily done, in less than a minute.

...-.- de m0xpd