Skip to content

PyTNC Pro v0.1.8-beta

Latest

Choose a tag to compare

@smashingwaffle smashingwaffle released this 02 Sep 05:26
· 3 commits to main since this release

PyTNC Pro v0.1.8-beta — Release Notes

Big feature release. APRS messaging comes out of scaffolding, VARA FM gets a real chat feature, audio device handling is overhauled, and the first working environmental monitor (AQI) lands against the new AirNow API.

💬 APRS Messaging (new)

APRS messaging is now embedded directly in the APRS tab (right side, below the symbol picker) — no separate tab needed.

  • To / From callsigns with auto-uppercase
  • Live 67-character counter (amber at 60, red at 67)
  • Explicit "IS" and "RF" send buttons — you choose the transport per message
  • ACK tracking — outgoing messages show ⏳ pending, ✓ acked, ✗ no-ack
  • Terminal-style message log with color-coded callsigns and status markers
  • Recent dropdown — one-click fill of the last 10 callsigns you've messaged
  • Right-click any log line → Reply / Copy text / Resend / Clear view
  • Persistence — conversations saved to pytnc_conversations.json, restored on next launch
  • Tab-title flash — APRS tab shows 📻 APRS 💬* on incoming message, clears when you switch to it
  • Auto-ACK reply — when someone messages you and requests an ACK, PyTNC sends it back
  • Bulletin filtering — BLN* / NWS* addressees stay out of the conversation log

📡 VARA FM Chat (new)

Full peer-to-peer chat over VARA FM connected sessions. Lives in the VARA FM tab (right side, below the symbol picker).

  • Target callsign field with Recent dropdown of previously-linked stations
  • 🔗 Link / ✂ Unlink buttons with live status (○ idle / ◐ linking… / ● linked to X / ◐ disconnecting…)
  • Color-coded chat history — outgoing in cool blue with →, incoming in warm amber with ←, system events in italic teal
  • Auto-accept incoming calls via VARA's LISTEN ON (no manual accept needed)
  • Persistence — chat history saved per remote callsign to pytnc_vara_chat.json
  • VARA tab flashes 📡 VARA FM 💬* on incoming chat
  • Right-click chat log → Copy line / Clear view
  • 🐛 Debug toggle — surfaces VARA daemon internals: IAMALIVE/BUSY events, per-cycle PTT counts, raw data-socket hex bytes, periodic link-state summaries

🔊 Audio System Overhaul

  • Audio API filter (defaults to MME, matches VARA FM) — device pickers now show one row per physical device instead of 3-4 duplicates across Windows audio APIs
  • "Show all" toggle for advanced users who want the full list
  • Always-on RX level meter on the Settings tab — see audio levels live without starting receive
  • TX audio TX levels honored correctly — matches Send Beacon's proven pattern for messages sent via RF

⭐ Device Aliases (new)

Right-click any RX / TX / PTT / GPS device combo → give it a friendly name.

  • Right-click → Rename / Clear alias / Copy device name
  • Display format: ⭐ DigiRig RX · 1: USB Audio CODEC [MME] 44100Hz 2ch
  • Aliases persist across restarts in pytnc_settings.json
  • Audio device selections now saved by name+API — surviving Windows device renumbering when USB ports change

💨 Air Quality Index (AQI) — new API

First working environmental monitor. Built against the June 2026 AirNow API (/aq/forecast/current/), so it won't break when AirNow retires the legacy endpoints on September 30, 2026.

  • Fetches current AQI forecast for your beacon location
  • Colored EPA badge on the map at your position (Good / Moderate / USG / Unhealthy / Very Unhealthy / Hazardous)
  • Status label shows AQI 56 · Moderate · PM2.5 · ⚠️ Action Day
  • Hourly auto-refresh with manual 🔄 refresh button
  • Full popup with pollutant, reporting area, forecast agency, and discussion narrative
  • Rate-limit safe (24 requests/day per user vs AirNow's 500/hour cap)

🏗 Layout Changes

  • APRS tab: TX Log moved to bottom of left panel (fills remaining vertical space); right panel is now Symbol Picker (½) + APRS Messaging (½)
  • VARA FM tab: mirrors the same layout — VARA log at bottom-left, chat on right
  • VARA tab log: small 🗑️ Clear button now sits top-right of the log (was a wide button below)

🐛 Bug Fixes

  • VARA REGISTERED no longer flips link state to True — was causing false "already linked" errors after daemon connect. Only CONNECTED <src> <dst> marks a real P2P link now.
  • Removed erroneous auto-CONNECT on incoming RING — was colliding with VARA's LISTEN-ON acceptance and breaking handshakes. VARA handles acceptance internally.
  • MYCALL / CONNECT source mismatch fixed — _vara_chat_link now uses the exact MYCALL string that was registered with VARA, preventing endless-retransmit loops when SSID differs between UI callsign field and registered MYCALL.
  • VARA TX-indicator error no longer aborts sends — cosmetic indicator wrapped in try/except so chat send always completes.
  • Old obsolete setTabText(2, ...) writes removed — was writing "💬 Messages" over the Info tab (leftover from a previous refactor).
  • Placeholder methods replaced with working implementations — _vara_send_chat, _toggle_aqi_monitor, _rx_toggle_aqi, _fetch_aqi_data were all referenced-but-undefined; would have crashed on click.
  • _load_conversations() added — previously missing, so restored APRS messages weren't loading from disk.

⚙️ Technical

  • New JSON files: pytnc_conversations.json (APRS messaging), pytnc_vara_chat.json (VARA chat per-remote)
  • New settings keys: device_aliases, audio_preferred_api, audio_show_all_apis, settings_rx_audio_key, settings_tx_audio_key, audio_device_key, tx_device_key
  • New dependencies: none — all built on existing sounddevice, PyQt6, requests, scipy
  • Backward-compatible with v0.1.7-beta settings files (new keys default sensibly if absent)
  • Version: main.py and pytnc_config.py both bumped to 0.1.8-beta

📻 Verified Working (Test Setup)

FT-991A + DigiRig on rear DATA port (Pin 5), 1200-baud APRS RF TX/RX working end-to-end with:

  • TX Level 8%, RX Gain 0.1x (typical for narrowband packet through DigiRig)
  • Menu 070 = REAR, 071 = DAKY, 079 = 1200

VARA chat verified working via FT5 ↔ FT-991A in wide/9600 mode with Pin 5 wiring.

🙏 Acknowledgments

Big session, big release. Sorry for the delay, was working all summer...
I will start a user account in the next version so I can keep track of the amount of actual users.
prbably start another tab for Mail in varafm , a winlink kind of version...
more to come

73 de KO6IKR, Belgium, Los Angeles