Skip to content

feat(sim): add Burning Man DCR/DTP scenario#78

Draft
Komzpa wants to merge 32 commits into
meshtastic:masterfrom
Komzpa:codex/pr33-burningman-on-dcr-dtp
Draft

feat(sim): add Burning Man DCR/DTP scenario#78
Komzpa wants to merge 32 commits into
meshtastic:masterfrom
Komzpa:codex/pr33-burningman-on-dcr-dtp

Conversation

@Komzpa
Copy link
Copy Markdown
Contributor

@Komzpa Komzpa commented May 5, 2026

Summary

This is the Burning Man-specific remainder from stale PR #33, rebased onto the newer radio-policy stack instead of carrying the old monolithic patch forward.

The old PR #33 mixed several unrelated ideas:

  • modem preset / coding-rate cleanup: split into the firmware-style preset and DCR work;
  • radio/link-budget plumbing: split into the current RF/link-model/clutter/terrain stack;
  • dynamic coding rate and dynamic TX power experiments: split into the draft DCR/DTP PRs;
  • reusable PR33 helpers: split into refactor(sim): reuse PR33 link-budget helpers #77 where they are still generally useful;
  • Burning Man-specific simulation logic: kept here as a draft follow-up because it depends on the DCR/DTP experiments.

What this PR adds on top of #77:

  • burningManSim.py, a Burning Man scenario runner with router/client placement, clutter, environmental attenuation, and DCR/DTP toggles;
  • per-node TX power support so scenario nodes can model routers and handheld clients with different base power;
  • tests for per-node TX power and a tiny Burning Man smoke-case guard.

I deliberately did not carry over PR #33's old lib/signal.py: it was unused in the original branch and now duplicates the newer shared lib/link_model.py path with older dict/mock-node APIs.

Stack / review note

Draft because this sits at the end of the experimental queue. The useful generic pieces should be reviewed before this:

  1. DCR policy (feat(sim): add dynamic coding rate policy #71)
  2. DTP policy (feat(sim): add dynamic tx power policy #72)
  3. reusable PR33 helpers (refactor(sim): reuse PR33 link-budget helpers #77)
  4. this Burning Man scenario

The diff against master will look large until the lower stack lands. The actual delta over codex/pr33-remaining-optimizations is intentionally small: burningManSim.py, per-node TX power plumbing, and tests.

Validation

  • /home/kom/proj/lora/Meshtasticator/.venv/bin/python -m unittest discover -s tests -v -> 170 tests OK
  • git diff --check
  • /home/kom/proj/lora/Meshtasticator/.venv/bin/python burningManSim.py 10 --simtime-seconds 5 --period-seconds 1 --dcr --dtp --phy-loss-model --capture-collision-model
    • produced non-empty simulation output, including DCR CR counts and DTP power histogram

@Komzpa Komzpa force-pushed the codex/pr33-burningman-on-dcr-dtp branch from e5376ca to c8a26b3 Compare May 5, 2026 20:12
@Komzpa Komzpa force-pushed the codex/pr33-burningman-on-dcr-dtp branch from c8a26b3 to c45de0b Compare May 5, 2026 20:17
@Komzpa Komzpa force-pushed the codex/pr33-burningman-on-dcr-dtp branch from c45de0b to 9b2b4b8 Compare May 6, 2026 07:06
@Komzpa Komzpa force-pushed the codex/pr33-burningman-on-dcr-dtp branch from 9b2b4b8 to 97a6176 Compare May 14, 2026 13:57
@Komzpa Komzpa force-pushed the codex/pr33-burningman-on-dcr-dtp branch from 97a6176 to 340d12d Compare May 15, 2026 20:50
@Komzpa Komzpa force-pushed the codex/pr33-burningman-on-dcr-dtp branch from 340d12d to ab78d06 Compare May 15, 2026 21:01
@Komzpa Komzpa marked this pull request as ready for review May 17, 2026 17:25
@Komzpa Komzpa marked this pull request as draft May 17, 2026 17:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant