English | Español
A collection of ESP-IDF firmware projects for ESP32-C3, ESP32-C5, and ESP32-S3 boards. The repository contains three distinct types of device:
- Wi-Fi repeaters that share an existing network through a new access point;
- configurable buttons and digital-sensor nodes that trigger HTTP, MQTT, or WebSocket actions;
- experimental devices that detect changes in Wi-Fi propagation compatible with movement.
Each project has its own hardware requirements, flashing instructions, configuration guide, and limitations. Most are included as folders in this repository; the ESP32-S3 Tailscale projects link to their own repositories.
| I want to... | Recommended project | Board |
|---|---|---|
| Extend a home WPA2-Personal Wi-Fi network | WiFi-Repeater | ESP32-C3 SuperMini |
| Extend an enterprise network that uses a username and password | WiFi-Repeater-WPA2-Enterprise | ESP32-C3 SuperMini |
| Extend an enterprise network and reach its devices remotely through Tailscale | esp32-s3-tailscale-enterprise | ESP32-S3 |
| Combine the Tailscale repeater with programmable USB HID automation for authorized labs | esp32-s3-tailscale-marauder | ESP32-S3 |
| Trigger two HTTP or MQTT actions with physical buttons | Smartbutton ESP32-C3 SuperMini | ESP32-C3 SuperMini |
| Trigger five HTTP or MQTT actions | Smartbutton ESP32-C3 SuperMini Plus 5 | ESP32-C3 SuperMini Plus |
| Connect PIR, microwave-radar, button, or other digital-output sensors | Smartbutton ESP32-C3 Sensors | ESP32-C3 SuperMini |
| Use a two-button node on dual-band Wi-Fi 6 | Smartbutton ESP32-C5 | ESP32-C5 |
| Add WebSocket actions to the ESP32-C5 button node | Smartbutton ESP32-C5 WS | ESP32-C5 |
| Experiment with motion sensing through changes in a router-to-ESP32 radio link | WiFi Motion RSSI ESP32-C3 | ESP32-C3 SuperMini |
| Run the same experiment with a small local display | WiFi Motion RSSI ESP32-C3 OLED | 01Space ESP32-C3 0.42 OLED |
| Run the radio-link experiment on an ESP32-S3 | WiFi Motion RSSI ESP32-S3 | ESP32-S3 |
| Observe several nearby access points without joining them | WiFi Motion RSSI C3 AP Scanner | ESP32-C3 SuperMini |
These projects connect to an existing Wi-Fi network as a station and create a separate access point for client devices. NAPT routes traffic between both networks.
WiFi-Repeater extends a conventional WPA2-Personal network. It provides a captive setup portal, a responsive web dashboard, network scanning, connectivity tests, persistent configuration, and web-based firmware updates.
WiFi-Repeater-WPA2-Enterprise is the variant for networks that use EAP-PEAP or EAP-TTLS authentication, commonly found in companies and educational institutions. It also adds TCP/UDP port forwarding and a web log viewer.
esp32-s3-tailscale-enterprise combines an ESP32-S3 WPA2-Enterprise repeater with NAPT, a web interface, and Tailscale subnet routing. It is intended for extending an enterprise Wi-Fi network while also making devices behind the ESP32 reachable through a Tailscale network.
esp32-s3-tailscale-marauder builds on the ESP32-S3 enterprise repeater and Tailscale features with programmable USB HID automation. It supports DuckyScript, stored macros, multiple keyboard layouts, and scheduled execution for authorized laboratory, testing, and automation environments.
These devices join your Wi-Fi network and execute a configured action when a physical input changes. Depending on the project, an input can send an HTTP GET/POST request, publish an MQTT message, or send a WebSocket payload.
| Project | Inputs | Actions | Local feedback |
|---|---|---|---|
| ESP32-C3 SuperMini | 2 buttons | HTTP, MQTT | Onboard blue LED |
| ESP32-C3 SuperMini Plus 5 | 5 buttons | HTTP, MQTT | Onboard WS2812 RGB LED |
| ESP32-C3 Sensors | 3 configurable digital inputs | HTTP, MQTT | Onboard blue LED |
| ESP32-C5 | 2 buttons | HTTP, MQTT | WS2812 RGB LED and two button LEDs |
| ESP32-C5 WS | 2 buttons | HTTP, MQTT, WebSocket | WS2812 RGB LED and two button LEDs |
The Sensors variant is not itself a PIR or radar detector. It is an ESP32-C3 interface for up to three external devices with a digital output, such as a PIR sensor, microwave radar, or mechanical button. It adds a startup stabilization period and a cooldown to reduce repeated triggers.
These projects measure how a Wi-Fi radio signal changes over time. Movement of a person or object can alter reflections and paths between a transmitter and the ESP32; the firmware classifies sufficiently large changes as motion-compatible events.
Important
These devices detect changes in radio propagation, not people. They cannot identify or count occupants, may not detect a motionless person, and can react to other environmental changes. They are experiments, not certified presence sensors or security alarms.
The following variants join a configured Wi-Fi network and analyze RSSI, CSI, or both. They include calibration, a bilingual web interface, live charts, Telegram notifications, and experimental telemetry.
| Project | What makes it different |
|---|---|
| ESP32-C3 SuperMini | Base compact ESP32-C3 implementation |
| ESP32-C3 OLED 0.42 | Adds a 72×40 OLED for local state, IP address, RSSI, and scores |
| ESP32-S3 | Port for conventional ESP32-S3 boards, with console and telemetry over UART0 |
WiFi Motion RSSI C3 AP Scanner looks for motion-compatible changes in the RSSI of several nearby Wi-Fi access points. It does not connect to those networks and does not need or store their passwords. Instead, it:
- automatically or manually selects up to eight SSIDs and tracks their BSSIDs;
- learns a baseline from stable nearby access points;
- combines signal deviations using an adaptive threshold;
- creates its own local Wi-Fi network with a captive dashboard;
- reports insufficient reference coverage separately from motion.
This variant works locally and includes ready-to-flash USB firmware. It does not provide Telegram notifications or OTA updates.
Open the selected project's README before connecting or flashing a board. Pinouts, ESP-IDF versions, flash offsets, prebuilt images, initial credentials, and update methods differ between projects.
In general:
- configuration is stored in NVS where documented;
- some projects support OTA updates, while others must be updated over USB;
- smart buttons may use deep sleep, but Wi-Fi motion experiments must remain active to collect measurements;
- default access-point and web credentials should be changed before regular use.
This repository is distributed under the MIT License. Check the license file inside an individual project when present.