Langstone is basically a combination of a Raspberry Pi 4 and an Analogue Devices ADALM-Pluto. Potentially it should cover 4m, 2m, 70cm plus the microwave bands up to 6cm and possibly beyond via harmonics. It will need appropriate filters and amplifiers. It can be combined with Portsdown 4 for DATV.
There doesn’t seem to be one site for Langstone, so here are the links I have gathered so far:
- BATC Wiki: Portsdown 4
- UK Microwave group Langstone wiki
- BATC Langstone discussion forum
- Colin G4EML’s github site
- Analogue Devices – Customising the Pluto Configuration
- BATC Wiki – Custom DATV firmware for the Pluto
- Custom Pluto firmware
I ordered a RasPi4 with 7″ touchscreen, PSU, heatsink and 16GB SD card from PiHut and a Pluto from DigiKey UK.
The RasPi4 came with various connectors and leads. After some digging about for information, I connected the jumper leads to the screen connections:
- Red: 5V
- Green: SDA
- Yellow: SDL
- Black: GND
And at the RasPi GPIO connector end:
- Red: pin 2
- Black: pin 6
- Green: pin 3
- Yellow: pin 5
Note which way round the ribbon cable goes (white with blue marked ends). The conducting contacts are on the reverse side of the blue. They must mate with the conducting contacts on the boards. Pull out the plastic wedges just enough to slide the ribbon end in, then click the wedges in again to clamp the end of the ribbon, so it looks like this:
Above shows the RasPi4 board screwed in place. I attached the PSU lead & plugged it in:
A pink LED lit up (lower left on the RasPi). The SD card came with a system on it. Turning the boards over showed this display:
I wanted to integrate Portsdown 4 for DATV, so I started at the Portsdown 4 Wiki. This said: “You MUST start with a fresh build of Raspios Buster (NOT Raspbian) on an SD Card of 8 GB or greater”.
Back to Colin’s site, I followed the instruction to download Raspbios Buster Lite. He has instructions for downloading to a Windows PC, but I downloaded to my Ubuntu Linux PC and then installed Raspberry Pi Imager for Ubuntu. I extracted the image from the zip file. I ran the imager & selected the image via the Custom option and the SD card (from the RasPi4 in a USB adapter) and clicked Image. The image seemed to transfer OK. Remounting the SD card on the Ubuntu Linux PC I got two drive icons: rootfs and boot. In boot, I right-clicked and used New Document>Empty File to create a new file: ssh (as instructed in Portsdown 4 Wiki).
I moved the SD card back to the RasPi4 and powered it up. It flashed up a message resizing something on the screen and then went through the usual boot stream of messages, ending in Raspbian GNU/Linux 10 raspberrypi tty1 and a login prompt.
I cut the power to the RasPi4 and remounted the SD card back in my Linux PC. I launched a terminal window and entered the command sudo gedit and selected /rootfs/etc/dhcpcd.conf file on the SD card.
With my router at 192.168.1.1 and 192.168.1.51 the address I’d chosen for the RasPi4, I edited the static ip configuration lines to read:
With the SD card back in the RasPi4 and an ethernet cable connecting to the local network I applied power to reboot. The RasPi4 start-up message sequence included:
- Started Hostname
- dhcpcd on all interfaces
- Reached target network
In a terminal window on my PC I typed ping 192.168.1.41. Packets arrived OK. I typed putty and in the putty session I entered 192.168.1.41 in the Host Name (orIP address) field. I got the message connection refused.
I realised I had the address wrong. I pinged 192.168.1.51. Packets arrived. I unplugged the RasPi4 from the network. Packets stopped arriving. I had the right address!
My internet router is on the 192.168.1 subnet, so altering the RasPi4 IP address above means that the necessary internet access is there to install Portsdown 4 and install Langstone. On my Linux PC I entered 192.168.1.51 in putty. I got a login prompt. I logged in as user pi with password raspberry. Paste didn’t work, so I typed in three commands (slide the scroll bar right to get all of the long command):
chmod +x install_portsdown.sh
I got: Installing BATC production version of Portsdown 4
As instructed, I went for a cup of tea. When I got back, the Portsdown 4 menu was displayed.
I entered the Langstone Options submenu via menu M2.
I touched Install Langstone. It said Installing Langstone Software, Please Wait for Reboot.
A short while later, it re-booted and the Portsdown 4 menu returned.
I plugged the Pluto into the RasPi4 via its USB lead. The Ready LED lit and LED1 flashed. In M2 I touched Switch to Langstone.
I got the Langstone screen with the message: Lang_RX.py not responding.
I ordered the recommended audio USB device. While I waited for that to arrive, I searched the junk box. I found a “3D Sound” USB dongle. It wouldn’t fit against the other USB plugs, so I took its covers off. I added a mouse and also plugged in Minitiouner, fed from my Es’Hail2 satellite dish.
Re-booting and running Portsdown4 on receive, I got a lovely decode of the Es’Hail2 beacon, using the Play with ffmpeg VLC option, with sound from the RasPi jack socket.
Colin G4EML has provided some useful diagnostic programs. I set the putty session going again and entered:
HW_test let me check the screen touch and also verified the mouse buttons and wheel were working.
This verified the throughput, 1919, in my case was close to the expected 1900.
Sound_Test is now superseded by set_sound. Sound_Test found my audio dongle giving the details:
Unable to find the default sound device
I amended Lang_RX.py and Lang_TX.py as suggested and restarted Langstone. Running Sound_Test again via putty, it still said “Unable to find the default sound device“. However when I restarted Langstone it did not complain about a missing sound card. I still got the message: Lang_RX.py not responding.
Then I noticed Colin had updated Langstone to include a new utility, set_sound. I updated Langstone on the RasPi4 by entering the following commands in the putty session on my Linux PC:
set_sound found only one device, the 3D Sound dongle. I selected 1 and it edited the Lang_RX.py and Lang_TX.py for me. Neat!
I also made sure all the USB plugs were properly seated in the RasPi4 sockets and that the Pluto and MiniTiouner plugs (with the thick black leads in the picture below) were in the USB3 (blue) sockets.
Restarting Langstone gave me a waterfall for the first time. Plugging headphones in the 3D Sound dongle gave noise, so that looked and sounded promising.
I connected the Pluto to the 70cm pre-amp & yagi & pointed the yagi at GB3FNY:
My first reception on Langstone! The horizonal stripes are probably OTH radar swipes. Unfortunately the display freezes after a few minutes and Langstone seems to crash and the Portsdown4 menu comes back up. Clicking on Switch to Langstone goes back to the Langstone scteen, but there is no waterfall or reception. It needs a full reboot of Linux to get Langstone running again. I don’t understand why Langstone should crash? Power supply?
I plugged the Pluto USB cable into my Linux PC. I edited config.txt as below (leaving the original lines as # comments), saved it & ejected the Pluto “drive”.
hostname = pluto
#ipaddr = 192.168.2.1
ipaddr = 192.168.1.41
#ipaddr_host = 192.168.2.10
ipaddr_host = 192.168.1.52
netmask = 255.255.255.0
Although putty on my Linux PC linked fine to the RasPi4, I failed to get it to link to the serial port on the Pluto, so I decided to try kermit. In a terminal session, I executed: sudo apt install ckermit
I knew ttyACM0 was the serial device for Pluto. In terminal I ran:
kermit -l /dev/ttyACM0 -b 115200
C-Kermit 9.0.302 OPEN SOURCE:, 20 Aug 2011, for Linux+SSL+KRB5 (64-bit)
Copyright (C) 1985, 2011,
Trustees of Columbia University in the City of New York.
Type ? or HELP for help.
At the C-Kermit> prompt I entered c for connect and later root and analog for the Pluto login name and password respectively:
Connecting to /dev/ttyACM0, speed 115200
Escape character: Ctrl-\ (ASCII 28, FS): enabled
Type the escape character followed by C to get back,
or followed by ? to see other options.
Welcome to Pluto
pluto login: root
_ _ _ __________
| _ \ | | | / | _ \ \
| |/ / | | | \
--.| | | | |_/ / | __/| | | | | __/ _ \--. \ | | | / | | | | || | || () /_/ / |/ /| |\ \
_| ||_,|____/____/|_/ _| _|
I entered the following commands (shown in bold) and got the following responses:
Error: "attr_name" not defined
Error: "attr_val" not defined
fw_setenv attr_name compatible
fw_setenv attr_val ad9364
Communications disconnect (Back at Lab)
Barry G8AGN referred me too a youtube video which set a third parameter, maxcpus, on the Pluto. I checked the first two parameters and added the third:
I copied pluto.frm file dated 21-Aug-2020 into the Pluto “drive”. I ejected the Pluto drive. LED1 flashed rapidly. Eventually the Ready light came on again and LED1 flashed slowly as usual.
I’ve noticed the config.txt file on the Pluto had reverted its IP addresses back to the original. I don’t know what has done this; possibly the firmware update?
I browsed 192.168.2.1 and got Welcome to the ADALM-PLUTO QO-100/DATV custom firmware:
[I installed libiio on my Ubuntu 18.04 Linux PC by executing this command in a terminal session: sudo apt install libiio-utils]
from youtube video:
Pluto tools: SDRangel
325 MHz to 3.8 GHz
In putty session:
fw_setenv attr_name compatible
fw_setenv attr_val ad9364
Unplug Pluto and plug it back in again.
46.875 MHz to 6GHz
To reset Pluto to original spec:
fw_setenv maxcpus 1