Skip to content

task: repeater preset picker with a Temporary (tempradio) checkbox #662

Closed

Description

@diffwireauto

Child of #647. Depends on #661 for the preset entry itself.

What to build

The repeater settings screen has the same four radio fields and already sends set radio <freq>,<bw>,<sf>,<cr> [verified: repeater_settings_screen.dart:781], but it has no preset picker. Add one, plus a temporary-apply option.

  1. Preset picker on the repeater settings screen that fills frequency, bandwidth, SF and coding rate from the selected preset, reusing the same RadioSettings.presets list the companion screen uses.
  2. Temporary checkbox with an editable duration, default 1440 minutes (owner decision, 2026-09-22):
    • Checked -> tempradio <freq>,<bw>,<sf>,<cr>,<minutes>
    • Unchecked -> the existing set radio <freq>,<bw>,<sf>,<cr>

tempradio is real firmware, verified

  • [verified: CommonCLI.cpp:712-726] tempradio <freq>,<bw>,<sf>,<cr>,<minutes>; validation is freq 150-2500, bw 7-500, SF 5-12, CR 5-8 (the denominator, so 4/5 is 5), minutes > 0. Replies OK - temp params for N mins.
  • [verified: simple_repeater/MyMesh.cpp:1026-1034] It self-reverts: applies after a 2 s delay so the CLI reply gets out first, then schedules a revert at 2 s + minutes. Nothing persists.
  • It lives in the shared CLI, so repeaters and room servers have it. Companions do not — no CLI there [verified: companion_radio/MyMesh.cpp:116-117].

Design decisions already made (owner, 2026-09-22)

  • tempradio is a checkbox on apply, not a property of the preset. Presets stay pure parameters.
  • Duration default 1440, editable.
  • TX power is not part of this. set radio does not carry it; TX power is a separate command on repeaters.

Acceptance

  • Selecting a preset on the repeater screen fills the four fields.
  • Checked + duration sends a valid tempradio and the repeater replies OK - temp params for N mins.
  • Unchecked sends set radio as before; existing behavior unchanged.
  • Coding rate is sent as the denominator (4/5 -> 5), matching the firmware range check.
  • Owner validates against a real repeater before push.

Activity

  1. diffwireauto commented on Oct 1, 2026

    @diffwireauto
    MemberAuthor

    Moved under Epic C (#733) as its Temporary-checkbox task (owner-approved structure, 2026-10-01). It now depends on C1 #734 (the remote-node picker) instead of #661: presets come from the catalog (Epic B), not the hardcoded entry. Status: back to Todo.

    Two firmware facts the build must honor [verified: meshcore-firmware simple_repeater/MyMesh.cpp:1026-1034]:

    • tempradio retunes the node 2 s after replying. Send it last in a save, or the commands after it go out on the old frequency.
    • The revert timer is 2000 + mins*60*1000 in int, which overflows past ~35,791 minutes. Cap the duration below that in the UI.

    Agent: MagentaHawk (session 5a8922d6)

  2. diffwireauto commented on Oct 1, 2026

    @diffwireauto
    MemberAuthor

    Starting. Agent: MagentaHawk (session 5a8922d6). tempradio is sent last in the save; duration 1-35791 min (firmware int overflow bound), default 1440.

  3. diffwireauto commented on Oct 1, 2026

    @diffwireauto
    MemberAuthor

    Landed on feat/733-remote-presets as 5a6306c. Checkbox + editable duration (default 1440, 1-35791); tempradio sent last; unchecked sends set radio as before. Tests pin the command strings (CR as denominator), the duration bounds, and the ordering. The live 'OK - temp params for N mins' reply is checked on a real repeater at D1 (#738).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions