Homepage of Lars E. Pettersson

SDR - Software Defined Radio

HPSDR HPSDR

Photo at left shows my HPSDR system, consisting of a Atlas motherboard, a Mercury A/D-based receiver board, and an Ozy communication board. I have not yet installed the Penelope card (the transmitter card).

Screen shot at right shows ghpsdr (http://javaguifordttsp.blogspot.com/) tuned at Radio Sweden at 1179 kHz.

Introduction

Hardware

If you would like to test out SDR I would recommend the SoftRock kits. These are small kits consisting of a few components, and a small circuit board. Some components are surface mount, some are hole mounted. The SoftRock connects to the audio card of your computer, feedign I and Q to your SDR software. For more information about the SoftRock kits, take a look at the SoftRock-40 group at Yahoo, http://groups.yahoo.com/group/softrock40/.

Another, very interesting project is the High Performance Software Defined Radio project, with the acronym HPSDR and/or OpenHPSDR. Take a look at http://openhpsdr.org/ and also their wiki at http://openhpsdr.org/wiki/index.php?title=HpsdrWiki:Community_Portal. Some more information is also available at the http://www.hamsdr.com/ web site.

Software

A DSP core under open source is DttSP. It is written by Frank Brickle, AB2KT, and Robert McGwier, N4HY, and information about it can be found at https://www.cgran.org/wiki/DttSP.

Two nice graphical user interfaces are sdr-shell at http://ewpereira.info/sdr-shell/ and ghpsdr at http://javaguifordttsp.blogspot.com/.

Some links:

HPSDR

Atlas

HPSDR motherboard.

LPU

Small simple linear power unit.

Ozy

USB interface to the computer.

Mercury

ADC-based receiver.

Penelope

DAC-based transmitter.

Excalibur

10 MHz reference.

Alex

LPF and HPF filters for receive and transmit.

Linux software for HPSDR

Updating Mercury and Peneople FPGA cores

At the moment this has to be done using Windows.

Initializing Ozy

ghpsdr on Fedora

First you have to install libusb1 and libusb1-devel using yum (as root, or using sudo if you have that setup correctly).

yum install libusb1 libusb1-devel

You also have to do some changes to John's Makefile, to make it compile correctly, especially if you are using a x86_64 based system (64-bit).

#
# ghpsdr Makefile for Fedora Linux
#
# Tested on Fedora 10 x86_64
#
# If you are not using x86_64, change all occurences of lib64 into
#  just lib
#
# libusb1-devel has to be installed, with yum do:
#
# yum install libusb1-devel
#
# Lars E. Pettersson, sm6rpz, lars@homer.se
#
CC=gcc
LINK=gcc
OPTIONS=-g -Wall
INCLUDES=-I. -I/usr/include/gtk-2.0 -I/usr/lib64/gtk-2.0/include\
         -I/usr/include/atk-1.0 -I/usr/include/cairo\
         -I/usr/include/pango-1.0 -I/usr/include/glib-2.0\
         -I/usr/lib64/glib-2.0/include -I/usr/include/pixman-1\
         -I/usr/include/freetype2 -I/usr/include/libpng12
LIBS=-lpthread -lusb-1.0\
     -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lpangoft2-1.0 -lgdk_pixbuf-2.0\
     -lm -lpangocairo-1.0 -lgio-2.0 -lcairo -lpango-1.0 -lfreetype -lz\
     -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lglib-2.0 -lusb-1.0

FFTW=/usr/lib64/libfftw3f.so
DTTSP=libDttSP.a
COMPILE=$(CC) $(INCLUDES)

SOURCES= agc.c audio.c band.c bandscope.c bandscope_control.c bandscope_update.c command.c\
         display.c filter.c frequency.c libusbio.c main.c mercury.c meter.c\
         meter_update.c mode.c ozy_buffers.c ozy.c ozy_ringbuffer.c\
         property.c receiver.c setup.c soundcard.c spectrum_buffers.c spectrum.c spectrum_update.c util.c vfo.c

OBJS= agc.o audio.o band.o bandscope.o bandscope_control.o bandscope_update.o command.o\
      display.o filter.o frequency.o libusbio.o main.o mercury.o meter.o\
      meter_update.o mode.o ozy_buffers.o ozy.o ozy_ringbuffer.o\
      property.o receiver.o setup.o soundcard.o spectrum_buffers.o spectrum.o spectrum_update.o util.o vfo.o

PROGRAM=ghpsdr

all: ghpsdr

ghpsdr: $(OBJS)
        $(LINK) -o ghpsdr $(OBJS) $(DTTSP) $(FFTW) $(LIBS)

.c.o:
        $(COMPILE) $(OPTIONS) -c -o $@ $<

clean:
        -rm -f *.o
        -rm -f ghpsdr