All posts tagged wspr

Last night while operating WSPR @ 475KHz I suddenly hear a hard and broadband noise on one of my receivers. Then I look at the swr meter monitoring the wspr transmitter and discover that it was all over the place. Reason, insulation failure at the base of antenna resulting in arcing.

Here’s the SV1EIA usb2sdr board controlling the Si570 chip on the vfo kit from K5JHF/K5BCQ, the MCU and display unit are of course removed. And the Si570 board is clocking the LA6NCA QSD unit. I haven’t calibrated anything yet, but it works fine.

Simple usb2sdr receiver setup. Top: K5JHF/K5BCQ Si570 board. Left: LA6NCA QSD board. Right: SV1EIA USB2SDR board.

Receiving wspr with the simple sdr setup.

There has been some interest in the Picaxe GPS NMEA-0183 Decoder which I use to time the keying of my wpsr beacon.
The Picaxe chip decodes the time data in the $GPGGA sentence from the GPS unit and then print the UTC time on the lcd display. In addition it set a output at the start of every even minute for keying the wspr beacon. That’s all it do with the current 18X chip.
I am planning an upgrade to the 18M2 chip which is a lot more powerful and has got more functions then the current 18X chip.
With the 18M2 I am planning to display some of the other GPS information, like position, signal strength, number of satellites, etc.  It’s not that the 18X chip can’t do this extra information bit. But these task will put a lot more strain on processing and communication so I fear the accuracy of the keying will suffer.

Picaxe GPS NMEA-0183 Decoder

 >> Download full size scheme <<

            ; *****************************************************************
            ; ************************* Picaxe Project ************************
            ; *****************************************************************
            ;     Filename:         GPSDO Display unit v0.4.bas        
            ;     Date:             25.02.2012
            ;     File Version:     0
            ;     Written by:       LA6TPA Geir Aarnes
            ;     Function:         Decode NMEA data from GPS unit
            ;     Last Revision:    4
            ;     Target PICAXE:    18X
            ; *****************************************************************
            ;     Revision history
            ;     Intitial code                 GPSDO Display unit v0.1.bas
            ;     First working version         GPSDO Display unit v0.2.bas
            ;     WSPR trigger added            GPSDO Display unit v0.3.bas
            ;     Code cleanup                  GPSDO Display unit v0.4.bas
            ; *****************************************************************          
            #Picaxe 18X
            SETFREQ m8

            symbol GPS_RxD    =     0                                   ;NMEA data from GPS module
            symbol GPS_1PPS   =     pin7                                ;1PPS signal from GPS
            symbol GPS_TxD    =     B.0                                 ;NMEA data to GPS module
            symbol WSPRtrig   =     B.1                                 ;Triger output for WSPR tx start
            symbol tByte00    =     b0                                  ;Byte for temorary data
            symbol LcdByte1   =     b1                                  ;Byte used by LCD routine
            symbol LcdByte2   =     b2                                  ;Byte used by LCD routine
            symbol tByte03    =     b3                                  ;Byte used by LCD routine
            symbol tByte04    =     b4                                  ;Byte for temorary data      
            gosub init                                                  ;initialise LCD
            pause 10000                                                 ;wait for GPS to boot
            serout GPS_TxD,T4800_8,(13)
            serout GPS_TxD,T4800_8,("$PRWIILOG,???,V,,,",13,10)         ;turn off all GPS output
            serout GPS_TxD,T4800_8,("$PRWIILOG,GGA,A,T,1,0",13,10)      ;activate GGA sentence
            let LcdByte1 = 1                                            ;set b1 to clear display instruction
            gosub wrins                                                 ;send instruction to LCD

main:       serin GPS_RxD,T4800_8,("$GPGGA,"),B8,B9,B10,B11,B12,B13     ;wait for $GPGGA then receive 6 bytes into B8..B13
            IF b13 <> "0" THEN GOTO LBL01                               ;Check lower part of seconds, skip if not == 9
            IF b12 <> "0" THEN GOTO LBL01                               ;Check upper part of seconds, skip if not == 5
            tByte00 = B11 - 48                                          ;Read lower part of minute and convert ASCII to binary
            tByte00 = tByte00 & %00000001                               ;Mask bit 0 which indicates an ODD minute
            IF tByte00 <> 0 THEN GOTO LBL01
            high WSPRtrig
            pause 500
            low WSPRtrig
LBL01:      LcdByte1 = 1
            gosub wrins
            LcdByte1 = "U"
            gosub wrchr
            LcdByte1 = "T"
            gosub wrchr
            LcdByte1 = "C"
            gosub wrchr
            LcdByte1 = " "
            gosub wrchr
            LcdByte1 = b8
            gosub wrchr
            LcdByte1 = b9
            gosub wrchr
            LcdByte1 = ":"
            gosub wrchr
            LcdByte1 = b10
            gosub wrchr
            LcdByte1 = b11
            gosub wrchr
            LcdByte1 = ":"
            gosub wrchr
            LcdByte1 = b12
            gosub wrchr
            LcdByte1 = b13
            gosub wrchr
            goto main        

init:       let pins = 0                  ;Clear all output lines
            let b4 = 0                    ;Reset variable b4
            pause 200                     ;Wait 200 ms for LCD to reset.
            let pins = 48                 ;Set to 8-bit operation.
            pulsout 3,1                   ;Send data by pulsing enable
            pause 10                      ;Wait 10 ms
            pulsout 3,1                   ;Send data again
            pulsout 3,1                   ;Send data again
            let pins = 32                 ;Set to 4-bit operation.
            pulsout 3,1                   ;Send data.
            pulsout 3,1                   ;Send data again.
            let pins = 128                ;Set to two line operation
            pulsout 3,1                   ;Send data.
            let b1 = 12                   ;Screen on, cursor off instruction
            gosub wrins                   ;Write instruction to LCD

wrchr:      let pins = b1 & 240           ;Mask the high nibble of b1 into b2.
            high 2                        ;Make sure RS is high
            pulsout 3,1                   ;Pulse the enable pin to send data.
            let b2 = b1 * 16              ;Put low nibble of b1 into b2.
            let pins = b2 & 240           ;Mask the high nibble of b2
            high 2                        ;Make sure RS is high
            pulsout 3,1                   ;Pulse enable pin to send data.

wrins:      let pins = b1 & 240           ;Mask the high nibble of b1 into b2.
            pulsout 3,1                   ;Pulse the enable pin to send data.
            let b2 = b1 * 16              ;Put low nibble of b1 into b2.
            let pins = b2 & 240           ;Mask the high nibble of b2
            pulsout 3,1                   ;Pulse enable pin to send data.
            high 2                        ;Back to character mode

>> Download source code file <<

Here is a small update regarding my band hopping picaxe controlled wspr beacon.
I took the beacon of air the other day to do some revisions to it’s circuitry. And in this context figured out that I was in need for a filter to clean up the square wave shaped signal from the 10MHz reference oscillator, the GPSDO MKII. I did a little googling and found an interesting circuitry drawn by Jerry Mulchin – N7EME. The reason for needing this filter is that I have a passive frequency trippler for clocking the DDS-60 @ 30MHz, and this tripler need a sine wave to work right.

There is still some work to be done before I can put the beacon back on air. But as they say in broadcasting; Stay tuned, will be right back after….

PCB measures 60x20 mm and parts are SMT


Measuring reflection (S11) with the minivna. Return loss is more than 26dB @ 10MHz.

Measuring transmission (S21) with the minivna. 1dB insertion loss @ 10MHz and cout-off at 12MHz.

Here are some pictures of my second GPSDO.
This one, like my first GPSDO is based on the G3RUH James Miller desing.
Whats new with this is that I have added a Picaxe controller and a display unit for decoding the GPS NMEA-0183 sentences.
The display show various information decoded of the gps sentences.
But the main reason for building the MKII was that I needed it for controlling my DDS based WSPR Beacon.
GPSDO 10Mhz output drives the DDS and the micro-controller which steers the DDS.
The picaxe gps decoder take care of the keying of the beacon at the start of every tx period.

Ii’l will come back with a separate post regarding details of the wspr beacon.