g4eml / Langstone

Langstone. An SDR Transceiver for the VHF, UHF and Microwave bands.
GNU General Public License v3.0
58 stars 20 forks source link

Langstone SDR Transceiver by Colin Durbridge G4EML

This Version is now superseded and will not be updated.

Please use Langstone-V2 for new projects.

This is an experimental project to produce a simple VHF, UHF and Microwave SDR Transceiver operating on SSB CW and FM.

It was inspired by the very successful Portsdown Amateur Television system created by the British Amateur Television Club.

To install the software on a raspberry pi please follow the instructions further down the page.

More information can also be found on the UK Microwave group wiki at https://wiki.microwavers.org.uk/Langstone_Project

Currently only the following hardware is supported:-

Note, the following GPIO inputs and outputs can not be used with the Hyperpixel4 display because it uses all of the GPIO. You will need to add an MCP23017 i2c module for any inputs and outputs.

To build a complete functional transceiver you will need to add suitable filters, preamplifiers and power amplifiers to the Adalm Pluto.

All control is done using the touchscreen and mouse.

Tuning uses the mouse scrollwheel. The mouse left and right buttons select the tuning step. The centre button is used for the CW key. Mouse movement is not used.

A mouse is used to provide the tuning input because it effectively hands the task of monitoring the tuning knob to a seperate processor (in the mouse). Rotary encoders can be tricky to handle reliably in linux.

It is easy to modify a cheap mouse by disconnecting the existing switches and wiring the PCB to larger switches on the Langstone front panel. The scroll wheel can likewise be replaced with a panel mounted tuning knob.

Microphone input and headphone output uses the USB audio device. (a couple of pounds on Ebay)

The software consists of three parts. The SDR itself uses two python GNURadio Flowgraphs (Lang_TX.py and Lang_RX.py)which can be created on a PC running GNUradio companion. These Python programs are then manually edited by adding the code from ControlTX.py and ControlRX.py so it can be controlled by the GUI part of the software. This is written in C and communicates with GNURadio using a Linux Pipe. However to build and use a Langstone transceiver you do not need to know this!

Installation for Langstone Transceiver

The preferred installation method only needs a Windows PC connected to the same (internet-connected) network as your Raspberry Pi. Do not connect a keyboard or HDMI display directly to your Raspberry Pi.

(This version is known to work. Newer versions should also work and may speed up the installation but have not yet been tested)

For the 7" Raspberry Pi Display:-

wget https://raw.githubusercontent.com/g4eml/Langstone/master/install.sh
chmod +x install.sh
./install.sh

For the 5" DFR0550 Display:-

wget https://raw.githubusercontent.com/g4eml/Langstone/master/install_dfr0550.sh
chmod +x install_dfr0550.sh
./install_dfr0550.sh

For the 4" Hyperpixel4 Display:-

wget https://raw.githubusercontent.com/g4eml/Langstone/master/install_hyperpixel4.sh
chmod +x install_hyperpixel4.sh
./install_hyperpixel4.sh

The initial build can take some time, however it does not need any user input, so go and make a cup of coffee and keep an eye on the touchscreen. When the build is finished the Pi will reboot and start-up with the Langstone Transceiver. Note that sometimes the first reboot does not start correctly. Just recyle the power and try again. If it still does not appear to be working then see the file 'Debugging Notes.txt' and the Langstone wiki for some things to look at.

Updating the Software.

If you have a running Langstone you can update by doing the following.

Log into the Pi using SSH as described above.

cd Langstone

./stop

./update

sudo reboot