CAT Port Guardian for Windows radio stations.
6SNT.CPT is a local micro app for checking COM ports before opening radio software. It answers a practical preflight question: which port is visible, which one appears to be in use, which process may be using it, and which rig can be inferred without taking control of the serial port.
- Avoid opening JTDX, WSJT-X, TQSL, N1MM or another radio tool against the wrong COM port.
- Detect visible conflicts before a session.
- Show the rig inferred from local configuration or serial metadata.
- Copy a diagnostic report for support or station troubleshooting.
- Keep the whole check conservative and non-invasive.
- A local Windows quick diagnostic app.
- A read-only COM/CAT visibility monitor.
- A preflight tool for serial radio workflows.
- A PySide6 desktop app with the 6SNT cockpit visual style.
- It is not a full CAT controller.
- It does not replace OmniRig, Hamlib, JTDX, WSJT-X or vendor software.
- It does not open serial ports to test real lock state.
- It does not send CAT commands.
- It does not trigger PTT, TUNE, TX, CW, transmitted audio or digital macros.
- It does not promise that
Free visiblemeans guaranteed exclusive access; it only means no visible owner was found without opening the port.
The scanner runs in read-only mode:
- Enumerates COM ports reported by Windows through
pyserial. - Reads known radio-related processes through
psutilwithout storing full command lines. - Looks for visible
COMxreferences in radio processes. - Reads known local configuration files when present, including OmniRig, JTDX and WSJT-X.
- Cross-checks port, visible owner, baud hints and inferred rig.
- Reports a conservative state:
OK,REVIEWorNO COM.
The app does not hardcode a specific transceiver. The rig is inferred in this order:
- Local OmniRig configuration (
RigType,Port,BaudRate), when present. - Local JTDX/WSJT-X configuration (
CATSerialPort,CATSerialRate,Rig), when present. - USB/serial metadata reported by Windows.
- Known processes such as JTDX, WSJT-X, N1MM, TQSL, rigctld or flrig.
This is local file and metadata inspection. The app does not automate external components and does not take control of the port.
Requirements:
- Windows 10/11.
- Python 3.12+.
- Project-local virtual environment.
python -m venv .venv
.\.venv\Scripts\python.exe -m pip install --upgrade pip
.\.venv\Scripts\python.exe -m pip install -r requirements-dev.txt
.\.venv\Scripts\python.exe -m pip install -e .Run the app:
.\scripts\run_app.ps1Run with sample data:
.\scripts\run_app.ps1 --sampleConsole scan:
.\.venv\Scripts\python.exe -m cat_port_guardian --scan-json.\scripts\build_exe.ps1Generated artifacts:
dist\6SNT.CPT.exe
dist\6SNT.CPT.exe.sha256
dist\6SNT.CPT-0.1.0-win-x64.zip
dist\6SNT.CPT-0.1.0-win-x64.zip.sha256
The app icon is generated locally and embedded in the executable:
assets\app\6snt-cpt.ico
assets\app\6snt-cpt-256.png
.\.venv\Scripts\python.exe -m pytest
.\.venv\Scripts\python.exe -m cat_port_guardian --scan-jsonCurrent checks:
- 13 unit tests passing.
- Real read-only scan validated on Windows.
- PyInstaller onefile build verified.
- App icon embedded in the executable.
| Symptom | Likely cause | Action |
|---|---|---|
NO COM |
Windows does not report serial ports | Check Device Manager, USB/serial driver and physical connection. |
REVIEW |
A known process appears associated with a COM port | Review or close JTDX/WSJT-X/N1MM/TQSL before opening another CAT app. |
| Wrong rig detected | Local configuration points to another rig | Review OmniRig/JTDX/WSJT-X settings. |
Free visible but another app fails |
6SNT.CPT does not open the port to prove lock state | Confirm with the actual rig-control app or close suspicious processes. |
The .exe takes time to open |
Onefile build extracts dependencies on startup | Wait a few seconds or use -OneDir for debugging. |
- No real logs, SQLite databases, ADIF files, private exports or real station screenshots are included.
dist/,build/,.venv/andartifacts/stay out of Git.- Executables are published as release assets, not as versioned source files.
- This project is private and proprietary. Do not redistribute without permission.
