Archive for the 'Projects' Category

PowerSDR-IQ\USB2SDR\Dream Setup

Here’s a short and mainly visual explanation of my Dream DRM setup.

 

PowerSDR-IQ and Dream

Here I’m using Dream version 1.12b. I have had trouble with the current (1.14) release crashing. For CAT control between Dream and PowerSDR you must make sure that your Dream has the HamLib included. Sound output is depending on the faad dll, AAC audio Codec file which is not included in the Dream package do to some rights issues.

 

 

VAC

You will need a Virtual Audio Cable (VAC) for passing the receiver spectrum from PowerSDR to Dream.

 

 

VSP Manager by K5FR

For CAT control you will need a set of Virtual COM Ports. Here I’m using the VSP Manager by K5FR.

 

 

Dream -> Sound in

Dream -> Sound out

Dream - Select COM port

Dream - Select type of CAT device - I use TS-2000, it works!!

CAT setup in PowerSDR

VAC setup in PowerSDR

PowerSDR-IQ USB2SDR Dream-DRM-Demo

Here I’m using PowerSDR-IQ, USB2SDR, LA6NCA QSD and Dream DRM software. Sorry for the drop-outs but DRM needs a good SNR and the load of the video capture ain’t helping either.

A simple usb2sdr receiver

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.

Si570 Controller and Frequency Generator Kit by K5JHF and K5BCQ

Yesterday I received the Si570 Controller and Frequency Generator Kit by K5JHF and K5BCQ.
And today, after 3 to 4 hours work the kit was ready for a test spin. My unit has the LVDS Si570 chip, the FIN-1002 LVDS to LVTTL converter with the TC1-1TG2+ output transformer. Here are a few pix…..

The Si570 kit

A few hours work and the kit is ready and working.

Generator output @ 56.320Mhz

 

 

 

 

 

 

 

 

 

Welltech wireless headphones – batteries replacement

Welltech FKH51

I’ve got these cheap but good working wireless headphones branded Welltech 40699/FKH51a.
After several years of use the two AAA NiMH Rechargeable Batteries dies and I replace them with new ones. But hey, they will not recharge, what is wrong? Having a closer look at the headphones I discover that the battery cases have a protective device to prevent non-rechargeable batteries getting charged. This device is a simple contact spring that has to be grounded to the battery minus potential to enable recharging. So the solution was to remove some of the insulation material at the bottom of the batteries, and now the headphones again are recharging the batteries.

I have also done a small modification to the base unit. I have removed the small internal wire antenna and fed the signal to an external sma connector. This enables use of a better antenna which improves coverage when moving around. A simple antenna for the 850 or 900 Mhz GSM bands works god for this unit which operates on the 860 Mhz LPD band.

Here are some pix…

Battery holder. Upper left: Safety contact spring.

insulation prevents grounding of contact spring.

Bottom insulation removed from battery.

Modified battery on the right

External antenna connector mod

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Picaxe GPS NMEA-0183 Decoder

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
           
           
            ;debug
           
           
            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
            return

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.
            return

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
            return

>> Download source code file <<

High performance SDR interface board – USB2SDR by SV1EIA

Got a new gadget in the mail today. Its the USB2SDR board by SV1EIA . Will for sure be busy testing this nicely build board for the next few days.

USB2SDR Board

Crowbar testing power supply

Have thrown together some parts on a plank here. The idea is to make a “lean” power supply to test my crowbar circuit.
Output is 630v with the current limiter (spot light bulb @ 120watt). And the capacity of the filter capacitors is about 1100uF.
This should be enough energy for the preliminary circuit tests.

Crowbar test supply

 

….to be continued if I survive :-)

Line of Tetrode amplifier boards by F1FRV

Here is a line of homebrew circuit board that I have made for a amplifier project I am working on. (Which by the way takes forever to comlete :-)   )
These boards are designed by Dominique F1FRV which have laid down a tremendous effort in designing these boards.
Dominique has done some minor changes to the design since these boards were made, so cards made by his latest instructions will look a bit different from these.

Picaxe wspr beacon up and running again.

I have put my wspr beacon on the air for a test after the latest modifications. And so far it look promising.

Here is a picture of the mess :-)

Picaxe wspr beacon. Bottom: Picaxe and DDS-60 :Top from right: 10MHz LPF, tripler and amplifier for clocking the dds-60 @ 30MHz