Meteor M-N2 Images

Saturday 15 March 2014

Multi-function AD9850 MEPT with WSPR, QRSS & Sequential Multi-Tone Hellschreiber (GPS & ntp versions)

My QRSS and SMT-Hell signals received by the PA9QV grabber on 40m

Building on my Arduino & AD9850 powered WSPR transmitter I have extended the code to also transmit QRSS CW and Sequential Multi-tone Hellschreiber.

The three modes are transmitted in sequence, although WSPR takes precedence. The tx cycle is something like this:
- WSPR
- QRSS
- WSPR
- SMT-Hell
- WSPR
- QRSS
etc.

I have had a problem where my GPS was not getting a fix and so I was not able to get the correct time for the WSPR transmissions. Consequently, I have created two versions of the sketch. One uses a GPS for its time source and the other uses the Internet Network Time Protocol (ntp). The ntp version requires an Arduino Ethernet shield and Internet connection.

I have learnt a huge amount about Arduino programming while working on this. However, I am going to stop tinkering with the programming now and use it to test out some different antennas.

The enhanced GPS sketch can be downloaded from here and the ntp version from here.
Note: you will also need to download and install a few libraries:




The alphabet in Sequential Multi-tone Hellschreiber,
monitored on my receiver.


There are three places that variables need to be changed in the sketch. These are:

QRSS frequency:
//***************Adjust this frequency to position your signal in the band
//*****************
#define QRSS_IDLE    10.139870e6

WSPR tones:
//*******************Create the WSPR tones for your callsign/qth/power using the instructions
//*******************on M1GEO's website http://www,george-smart.co.uk/wiki/Arduino_WSPR
//HOME: G0FCU 24dbm (300mw 24dBm)
/* static byte WSPR_DATA_HOME[] = {3,3,2,0,0,0,2,2,1,2,0,0,1,1,1,2,2,2,1,2,2,3,0,3,

QRSS/SMT-Hell text:
//******************enter your callsign in the next two variables, replacing the 'xxxxx'
//******************The callsign_hell can contain '/' or space as well as a locator
char callsign[]="G0FCU"; //callsign to send in QRSS mode
char callsign_hell[]="G0FCU/IO91SE"; //text to send in SMT-Hell mode


Tuesday 4 March 2014

First try with QRSS

QRSS

My QRSS signal


Items #3 & #4 on my 'Things to do in my 30th Year as a Radio Amateur' were to have a go at QRSS.

The article by Ian Liston-Smith, G4JQT, in the February 2014 edition of Practical Wireless was instrumental in spurring me into action on this activity.

I had a look round the Internet and found several pieces of software that are specifically designed to receive QRSS signals. They were Argo, QRSS-VD and LOPORA.

I run Ubuntu Linux on my pc and setting anything up to run with sound cards always seems to be a little difficult (or maybe it's me).

I got Argo working quickly but it is a Windows program running on Linux so I spent some time getting QRSS-VD working. It is written in Python so will also work on Windows. It works well but the key to it was changing the bandpass low and high settings to ensure that the QRSS sub-band was being decoded. I haven't yet got LOPORA to work with my sound card yet.

The QRSS-VD website has comprehensive instructions on how to set up and use it, most of which I haven't yet read!


An example of decoding QRSS using QRSS-VD.

In summary I feel that QRSS combines the technology of receiving QRPp signals using the power of your computer to decode them (along the lines of WSPR) with the beauty of being able to decode them yourself.

In practice, combining QRSS and WSPR is a great way to analyse propagation and antenna performance. I have amended my Arduino/AD9850 based WSPR transmitter so that it transmits alternatively between WSPR and QRSS. More of this in a future blog post.