Standalone ESP-IDF captive portal component. Registers all standard OS captive-portal detection endpoints on an esp_http_server instance and redirects clients to the device's built-in web interface with a single function call. Supports iOS, macOS, Android, Windows, Firefox, and Chrome.
CLI API is a component for ESP-IDF that provides a simple and efficient way to create command-line interfaces (CLI) for ESP32-based applications. It allows developers to easily define and manage CLI commands, making it easier to interact with the device and perform various tasks through a terminal interface.
blifi: BLE-based Wi-Fi provisioning for ESP32. Provision Wi-Fi credentials over an encrypted BLE session (X25519 + AES-256-GCM, gated by a Proof-of-Possession) instead of a hotspot/captive portal. Includes a NimBLE GATT transport, Wi-Fi station manager with NVS persistence and retry/backoff, and an optional reset-pin factory reset. Companion Flutter package: `blifi` on pub.dev.
Simple BLE WiFi Provisioning Component for ESP32. Enables secure WiFi credential provisioning via Bluetooth Low Energy with ECDH key exchange and AES-GCM encryption. Supports BLE-only mode for WiFi-less ESP32 variants.
A TDMA MAC layer for ESP-NOW on ESP32-S3 with Adaptive Frequency Hopping (AFH). Provides deterministic time-slotted access, a beacon-broadcast slot step that nodes use to derive their own offsets, CMAC-authenticated beacons with replay protection, acknowledged uplink delivery with stop-and-wait retransmission, message fragmentation and reassembly across slots, a unicast downlink payload channel towards individual nodes, join-by-request so a node can be assigned an ID instead of being provisioned with one, a network-wide TX suspension gate for sharing the radio with another stack, and automatic channel hopping between 2.4 GHz channels 1/6/11 driven by packet error rate with RSSI as a veto. Provisioning stays out of the MAC layer: the application supplies the node ID, gateway MAC and keys through a channel of its own (NVS, NFC mailbox, console). Payload-agnostic: the user defines and owns all application data structures.
This component detects a double reset (two resets within a short time window) and exposes the result through a small C++ API. A typical use case is to let an end user double-tap reset to enter a special mode (Wi-Fi provisioning, safe mode, configuration portal).