RELEASE NOTES

Changelog

Every release across the four Pro libraries. Updates are free for life - pull the latest straight from your private repository.

2026
LATEST
FIXEDFixed a critical bug where NetWizard started the portal in AP+STA mode while STA was in disconnected status. This resulted in NetWizard being unable to produce scan results or connect to an AP manually due to an internal conflict between WiFi APIs. NetWizard will now launch the captive portal in AP mode only if STA is not available at the point of starting it. After the portal has timed out or been exited by the user, it will then proceed to reconnect STA normally at regular intervals.
FIXEDFixed a bug where scan never started for arduino-pico (RP2040+W & RP2350+W) platforms.
FIXEDFixed a bug where the captive portal appeared as secured even when the password string was empty. This affected arduino-pico (RP2040+W and RP2350+W) platforms only.
FIXEDFixed a minor bug where scan completion wasn't properly handled for the arduino-pico platform.
IMPROVEDScan is now started immediately after the captive portal is presented. This reduces the wait period for the user at the scan step in the captive portal.
FIXEDFixed an issue where the UI would hang when there are multiple SSIDs of the same name.
FIXEDFixed a minor accessibility issue within the UI where mobile browsers would zoom in on input fields upon clicking them (font size needed to be at least 16px).
IMPROVEDMinor bug fixes and improvements across C code and UI.
2025
FIXEDFixed navigation re-routing to different tab when websocket connection was restored.
NEWAdded new Time Difference Card.
IMPROVEDRemoved MAC Address from default set of Statistics in ESP-DASH Pro (as it would always be "00:00:00:00:00:00" on dashboard initialization). If needed, user should use StatisticsProvider if they want to show MAC address in statistics page.
NEWESP-DASH is now compatible with Cloudflare Tunnels. Your dashboard will now automatically use WSS (Secure WebSockets) if it detects the webpage is using https protocol.
NEWAdded tooltip to show any truncated names. This helps with UI structure not breaking while keeping compatibility with longer card names.
NEWAdded setTarget and target methods to Link card. Users can now decide if they want to open the URL in a new tab or the same tab.
IMPROVEDRevamped C++ backend with lots of memory optimization.
IMPROVEDWidgets now use `class` based approach rather than macros like `TEMPERATURE_CARD`. Example: `dash::TemperatureCard`, `dash::HumidityCard` etc.
IMPROVEDEvery widget has its own class and methods. Everything is documented inside each widget’s documentation page.
IMPROVEDAsyncWebServer instance is now passed as reference rather than a pointer inside constructor of ESP-DASH. Example: `ESPDash dashboard(server);`
IMPROVEDESP-DASH dashboard instance is now passed as reference rather than a pointer to widgets. Example: `dash::TemperatureCard temp1(dashboard, "Temperature");`
IMPROVEDStatus card is now called "Feedback" card in v5. The functionality remains the same but the name better describes its purpose.
IMPROVEDButton card is now called "Toggle Button" card in v5. Version 5 introduces lots of more buttons so it was necessary to distinguish it.
IMPROVEDText Input card is now called "Input" card in v5. Version 5 input card now supports a lot of data type, you can now make it accept either `string`, `int` or `float`.
NEWStatistics now have a `StatisticProvider` class through which you can provide real-time values. The StatisticsProvider will execute your callback function to get the latest value and display it on the dashboard!
NEWAll new UI design language according to Y25’ trends. It now feels more professional and just like a proper full blown dashboard.
IMPROVEDUI is now based on latest Svelte 5 framework which in return makes it more robust with improved performance.
NEWDashboard now has a collapsable sidebar which provides with more screen space when required.
NEWESP-DASH v5 now comes with light and dark modes! There’s a toggle switch provided inside the dashboard as well for user to set their preference.
NEWAdded all-new `Separator` card (even in the lite/oss version) which allows you to segment the dashboard into multiple intuitive regions!
NEWAdded all-new `Indicator Button` card - a special push button which has an indicator at the centre of the button which can be controlled independently via your firmware!
NEWAdded all-new `Action Button` card - a special button where you need get confirmation from the user. Use it for getting user consent before doing any deadly actions like rebooting or erasing.
NEWAdded all-new `Range Slider` card - a slider which has dual thumbs to select an range. Very useful for a lot of scenarios!
NEWAdded all-new `File Upload` card - a long awaited feature where users can upload a file to external or internal URLs of your application.
NEWAdded all-new `Doughnut` chart. Just like a pie chart but with a big hole in the centre.
FIXEDChart animations are now fixed with v5! Now instead of refreshing whole chart, values within chart gracefully transition/animate to the new position.
FIXEDPassword card now does not store the input once entered by the user. Now when a user submits value in password card, UI will clear the input upon receiving confirmation from backend and show your set placeholder in firmware. This was a security concern in previous version and has been fully resolved.
IMPROVEDDeprecated ESP8266 support. This platform is now unmaintainable as nobody is supporting its core development.
FIXEDFixed platformio_upload.py for SPIFFS.
IMPROVEDSwitched to AsyncWebServer dependency from ESP32Async organization.
NEWAdded full arduino-pico core compatibility (RP2040+W & RP2350+W).
NEWAdded async mode compatibility for RP2040+W and RP2350+W.
FIXEDFixed custom hostname not being applied.
IMPROVEDUpgraded UI to the Svelte 5 framework and TypeScript. The move to TypeScript provides excellent IDE intellisense and makes the whole application more robust while preventing human errors.
IMPROVEDSwitched to newer ESP32Async/ESPAsyncWebServer dependency. More info on: https://docs.espdash.pro/getting-started/installation#dependencies
IMPROVEDSwitched to RPAsyncTCP dependency for RP2040 and RP2350 microcontrollers.
NEWAdded full compatibility for arduino-pico SDK (RP2040 and RP2350 microcontrollers).
IMPROVEDUpdated ArduinoJson dependency to ^v7.3.0.
NEWParameters can now be set as optional. By default all parameters are required to be entered by the user, but now they can be set as optional using the setRequired function.
FIXEDFixed auto reconnect logic.
FIXEDFixed more C warnings.
NEWAdded RP2350 compatibility.
IMPROVED(Async Mode) Switched to the newer ESP32Async/ESPAsyncWebServer dependency. More info on: https://docs.netwizard.pro/docs/intro/async-mode
IMPROVED(Async Mode) Switched to RPAsyncTCP dependency for usage with RP2040 and RP2350 MCUs.
IMPROVEDUpdated platformio.ini.
IMPROVEDUpdated dependencies.
FIXEDFixed a bug that caused the firmware to crash due to a DNS race condition.
NEWAdded new "textarea" parameter.
FIXEDAdded missing erase function.
NEWAdded ArduinoJson v7.3.0 compatibility.
FIXEDFixed ArduinoJson include position.
FIXEDFixed C warnings.
FIXEDFixed RP2040 core compatibility (fixed by updating dependencies).
IMPROVEDPricing Update: NetWizard Pro now comes in 2 tiers - Essential and Advantage. Existing customers who purchased NetWizard Pro before 14th January 2025 have been upgraded to Advantage tier (excluding dedicated technical support).
IMPROVEDLicense Update: Updated license to Softt Commercial License 1.2 (SCL-1.2). Minor improvements in legal wording related to the use of library. Specifically, under sub-sections "grant of license" and "restrictions".
2024
IMPROVEDUpdated dependencies.
FIXEDFixed compilation error happening due to a return statement within a void function.
IMPROVEDPricing Update: ESP-DASH Pro now comes in 2 tiers - Essential and Advantage. Existing customers who purchased ESP-DASH Pro before 20th November 2024 have been upgraded to the Advantage bundle (excluding dedicated technical support).
IMPROVEDLicense Update: Updated license to Softt Commercial License 1.2 (SCL-1.2). Minor improvements in legal wording related to the use of library. Specifically, under sub-sections "grant of license" and "restrictions".
IMPROVEDUpdated Dependencies.
IMPROVEDExpose buffer for memory optimization in high perf mode.
NEWAdded support for multiple instances.
IMPROVEDConfiguration data is now sent over WebSocket pipe.
IMPROVEDPricing Update: WebSerial Pro now comes in 2 tiers - Essential and Advantage. Existing customers who purchased WebSerial Pro before 25th October 2024 have been given a free upgrade to Advantage bundle (excluding dedicated technical support).
IMPROVEDLicense Update: Updated license to Softt Commercial License 1.2 (SCL-1.2). Minor improvements in legal wording related to the use of library. Specifically, under sub-sections "grant of license" and "restrictions".
IMPROVEDUpdated dependencies.
NEWAdded arduino-pico SDK v4.x.x compatibility.
IMPROVEDPricing Update: ElegantOTA Pro now comes in 2 tiers - Essential and Advantage. Existing customers who purchased ElegantOTA Pro before 22nd October 2024 have been given a free upgrade to Advantage bundle (excluding dedicated technical support).
IMPROVEDLicense Update: Updated license to Softt Commercial License 1.2 (SCL-1.2). Minor improvements in legal wording related to the use of library. Specifically, under sub-sections "grant of license" and "restrictions".
FIXED[Critical] Fixed configuration parameters not being parsed properly.
FIXEDFixed portal state not showing properly in logs of demo examples.
FIXEDResolved the issue of enum clashes with potential third-party libraries.
FIXEDFixed captive portal not appearing in async mode.
FIXEDFixed "request body not found" error in async mode.
FIXEDFixed exit timeout macro not being used.
FIXEDFixed use of timeout variable for connection attempts.
FIXEDFixed exit not being called in async mode.
NEWAdded backwards compatibility for AsyncWebServer.
IMPROVEDImproved installation guide with fix for PlatformIO: https://docs.elegantota.pro/installation
NEWAdded doc for unrecommended dependencies: https://docs.elegantota.pro/async-mode/#use-of-unrecommended-dependencies-experimental
FIXEDFixed dropdown misbehaving when using Firefox browser.
FIXEDFixed color picker layout.
IMPROVEDPerformance improvement for charts.
NEWImplemented refreshChart method.
IMPROVEDUpdated Dependencies.
IMPROVEDESP32 Arduino Core v3.0.3 compatibility.
IMPROVEDUpdated dependencies.
IMPROVEDESP32 arduino core v3.0.3 compatibility.
IMPROVEDUpdated dependencies.
IMPROVEDCompatibility with ESP32 Arduino Core v3.0.3.
IMPROVEDUpdated Dependencies.
FIXEDFixed onMessage String callback.
IMPROVEDESP32 Arduino Core v3.0.3 compatibility.
NEWAdded Toggle Parameter.
NEWAdded Password Input Parameter.
NEWIntegrated Links.
NEWIntegrated Statistics.
NEWSupported Branding.
FIXEDFixed timestamps in high performance mode.
NEWAdded local command history in interface which can be accessed by arrow up and arrow down keys.
IMPROVEDMinor memory optimization.
IMPROVEDUpdated dependency versions in library.json.
IMPROVEDMinor memory optimizations.
IMPROVEDSwitched to latest dependencies in library.json.
IMPROVEDMemory optimization.
IMPROVEDSwitched to latest dependencies in library.json.
IMPROVEDUpdated customer guide/installation PDF.
IMPROVEDLicense has been updated to SCL-1.1 (SOFTT Commercial License 1.1).
NEWImplemented High Performance mode. You can switch to High-Perf mode by setting "WSL_HIGH_PERF" macro. This mode doesn't use any buffering and provides low latency performance. Note: Use of printf(), write(c), print(c), etc are not recommended.
FIXEDRemoved mutex locks as those caused crashes when 2 cores were printing at the same time.
IMPROVEDMemory optimizations.
IMPROVEDImportant: Dependencies has been changed from this release. Please check installation docs at: https://docs.espdash.pro/installation/
NEWAdded Color Picker Card.
NEWAdded setDisplay function for cards, charts, tabs and stats. You can now toggle visibility without having to delete any widget completely.
NEWAdded onBeforeUpdate function.
FIXEDFixed joystick direction callback not firing for "idle" position.
FIXEDMinor fixes in benchmark example.
IMPROVEDLicense has been updated to SCL-1.1.
FIXEDFixed typos.
IMPROVEDSwitched to String instead of fixed buffers for username/password.
NEWAdded setAuthentication(const String& username, const String& password).
FIXEDFixed bug in setAuthentication logic: empty strings were not checked.
IMPROVEDMoving internal macros and enum in CPP file.
IMPROVEDAdd #ifdef to be able to configure macros with compile flags.
FIXEDFixed 'unused' warnings.
NEWNew Optimized UI. A whole new design which gives another dimension to this library.
IMPROVEDAll new backend logic, WebSerial now uses custom binary encoding to transverse message packets between webserial interface/UI and server (microcontroller). This allows multiple commands and responses to be sent within same WebSocket pipe.
IMPROVEDNew dual buffer logic which comes with a lot of performance and stability improvements. There's no limitation on using print commands now with WebSerial.
NEWAdded Export Logs feature.
NEWAdded Packet Numbering.
NEWAdded Console Font Customization. You can now choose between font styles and font size.
NEWAdded new setTitle function to set webpage title of webserial interface.
NEWAdded enableInput and disableInput functions which allow you to enable or disable Input bar on webserial interface. This also disables any message to be received from webpage to your microcontroller.
IMPROVEDTimestamps are now synced in C++ library, no additional time-keeping dependency needed.
IMPROVEDTo remain compliant with lite version, as of v2, WebSerial Pro is now exposed as WebSerial instead of WebSerialPro. Therefore please change any existing functions to use new extern. For example: `WebSerialPro.print("");` will now be `WebSerial.print("");`.
NEWAdded whitelabel/branding support.
IMPROVEDLicense Change: WebSerial Pro now comes with SCL-1.1 (SOFTT Commercial License 1.1) instead of Apache License.
IMPROVEDMinor update to installation instructions PDF.
FIXEDFixed charts not being rendered, this bug was introduced with v4.4.0 release.
NEWAdded support for ArduinoJSON 7 (and backwards compatible with ArduinoJSON 6).
IMPROVEDNavbar now auto closes upon switching tabs.
IMPROVEDChanged card and stat names to const char* to improve memory usage.
NEWImplemented websocket batching to support huge dashboards.
NEWAdded link card.
NEWAdded password card.
NEWAdded step parameter to slider card.
NEWAdded time sync card.
IMPROVEDRemoved refreshStatistics function.
IMPROVEDRemoved automatic update layout calls when adding/removing cards - the application should now call refreshLayout when it has finished adding/removing cards.
NEWAdded DASH_MAX_WS_CLIENTS which allows you to configure the max WS clients.
2023
IMPROVEDImproved UI styling (looks more professional).
IMPROVEDRemoved sidebar collapse function.
IMPROVEDReplaced mini & large logos with a single logo now.
IMPROVEDImproved navigation bar for smartphone screens.
NEWAdded brotli compression which can be switched to easily within dash_webpage.h (more than 40% extra size reduction over gzip; supports modern browsers only).
NEWAdded push button card.
NEWAdded week selector card.
NEWAdded setChartAnimations function to enable/disable chart animations.
NEWAdded custom URI support.
IMPROVEDImproved setAuthentication function.
FIXEDFixed & improved statistics logic (now statistics update properly).
IMPROVEDImproved statistics set function (now you can update value only by passing a single parameter to set function).
IMPROVEDLicense has been changed to SCL-1.0 (SOFTT Commercial License 1.0).
NEWAdded RP2040 (Pico W) support.
NEWAdded setAutoReboot function.
IMPROVEDImproved auth logic.
IMPROVEDImproved DEBUG defs.
IMPROVEDSwitched to std::functional for callbacks (allows lib to be used in classes).
IMPROVEDAdded note in Async Demo for enabling async mode.
FIXEDFixed an issue where a card wouldn’t update if only symbol was changed. (It affected any card which used the second parameter of update fn - this includes Status Card etc.)
IMPROVEDReworked UI with Pro features.
NEWAdded support for Hardware ID and Firmware Version.
NEWAdded Custom Branding.
NEWAdded Custom Title.
NEWAdded dropdown card.
NEWAdded image card.
NEWAdded Log Buffering.
IMPROVEDWebSerial Pro now inherits Print class. This gives access to additional features like printing IPAddress etc. A true alternative to Serial experience.
2022
FIXEDFixed button colors.
FIXEDFixed joystick not working on touchscreens.
FIXEDFixed logo not showing on mobile navbar.
NEWSwitched to all new UI with sidebar.
NEWAdded tabs support.
NEWAdded responsive widget sizing.
NEWAdded custom logo support.
NEWAdded custom title support.
NEWAdded statistics features.
IMPROVEDImproved monitor size for large screens (PC/laptop).
NEWAdded browser based timestamps.
IMPROVEDImproved webpage header file.
2021
IMPROVEDImproved library structure.
IMPROVEDAdded better documentation.
NEWInitial Library.
NEWAdded Clear & Lock Scroll Functionality.
NEWNew Optimized UI.
Older releases live in each library’s private repository. Own a license? Every line above is already yours.