Repository navigation
Releases
Graywolf RXT test build 416ee322
Adds APRS reception and transmission through an existing AGW Packet Engine server, with radio-port selection and automatic reconnection.
Install and restart Graywolf, then reload its web page. On the KISS page, add a TCP Client and select AGWPE (APRS client). Enter the server address, TCP port (normally 8000) and AGWPE radio port (1-16). Use 127.0.0.1 when both applications run on the same computer.
Enable the TCP/IP application interface in AGWPE and permit the Graywolf computer. Assign a Graywolf APRS channel with external TNC backing, without an audio input device. Enable interface transmission when needed. Use one interface/channel per remote radio port. Existing KISS settings are preserved.
Tests: Go tests, binary protocol fixtures, reconnect race tests, 585 Web tests, browser configuration tests and the Web build pass. DEV still needs to validate with real AGWPE and radio hardware.
Limits: APRS UI frames only. No AGWPE-managed connected packet sessions or AGWPE username/password login. Do not connect to Graywolf's own AGW server.
Documentation: https://github.com/moricef/graywolf/blob/rxt-416ee322/docs/handbook/agwpe.html#client
Base version: 0.14.14
Commit: 416ee32
Graywolf RXT test build 84fe4d11
RXT test build based on Graywolf 0.14.14. Commit: 84fe4d1.
- Improve TM-D700 and TM-D710 initialization and recovery after radio power cycles, USB removal, manual Reconnect and Graywolf restart. Recognize TM-D710P, handle delayed startup replies and restore KISS when the radio returns to command/monitor mode.
- Add serial connection details and a working Reconnect button. Allow changing a serial port to a persistent by-id path without colliding with another saved profile's internal name.
- Fix numeric overlays in compressed APRS positions: transmit 0-9 as a-j and decode them back to digits. This fixes reports such as F6DEV-7 being rejected as Invalid uncompressed location.
After upgrading, restart Graywolf and refresh the browser (Ctrl+F5). Keep the profile matching your radio. Use a persistent by-id serial path on Linux. TM-D700 and TM-D710P profiles select band A: verify its frequency before connecting. Serial baud must match the radio's computer port; radio packet speed is a separate setting. Existing configuration and keys are retained.
Validation: physical TM-D700 and TM-D710P tests covered initialization, reception, radio transmission, power-cycle recovery, USB replug, manual Reconnect and Graywolf restart. Go tests, 585 Web tests and the Web build passed from a clean checkout. Cross-platform packages and SHA-256 checksums verified before publication.
Limits: other D710 variants were not physically tested. The corrected compressed report was generated and sent locally; fresh APRS-IS confirmation remains pending. A completely silent radio reset cannot be detected until the radio produces observable serial data.
Documentation at this commit: Kenwood setup and test results, beacons and overlays.
Graywolf RXT test build 8d41f0ac
RXT test build based on Graywolf 0.14.14. Commit: 8d41f0a.
- Add a free-form Authenticated command field, keeping the five shortcut buttons. Commands use the saved key, persistent counter, signed identity and conversation route. The RF recipient remains separate from the signed identity.
- Validate the command format and complete signed message against the 67-character APRS limit. Oversized input is rejected without consuming a counter.
- Show an explicit unknown-DX indication when station reception data or advertised DX is unavailable.
After upgrading, restart Graywolf and refresh the browser (Ctrl+F5). Existing keys and configuration are retained. In the target conversation's remote-control panel, enter the command alone, without @@# or !RC1.
Validation: Go remote-control/API tests, 585 Web tests and the production Web build passed. Cross-platform packages and checksums verified before publication. The operator validated signed RXT=? and OTA=? queries over RF to GENATX, receiving RXT=ON and OTA NORMAL ARMED=0 PROFILE=0.
Limits: firmware must support the requested command. Signed OTA is supported by iGate experiment/lora-ota at ca82256; PROFILE, FAST and NORMAL setting changes still need radio validation. An APRS ACK alone does not confirm execution. Commands are trimmed and uppercased, start with an ASCII letter, and exclude spaces, colons, braces, pipes and tildes. Up to 41 command characters fit, decreasing as the counter grows. The illustrated PDFs predate the new field; use the updated HTML handbook.
Documentation at this commit: Remote control, protocol and architecture, DX reports.
Graywolf RXT test build d3114df4
RXT test build based on Graywolf 0.14.14, commit d3114df.
Changes
- Station map popups and pinned windows now show Receiver DX from measured RXT links, calculated separately for each receiver. The card includes distance, true bearing, RSSI, SNR, frequency offset, reception time and distinct direct transmitters observed over 30 minutes.
- Relayed receptions use the actual radio transmitter, not the original packet source. DX / Status distance, window and ignored-station settings also apply to receiver DX.
- Stations advertising <IGATE,...> bulletins get a separate iGate report card with their announced counters, DX and reception time. Later position beacons preserve this report.
Setup and limits
Restart Graywolf and refresh the browser after installing. Existing configured JSON streams supply receiver DX automatically; no firmware change is required. Both endpoint positions must be known. Receiver windows start empty after restart and fill with new receptions.
RXT observations may cover only part of a receiver's traffic. Direct-station counts are observed counts; MSG_CNT, LOC_CNT and RF_CNT are not inferred. Receiver DX is passive and does not transmit reports. Legacy /rxt.json polling remains overlay-only.
Advertised iGate reports survive restart when station-history persistence is enabled; wait for the next bulletin after installing.
Validation
Receiver DX was verified on F4MLV-10 with F4INI-10 at 93.8 km. Go race tests for the affected components and station endpoints, 585 Web tests, browser checks and documentation checks passed.
Documentation: https://github.com/moricef/graywolf/blob/d3114df496f03cfe89ecd738bb795e5d4c386120/docs/handbook/dx-status.html
RXT test pre-release. No OCI images are published; GHCR latest is unchanged. Windows is supplied as a ZIP archive without an installer. macOS ARM binaries are cross-compiled and are not runtime-tested on Apple Silicon in this build.
Graywolf RXT test build 1601574e
RXT test build based on Graywolf 0.14.14, commit 1601574.
Changes
- Add DX / Status: direct RF distance and bearing, reception window, station filters and persistent maximum-distance records per channel.
- Add independent status and iGate capability reports, optional DX notifications and directed ?DX / ?IGATE? replies.
- Capability reports include MSG_CNT, LOC_CNT, DIR_CNT and RF_CNT.
- Preserve explicitly disabled beacons when creating them.
Setup
Restart Graywolf and refresh the browser after installing. Existing settings are preserved. For a new setup, verify the station position, then configure the receive channel, output path, distance filter and reports in DX / Status. Report intervals default to 60 minutes; reports and immediate notifications are disabled by default.
Validation and limits
The capability bulletin was verified over RF and on APRS-IS. A real direct RF DX above 30 km remains to be observed. Go race tests, 581 Web tests, documentation checks and isolated browser/TNC2 integration tests passed.
DX excludes relayed packets, Internet positions, objects, items and RXT telemetry. LOC_CNT currently equals DIR_CNT. Heard counters and the current DX window reset on restart; settings and maximum records persist. Kenwood profiles remain unverified on physical radios.
Windows is supplied as a ZIP archive, without an installer.
Documentation: https://github.com/moricef/graywolf/blob/1601574efb41150d06ae765e70e62d6fc9c20350/docs/handbook/dx-status.html
RXT test pre-release. No OCI images are published; GHCR latest is unchanged.
Graywolf RXT test build 157a4056
Improves TM-D700 and TM-D710/G initialization with mode stabilization and an optional RF packet-speed setting.
After selecting PACKET mode, Graywolf waits four seconds before continuing, even if the command prompt appears earlier. This allows firmware to finish restoring its saved settings.
In a model-specific Serial or USB Serial TNC interface, Radio packet speed offers Preserve radio setting / Conserver, 1200, or 9600. This is independent of the PC serial Baud Rate. When a speed is selected, Graywolf applies HBAUD and reads it back before entering KISS. A refusal or mismatch fails initialization and triggers retries.
Existing interfaces default to Preserve: no HBAUD command is sent, and the firmware's restored speed remains in use. Native KISS and the legacy Kenwood profile retain their existing behavior. Restart Graywolf after upgrading and refresh the browser.
Validation passed: late firmware-restore simulations, HBAUD verification and refusal tests, configuration upgrade, API persistence, race checks, browser selection, 581 web tests, and Linux virtual serial ports using the real serial driver. Physical radio validation is still required.
The Linux amd64 modem build is pinned to the glibc 2.35 baseline, with an automated runtime compatibility check, to avoid requiring glibc 2.43 from a newer build runner.
Documentation: Kenwood setup.
Commit: 157a405. Base version: 0.14.14. RXT pre-release for testing. No OCI images; GHCR latest unchanged.
Graywolf RXT test build 9467c561
Adds separate TM-D700 and TM-D710/G initialization profiles, improves Kenwood startup and reconnect handling, and leaves the bearing azimuth field empty until entered.
In a Serial or USB Serial KISS interface in TNC mode, select the exact Kenwood model under TNC initialization. The new profiles verify the model and select PACKET then KISS using different commands. The D710 preserves its configured data band. Existing kenwood settings retain the old sequence under Kenwood legacy; select your model explicitly to use the new behavior. Frequency, radio packet speed and transmit permission are not configured by these profiles.
Command refusals, rejected RESTART commands and serial disconnections during startup now fail initialization and trigger retries. Early KISS frames are preserved. Connected means the serial session is ready, not that an RF exchange succeeded. Physical radio validation is still required.
Software validation passed: startup states, fragmented replies, invalid acknowledgements, restart refusal, retry, cable-drop reconnection, race checks, and Linux virtual serial ports using Graywolf's real serial driver. No RF hardware was used.
Restart Graywolf after upgrading and refresh the browser. Bearing 0 degrees remains valid when entered explicitly.
Documentation: Kenwood setup.
Commit: 9467c56. Base version: 0.14.14. RXT pre-release for testing. No OCI images; GHCR latest unchanged.
Graywolf RXT test build acaaa358
Fixes CA2RXU signed commands for tactical iGates and preserves the signed identity during partial API updates.
Upgrade and restart Graywolf, then refresh the browser. In Key settings, set RF recipient to the on-air name and signed identity to the iGate's Station Callsign-SSID. Leave the secret blank to preserve the key and counter. Verify the destination conversation's RF route and channel. No firmware update is needed.
API updates: omitted or null signed_target keeps the saved identity; an explicit empty string defaults to the RF recipient. Only secret replacement resets the counter. Existing credentials migrate without changing keys or counters. The radio format is unchanged.
Protocol, migration, API, browser and web tests passed. EcoMode was confirmed on the operator's tactical iGate; other devices require RF validation.
Documentation: English walkthrough, French walkthrough, with PDFs in the handbook.
Commit: acaaa35. Base version: 0.14.14. RXT pre-release for testing. No OCI images; GHCR latest unchanged.
Graywolf RXT test build 636d1ab9
Fixes CA2RXU signed commands rejected with "bad tag" when an iGate uses a Tactical Callsign.
In Messages, open the conversation where the existing key is installed, then choose the lightning-bolt panel and Key settings. Set "RF recipient / Destinataire RF" to the on-air name (for example BURNTX), and "iGate Callsign-SSID (signed identity)" to the iGate's Station Callsign-SSID (for example N7UV). Leave the secret blank and save. The existing key and counter are preserved, and Graywolf opens the RF destination conversation. Verify RF only and the intended LoRa channel before sending. No firmware update is required.
Existing keys are migrated automatically with their previous target as the signed identity. Without a tactical name, no configuration change is needed. Restart Graywolf after upgrading and refresh the browser. The radio command format is unchanged.
Validation: protocol reference vector, database migration, counter preservation, API tests, browser editing and destination navigation, and 581 web tests passed. An EcoMode command was confirmed working on the operator's tactical iGate. Other devices still require their own RF validation. Queued status and an APRS ACK do not prove command execution; check the device response and state.
Documentation: English walkthrough, French walkthrough, with PDFs included in the handbook.
Commit: 636d1ab. Base version: 0.14.14. RXT pre-release for testing. No OCI images; GHCR latest unchanged.
Graywolf RXT test build 96e8b3f2
RXT test build based on Graywolf 0.14.14.
Commit: 96e8b3f.
- Left-click an empty location on Live Map to place a manual operator station. Enter the callsign, choose an APRS symbol and verify or edit the prefilled coordinates.
- Manual stations are saved on the Graywolf server and survive browser reloads and service restarts. They do not transmit beacons on RF or APRS-IS.
- Click a manual station to view its position and locator, add a direction-finding report received by voice, or delete the station. Existing bearing observations remain after the station is deleted.
- The Fixed Points / Manual Stations switch controls their visibility. Existing station and map-feature popups remain available; Ruler mode continues to use clicks for measurement.
- Failed saves retain the form contents for correction or retry.
Upgrade: back up graywolf.db, install the package, restart Graywolf and refresh the browser. Storage is updated automatically. No radio configuration changes are required.
Validation: Go storage/API tests, JavaScript tests, production build and OpenAPI checks passed. A browser test covered placement, saving, bearing entry and reload persistence. Snapshot packages were verified against checksums.txt.
Limits: manual stations are map annotations; they do not track an operator's movement automatically. Other browsers reload the current set when opening the map. Direction-finding estimates remain experimental. Windows ships as a portable ZIP, without an installer. No OCI images or GHCR latest update.
Documentation: Live Map handbook at this commit.