Skip to content

Releases: SilentServices/PocketDAPNET

PocketDAPNET v0.7.2-rc1

Choose a tag to compare

@SilentServices SilentServices released this 26 Sep 18:52

PocketDAPNET v0.7.2-rc1

Release candidate focused on robust multi-batch POCSAG reception.

Fixed

  • Long alphanumeric POCSAG pages are no longer truncated at the first 16-codeword batch.
  • SX1278 RSSI sampling during pending pages uses getRSSI(false, true), preventing RSSI reads from stopping Direct-RX after the first batch.
  • Continuation batches are collected across POCSAG frame-sync boundaries.
  • PocketDAPNET records the exact page-end boundary and trims any bytes received after the terminator before handing the buffer to RadioLib.
  • This fixes both observed frame-dependent cases:
    • frame-0 RICs truncating at roughly 42 characters;
    • frame-7 RICs returning only the first two characters.
  • Existing protection against the RadioLib Direct-RX watchdog freeze remains in place.

Diagnostics

Verbose [POCSAG RAW] codeword dumps are disabled by default (POCKETDAPNET_POCSAG_RAW_DEBUG=0). They can be enabled temporarily in include/app_info.h when diagnosing RX edge cases.

Verification

Verified with a 48-character page spanning multiple batches on both a frame-0 RIC and frame-7 RIC. The complete message was decoded without trailing garbage.

Build

  • Version: 0.7.2-rc1
  • Build ID: 20260926-05

PocketDAPNET v0.7.1

Choose a tag to compare

@SilentServices SilentServices released this 19 Sep 12:33

PocketDAPNET v0.7.1

PocketDAPNET v0.7.1 adds event-driven receive integration for Home Assistant and other local automation systems while retaining the stable POCSAG RX/TX, DAPNET, persistent history and web-security behavior introduced in v0.7.0.

Highlights

  • Optional outbound RX webhook integration.
  • Only configured RIC subscriptions are forwarded; debug-all-RIC traffic is never pushed externally.
  • Dedicated bounded FreeRTOS webhook worker to keep slow HTTP endpoints away from the main RX/web loop.
  • Webhook delivery counters and last HTTP result available in /status.
  • Atomic webhook counters for safe cross-task statistics and warning-free builds.
  • PlatformIO pinned to pioarduino 55.03.38-1 with min_spiffs.csv for sufficient application space and LittleFS history storage.
  • Complete Home Assistant setup guide with webhook automation, RIC filtering, choose examples and curl testing.

Home Assistant

See docs/HOME_ASSISTANT.md.

PocketDAPNET sends JSON events to a Home Assistant webhook immediately after a subscribed POCSAG page is decoded. Delivery is best-effort and uses a bounded RAM queue so Home Assistant cannot block the radio receive loop.

Security

  • Webhook delivery is disabled by default.
  • The webhook URL is treated as a secret and masked in PocketDAPNET configuration views.
  • v0.7.1 accepts local http:// webhook destinations only; it does not bypass TLS certificate verification.
  • Use a trusted LAN or VPN and keep Home Assistant webhook IDs private.

Upgrade notes

Existing v0.7.0 NVS configuration and persistent message histories remain in place during a normal firmware update. The new RX webhook integration is disabled until explicitly configured and enabled.

PocketDAPNET v0.7.0

Choose a tag to compare

@SilentServices SilentServices released this 18 Sep 14:08

PocketDAPNET v0.7.0

This release builds on the verified v0.6.9 radio/DAPNET baseline and adds security, automation and long-runtime stability improvements.

Highlights

  • HTTP Basic Authentication for the complete Web UI.
  • First-login credentials admin / pocketdapnet; RF TX remains blocked until the password is changed.
  • Optional authenticated POST /api/send bearer-token API with input validation and rate limiting.
  • Local RIC-8 station-identification fallback, only while DAPNET operation is enabled.
  • Main-loop watchdog diagnostics and retained health-stage information across watchdog resets.
  • POCSAG Direct-RX fix that freezes the SX1278 Direct Mode producer before reading and discards incomplete non-32-bit-aligned tails, preventing the observed RadioLib PagerClient::readData() watchdog freeze.
  • Persistent bounded histories for the last 30 RX, TX and DAPNET-handled messages.
  • Centralized HTML/JSON escaping and input validation.
  • CSRF protection for state-changing Web UI actions.
  • Security/no-cache headers including Pragma: no-cache.
  • Factory reset now clears both NVS configuration and persistent history.
  • Build identifier exposed in the Web UI and /status.

API

See docs/API.md for the send API, authentication, validation rules, rate limit and status codes.

Upgrade notes

Existing NVS configuration is retained during a normal firmware update. Persistent histories begin empty the first time v0.7.0 creates its LittleFS history store. TX Inhibit and the default-password safety interlock remain authoritative.

PocketDAPNET v0.6.9

Choose a tag to compare

@SilentServices SilentServices released this 15 Sep 09:08

PocketDAPNET v0.6.9

Verified RF-calibration release.

Highlights

  • Clarifies the difference between RF center frequency, oscillator correction and POCSAG FSK deviation.
  • Keeps TX oscillator correction at a neutral 0.000000 MHz default.
  • TX diagnostics now show the programmed center and expected low/high FSK tones.
  • Documents a measurement-based calibration procedure using the midpoint of both tones.
  • Retains the v0.6.8 DAPNET slot-time budget check and detailed TX diagnostics.

Verified behavior

  • Manual POCSAG messages were decoded successfully at 1200 baud for multiple RIC ranges when the RF center was correctly calibrated.
  • DAPNET-originated queued messages were transmitted in assigned slots and decoded successfully by external POCSAG monitoring tools.

Important calibration note

The standard POCSAG shift of 4500 Hz means ±4.5 kHz around the center frequency. It must not be entered as a +0.0045 MHz oscillator correction.