Commit Graph

9 Commits

Author SHA1 Message Date
drjones
8121137b68 handshake-capture-c6 v1.0.4: persist captured BSSIDs, PCAP EAPOL recount
- /cap_bssids.txt append on save; handshakeLoadPersistedBssids after SD mount
- Boot order: SD then load file then first WiFi scan (reds match SD)
- Pre-save walk of in-memory PCAP counting EAPOL-Key frames
- SD_AppendLine / SD_ForEachLine; drop g_sd_ready clear on write fail
- README + MUST_DO updates

Made-with: Cursor
2026-03-23 09:35:18 -07:00
drjones
7e93324288 handshake-capture-c6: SPI bus lock, SD v1.0.2 diagnostics, MUST_DO review
- SPI_Bus_Lock: serialize LCD + SD on shared SPI; pause display during SD
- SD_Init after WiFi scan; SD_IsReady gating; serial [SD]/[CAP] diagnostics
- MUST_DO_IMPROVEMENTS.md full firmware review backlog; README link
- Bump HANDSHAKE_FIRMWARE_VERSION to 1.0.2 (header)

Made-with: Cursor
2026-03-21 17:59:45 -07:00
drjones
804e71e175 handshake-capture-c6: production SD gating (SD_IsReady), v1.0.1
- Gate capture on SD_IsReady() after successful SD_Init; avoid false
  'insert SD' when SD.cardType() lies after WiFi on shared SPI with LCD
- SD_Init: LCD CS high, SD.end() on empty card; HandshakeCapture save path
  retries SD_Init before discard
- FAT filename sanitize, discard deadlocks, WPA3 scan labels, docs (README,
  PRODUCTION, IMPROVEMENTS), firmware version 1.0.1

Made-with: Cursor
2026-03-21 01:12:12 -07:00
drjones
4bef28bd83 Improve capture performance: shorter RX lock, PMKID-first save, channel sweep
- Reduce time spent in capture spinlock by snapshotting slot BSSIDs and
  only locking for shared-state updates
- Add PMKID KDE detection to save on EAPOL M1 when present
- Sweep channels with remaining WPA targets instead of camping one channel

Made-with: Cursor
2026-03-17 23:19:58 -07:00
drjones
ec3e0449a1 Add live capture visuals: progress bar, blinking active targets, per-network state
- Progress bar under status line shows captured/total WPA targets
- Three visual states per network:
  Green (pending) -> Orange blinking (active target) -> Red + checkmark (captured)
- Active targets show live info: client count during observation,
  EAPOL progress during capture (e.g. " NetworkName 1/2")
- Status line shows channel number and phase context
- LVGL symbols: lightning bolt for active, checkmark for captured
- Title updated to " Capture" with WiFi icon

Made-with: Cursor
2026-03-17 22:25:46 -07:00
drjones
09f1a7969e Clean up repo: remove vendor dirs, stray images, simplify gitignore
Made-with: Cursor
2026-03-17 22:12:56 -07:00
drjones
50338a6d5c Implement 4-phase capture architecture: observe, target, capture
- Phase 2 (Observation): passive client mapping from data frame headers,
  ClientInfo array per slot (up to 8 clients), 5s observation window
- Phase 3 (Targeting): unicast deauth burst to each discovered client
  instead of broadcast, reason code 7, 5 frames per client
- Phase 4 (Capture): timeout + retry loop cycles back to observation
  to refresh stale client list (2 cycles within 30s channel timeout)
- Fix EAPOL detection: compute LLC/SNAP offset from QoS vs non-QoS
  header length, verify AA-AA-03 SNAP prefix, skip protected frames
- Concurrency: portMUX spinlock for callback/main-loop shared state,
  no dynamic alloc in callback, pre-allocated 4KB PCAP buffer per slot
- Phase-aware LCD status display (mapping → capturing → EAPOL count)

Made-with: Cursor
2026-03-17 22:11:41 -07:00
drjones
74236ef884 Remove vendor/reference dirs, add README
Made-with: Cursor
2026-03-17 20:08:56 -07:00
drjones
026f15a4a7 Initial commit: handshake capture firmware for ESP32-C6 1.47" LCD
Made-with: Cursor
2026-03-17 20:07:32 -07:00