J. Nick Koston
7adad0ee49
[core] Refactor insertion sort functions to eliminate code duplication ( #10653 )
2025-09-09 02:03:35 -05:00
J. Nick Koston
dd8815ec9d
[core] Reduce flash usage by refactoring looping component partitioning ( #10652 )
2025-09-09 01:17:30 -05:00
J. Nick Koston
8d90f13e97
[core] Store component source strings in flash on ESP8266 (breaking change) ( #10621 )
2025-09-07 20:10:00 -05:00
J. Nick Koston
56b6dd31f1
[core] Eliminate heap allocation in teardown_components by using StaticVector ( #10256 )
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-08-20 14:45:13 +12:00
J. Nick Koston
daf8ec36ab
[core] Remove unnecessary FD_SETSIZE check on ESP32 and improve logging ( #10255 )
2025-08-15 21:26:48 -05:00
J. Nick Koston
cd6cf074d9
[core] Replace std::stable_sort with insertion sort to save 3.5KB flash ( #10035 )
2025-08-04 13:56:06 +12:00
J. Nick Koston
dbaf2cdd50
[core] Replace std::find and std::max_element with simple loops to reduce binary size ( #10044 )
2025-08-04 13:46:06 +12:00
J. Nick Koston
378b687a82
[core] Restore COMPONENT_STATE_LOOP_DONE check in calculate_looping_components ( #9832 )
2025-07-23 23:31:30 +12:00
J. Nick Koston
b636b844fc
[core] Initialize looping_components_ before setup blocking phase ( #9820 )
2025-07-22 16:43:22 -10:00
J. Nick Koston
0f0038df24
[core] Process pending loop enables during setup blocking phase ( #9787 )
2025-07-22 15:47:43 +12:00
J. Nick Koston
b1c86fe30e
Optimize scheduler timing by reducing millis() calls ( #9524 )
2025-07-16 13:41:55 +12:00
J. Nick Koston
e012fd5b32
Add runtime_stats component for performance debugging and analysis ( #9386 )
...
Co-authored-by: Keith Burzinski <kbx81x@gmail.com >
2025-07-16 13:13:51 +12:00
J. Nick Koston
9769f8a4cc
Fix timing overflow when components disable themselves during loop ( #9529 )
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-07-15 21:51:01 +00:00
J. Nick Koston
03566c34ed
Reduce Component memory usage by 40% (8 bytes per component) ( #9278 )
2025-07-02 13:43:40 +12:00
J. Nick Koston
0b1b8f05e1
Reduce loop enable/disable log spam by using very verbose level ( #9267 )
2025-06-30 11:49:31 +12:00
Jimmy Hedman
68d66c873e
Upgrade to use C++20 ( #9135 )
...
Co-authored-by: J. Nick Koston <nick@koston.org >
2025-06-27 17:31:50 +00:00
J. Nick Koston
2a45467bf6
Pre-reserve looping components vector to reduce memory allocations ( #9177 )
2025-06-23 14:10:09 +12:00
J. Nick Koston
8ba22183b9
Add enable_loop_soon_any_context() for thread and ISR-safe loop enabling ( #9127 )
2025-06-19 13:30:41 +12:00
J. Nick Koston
2e534ce41e
Reduce CPU overhead by allowing components to disable their loop() ( #9089 )
2025-06-18 21:49:25 +12:00
J. Nick Koston
374c33e8dc
Optimize Component and Application state storage from uint32_t to uint8_t ( #9082 )
2025-06-15 14:48:53 +12:00
J. Nick Koston
dac738a916
Always perform select() when loop duration exceeds interval ( #9058 )
2025-06-12 03:27:10 +00:00
Keith Burzinski
9652b1a556
[application] Fix build error on some IDF versions ( #9045 )
2025-06-11 21:44:49 +12:00
J. Nick Koston
0e27ac281f
Ensure components only powerdown after teardown ( #9044 )
2025-06-11 04:21:22 +00:00
Jon Krause
cdae06e571
Force socket ready when high frequency looping ( #9032 )
2025-06-09 00:40:25 +00:00
J. Nick Koston
9cc2a04d54
Implement proper API connection teardown before deep sleep/reboot ( #9008 )
2025-06-09 10:29:26 +12:00
Keith Burzinski
6675e99862
Remove unnecessary ellipsis ( #8964 )
2025-06-03 21:46:10 +01:00
J. Nick Koston
8c77e40695
Fix select() logging flood in very verbose mode ( #8942 )
2025-05-29 02:29:37 +00:00
J. Nick Koston
43e88af28a
Optimize socket operations by checking readiness in the main loop ( #8918 )
2025-05-28 18:16:37 -05:00
J. Nick Koston
78c63311c6
Fix ethernet connection timeout issue caused by incorrect time value during setup ( #8841 )
2025-05-19 00:25:21 -05:00
J. Nick Koston
574aabdede
Reduce number of calls to fetch time in the main loop ( #8804 )
2025-05-19 07:48:57 +12:00
Clyde Stubbs
b8d83d0765
[debug] Show source of last software reboot ( #8595 )
2025-05-04 23:31:37 -05:00
Clyde Stubbs
e6b1187689
If the loop() took more than the required time, don't delay further ( #6496 )
2024-04-08 19:56:08 +12:00
J. Nick Koston
b9f20b36cb
Store app comment and compilation_time in flash ( #4945 )
2023-06-19 11:35:47 +12:00
RoboMagus
34adbf0588
Fix / Reverse order shutdown ( #3585 )
2022-06-21 11:26:34 +12:00
Oxan van Leeuwen
12467a18e6
Feed watchdog when no component loops ( #2857 )
2021-12-07 07:24:20 +13:00
Oxan van Leeuwen
607601b3a4
Enable a bunch of clang-tidy checks ( #2149 )
2021-12-02 09:03:51 +13:00
Carlos Garcia Saura
859e508392
change millis() to micros() in feed_wdt for 3ms check ( #2492 )
2021-10-13 18:50:27 +02:00
Otto Winter
ac0d921413
ESP-IDF support and generic target platforms ( #2303 )
...
* Socket refactor and SSL
* esp-idf temp
* Fixes
* Echo component and noise
* Add noise API transport support
* Updates
* ESP-IDF
* Complete
* Fixes
* Fixes
* Versions update
* New i2c APIs
* Complete i2c refactor
* SPI migration
* Revert ESP Preferences migration, too complex for now
* OTA support
* Remove echo again
* Remove ssl again
* GPIOFlags updates
* Rename esphal and ICACHE_RAM_ATTR
* Make ESP32 arduino compilable again
* Fix GPIO flags
* Complete pin registry refactor and fixes
* Fixes to make test1 compile
* Remove sdkconfig file
* Ignore sdkconfig file
* Fixes in reviewing
* Make test2 compile
* Make test4 compile
* Make test5 compile
* Run clang-format
* Fix lint errors
* Use esp-idf APIs instead of btStart
* Another round of fixes
* Start implementing ESP8266
* Make test3 compile
* Guard esp8266 code
* Lint
* Reformat
* Fixes
* Fixes v2
* more fixes
* ESP-IDF tidy target
* Convert ARDUINO_ARCH_ESPxx
* Update WiFiSignalSensor
* Update time ifdefs
* OTA needs millis from hal
* RestartSwitch needs delay from hal
* ESP-IDF Uart
* Fix OTA blank password
* Allow setting sdkconfig
* Fix idf partitions and allow setting sdkconfig from yaml
* Re-add read/write compat APIs and fix esp8266 uart
* Fix esp8266 store log strings in flash
* Fix ESP32 arduino preferences not initialized
* Update ifdefs
* Change how sdkconfig change is detected
* Add checks to ci-custom and fix them
* Run clang-format
* Add esp-idf clang-tidy target and fix errors
* Fixes from clang-tidy idf round 2
* Fixes from compiling tests with esp-idf
* Run clang-format
* Switch test5.yaml to esp-idf
* Implement ESP8266 Preferences
* Lint
* Re-do PIO package version selection a bit
* Fix arduinoespressif32 package version
* Fix unit tests
* Lint
* Lint fixes
* Fix readv/writev not defined
* Fix graphing component
* Re-add all old options from core/config.py
Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com >
2021-09-20 11:47:51 +02:00
Oxan van Leeuwen
1e8e471dec
Introduce call_dump_config() indirection ( #2325 )
2021-09-20 11:16:31 +02:00
Oxan van Leeuwen
924df1e7de
Run clang-tidy against Arduino 3 ( #2146 )
...
* Add macros header with more usable Arduino version defines
* Change Arduino version checking to use our version defines
* Add missing ESP8266 check
* Rename Arduino version macro to ARDUINO_VERSION_CODE
* Upgrade clang-tidy to use Arduino 3
* Fix clang-tidy warnings
* Upgrade NeoPixelBus to upstream 2.6.7
* Use Arduino-version-appropriate API to set redirect flags
* Remove now unnecessary CLANG_TIDY ifdefs
* Add preprocessor hackery to avoid including pgmspace.h
* Bump base image to 4.1.1 and update lint
* Fix nfctag
* Fix make_unique ambiguous
* Fix ignore name
* Fix ambiguous v2
* Remove unused begin
* Cast time_t to prevent issues on platforms where time_t is 32bit
Co-authored-by: Otto winter <otto@otto-winter.com >
2021-09-13 18:55:04 +02:00
Oxan van Leeuwen
40c474cd83
Run clang-tidy against ESP32 ( #2147 )
...
Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com >
Co-authored-by: Otto winter <otto@otto-winter.com >
2021-09-13 18:11:27 +02:00
Otto Winter
1b89174558
Store source package in Component for debugging ( #2070 )
2021-08-24 06:49:19 +12:00
Stefan Agner
f94c221a9a
Increase task wdt timeout for ESP32/ESP32-C3 ( #2096 )
2021-08-10 11:10:52 +02:00
Stefan Agner
501f88ca86
Avoid non-const globals and enable clang-tidy check ( #1892 )
2021-06-11 08:19:44 +12:00
Jesse Hills
5cf18235e3
Allow setting creator project name and version into code ( #1872 )
2021-06-09 13:04:00 +12:00
Otto Winter
0cc3902ffc
Add tasmota magic bits, Tasmota compat check ( #1152 )
2020-07-15 15:29:41 +02:00
Otto Winter
e9e92afc9e
Optimize application loop speed ( #860 )
...
* Optimize application loop speed
* Also check call_loop
* Remove duplicate code
* Fixes
2019-12-04 16:03:37 +01:00
Otto Winter
a6faccb4d9
Uppercase ESPHome ( #814 )
2019-10-31 20:09:07 +01:00
Otto Winter
6c8d0f1852
Change message
2019-10-20 15:57:59 +02:00
Otto Winter
36f47ade70
Add Captive Portal ( #624 )
...
* WIP: Captive Portal
* Updates
* Updates
* Lint
* Fixes
2019-06-09 17:03:51 +02:00