diff options
| author | Your Name <you@example.com> | 2026-05-28 23:52:04 +0530 |
|---|---|---|
| committer | Your Name <you@example.com> | 2026-05-28 23:52:04 +0530 |
| commit | 5e603764266568084eaae9ec0e0b130e7f233402 (patch) | |
| tree | 0a480d2ba480491957bb6d09f77ada7495325e45 /PLAN_EXECUTION.md | |
| parent | 8f18b7ac6cf65a1de7f2ebddb19de9070c3b9657 (diff) | |
docs: update all plans with current board inventory and smoke test results
- Board A (ttyACM1): USB flash failing, cable issue
- Board B (ttyACM0): Flashed esp32-tollgate, smoke test 6/9 pass
- NerdAxe (ttyACM2, fan-damaged): TOLLGATE=1 flashed, crash loop in APIsFetcher
- Working NerdAxe (ttyACM1, 80:b5:4e:c7:7a:d0): Can't flash (USB brownout)
- Test mint intermittently down (TLS error)
- Firewall not blocking unpaid clients (needs investigation)
Diffstat (limited to 'PLAN_EXECUTION.md')
| -rw-r--r-- | PLAN_EXECUTION.md | 140 |
1 files changed, 140 insertions, 0 deletions
diff --git a/PLAN_EXECUTION.md b/PLAN_EXECUTION.md new file mode 100644 index 0000000..e1f4716 --- /dev/null +++ b/PLAN_EXECUTION.md | |||
| @@ -0,0 +1,140 @@ | |||
| 1 | # Execution Plan — TollGate + NerdQAxePlus Integration | ||
| 2 | |||
| 3 | **Created:** 2026-05-28 | ||
| 4 | **Updated:** 2026-05-28 | ||
| 5 | **Status:** In Progress — Smoke testing phase | ||
| 6 | |||
| 7 | --- | ||
| 8 | |||
| 9 | ## Locked-In Decisions | ||
| 10 | |||
| 11 | | Decision | Choice | | ||
| 12 | |----------|--------| | ||
| 13 | | esp32-tollgate GitHub repo | `OpenTollGate/tollgate-esp32` | | ||
| 14 | | esp32-tollgate default branch | `master` | | ||
| 15 | | NerdQAxePlus GitHub repo | `c03rad0r/ESP-Miner-NerdQAxePlus` | | ||
| 16 | | NerdQAxePlus branch | `develop` | | ||
| 17 | | Target boards | Board A + Board B + NerdAxe | | ||
| 18 | | Board variant | `NERDQAXEPLUS` for dev boards, `NERDAXE` for BM1366 hardware | | ||
| 19 | | Nostr remotes | `ngit-dev` (relay.ngit.dev) + `gitnostr` (gitnostr.com) | | ||
| 20 | | Stratum username fallback | Option A: `#ifdef TOLLGATE` uses `CONFIG_STRATUM_USER` | | ||
| 21 | | Component version | v1.3.0 | | ||
| 22 | | ASIC-less testing | Safe — TollGate WiFi/payment/portal work without ASIC | | ||
| 23 | | Upstream WiFi | `EnterSSID-2.4GHz` / `c03rad0r123!` | | ||
| 24 | |||
| 25 | ## Board Inventory | ||
| 26 | |||
| 27 | | Board | Port | MAC | Hardware | Status | | ||
| 28 | |-------|------|-----|----------|--------| | ||
| 29 | | A | `/dev/ttyACM1` | `94:a9:90:2e:37:7c` | ESP32-S3 dev | USB flash failing, cable issue | | ||
| 30 | | B | `/dev/ttyACM0` | `fc:01:2c:c5:50:50` | ESP32-S3 dev | Flashed, needs NVS config + smoke test | | ||
| 31 | | NerdAxe | `/dev/ttyACM2` | `80:b5:4e:c7:79:88` | BM1366 ASIC (fan-damaged) | Needs flash + smoke test | | ||
| 32 | |||
| 33 | **Important:** Ports shift on USB replug. Always verify with `esptool --port <port> chip-id`. | ||
| 34 | |||
| 35 | ## Current State | ||
| 36 | |||
| 37 | | Item | Value | | ||
| 38 | |------|-------| | ||
| 39 | | esp32-tollgate `master` | HEAD `10c69b0` (pushed to GitHub + relay.ngit.dev) | | ||
| 40 | | esp32-tollgate `feature/tollgate-core-v2` | HEAD `8f18b7a` v1.3.0 (pushed to GitHub + relay.ngit.dev) | | ||
| 41 | | NerdQAxePlus `develop` | HEAD `a2fd1fa6` (9 TollGate commits rebased on upstream, pushed to GitHub) | | ||
| 42 | | IDF Component Registry | v1.2.0 live, v1.3.0 pending upload | | ||
| 43 | | Unit tests | 29 tests, all pass | | ||
| 44 | | orangesync.tech | Entirely offline | | ||
| 45 | |||
| 46 | --- | ||
| 47 | |||
| 48 | ## Step 1: Stratum Username Fallback ✅ | ||
| 49 | |||
| 50 | - [x] 1a-c. Implemented, committed, verified | ||
| 51 | |||
| 52 | ## Step 2: Add Nostr Remotes (esp32-tollgate) ✅ | ||
| 53 | |||
| 54 | - [x] 2a-f. `ngit-dev` and `gitnostr` added, pushed to relay.ngit.dev | ||
| 55 | |||
| 56 | ## Step 3: Add Nostr Remotes (NerdQAxePlus) ✅ | ||
| 57 | |||
| 58 | - [x] 3a-d. Remotes added, push to nostr deferred (repo too large) | ||
| 59 | |||
| 60 | ## Step 4: Push esp32-tollgate to GitHub ✅ | ||
| 61 | |||
| 62 | - [x] 4a-d. Both branches pushed, default set to `master` | ||
| 63 | |||
| 64 | ## Step 5: Rebase + Push NerdQAxePlus ✅ | ||
| 65 | |||
| 66 | - [x] 5a-g. 9 TollGate commits rebased onto upstream `4b8f3225`, pushed to GitHub | ||
| 67 | |||
| 68 | ## Step 6: Bump tollgate_core to v1.3.0 ✅ | ||
| 69 | |||
| 70 | - [x] 6a-f. Bumped, committed, pushed, rsynced to NerdQAxePlus | ||
| 71 | |||
| 72 | ## Step 7: Re-publish to IDF Component Registry (PENDING) | ||
| 73 | |||
| 74 | - [ ] 7a. `compote component pack --path components/tollgate_core` | ||
| 75 | - [ ] 7b. `compote component upload --name tollgate_core --namespace c03rad0r` | ||
| 76 | - [ ] 7c. Verify v1.3.0 on components.espressif.com | ||
| 77 | |||
| 78 | ## Step 8: Update Docs ✅ | ||
| 79 | |||
| 80 | - [x] 8a. PLAN_BITAXE_FIXES.md updated with checklist | ||
| 81 | - [x] 8b. REMOTES.md updated with current state | ||
| 82 | - [x] 8c. PLAN_EXECUTION.md updated | ||
| 83 | |||
| 84 | ## Step 9: Build NerdQAxePlus ✅ | ||
| 85 | |||
| 86 | - [x] 9a. `TOLLGATE=1 BOARD=NERDQAXEPLUS idf.py build` passes | ||
| 87 | - [x] 9b. `TOLLGATE=1 BOARD=NERDAXE idf.py build` — needs verification for NerdAxe | ||
| 88 | |||
| 89 | ## Step 10: Flash Boards | ||
| 90 | |||
| 91 | - [ ] 10a. **NerdAxe** (`/dev/ttyACM2`, MAC `80:b5:4e:c7:79:88`): Flash with `BOARD=NERDAXE` | ||
| 92 | - [ ] 10b. **Board B** (`/dev/ttyACM0`, MAC `fc:01:2c:c5:50:50`): Already flashed, needs NVS config | ||
| 93 | - [ ] 10c. **Board A** (`/dev/ttyACM1`, MAC `94:a9:90:2e:37:7c`): Blocked by USB issue | ||
| 94 | |||
| 95 | ## Step 11: Configure NVS on NerdAxe | ||
| 96 | |||
| 97 | - [ ] 11a. Connect to NerdAxe AP, note IP | ||
| 98 | - [ ] 11b. `curl -X PATCH http://<IP>/api/system -d '{"ssid":"EnterSSID-2.4GHz","wifiPass":"c03rad0r123!"}'` | ||
| 99 | - [ ] 11c. `curl -X PATCH http://<IP>/api/system -d '{"stratumUser":"bc1q7n70rumyv6lvu8avpml0c3uggvssfu52egum3q.nerdqaxe"}'` | ||
| 100 | - [ ] 11d. `curl -X POST http://<IP>/api/system/restart` | ||
| 101 | - [ ] 11e. Wait for reboot, verify upstream WiFi connection | ||
| 102 | |||
| 103 | ## Step 12: Smoke Test NerdAxe | ||
| 104 | |||
| 105 | - [ ] 12a. AP visible | ||
| 106 | - [ ] 12b. Connect to AP | ||
| 107 | - [ ] 12c. Captive portal auto-redirects | ||
| 108 | - [ ] 12d. Portal page renders (price, mint, form) | ||
| 109 | - [ ] 12e. Generate token: `cashu -h https://testnut-nutshell.mints.orangesync.tech send --legacy 21` | ||
| 110 | - [ ] 12f. Submit token → payment accepted | ||
| 111 | - [ ] 12g. Internet passthrough: `curl -I https://google.com` | ||
| 112 | - [ ] 12h. `GET /api/tollgate/status` | ||
| 113 | - [ ] 12i. `GET /api/tollgate/wallet` | ||
| 114 | - [ ] 12j. `GET /api/tollgate/config` | ||
| 115 | - [ ] 12k. `POST /api/tollgate/grant` | ||
| 116 | - [ ] 12l. Disconnect + reconnect → internet blocked | ||
| 117 | - [ ] 12m. `GET /api/system/info` — check ASIC detection | ||
| 118 | - [ ] 12n. Serial monitor: check ASIC init output, hashrate | ||
| 119 | |||
| 120 | ## Step 13: Smoke Test Board B (if time permits) | ||
| 121 | |||
| 122 | - [ ] 13a-13n. Repeat Step 12 on Board B | ||
| 123 | |||
| 124 | ## Step 14: Final Commit + Push | ||
| 125 | |||
| 126 | - [ ] 14a. Commit doc updates | ||
| 127 | - [ ] 14b. Push esp32-tollgate to GitHub + nostr | ||
| 128 | - [ ] 14c. Push NerdQAxePlus to GitHub | ||
| 129 | |||
| 130 | --- | ||
| 131 | |||
| 132 | ## Risks | ||
| 133 | |||
| 134 | | Risk | Mitigation | | ||
| 135 | |------|------------| | ||
| 136 | | NerdAxe ASIC dead from fan block | TollGate still works ASIC-less; diagnose via serial | | ||
| 137 | | Test mint down | Skip payment test, test everything else | | ||
| 138 | | Board doesn't create AP | Check serial monitor | | ||
| 139 | | `BOARD=NERDAXE` build fails | Use `NERDQAXEPLUS` variant, works ASIC-less | | ||
| 140 | | `compote` CLI syntax changed | Check `compote --help` before upload | | ||