Skip to content

Feature Request: Advanced Hex Transmit Tool (Raw Binary Uplink)ย #304

@Tane10

Description

@Tane10

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 localStorage transaction 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!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions