QRSS Beacon

Details for the QRSS beacon from M1CNK

Having a left over AMQRP DDS-30, I decided to turn it into a QRSS beacon.  To do this, I coupled it with a PICAXE 08M chip (mounted on an AXE021 08 Protoboard)  and a QH 40 A crystal heater from Kuhne Electronics attached to the 100MHz crystal oscillator on the DDS-30.  To increase the output from 7mW to approx 150mW, I used a small amp from RF Kits and Parts.  An SLT ATU from Hendriks QRP completes the setup.

The PICAXE 08M has 5 usable IO lines (one of which is shared with the program port).  I used 3 to drive the control, clock and data load lines on the DDS-30.  One was used to monitor a tune switch (the only MMI control!) and the line shared with the program port drives an LED.

I chose the PICAXE 08M because it was cheap (£2) and would do the job.  In retrospect, one with a few more pins might have been helpful!  Also, there is only 256 bytes of programme memory/EEPROM which means that coding options are limited.  Hence, the message string is hard coded as is the sending speed and frequency.  To change any of these means a recompile and repogramme.  This isn't too bad though since the beacon is designed to be on for most of the time.

The Tune switch has two functions

a)  It sends out a steady carrier for tune up purposes.

b)  It will increment the operating frequency by approx 5Hz.  However, this line is only inspected at the end of a character so be patient!

I have set up the code with some compile time switches to select CW, FSKCW and DFCW.  Comment out the other modes and recompile.

Pin out


Pin 1            = +5V (obtained from DDS-30 Pin 4)

Pin 2            = Serial In (programming)

Pin 3             = Out 4 = DDS-30 Data Pin 3

Pin 4             = In 3 = Tune switch (pulls 5V high to tune)

Pin 5           = Out 2 = DDS-30 Clock Line Pin 2

Pin 6             = Out 1 = DDS-30 Load Line Pin 1

Pin 7              = Serial Out (Programming) plus and LED

Pin 8             = GND


 Copy of software below.  As you can see, it draws on other people's work.  Feel free to download and use.


To run the DDS-30, I send out the programming words via Pin 3 using a clock on Pin 5.  I then toggle the DDS-30 load line via Pin 6.  I turn the output on/off via the control words to get CW.

The only tricky bit is getting the frequency control values correct.  There is a calculator on Analog Devices website which is really good.  However, because of little/big ended issues, I ended up with a bit of a cludge - see code comments for details.  Two frequencies are stored in EEPROM in locations 1-4 and 5-8.  One is used as the higher frequency, the other the lower  one.  Clearly, CW only needs to use one of them.


The total beacon is shown below.  The larger box is the beacon, the small diecast box on top is the PA and the yellow box is the SLT ATU.

The insides of the beacon are shown in the following shots.  DDS-30 is to left of this picture.

I mounted the PICAXE programming 3.5mm jack off the board.  Note though that it MUST be isolated from earth since the "ring" connection is most definitely NOT earth when used for programming.

The DDS-30 is shown below with the QH40A crystal heater attached to the 100MHz oscillator via heat shrink.  Note that I put the 100MHz oscillator on some stand-offs for better heat isolation.

Future Plans

First thing is to put a 10V regulator to drop the nominal 12V input voltage down to a regulated 10V since the QH40A crystal heater is voltage sensitive - I get about 1-2Hz shift between 12 and 10v.  

(28/3/09 update - now done.  Shifted frequency down by about 3Hz so needed to recalculate the parameters)

Next, I will write some WSPR code.  My current plans are to use the PICAXE to set the RF from the DDS but to control the timings with an external PIC connected to a 60kHz MSF module.  Both the PIC and MSF module are from the "could be useful one day" box.  I hate assembler so I will be programming the PIC in C.


Feel free to send me emails at the following address: