-
Notifications
You must be signed in to change notification settings - Fork 230
Description
1. Overview
I am proposing a new diagnostic and operational feature for the TinyGS Local Web Dashboard: the Advanced Hex Transmit tool. It will enable station operators to safely transmit raw binary payloads by inputting a hexadecimal string directly into the local UI.
2. The Problem
Currently, sending payloads via the console or MQTT treats inputs as 8-bit ASCII. This corrupts the byte-alignment required for precise binary packets, meaning users cannot accurately transmit:
- Compiled C-structs for satellite commanding.
- Custom protocol headers (like CCSDS or AX.25) containing non-printable bytes (e.g.,
0x00).
3. Proposed Solution (Phase 1)
I have spec'd out a memory-safe, legally compliant "Fire and Forget" tool.
- Zero-Heap Backend: String-to-byte conversion uses a static buffer on the ESP32 to prevent memory fragmentation.
- Compliance Gatekeeper: Includes a mandatory T&C checkbox and a Callsign-to-Hex converter to help operators ID their stations.
- Audit Logging: Implements a browser-side
localStoragetransaction log (100-entry limit) with JSON export to satisfy regulatory auditing without using ESP32 resources.
4. Interactive Prototype for Review
To make reviewing this proposal as painless as possible, I have built a fully functional frontend prototype of the UI. It runs entirely in the browser (no hardware needed):
๐ Interactive Prototype
5. Full Technical Specifications
I have documented the exact constraints, CCSDS usage examples, and planned C++ architecture in a draft README on my fork here:
๐ Document
I am ready to write the C++ backend (RadioTxManager) and submit the PR, but I wanted to get the maintainers' and community's thoughts on this approach first to ensure it aligns with the project's goals. Let me know what you think!