Skip to content

docs: Add extraction plan for ESP32C3 TX Backpack standalone project#12

Open
snokvist wants to merge 2 commits intomasterfrom
claude/extract-usb-tx-backpack-hDLcg
Open

docs: Add extraction plan for ESP32C3 TX Backpack standalone project#12
snokvist wants to merge 2 commits intomasterfrom
claude/extract-usb-tx-backpack-hDLcg

Conversation

@snokvist
Copy link
Copy Markdown
Owner

@snokvist snokvist commented May 1, 2026

Summary

This PR adds a comprehensive extraction plan document that outlines the strategy for converting the ESP32C3_TX_Backpack_via_USB environment from the upstream ELRS Backpack repository into a standalone PlatformIO project.

Key Changes

  • New document: docs/extraction_plan.md (289 lines)
    • Complete inventory of source files, libraries, and dependencies actually used by the USB TX backpack environment
    • Detailed categorization of upstream-shared code vs. Waybeam-only additions
    • Identification of dead code (AAT/HeadTracker/Fusion modules) that can be safely excluded
    • Two viable extraction approaches (copy-and-trim vs. greenfield)
    • Phased implementation plan with 5 phases, each producing a buildable firmware
    • Backporting strategy for future upstream changes
    • Open questions and effort estimates

Notable Details

The document provides:

  • Inventory breakdown: ~3,900 LOC across source, libraries, headers, and build helpers
  • Waybeam-specific modifications: Identified in 6 files (wired CRSF, OLED dashboard, passthrough mode, MSP opcodes, button gestures, config persistence)
  • Build pipeline: Documents the Python helper scripts and HTML assets required for WiFi OTA functionality
  • Backporting guidance: Clear touch-points for integrating future upstream TX-backpack fixes while preserving Waybeam customizations
  • Risk mitigation: Recommends Phase 0-2 (fork + strip + collapse) as a low-risk initial step with hardware verification before proceeding to cleanup phases

This document serves as a reference for executing the extraction and maintaining the standalone project long-term.

https://claude.ai/code/session_01LWjgKdbNQcgMDmynteDXBj

…ni project

Inventory of what ESP32C3_TX_Backpack_via_USB actually links (src/, lib/,
external deps, build helpers) plus a phased plan to split it out and a
backport recipe for picking up future upstream TX-backpack fixes.

Key finding: AAT/HeadTracker/Fusion/QMC5883L are all dead code in this env
(guarded by AAT_BACKPACK, defined only in targets/aat.ini), so the extraction
surface is ~3.9 KLOC rather than the ~11 KLOC of the full repo.
…ermini-projects)

Phases 0-3 of Option A were executed against snokvist/esp32-supermini-projects;
the standalone project now lives at projects/tx-backpack-usb/ in that repo.
Add a Status banner pointing at the destination PR so future readers know
this doc is historical.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@snokvist
Copy link
Copy Markdown
Owner Author

snokvist commented May 1, 2026

Plan executed — see snokvist/esp32-supermini-projects#24 for the standalone project. Extracted from this repo at base commit 4b2fd92. Verified pio run produces firmware.bin within 80 bytes of the ESP32C3_TX_Backpack_via_USB baseline.

Pushed a follow-up commit to this PR adding a Status banner to the plan doc so it's clear it's historical record.

Phases 4-5 (further flag cleanup, release tag, deprecating the USB env in this repo) deferred to a follow-up — open a new PR when ready.

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.

2 participants