POTACAT
POTACAT is a free, open-source desktop application for amateur radio operators who want to hunt Parks on the Air (POTA) activators, chase SOTA summits, work DX, and operate their radio remotely from a phone.
Built by Casey Stanton, K3SBP and a growing community of contributors.
How It Started
POTACAT began with a simple idea: see all the live POTA spots on one page and one-click tune my FlexRadio to any spot. No more copying frequencies by hand, no more fumbling between browser tabs and radio software. Click a row, radio tunes, start calling.
That first version was a weekend project. Then people wanted SOTA spots too. Then DX Cluster integration, DX expedition tracking, and Reverse Beacon Network. Then logbook forwarding, ADIF export, and QSO logging. Then WWFF and LLOTA spots. Then respotting, panadapter integration, and a full CW keyer. Every feature was driven by real operators asking “can POTACAT do this?” and the answer kept being yes.
What It Does Today
- Live spot aggregation from POTA, SOTA, WWFF, LLOTA, DX Cluster, RBN, and PSKReporter
- One-click QSY to any spot with CAT control for FlexRadio, Icom, Yaesu, Kenwood, Elecraft, Xiegu, QRP Labs, and Hamlib-supported rigs
- Map and table views with band/mode filters, distance, bearing, and beam heading
- QSO logging with ADIF export and forwarding to Log4OM, HamRS, Ham Radio Deluxe, N3FJP, DXKeeper, Wavelog, MacLoggerDX, QRZ Logbook, World Radio League, and SOTAdata
- JTCAT – a built-in FT8/FT4 engine (no WSJT-X required) with waterfall, decode panel, and auto-QSO
- CW Keyer with MIDI paddle support, remote CW from your phone, and text macros
- SmartSDR and TCI panadapter spots so you can see activators on your waterfall
- DXCC Tracker, DX expedition board, solar propagation, band activity heatmap
- Scan mode to auto-tune through filtered spots like scanning a police scanner
ECHOCAT: Remote Radio for Everyone
ECHOCAT is POTACAT’s remote radio feature. Open a browser on your phone, connect to your shack over a VPN like Tailscale, and you have full control of your radio: tune, transmit SSB, send CW, and run FT8 – all from your phone.
We are democratizing remote radio.
Not everyone can afford a FlexRadio with SmartLink or the latest internet-connected transceiver. Remote operation shouldn’t be a luxury. Our mission is to bring remote SSB, FT8, and CW to as many radios and operators as possible. ECHOCAT runs on hardware as modest as a Raspberry Pi connected to a Xiegu G90. If your radio has a serial port or USB, you can probably run it remotely with POTACAT.
No cloud services. No subscriptions. No vendor lock-in. Just your radio, your computer, and your VPN.
Get Involved
POTACAT is in active development. New features ship weekly. We build what the community asks for.
- Discord – Join us at discord.gg/cuNQpES38C to report bugs, request features, get help, and chat with fellow operators
- GitHub – Source code, issues, and pull requests at github.com/Waffleslop/POTACAT
- Support the project – Keep POTACAT alive and growing by becoming a supporting member at buymeacoffee.com/potacat
73 de K3SBP
Quick Start
- Set your grid square in the welcome screen or Settings
- Add your radio — pick a connection type, configure it, and click Test Connection
- Spots appear automatically — POTA spots load every 60 seconds
- Click any spot in the table or on the map to tune your radio to that frequency
- Work the contact and click Log to save the QSO
That’s it — you’re hunting parks.
Hunter Mode
Hunter mode is the default view. It shows live spots from all your enabled sources in a sortable table and/or interactive map.
Spot Table
The main table shows one row per spot with these columns (right-click any column header to show/hide columns):
| Column | Description |
|---|---|
| Log | Click to open the log dialog for this contact |
| Callsign | Activator’s callsign (click to open QRZ page, hover for operator name) |
| Operator | Operator’s name (from QRZ lookup) |
| Freq (kHz) | Frequency — click the row to tune your radio here |
| Mode | CW, SSB, FT8, FT4, FM, RTTY, FreeDV |
| Source | POTA, SOTA, WWFF, LLOTA, DXC, RBN, PSKR, WSJT, DXP |
| Ref | Park or summit reference (e.g. K-1234, W6/CT-001) |
| Name | Park or summit name |
| State | US state or DX entity |
| Grid | Maidenhead grid square |
| Dist | Distance from your QTH in miles or km |
| Heading | Beam heading from your QTH in degrees |
| Age | Time since the spot was posted (e.g. “5m”, “1h 30m”) |
| Comments | Spot comment text |
| Skip | Toggle to skip this spot during scan |
Column widths are resizable — drag the border between column headers. Widths are saved automatically.
Sorting — Click any column header to sort. Click again to reverse. Sort state is preserved across sessions.
Color coding — Rows are tinted by source: green for POTA, orange for SOTA, purple for DX Cluster. Spots for new (unworked) parks show a green border and “NEW” badge when you have parks worked data loaded.
Watchlist stars — Spots matching your watchlist callsigns show a star icon.
WSJT-X decodes — When WSJT-X integration is active, a decode indicator appears on rows where POTACAT hears the activator in WSJT-X.
Map View
Toggle between Table and Map using the view buttons in the toolbar (or press S for split view).
The map uses dark OpenStreetMap tiles and shows:
- Your QTH as a home marker
- POTA activators as green markers with park info popups
- SOTA activators as orange markers
- DX Cluster spots as purple markers (positioned via cty.dat country database)
- Tune arcs — great-circle lines from your QTH to the selected spot
- Band activity heatmap — a color bar at the bottom showing spot density per band (enable in Settings → Display)
Click any marker to see spot details in a popup. Click the frequency in the popup to tune. The map remembers your zoom level and center position.
Split View
Press S or enable Split view in Settings → Display to show the table and map side-by-side (or stacked — configurable). A draggable splitter lets you resize the panes. The split height/width is saved.
Pop-out Windows
POTACAT supports detachable pop-out windows:
- Pop-out Map — Click the ↗ button in the view toolbar. Opens the map in its own resizable window with full functionality (markers, popups, tune arcs, Log button). Remembers position and size.
- Pop-out Spots — In Activator mode, click the pop-out button in the activator toolbar to detach the hunter spots table into a separate window.
- Pop-out QSO Logbook — Press F2 or click the Logbook toolbar button. See Pop-out QSO Logbook.
Pop-out windows sync theme (dark/light) with the main window and auto-reopen if they were open when you last closed POTACAT.
Activator Mode
Switch to Activator mode from the Settings quick dropdown in the toolbar, or in Settings → App Mode.
Activator mode replaces the hunter table with a streamlined interface for running a POTA/SOTA/WWFF activation.
Starting an Activation
- Enter your park reference (e.g.
K-1234) in the park input field — autocomplete helps you find parks - Set your frequency — type it or let POTACAT read it from your radio via CAT
- Select your mode (CW, SSB, FT8, etc.)
- Click Start Activation
A timer starts counting your activation time. Your contact count is displayed prominently.
Logging Contacts
The quick-log form at the top has:
- Callsign — type the hunter’s callsign
- RST Sent / Received — split-digit input boxes with auto-advance (or single-field N1MM-style if enabled in Settings)
- Hunter Park — if the hunter is also at a park (park-to-park QSO), enter their reference
- Operator name — auto-filled from QRZ lookup
Press Enter or click Log to save. The contact appears in the activation log table below.
Use Alt+R to reload the last contact into the form (handy for correcting mistakes).
Multi-Park Activations
If you’re activating multiple parks from the same location (two-fer, three-fer), press Ctrl+M to open the Multi-Park dialog. Add additional park references and all your contacts will be logged for each park.
Exporting ADIF
Click Export ADIF in the activator toolbar to save your activation log as an ADIF file for upload to pota.app or sotadata.org.uk. For multi-park activations, you can export per-park or combined.
The activator toolbar also has buttons for:
- Map — show your park location on a map
- Past activations — view your previous activations at this park
- Spots — toggle the hunter spot table below the activator view (split view)
- Logbook (F2) — open the pop-out QSO logbook
Spot Sources
Toggle sources on and off from the Spots dropdown in the toolbar (the funnel icon) or in Settings → Spot Sources.
POTA
Parks on the Air spots from the POTA API. Refreshed automatically (default every 60 seconds, configurable). Green markers on the map.
Parks Worked: Import your parks worked CSV from pota.app (Settings → Spot Sources → POTA → Import CSV). Spots for parks you’ve already worked show no “NEW” badge, and you can filter them out with “Hide worked parks” in the Spots dropdown.
Stats overlay: When parks data is loaded, click the Stats button in the status bar to see your Parks Worked count, Total QSOs, unique locations, and how many new-to-you parks are on the air right now.
SOTA
Summits on the Air spots from the SOTA API. Orange markers on the map positioned at summit coordinates.
WWFF & LLOTA
World Wide Flora & Fauna and Lighthouses on the Air spots. These are additional park/award programs that pull from their respective APIs.
DX Cluster
Live DX spots streamed via telnet from DX cluster nodes. POTACAT supports up to 3 simultaneous cluster connections.
Setup:
- Enable DX Cluster in Settings → Spot Sources
- Enter your callsign (required for cluster login)
- Choose from 13 preset nodes (W3LPL, VE7CC, DXUSA, NC7J, K1TTT, and more) or add a custom node
- Optionally add a second and third node for broader coverage
DX Cluster spots appear with a purple left border in the table and purple markers on the map. Location is resolved from the callsign using the bundled cty.dat country database.
DX Command Bar: When DX Cluster is enabled, a command bar appears below the table. Use it to self-spot or spot other stations on the cluster. Enter a callsign, frequency, and optional comment, then click Send.
Spotting on the cluster: The Log dialog includes a “Spot on DX Cluster” checkbox for non-park contacts. Press Ctrl+R for quick re-spotting with template variables.
Reverse Beacon Network (RBN)
The RBN shows where your CQ calls (and watchlist callsigns) are being heard by the worldwide skimmer network.
Setup:
- Enable RBN in Settings → Spot Sources
- Enter your callsign
A dedicated RBN view appears in the view toolbar. It shows a map with band-colored circle markers (sized by SNR), a spot table, and a dynamic legend. Filters for band and max age are available at the top.
FreeDV / PSKReporter
FreeDV spots from PSKReporter. Polls every 5 minutes (with automatic backoff on server errors). Coral-colored spots in the table and map.
Hover over the FreeDV checkbox in the Spots dropdown to see a countdown to the next poll.
WSJT-X
POTACAT listens for WSJT-X UDP messages (default port 2237) and cross-references decoded callsigns against active POTA spots.
Features:
- POTA activators in the WSJT-X decode list are highlighted green
- Decode indicators appear on matching rows in the POTACAT spot table
- Click-to-tune sends the frequency to your FlexRadio via SmartSDR TCP (no CAT conflict with WSJT-X)
- Auto-log: QSOs completed in WSJT-X can be automatically logged in POTACAT
Enable WSJT-X in Settings → Spot Sources. Set the UDP port to match your WSJT-X configuration.
DX Expeditions
POTACAT checks the Club Log DX expedition database and marks active expeditions with a DXP badge. DX expedition spots are pinned to the top of the table and shown with a red/gold marker on the map.
Radio Setup
POTACAT supports five connection methods. Open Settings and click Add Rig to configure your radio.
FlexRadio (SmartSDR)
Best for: FlexRadio 6000/8000 series running SmartSDR.
POTACAT connects to SmartSDR’s built-in CAT server over TCP. No additional software or cables needed.
- Add a new rig → select FlexRadio (SmartSDR)
- Choose your slice (A, B, C, or D)
- Save
SmartSDR exposes Kenwood-compatible CAT on TCP ports 5002–5005:
| Slice | Port |
|---|---|
| A | 5002 |
| B | 5003 |
| C | 5004 |
| D | 5005 |
If SmartSDR is on a different computer, use IP Radio (TCP CAT) instead with the Flex’s IP address.
IP Radio (TCP CAT)
Best for: FlexRadio on a remote PC, Elecraft K4, or any radio with a TCP-based Kenwood CAT interface.
- Add a new rig → select IP Radio (TCP CAT)
- Enter the host IP and port
- Save
Serial CAT (Kenwood)
Best for: QRPLabs QMX/QDX, Kenwood, Elecraft, Yaesu (via FA/MD commands), and any radio that speaks Kenwood protocol over USB serial.
- Add a new rig → select Serial CAT (Kenwood)
- Choose your COM port
- Set the baud rate
- Check Disable DTR/RTS if your radio uses DTR for PTT
- Click Test Connection to verify
- Save
POTACAT sends only FA (frequency) and MD (mode) commands. Any radio that responds to FA; with a frequency will work.
Yaesu radios also support these commands — POTACAT auto-detects 9-digit (Yaesu) vs 11-digit (Kenwood) FA format from the radio’s response.
Other Rig (Hamlib)
Best for: Icom, Yaesu, and radios that don’t speak Kenwood protocol.
POTACAT bundles Hamlib 4.6.5 (rigctld) — no separate installation needed. Supports 200+ radio models.
- Add a new rig → select Other Rig (Hamlib)
- Search for your radio model
- Choose your COM port and baud rate
- Click Test Connection
- Save
POTACAT spawns a rigctld process, connects via TCP, and translates commands to your radio’s native protocol.
rigctld Network
Best for: Connecting to an existing rigctld instance running on another machine or managed by other software.
- Add a new rig → select rigctld Network
- Enter the host and port (default
localhost:4532) - Save
My Rigs
POTACAT supports multiple saved rig profiles. Each profile stores a name and connection settings. Switch between rigs by clicking the CAT status pill in the status bar and selecting from the rig list.
Win4Yaesu Setup
If you use Win4Yaesu Suite, both programs need access to the radio’s serial port. The solution is COM0COM (free virtual COM port driver):
- Install COM0COM (signed 64-bit version)
- Create a virtual port pair (e.g. COM18 ↔ COM19)
- In Win4Yaesu: assign COM18 to an AUX/CAT port
- In POTACAT: set up Serial CAT (Kenwood) on COM19
POTACAT ←→ COM19 ──(COM0COM)── COM18 ←→ Win4Yaesu ←→ Radio
Win4Yaesu caches radio state, so POTACAT’s polling doesn’t add load on the radio. Multiple programs can run simultaneously on separate AUX/CAT ports.
Tested Radios
| Radio | Connection | Baud | DTR/RTS Off? | Notes |
|---|---|---|---|---|
| FlexRadio 6000/8000 | FlexRadio (SmartSDR) | — | — | Works out of the box |
| QRPLabs QMX | Serial CAT (Kenwood) | 38400 | No | Don’t use Hamlib; power cycle if stuck in terminal mode |
| QRPLabs QDX | Serial CAT (Kenwood) | 38400 | Yes | DTR = PTT on QDX |
| Yaesu FTX-1 | Serial CAT (Kenwood) | 38400 | No | Hamlib backend failed in testing |
| Xiegu G90 | Other Rig (Hamlib) | 19200 | Only with Digirig | CI-V protocol; try X5105 or IC-718 backend as fallback |
| Kenwood TS-480/590/2000 | Serial CAT (Kenwood) | 9600 | No | Also works with Hamlib |
| Elecraft KX2/KX3/K3 | Serial CAT (Kenwood) | 38400 | No | |
| Elecraft K4 | IP Radio (TCP CAT) | — | — | Ethernet TCP CAT |
If your rig isn’t listed, try Serial CAT (Kenwood) first — many radios support FA/MD commands — then fall back to Hamlib.
SmartSDR Panadapter Spots
For FlexRadio users: enable Push spots to SmartSDR panadapter in Settings → Display. POTACAT connects to the FlexRadio API on port 4992 and displays color-coded spot markers directly on your SmartSDR panadapter.
Configure which sources appear (POTA, SOTA, DX Cluster, RBN, etc.) and set a max spot age.
TCI Panadapter Spots
For Thetis (ANAN/Hermes-Lite 2), ExpertSDR3 (SunSDR), and other TCI-compatible SDR software: enable Push to Thetis/TCI panadapter in Settings → Display.
POTACAT connects via WebSocket and sends color-coded spot markers to your panadapter. Configure:
- Host and port (default
127.0.0.1:50001) - Per-source filters (POTA, SOTA, DX Cluster, RBN, WWFF, LLOTA, FreeDV)
- Max spot age
CW Keyer
POTACAT includes a built-in CW keyer for FlexRadio users with a MIDI paddle (e.g. HaliKey).
Setup:
- Enable CW Keyer in Settings → CW Keyer
- Select your Keyer Mode: Iambic B, Iambic A, or Straight key
- Set your Speed (WPM)
- Click Refresh to detect MIDI devices, then select yours
- Use the Learn buttons to map dit and dah MIDI notes from your paddle
- Enable Local sidetone and adjust pitch/volume
How it works: POTACAT reads MIDI paddle events via the Web MIDI API, runs an Iambic keyer state machine, and sends cw key commands directly to your FlexRadio via the SmartSDR TCP API. This preserves your exact fist timing — no buffering.
CW status: The CW pill in the status bar shows keyer state. Click it for a popover with volume and WPM controls. The sidetone requires one click anywhere in the app to unlock (browser audio policy).
Scan Mode
Click the Scan button in the toolbar or press Space to start scanning.
Scan automatically tunes through all visible (filtered) spots, dwelling on each for a configurable time (Settings → Tuning → Scan Dwell Time, default 7 seconds).
- The current scan row is highlighted and auto-scrolled into view
- Skip individual spots by checking the Skip column — scan will skip those frequencies
- Press Space again to stop scanning
Keyboard Shortcuts
Press F1 to see this list in the app.
| Shortcut | Action |
|---|---|
| F1 | Show keyboard shortcuts |
| F2 | Open/focus QSO logbook |
| F5 | Check for updates |
| F11 | Show welcome/setup screen |
| Space | Start / stop scan |
| S | Toggle split view (table + map) |
| Ctrl+L | Quick log (unspotted QSO) |
| Ctrl+R | Quick re-spot |
| Ctrl+M | Multi-park dialog (activator mode) |
| Alt+R | Reload last contact (activator mode) |
| Ctrl+= | Zoom in |
| Ctrl+- | Zoom out |
| Ctrl+0 | Reset zoom |
| Esc | Close popover |
| Enter | Save QSO (in log dialog) |
Settings Reference
Open Settings from the toolbar dropdown → “Open Settings…” or from the welcome screen.
Community & Support
Website: potacat.com
Discord: Join the community at discord.gg/cuNQpES38C — get help, share your setup, request features, and chat with other POTACAT users.
Support development: If POTACAT helps you chase parks, consider supporting the project at buymeacoffee.com/potacat.
Report bugs: github.com/Waffleslop/POTACAT/issues
Author: Casey Stanton, K3SBP
License: MIT. Bundles Hamlib (GPL v2).