Install on a Raspberry Pi
The Pi sits next to your radio, connected by the radio's USB cable. You then open a web page from any device. Choose route A (easiest) or route B.
What you need
| Raspberry Pi | Pi 4 or 5, 64-bit (a 3B+ works for control and a listener or two) |
|---|---|
| SD card | 16 GB or more, good quality |
| Radio cable | USB cable from the radio to the Pi (on the FT-991A, control and audio use the same cable) |
| Network | Ethernet cable (best) or Wi-Fi, with internet during the install |
| A PC | to write the SD card with Raspberry Pi Imager (Windows, macOS or Linux) |
Route A: the ready-made image (easiest)
The image is Raspberry Pi OS Lite with Radio Remote already installed. It contains no password: you set your own while writing the card.
Add the Radio Remote repository to Imager
Open Raspberry Pi Imager version 2.x. In its application options choose Content Repository, enter a custom repository and paste this address:
https://github.com/dev-jmatias/YaesuFT991A-Remote/releases/latest/download/os-list.jsonChoose your Pi and the image
Pick your Pi model, then Radio Remote for Yaesu in the list of systems. (Do not use Use custom: it skips the personal settings screens.)
Fill in Imager's screens
Choose the SD card, then enter a hostname (for example
radio), your user name and password, your Wi-Fi if you do not use a cable, your time zone, and keep SSH enabled. Write the card.Start the Pi
Put the card in the Pi, connect the radio's USB cable, power on and wait about two minutes.
Open the page
Browse to
https://radio.local(use your hostname). Your browser asks once to trust the local certificate. Go on to First run.
Older Imager, or no repository option? Download the image (image_…-radio-remote.img.xz) and first-boot-settings.ps1 from the Download page, write the image with Choose OS → Use custom (do not unzip it), put the card back in the PC and run first-boot-settings.ps1 in PowerShell 7. It asks for hostname, user, password and Wi-Fi.
Route B: on top of Raspberry Pi OS
Write Raspberry Pi OS Lite (64-bit)
With Imager choose Raspberry Pi OS (other) → Raspberry Pi OS Lite (64-bit). In the settings screens set hostname, user, password, Wi-Fi and enable SSH. Boot the Pi and wait two minutes.
Update the system
ssh <user>@<hostname>.local sudo apt update && sudo apt full-upgrade -y && sudo rebootDownload the installer pack
Get
radio-remote-installer-….zipfrom the Download page and unzip it on your PC.Copy it to the Pi and run it
scp -r radio-remote-installer <user>@<hostname>.local:~ ssh <user>@<hostname>.local cd radio-remote-installer && sudo bash install-everything.shIt installs everything it needs, sets up HTTPS, never opens a firewall port, never enables transmitting and never talks to the radio. Add
--dry-runfirst to see every step without changing anything.
First run (both routes)
Create the administrator
The first visit asks you to create the administrator: use your callsign and a strong password.
Choose your radio
Go to Admin → Config, choose the radio model and the serial port, press Save, then Restart. On the radio, set the CAT rate to 38400 (FT-991A menu 031) and CAT TOT to 100 ms or more (menu 032).
Transmitting is off
Transmitting stays disabled until an administrator switches it on in Admin → Config → Transmitting (PTT) (password required). Test with a dummy load first.
Add your people
Under Admin → Users create a user for everyone who will use the radio and choose their role (viewer, operator, administrator).
Reaching the radio from outside your home
The simplest and safest way is Tailscale: a private network between your devices, with a real HTTPS name and nothing opened on your router.
sudo tailscale up
sudo /opt/radio-remote/current/scripts/tailscale_setup.sh
In the Tailscale admin console switch on MagicDNS and HTTPS Certificates. Then open https://<hostname>.<your-tailnet>.ts.net. More in the Tailscale guide.
Updating
Administrators see a notice in the page when a newer version exists. Press Update now, or on the Pi run sudo /opt/radio-remote/current/scripts/self_update.sh. The update backs up first and rolls back by itself if the new version does not start.