esp-idf VS WiFiManager

Compare esp-idf vs WiFiManager and see what are their differences.

esp-idf

Espressif IoT Development Framework. Official development framework for Espressif SoCs. (by espressif)

WiFiManager

ESP8266 WiFi Connection manager with web captive portal (by tzapu)
Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
esp-idf WiFiManager
245 41
12,434 6,351
2.8% -
10.0 7.7
6 days ago 26 days ago
C C++
Apache License 2.0 MIT License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

esp-idf

Posts with mentions or reviews of esp-idf. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-12-07.

WiFiManager

Posts with mentions or reviews of WiFiManager. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-05-27.
  • Need some opinions on a clock I'm planning to sell online that involves ESP8266
    2 projects | /r/esp8266 | 27 May 2023
  • Trouble changing clock format from 24 hour to 12 hour
    1 project | /r/arduino | 14 May 2023
    #include "WiFiManager.h" //https://github.com/tzapu/WiFiManager WiFi Configuration Magic #include "ezTime.h" // Time Library - get your POSIX Timezone 'string' to replace TZ/GMT if needed, below, here: https://support.cyberdata.net/index.php?/Knowledgebase/Article/View/438/10/posix-timezone-strings #include "SevenSegmentExtended.h" #include "SevenSegmentTM1637.h" #include "SevenSegmentFun.h" // For Text readouts #include "SoftwareSerial.h" #include "DFMiniMp3.h" //========================USEFUL VARIABLES============================= const char* ssid = "R2D2"; // R2D2 Access point network name (to connect to R2D2, to change/add your WiFi details) const char* password = "Droidyouarelookingfor"; // R2D2 Access point password uint16_t notification_volume = 25; // Speaker volume int Display_backlight = 45; // 4 Digit Display brightness when operating normally (outside of initialisation) int BlueLED_brightness = 50; // Two blue LED's (when connected to ESP32 pin 14, instead of VCC) const char* ntpServer = "pool.ntp.org"; // Your chosen TimeServer const String timezone_posix_string = "EST5EDT,M3.2.0/2:00:00,M11.1.0/2:00:00"; // Insert your own POSIX Timezone string here. See link above for info. //===================================================================== // Avoid changing below here... // Call WiFi Manager WiFiManager wifiManager; // Call a Timezone Timezone TZ; #define CLK 25 #define DT 26 #define SW 27 #define RED_LED 17 #define WHITE_LED 16 const int BLUE_LED = 14; // 14 corresponds to GPIO14 float counter = 0; int currentStateCLK; int lastStateCLK; String currentDir = ""; unsigned long lastButtonPress = 0; int btnState = 0; // timer int timer_secs = 0; int timer_mins = 0; float inc_red_led = 0; // the number of the Blue LED's pin const int BlueChannel = 1; // setting PWM properties const int freq = 5000; const int resolution = 8; class Mp3Notify { public: static void PrintlnSourceAction(DfMp3_PlaySources source, const char* action) { if (source & DfMp3_PlaySources_Sd) { Serial.print("SD Card, "); } if (source & DfMp3_PlaySources_Usb) { Serial.print("USB Disk, "); } if (source & DfMp3_PlaySources_Flash) { Serial.print("Flash, "); } Serial.println(action); } static void OnError(uint16_t errorCode) { // see DfMp3_Error for code meaning Serial.println(); Serial.print("Com Error "); Serial.println(errorCode); } static void OnPlayFinished(DfMp3_PlaySources source, uint16_t track) { Serial.print("Play finished for #"); Serial.println(track); } static void OnPlaySourceOnline(DfMp3_PlaySources source) { PrintlnSourceAction(source, "online"); } static void OnPlaySourceInserted(DfMp3_PlaySources source) { PrintlnSourceAction(source, "inserted"); } static void OnPlaySourceRemoved(DfMp3_PlaySources source) { PrintlnSourceAction(source, "removed"); } }; SevenSegmentExtended blue1(21, 22); // CLK, DIO SevenSegmentFun words(21, 22); // CLK, DIO SoftwareSerial secondarySerial(18, 19); // TX, RX DFMiniMp3 mp3(secondarySerial); void configModeCallback (WiFiManager *myWiFiManager) { Serial.println("Entered WiFi Manager config mode.."); Serial.println(WiFi.softAPIP()); Serial.println(myWiFiManager->getConfigPortalSSID()); } //flag for saving data bool shouldSaveConfig = false; //callback notifying us of the need to save config void saveConfigCallback () { Serial.println("Should save config"); shouldSaveConfig = true; } void setup() { words.setBacklight(80); words.begin(); words.scrollingText("R2D2 START", 2);
  • I built a website running in ESP32 with separate frontend and backend. The frontend is made with VueJS + TailwindCSS, the backend is coded in C++
    1 project | /r/embedded | 13 Apr 2023
    Many examples in Arduino tell you to embed HTML to your C++ code (look https://github.com/tzapu/WiFiManager/blob/master/wm_strings_en.h), but my approach is different: The frontend is written in different language (TypeScript + Vue), with separate build process (no C compiler involved). It even is tested independently from Arduino code, on PC.
  • Esp-Idf wifi manager
    3 projects | /r/esp32 | 20 Mar 2023
    Hello. Some time ago I' ve strugled with seting up wifi manager in esp_idf framework. Most popular wifi manager made by tzapu was not working on esp-idf framework inside PlatformIo. So I have found tonyp7. It started to work after many changes in library code and makefiles. I have some free time and I can make WifiManager suited to bare esp-idf and esp-idf inside PlatformIo. My question is- do somebody need this ? Maybe there are alternatives which i did not find and my work is pointless. Please share your opinion
  • Best way to communicate WiFi details to Adafruit Feather Huzzah ESP8266
    1 project | /r/arduino | 7 Mar 2023
    #include // Using the Arduino Library Manager, install "WifiManager by tzapu" - lib at https://github.com/tzapu/WiFiManager void setup() { WiFiManager wifiManager; // Start a Wifi link wifiManager.autoConnect("NewDevice"); // (on first use: will set up as a Wifi name; set up by selecting new Wifi network on iPhone for instance) } void loop() { }
  • Easy way to program wifi credentials on a pre- programmed board?
    1 project | /r/arduino | 18 Feb 2023
    include // Using the Arduino Library Manager, // install "WifiManager by tzapu" // lib at https://github.com/tzapu/WiFiManager void setup() { WiFiManager wifiManager; // Start a Wifi link. wifiManager.autoConnect("NewDevice"); // (on first use: will set up as // a Wifi name; set up by // selecting new Wifi network on // iPhone for instance) }
  • Making it easy for customer/ client to put in wifi credentials onto a pre-programmed IoT device
    4 projects | /r/esp32 | 18 Feb 2023
    Is that fork needed still? It seems like the main project claims support for esp32 now? https://github.com/tzapu/WiFiManager
  • Making it easy for client/customer to program SSID and password into IoT devices?
    1 project | /r/esp8266 | 18 Feb 2023
  • ESP_WiFiManager deprecated?
    1 project | /r/esp8266 | 16 Feb 2023
    Use this one instead: https://github.com/tzapu/WiFiManager
  • SOFT AP Mode for ws2812b LED Matrix Sign using esp8266 and Adafruit Neomatrix library.
    3 projects | /r/esp8266 | 6 Feb 2023

What are some alternatives?

When comparing esp-idf and WiFiManager you can also consider the following projects:

arduino-esp32 - Arduino core for the ESP32

ESPAsyncWiFiManager - Port WiFiManager to ESP Async Server

MicroPython - MicroPython - a lean and efficient Python implementation for microcontrollers and constrained systems

esp_wifi_repeater - A full functional WiFi Repeater (correctly: a WiFi NAT Router)

WLED - Control WS2812B and many more types of digital RGB LEDs with an ESP8266 or ESP32 over WiFi!

NTP-time-for-ESP8266-and-ESP32 - NTP time example for ESP8266 and ESP32 based on standard functionality

Unity Test API - Simple Unit Testing for C

ESP_WiFiManager - This is an ESP32 / ESP8266 WiFi Connection Manager with fallback web configuration portal. Use this library for configuring ESP32 (including ESP32-S2 and ESP32-C3), ESP8266 modules' WiFi, etc. Credentials at runtime. You can also specify static DNS servers, personalized HostName, fixed or random AP WiFi channel. With examples supporting ArduinoJson

esptool-js - Javascript implementation of flasher tool for Espressif chips, running in web browser using WebSerial.

pubsubclient - A client library for the Arduino Ethernet Shield that provides support for MQTT.

esp32-wifi-penetration-tool - Exploring possibilities of ESP32 platform to attack on nearby Wi-Fi networks.

wifi-setup - get an IoT device online by first broadcasting a private wifi network that users can connect to to configure your device