Linux software-defined radio
C Python
Failed to load latest commit information.
.gitignore always window FFT, using Hamming although it is possible to compile w… Oct 29, 2013
.travis.yml use jackd2 in travis Oct 27, 2015
ChangeLog little bugfix, amazing it worked Feb 15, 2011
LICENSE Add GPL v3 licence Dec 3, 2012
README add kanga finningley LO freq to README Nov 27, 2011
audio_jack.c Fix build for FreeBSD and quash all warnings. Jun 2, 2014
audio_jack.h clean up source, update waf, allow use GPLv2 or later Aug 29, 2011
colourmap.h always window FFT, using Hamming although it is possible to compile w… Oct 29, 2013
filter.c working iir filter, again Dec 6, 2014
filter.h Fix build for FreeBSD and quash all warnings. Jun 2, 2014
gui.c Fix build for FreeBSD and quash all warnings. Jun 2, 2014
hilbert.h uses hilbert transform, fft version has crackles Oct 29, 2013
lysdr.c Fix build for FreeBSD and quash all warnings. Jun 2, 2014
lysdr.h clean up source, update waf, allow use GPLv2 or later Aug 29, 2011
notes add notes, and lysdr header Aug 21, 2010
sdr.c working iir filter, again Dec 6, 2014
sdr.h Fix build for FreeBSD and quash all warnings. Jun 2, 2014
smeter.c Fix build for FreeBSD and quash all warnings. Jun 2, 2014
smeter.h Fix build for FreeBSD and quash all warnings. Jun 2, 2014
waf clean up source, update waf, allow use GPLv2 or later Aug 29, 2011
waterfall.c Fix build for FreeBSD and quash all warnings. Jun 2, 2014
waterfall.h Fix build for FreeBSD and quash all warnings. Jun 2, 2014
wscript uses hilbert transform, fft version has crackles Oct 29, 2013

README

lysdr - simple software-defined radio

Requirements: gtk, fftw3 and jack, waf to build

1. Configure with "./waf configure"
2. Build with "./waf build"
3. Run with "./build/lysdr"

On startup, lysdr will connect its output to the first two jack physical
output ports if you pass "--co"
You will need to connect some sort of IQ source to the inputs - this can
be either a real live soundcard with some SDR hardware, or a prerecorded
IQ file.  To automatically connect the first two physical input ports on
startup, pass "--ci" on the command line.

Set the displayed centre frequency with  --freq <frequency>
For the Kanga Finningley with the stock local oscillator crystal, the
standard centre frequency is:
80m  =  3750000

For the Softrock v6.2 Lite boards, the standard centre frequencies are:
160m =  1844250
80m  =  3528000
40m  =  7056000
30m  = 10125000
20m  = 14075000
15m  = 21045000 

These options may change in a future build.

Example:
## don't connect anything
$ ./build/lysdr

## connect both input and output to lysdr
$ ./build/lysdr --ci --co 

When using lysdr along with an digimodes program such as fldigi, it's
useful for both programs to know what frequency lysdr is tuned to.
To automate this, you can specify a tuning hook script with the
--tuning-hook option. When lysdr is tuned to a new frequency, it runs
the hook script with the following environment variables set:

  LYSDR_FREQ      The frequency lysdr is tuned to, in integer Hz
  LYSDR_MODE      "LSB" or "USB"
  LYSDR_CENTRE    The SDR centre frequency, in integer Hz
  LYSDR_OFFSET    lysdr's local oscillator frequency, in integer Hz

This hook script will update fldigi's idea of the frequency when lysdr
is retuned:

  #!/bin/sh
  xmlrpc localhost:7362 rig.set_frequency d/$LYSDR_FREQ >/dev/null 2>&1


Drag the slider to tune the radio.  The number below the slider is the
frequency offset in Hz from the SDR centre (local oscillator) frequency.
Right-drag for bandspread tuning (1Hz steps).

Drag the sides of the yellow filter bar to adjust the bandpass filter upper and
lower edges.

There are dropdowns to select locked, fast and slow AGC, wide and narrow filtering
and USB/LSB demodulation.  There's also a not-very-good S meter.

Please report bugs on the github page at https://github.com/gordonjcp/lysdr