Skip to content

Commit d17227a

Browse files
committed
Updated CI and website
1 parent 57cd712 commit d17227a

File tree

2 files changed

+36
-11
lines changed

2 files changed

+36
-11
lines changed

.github/workflows/ci.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,7 @@ jobs:
103103
- run: PLATFORMIO_BUILD_FLAGS="-DESPCONNECT_NO_STD_STRING" PLATFORMIO_SRC_DIR=examples/AdvancedCaptivePortal PIO_BOARD=${{ matrix.board }} PIO_PLATFORM=${{ matrix.platform }} pio run -e ci
104104
- run: PLATFORMIO_BUILD_FLAGS="-DESPCONNECT_NO_CAPTIVE_PORTAL" PLATFORMIO_SRC_DIR=examples/NoCaptivePortal PIO_BOARD=${{ matrix.board }} PIO_PLATFORM=${{ matrix.platform }} pio run -e ci
105105
- run: PLATFORMIO_BUILD_FLAGS="-DESPCONNECT_NO_LOGGING" PLATFORMIO_SRC_DIR=examples/AdvancedCaptivePortal PIO_BOARD=${{ matrix.board }} PIO_PLATFORM=${{ matrix.platform }} pio run -e ci
106+
- run: PLATFORMIO_BUILD_FLAGS="-DESPCONNECT_NO_COMPAT_CP" PLATFORMIO_SRC_DIR=examples/AdvancedCaptivePortal PIO_BOARD=${{ matrix.board }} PIO_PLATFORM=${{ matrix.platform }} pio run -e ci
106107

107108
platformio-ci-esp8266:
108109
name: "pio:${{ matrix.board }}:${{ matrix.platform }}"

docs/index.md

Lines changed: 35 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -20,17 +20,20 @@ This library is based on the UI from [https://github.com/ayushsharma82/ESPConnec
2020
I highly recommend looking at all OSS projects (and products) from [@ayushsharma82](https://github.com/ayushsharma82).
2121
He is making great Arduino libraries.
2222

23-
- [Features](#features)
24-
- [Usage](#usage)
25-
- [API](#api)
26-
- [Blocking mode](#blocking-mode)
27-
- [Non-blocking mode](#non-blocking-mode)
28-
- [Use an external configuration system](#use-an-external-configuration-system)
29-
- [ESP8266 Specifics](#esp8266-specifics)
30-
- [Ethernet Support](#ethernet-support)
31-
- [Logo](#logo)
32-
- [mDNS](#mdns)
33-
- [Compile Flags](#compile-flags)
23+
- [MycilaESPConnect](#mycilaespconnect)
24+
- [Features](#features)
25+
- [Usage](#usage)
26+
- [API](#api)
27+
- [Blocking mode](#blocking-mode)
28+
- [Non-blocking mode](#non-blocking-mode)
29+
- [Set static IP](#set-static-ip)
30+
- [Use an external configuration system](#use-an-external-configuration-system)
31+
- [ESP8266 Specifics](#esp8266-specifics)
32+
- [Ethernet Support](#ethernet-support)
33+
- [Logo](#logo)
34+
- [Captive Portal Detection Endpoints](#captive-portal-detection-endpoints)
35+
- [mDNS](#mdns)
36+
- [Compile Flags](#compile-flags)
3437

3538
## Features
3639

@@ -235,6 +238,25 @@ You can customize the logo by providing a web handler for `/logo`:
235238
```
236239
237240
If not provided, the logo won't appear in the Captive Portal.
241+
### Captive Portal Detection Endpoints
242+
243+
MycilaESPConnect implements multi-platform captive portal detection by providing specific endpoints that different operating systems use to test internet connectivity. When a device connects to the ESP32's WiFi network, it automatically performs these tests. If the responses don't match expectations (redirections instead of expected content), the system automatically triggers the captive portal interface.
244+
245+
| **Endpoint** | **Operating System** | **Function** | **Action** | **Purpose** |
246+
|---|---|---|---|---|
247+
| `/connecttest.txt` | Microsoft Windows | Windows connectivity test | Redirects to `http://logout.net` | Triggers Windows captive portal detection |
248+
| `/wpad.dat` | All systems | Web Proxy Auto-Discovery Protocol | Returns 404 error | Indicates no proxy configuration is provided |
249+
| `/generate_204` | Android | Android connectivity test | Redirects to WiFi Access Point IP | Triggers captive portal when Android detects no internet |
250+
| `/redirect` | Generic | Generic redirect endpoint | Redirects to captive portal interface | Provides universal redirection endpoint |
251+
| `/hotspot-detect.html` | Apple iOS/macOS | Apple hotspot detection | Redirects to WiFi Access Point IP | Triggers captive portal when Apple devices detect connectivity issues |
252+
| `/canonical.html` | Ubuntu/Linux | Ubuntu/Linux connectivity test | Redirects to captive portal configuration page | Activates captive portal on Linux systems |
253+
| `/success.txt` | Microsoft | Microsoft connectivity success page | Returns 200 OK status | Indicates successful connection for Microsoft tests |
254+
| `/ncsi.txt` | Microsoft | Network Connectivity Status Indicator | Redirects to portal for configuration | Handles Microsoft network connectivity status indicator |
255+
| `/startpage` | Generic | Generic start page | Redirects to main captive portal interface | Provides generic entry point to portal |
256+
257+
**Note**: This functionality can be disabled by setting the compile flag `-D ESPCONNECT_NO_COMPAT_CP`, which will save approximately 2KB of flash memory but may reduce captive portal detection reliability on some devices.
258+
259+
This approach ensures a smooth user experience across all devices without manual intervention, automatically guiding users to the network configuration interface when they connect to the ESP32's access point.
238260
239261
### mDNS
240262
@@ -248,3 +270,5 @@ You can disable it by setting `-D ESPCONNECT_NO_MDNS`.
248270
- `-D ESPCONNECT_NO_CAPTIVE_PORTAL`: disable Captive Portal and ESPAsyncWebServer dependency
249271
- `-D ESPCONNECT_NO_STD_STRING`: use Arduino `String` instead of `std::string`
250272
- `-D ESPCONNECT_NO_LOGGING`: disable logging
273+
- `-D ESPCONNECT_NO_COMPAT_CP`: disable better Captive Portal detection (about 2KB flash)
274+

0 commit comments

Comments
 (0)