PC and laptop
Windows, macOS, Linux
Chrome, Edge, Firefox or Safari. The full view with movable panels, logbook and chat in their own window too, PTT on the space bar. Firefox always plays through the default speaker, the others let you choose.
Home › Remote control
Remote control puts your radio on any screen: listen, transmit, tune, with a waterfall and every control your radio has. A small program, afu-remote, runs next to the radio and connects to afu.tools by itself. You don't need to open anything on your router.
Operate from the sofa, on holiday or from your phone. Let friends with their own callsign listen or join in on air: one operates, the others listen.
Four parts, two of which you set up yourself: the radio and the computer next to it.
Connected to the computer by USB. Control commands (CAT) and audio both run over it.
Program on the computer next to the radio, on Windows, Linux or a Raspberry Pi. It enforces the transmit protection rules, even if the network or browser drops out.
Sits between station and browser. The program connects by itself: no port forwarding, no fixed address, no VPN.
On a PC, tablet or phone, nothing to install. With your account you see your stations and the ones others share with you.
Without internet: on a LAN or HAMNET, afu-remote serves the control page itself (http://<Rechner>:8073/). The microphone needs https with your own certificate there. You can also operate a HAMNET-only station from afu.tools: the browser then connects to it directly.
Anything with an up-to-date browser. Nothing to install, no app.
Windows, macOS, Linux
Chrome, Edge, Firefox or Safari. The full view with movable panels, logbook and chat in their own window too, PTT on the space bar. Firefox always plays through the default speaker, the others let you choose.
Android and iPhone (iOS)
Chrome on Android, Safari on the iPhone. Everything sits in one column, and you transmit through the phone's microphone. On the iPhone, audio plays even with the silent switch on.
Android tablets and iPad (iPadOS)
Chrome on Android, Safari on the iPad. Several columns like on a PC; only small tablets in portrait show one column like a phone.
Keypad or dial on the PC
A keypad with displays like the TreasLin N3 over USB (Chrome, Edge) or a learnt dial like the Ulanzi D100H: assign keys and knobs freely, with short, double, long and held presses, layers and profiles. The displays show frequency, S-meter, images or animations. PTT only while held.
M5Stack Dial over Bluetooth
Round dial with a touchscreen for frequency, tuning step, band and mode. It can never transmit. You flash the firmware from the browser: afu.tools/dial.
Every radio has its own driver. The control page shows exactly the controls your radio knows. What each radio can do, in Rigstudio and with the Antenna Bridge as well, is under Radios and features.
| Radio | Coverage | Control | Audio | Spectrum | Memory | Tuner | Status |
|---|---|---|---|---|---|---|---|
| Icom IC-7100 | HF, 6 m, 2 m, 70 cm | USB | USB | – | ✓ in groups | Port | tested |
| Icom IC-7300 | HF, 6 m, 4 m | USB | USB | ✓ with scope = true |
✓ | built in | tested |
| Icom IC-705 | HF to 70 cm, 10 W | USB, Wi-Fi | USB, Wi-Fi | ✓ | ✓ in groups | AH-705 | tested |
| Icom IC-9700 | 2 m, 70 cm, 23 cm | USB, LAN | USB, LAN | ✓ | ✓ all three bands | – | tested |
| Icom IC-7610 | HF, 6 m, main and sub | USB, LAN | USB, LAN | ✓ | ✓ | built in | untested test it |
| Icom IC-7300MK2 | HF, 6 m, 4 m | USB, LAN | USB, LAN | ✓ | ✓ | built in | untested test it |
| Kenwood TS-590S/SG | HF, 6 m | USB, COM | USB | – | ✓ 0 to 99 | built in | untested test it |
| Yaesu FT-891 | HF, 6 m | USB | USB | – | ✓ 1 to 99 | FC-50 | untested test it |
| Yaesu FT-991/FT-991A | HF, 6 m, 2 m, 70 cm | USB | USB | – | ✓ 1 to 99 | built in | untested test it |
| Yaesu FTDX3000 | HF, 6 m | USB | USB | – | ✓ 1 to 99 | built in | untested test it |
| Yaesu FT-DX10 | HF, 6 m, 4 m | USB | USB | – | ✓ 1 to 99 | built in | untested test it |
| Yaesu FT-710 | HF, 6 m, 4 m | USB | USB | – | ✓ 1 to 99 | built in | untested test it |
| Yaesu FT-897/FT-897D | HF, 6 m, 2 m, 70 cm | CAT cable | Interface | – | – | – | untested test it |
| Yaesu FT-857/FT-857D | HF, 6 m, 2 m, 70 cm | CAT cable | Interface | – | – | – | untested test it |
| Yaesu FT-100/FT-100D | HF, 6 m, 2 m, 70 cm | CAT cable | Interface | – | – | – | untested test it |
| Yaesu FTX-1 | HF to 70 cm, Field and Optima | USB | USB | – | ✓ | ✓ | tested |
| ANAN-7000DLE MkII | SDR, transmit 160 to 6 m | Thetis | Thetis (VAC) | – | – | ✓ | untested test it |
| R2T2 WebSDR | 0 to 61 MHz, receive only | own engine | Engine | ✓ several receivers, zoom | – | – | tested |
All radios and features compared
No radio: with model = "demo" afu-remote pretends one is connected and never transmits. Your radio is missing? Tell us which one via Report at the top. It helps most if you own it and can test it once. For untested radios the radio's page has test instructions; you send the log from the control page (Rig test panel).
Control runs over CI-V, transmit over CAT. Factory defaults: IC-7100 address 0x88 at 19200 baud, IC-7300 0x94, IC-7300MK2 0xB6, IC-705 0xA4, IC-9700 0xA2, IC-7610 0x98, each at 115200 baud. Turn “CI-V USB Echo Back” off.
scope = true under [rig].speicher_gruppen = [0, 1]), on the IC-7610 channels 1 to 99.More in the questions about Icom over the network.
Control over the USB socket (115200 baud by default) or the COM socket (9600 baud), audio over the built-in USB sound card. The setup finds the radio by itself; by hand it's model = "ts590".
ptt = "mic" under [rig].Got a TS-590 and fancy testing? Just tell us via Report.
FTX-1: control over the “Enhanced COM Port” (CAT-1) at 38400 baud, audio over the built-in USB sound card. For voice from the browser set “MOD SOURCE” to USB; you can do that from the control page too. Also: clarifier, DNR, contour, APF, CW memories, C4FM.
FT-891: also over the “Enhanced COM Port”, 4800 baud by default (CAT RATE, menu 05-06; the setup tries every rate). For audio from the browser set “SSB MOD SOURCE” in the menu (and the same for AM, FM, DATA) to REAR and “REAR SELECT” to USB. Also: clarifier, DNR, DNF, contour, APF, FC-50 tuner, CW text (uses keyer memory 5).
FT-991/FT-991A: like the FT-891 over the “Enhanced COM Port”, 4800 baud by default (CAT RATE, menu 031; the setup finds the radio by itself). For audio from the browser set MOD SOURCE to REAR for SSB, AM, FM and DATA. Also: 2 m and 70 cm (up to 50 W), C4FM, IPO/AMP 1/AMP 2, tuner, CW text, memories 1 to 99.
FTDX3000, FT-DX10, FT-710 and the two above: if CAT RTS ENABLE is set in the menu (the default), the radio only answers when the computer sets RTS. Since 0.2.107 afu-remote sets RTS on the Enhanced Port itself, and the search tries both. The search never opens the Standard Port (PTT and keying). If it still can't find the radio: afu-remote cat-pruefen only reads and writes everything to a file you can send back.
FT-897/FT-897D: the old Yaesu CAT of the FT-817/857/897 on the CAT/LINEAR socket (TTL, CT-62 or USB-TTL cable), 4800 baud by default (CAT RATE, menu 019), audio through an interface on the DATA socket. The cable carries frequency, mode, VFO swap, split, clarifier, duplex, CTCSS/DCS, S-meter and PO when transmitting (on the FT-897D also ALC and SWR). Levels, power, filters, CW text, memories and tuner you set on the radio. The setup doesn't search for the FT-897, pick it by hand (ft897).
FT-857/FT-857D: the same CAT, the same CAT/LINEAR socket and the same bands as the FT-897, just under its own name (ft857). The baud rate is in the CAT RATE menu, 4800 by default. Whether the FT-857 also reports ALC and SWR when transmitting is still open; otherwise you only get PO. The setup doesn't search for the FT-857 either.
FT-100/FT-100D: the old Yaesu CAT on the CAT/LINEAR socket, fixed at 4800 baud. The socket has TTL levels, so you need a CT-62 or a USB-TTL cable. Audio isn't available over USB: use a sound card interface on the DATA socket. The cable carries frequency, mode, filter, VFO A/B, split, duplex, CTCSS/DCS and the meters (S, PO, SWR, ALC). Not included: levels, power, CW text, memories, tuner (you set those on the radio). The setup doesn't search for the FT-100, pick it by hand. To check without transmitting: afu-remote ft100-pruefen.
Thetis has to be running. Control over the Thetis CAT server (Setup › Serial/Network/Midi CAT › Network, port 13013) or a virtual COM port, audio over VAC 1 with two virtual cables. Also: filter presets, NR1 to NR4, attenuator, antenna selection, CW text. Got an ANAN and fancy testing? Just tell us via Report.
The R2T2 itself runs afu-remote-linux-armv7l (under Download the program above), with the engine included: eingebaut = true on the receiver, then sudo ./afu-remote-linux-armv7l dienst sets up the service that starts at boot.
Entered as [[empfaenger]] in the configuration. Every browser fetches waterfall and audio from the engine itself; afu-remote only hands out the ticket for it. On its own (model = "keiner") the station is a WebSDR; next to a radio on the same computer its waterfall becomes a panadapter, and a click tunes the radio.
As a panadapter for another station (radio on a different computer):
http://…:8073/wasserfall, plus callsign and station password of that account, bands up to 61 MHz.The radio's station runs on https (microphone), the link to the receiver on HAMNET is plain http: in amateur radio nothing may be encrypted there. The password stays on the station.
The control page is laid out like a program at the radio: the radio front at the top with frequency, levels, controls and PTT, the waterfall in the middle, and the tools around it as tabs you can drag between three docks. On a big screen everything fits in the window without scrolling.
The rules run in the program next to the radio, not in the browser. If the network, browser or program fails, the radio goes back to receive.
You set the times in the settings file. Responsibility for transmissions stays with whoever runs the station.
How is remote control secured? Encryption, what someone would need to hijack it and what you can do yourself.
One file, nothing else to install, no Python needed. All files are the same version.
| File | SHA-256 |
|---|
About ten minutes, the program works out most of it by itself. The guide shows every step with pictures; if something's stuck, have a look at Questions and fixes.
Sign in on the control page, create a station under Settings › My stations and copy the key (afr_…).
Switch the radio on and plug it into the computer by USB. With the ANAN, start Thetis and switch on its CAT server (Setup › Serial/Network/Midi CAT › Network).
Double-click: it opens the setup in the browser (http://127.0.0.1:8073/einrichtung). Pick “Station” there, paste the key, let it find the radio and sound card, test, and save at the end. No switches, no questions in the console window.
The station shows as online on the control page. Under Settings you set bands, maximum power and sharing.
afu-remote.exe in its own folder, say C:\afu-remote, and double-click it.shell:startup.chmod +x afu-remote-linux-*, then ./afu-remote-linux-aarch64.sudo usermod -aG dialout,audio $USER, then log in again.afu-remote.service in the source code (ExecStart=… run, Restart=always).journalctl -u afu-remote shows the LAN address and a setup code. Open it in a browser on another computer and enter the code. That only works while nothing has been set up yet.Already set up and want it different (a station here instead of the operating computer, or the other way round)? On the station's page under Settings › Station › General, or on the bridge's page “Change setup”. A double-click always starts whatever you set up last.
afu-remote setupafu-remote setup --token afr_… --autoafu-remote devicesafu-remote probeafu-remote cat-pruefencat-pruefen.txt. Never transmits.On Linux the program is called like the downloaded file, for example ./afu-remote-linux-x86_64 setup. ALSA (libasound2) has to be there; on any system with sound it is.
In a support session afu.tools looks at your radio together with you: you get instructions and buttons (“Start”, “Done”), afu.tools queries things on the radio, and you approve or decline every action. Transmitting is always locked, and you can end it at any time. What exactly happens
afu-remote support --schluessel afs_… in a console. A page opens in the browser.Valid for 24 hours and only once. You need to be signed in for this.
Two programs on one serial port never work cleanly: sometimes the radio answers one, sometimes the other, and afu-remote then reports “radio stopped answering”. That's why afu-remote keeps the port to itself and offers the other programs what they expect (from 0.2.119, before that through a second bridge):
Set it up in the setup or later on the control page under Settings › Station › Services › Other programs (owner and managers). Per interface: off, this computer only, or network with a list of allowed addresses and networks (IPv4, IPv6, e.g. 192.168.1.0/24 or 44.0.0.0/8 for HAMNET); everything else is rejected and goes into the station log. rigctld and rotctld know a password (Hamlib --password), but most programs can't send it. Without sign-in anyone on the list can control the radio; PTT over the network only exists if the owner explicitly allows it.
Stop your own rigctld first; the programs stay on Hamlib “NET rigctl” with 127.0.0.1:4532. Anything that only reads (say a clock with a frequency display) doesn't take control. If a program sets the frequency, it's the operator; with the same callsign as in the browser (“Acts as”) it stays one person. If someone else is currently operating remotely, the station rejects setting and PTT from the programs, reading still works. PTT only works with “Transmit allowed”.
Contest programs on Windows want a COM port for the radio and usually a second one for CW. Both are available on the station and in the bridge on your operating computer (from 0.2.120), each on a pair of virtual COM ports: afu-remote takes one end, the program the other.
KY). For OmniRig there's the rig file afu-remote.ini: put it in the Rigs folder, restart OmniRig, rig “afu-remote”.Keying via DTR/RTS isn't available: the timing couldn't be held over the link. CW text works on the Yaesu radios from the FT-891, the TS-590, the ANAN and the Icom radios; for others, request support. Step by step it's in the guide.
Since version 0.2.52 you set radio, audio, transmit and operating on the page (Settings › Station › Radio, for owners and managers). afu-remote.toml only keeps what's needed before that: station key, direct access and built-in receiver engines. The program still accepts the sections below on first start and then moves them to geraet.json (backing up the old file). Restart the program after changing the file.
[rig] model = "ic7100" # ic7100, ic7300, ic7300mk2, ic705, ic9700, ftx1, anan7000 oder demo port = "COM5" # ANAN: "tcp://127.0.0.1:13013", IC-705/IC-9700 übers Netz: "lan://192.168.1.50" baud = 19200 # FTX-1: 38400, IC-7300/705/9700: 115200 civ_address = "0x88" # nur Icom, Werkseinstellung je Modell: IC-7300 "0x94", IC-7300MK2 "0xB6", IC-9700 "0xA2", IC-705 "0xA4" lan_benutzer = "" # nur übers Netz: Netzwerk-Benutzer im Gerät lan_passwort = "" cat_rts = "an" # nur Yaesu mit CP2105, sonst weglassen: "an"/"aus" statt automatisch (Menü CAT RTS) mod_umschalten = true # nur übers Netz: Tonquelle beim Senden auf LAN/WLAN und zurück scope = true # IC-705/9700/7300: Spektrum des Geräts; übers Netz von selbst, über USB nur so speicher_gruppen = [0] # nur IC-705: welche Speichergruppen gelesen werden (00 bis 99) [audio] input = "USB Audio" # Teil des Gerätenamens, siehe "afu-remote devices"; übers Netz: "lan" output = "USB Audio" # ANAN: "Line 1" und "Line 2" (VAC); übers Netz: "lan" [tx] allowed = false # Senden aus dem Browser erst mit true tot_s = 180 # längste einzelne Sendung deadman_s = 1.5 # ohne Lebenszeichen vom Browser: Taste los [control] idle_min = 15 # Minuten ohne Befehl, dann ist die Station frei request_s = 120 # so lange wartet eine Anfrage auf Antwort [local] enabled = false # Direktzugriff im LAN/HAMNET port = 8073 password = "" tls = false # https mit eigenem Zertifikat, für das Mikrofon
Chat with other station operators: the remote control topic in the Telegram group. Bugs via Report, problems with your radio via support (above). All the ways: Contact.