github francescopace/espectre 3.0.0-rc2
v3.0.0-rc2 - Signed firmware, CSI capture controls, and standalone SDK builds

latest release: snapshot
4 hours ago

Highlights

  • Verify browser downloads with signed catalogs; Native and ESPHome require signed OTA updates.
  • Build all first-party frontends against extracted SDK bundles through ESPECTRE_SDK_ROOT.
  • Select CSI capture profiles at build time and try experimental wifi_raw traffic on supported chips.
  • Read selected diagnostics over Direct HTTP and MQTT, including frontend loop timing.

Firmware and sensing

  • Native OTA uses the shared firmware catalog; rolling firmware and SDK manifests use channel names.
  • Reject invalid CSI and report stale sensing as unavailable, preserving raw CSI framing.
  • Add auto, lltf, and ht-vht capture profiles; 5 GHz detection remains uncharacterized. See CSI.md.
  • wifi_raw requires auto or lltf and is disabled on ESP32-C6; ping remains the default.
  • Allow custom IPv4 destinations for internal traffic generators. See SDK.md.
  • Default station TX rates to 6.5 Mbps on classic ESP32 and Auto elsewhere, independently of sensing.
  • Resume CSI after reassociation or roaming with retained IPv4 state, without requiring another GOT_IP event.
  • Pin CPU clocks per target, reclaim Native IRAM, and save 6 KiB in the C++ raw CSI queue.

SDK and diagnostics

  • Derive SDK versions from packaged metadata or integrator overrides, independently of firmware versions; missing or incomplete metadata uses 0.0.0.
  • Move Improv Serial support outside the SDK and share command validators with ESPHome controls.
  • Micro-ESPectre Direct validates JSON and parameters; non-empty bodies require the JSON media type.
  • Share csi_hw_error_pps across C++ and MicroPython, and expose C++ frontend loop duration as loop_time_ms.

Web tools, builds, and maintenance

  • Show the newest Release or Preview firmware on the home badge, and suggest replacement routes on 404 pages.
  • Reduce benchmark HTTP traffic, recover stale SSE readiness, and report setup failures with diagnostic evidence.
  • Update ESPHome to 2026.9.0, host dependencies, and website packages, including the Rollup security fix.
  • Add dependency audits and quality reports; block releases on license violations, scanner failures, and applicable high, critical, or unscored CVEs.
  • Store build packages, caches, and audit output under .cache/.

Breaking changes and migration

  • Diagnostics without fields return a catalog; use explicit fields or ["*"] for values. Upgrade clients and firmware together. See API.md.
  • OTA services, version comparison, release catalogs, and OTA types move from the SDK runtime to shared frontend code.
  • Replace RuntimeFrontendController::quiesce_for_ota() with quiesce(); replace espectre_firmware_version() calls by supplying the application version through runtime interfaces.
  • Remove RuntimeDiagnosticsSample::csi_classified_pps and csi_provenance_rejected_pps, plus diagnostics csi_classified_total and csi_estimate_length_mismatch_total.
  • Remove TemporalCsiSampler counters duplicate_packets, missing_timestamp_packets, and gap_resets.
  • Convert CONFIG_ESPECTRE_WIFI_TX_RATE_MBPS overrides to strings "0", "6", or "6.5", or remove them to adopt target defaults.
  • Update saved CONFIG_ESPECTRE_DIRECT_HTTPD_TASK_PRIORITY overrides to adopt the new default of 1.
  • Rebuild and flash Micro-ESPectre firmware before deploying the application, which now requires espectre_native_wifi.
  • Use USB when switching between unsigned personal builds and signed official firmware. Matter still has no OTA. See SETUP.md.

Don't miss a new espectre release

NewReleases is sending notifications on new releases.