Repository navigation
PyTNC Pro v0.1.4-beta
·
17 commits
to main
since this release
PyTNC Pro — Release Notes
v0.1.4-beta
PTT Improvements
CI-V CAT PTT (Icom radios)
- New PTT method: CI-V CAT for Icom radios (IC-7100, IC-7300, IC-9700, IC-705, etc.)
- Configurable: COM port, baud rate, data bits, parity, stop bits, CI-V address (hex)
- PTT ON/OFF via standard Icom CI-V protocol (
FE FE addr E0 1C 00 01/00 FD) - Default CI-V address
88(IC-7100) — tooltip lists common addresses for other models
CM108 GPIO PTT (DigiRig Lite / USB audio-only adapters)
- New PTT method: CM108 GPIO for devices with no COM port
- Auto-detects CM108/CM119 family chips via HID scan button
- GPIO1 toggle via HID output report — Direwolf-compatible
- Requires:
pip install hidapi
PTT Method Selector
- Settings → PTT Control now has a Method dropdown:
RTS/DTR/CI-V CAT/CM108 GPIO - Switching methods shows/hides the relevant config widgets automatically
- Auto-scans CM108 devices on first selection of CM108 mode
Map Improvements
Auto-center on startup
- Map now centers on your saved location on startup (2 second delay for WebView init)
- Also centers immediately when manual location is applied or GPS fix arrives
APRS object parser fix
- Object packets (
;type) now try compressed position format first, falling back to uncompressed - Fixes objects from some IGates that were silently dropped due to compressed encoding
IGate Improvements
Duplicate suppression
- Same packet arriving via multiple digi paths is gated only once (30-second dedup window)
Callsign-exact skip rule
- Fixed: same-base-callsign stations (e.g. KO6IKR-2 on handheld) were incorrectly skipped by the IGate's own-TX filter — now matches full callsign including SSID
UI Improvements
Save Settings confirmation
- Both save buttons flash green with
✅ Saved!for 1.5 seconds on success
STOP IS darker shade
■ STOP ISbutton darkens when APRS-IS is connected, making toggle state visually clear
Clickable links in tooltips
- Popup tooltips now linkify
https://,http://, andwww.URLs in both comment and status fields - Links open in system browser via console message handler
APRS-IS
Filter uses saved location
_build_aprs_filternow correctly reads from saved lat/lon instead of falling back to hardcoded default coordinates
Version string
- APRS-IS login now identifies as
PyTNC-Pro 0.1.3
Bug Fixes
- Fixed
AttributeError: igate_rf_heardcrashingon_packetsilently after IGate deployment - Fixed
_build_vara_tabmethod eaten by bad str_replace during IGate insertion - Fixed numpy/Python version mismatch on Windows (cp312 wheels vs Python 3.14)
- Fixed PowerShell execution policy blocking venv activation
Known Limitations / Next Release
- TX IGate
_queue_rf_packetwiring pending - IGate auto-beacon fires once on enable — repeat timer not yet implemented
- Digipeater support not yet implemented
- AIS vessel data requires a separate AISHub feed (not available via APRS-IS)
v0.1.3-beta
New Features
🌐 IGate Tab
- Full RX IGate implementation (RF → Internet)
- TX IGate implementation (Internet → RF) — disabled by default
- RX IGate checkbox with green status indicator, packets-gated counter, uptime timer
- TX IGate checkbox (locked until RX is enabled), heard-window spinner, messages-only toggle
- Gated packets log with live search/filter bar, entry count, and clear button
- APRS-IS connection/disconnection events shown in IGate log on startup
- Tab order: 🗺️ MAP | 📻 APRS | 📡 VARA FM | 🌐 IGate | ℹ️ Info | ⚙️ Settings
IGate Logic
- RX gate formats packets as
SRC>DST,PATH,qAR,MYCALL:infoper APRS-IS spec - No-regate rules enforced: TCPIP, qA paths, NOGATE, RFONLY, third-party frames all skipped
- TX gate checks message-only rule and RF-heard window before gating IS packets to RF
- Auto-beacon on IGate enable: sends
I&(IGate diamond) symbol to APRS-IS
Symbol Overlay Support
- Overlay character field (A–Z, 0–9) added to APRS tab symbol picker
- Supports overlaid symbols:
I&= IGate diamond,D#= digi with D,W&= Winlink - Symbol preview updates live to show overlay letter rendered on icon
- RF and IS beacons both respect the overlay character
Map Layer Switcher (Qt toolbar)
- Street / Topo / Satellite / Dark layer selector moved to Qt toolbar
- Floating HTML
#layer-selectorremoved from map setMapLayer()JS function called from Python on combo change
Map Improvements
24-hour Station Expiry
- Stations not heard in 24 hours automatically removed from map
- Cleanup runs every 5 minutes; trail history cleaned up with marker
- 500 marker hard cap retained as safety net
Bug Fixes
- Fixed OSM/OSM-DE/Carto Leaflet layer control appearing alongside Qt layer combo
- Fixed map layer combo position (
right: 60px→right: 10px) after removing Leaflet control - Fixed font sizes in IGate tab (10–11px labels bumped to 12px for readability)
- Fixed callsign skip rule matching base callsign prefix instead of full SSID
73 de KO6IKR