Commit Graph

368 Commits

Author SHA1 Message Date
Jason2866
ad671a557c esp8266: Wrap printf and replace with stubs. Saves around 6 kb flash (#24714)
* wrap printf with stubs

* Remove flash savings message from wrap_printf

Removed print statement indicating flash savings for ESP8266.

* safe more by using rom function
2026-05-11 13:21:20 +02:00
Jason2866
5bc33d3fdd Update Platforms to 2026.04.xx (#24635)
* Update Tasmota ESP32 version in PR template

* Update platform URL to version 2026.04.00

* Update platform URLs in platformio_tasmota32.ini
2026-04-12 15:41:10 +02:00
Jason2866
be7ab64492 Remove debug leftovers (#24595)
* Comment out check-wrapped-lwip-sntp-calls.py script

Comment out the check-wrapped-lwip-sntp-calls.py script in platformio.ini.

* Delete pio-tools/check-wrapped-lwip-sntp-calls.py
2026-03-26 14:21:10 +01:00
Theo Arends
84d456dbfc Remove obsolete sntp_stop() calls (#24593) 2026-03-26 10:53:32 +01:00
the-way-of-A-Wild
86bc033c86 Neutralize lwIP SNTP client to prevent heap drain on WiFi reconnects (#24593)
The ESP8266 SDK automatically invokes sntp_init() via
netif_sta_status_callback on every WiFi reconnect. This results in repeated
allocations of UDP PCBs (udp_new()), leading to heap exhaustion and
potential lwIP timeout list corruption due to unmatched sntp_stop() calls.

Tasmota does not use the lwIP SNTP client and relies solely on WifiGetNtp()
for time synchronization. To avoid unnecessary resource usage, wrap and
neutralize sntp_init() and sntp_stop() with no-op implementations.

This prevents UDP PCB allocations and avoids issues caused by repeated
initialization during reconnect cycles.

Additionally, a PlatformIO post-build script has been added to validate
that the linker wraps are correctly applied. The script runs after ELF
generation and uses xtensa-lx106-elf-nm to inspect symbols, ensuring that
the __wrap_sntp_init and __wrap_sntp_stop functions are present in the
final firmware. If the wrappers are missing, the build fails.

Confirmed via firmware disassembly:
- Single call site in netif_sta_status_callback
- Requires linker wraps: --wrap=sntp_init,--wrap=sntp_stop

Fixes: #24566
2026-03-26 10:42:02 +01:00
Jason2866
31d4a60d8c Platform 2026.03 (#24547)
* Platform 2026.03

* changes as suggested from Theo
2026-03-14 21:35:28 +01:00
Jason2866
cb80aedcb5 Update platform URL to version 2026.02.00 (#24460) 2026-02-17 13:51:25 +01:00
Theo Arends
0e9246e428 Replace CRLF in LF 2026-02-13 11:24:01 +01:00
Jason2866
61dd7f5b92 Platform 2026.01.30 Tasmota Arduino Core 3.1.9 based on IDF 5.3.4.20251226 (#24354) 2026-01-17 15:14:33 +01:00
Jason2866
54a152f440 Platform 2025.12.31 2025-12-24 15:06:28 +01:00
Jason2866
48395fb016 Update esp8266 and esp32 Platform to 2025.10.xx (#23971)
* update esp8266 platform version 2025.10.00
* Update esp32 platform version 2025.10.30
2025-10-02 11:31:33 +02:00
Jason2866
b852aabdc1 Update esp8266 Platform to 2025.09.00 (#23864) 2025-09-01 19:49:46 +02:00
Jason2866
e18507f2db esp8266 Platform 2025.08.00 (#23801) 2025-08-17 19:21:49 +02:00
Jason2866
0adf865163 esp8266 Platform 2025.07.00 (#23700) 2025-07-18 11:49:05 +02:00
Jason2866
cddcafbda3 Switch off not needed waiting for FS up and download (#23677) 2025-07-13 21:24:25 +02:00
Jason2866
08e1ff548b Platform 2025.05.00 esp8266 Arduino core 2.7.8 (#23448)
- no changes in Arduino Core to previous Platform!
- Platform don't use Platformio registry any more
2025-05-19 20:13:12 +02:00
Jason2866
a088c8791f provide serial upoload port from VSC to PIO (#23436) 2025-05-17 19:59:14 +02:00
Christian Baars
9be9bb8af3 faster 8266 builds, ignore audio libs (#22942) 2025-02-04 15:12:51 +01:00
Ryan Castellucci
dc531de02b auto compress updated html (#22738) 2024-12-29 22:27:10 +01:00
Jason2866
a6075b2855 Platform 2024.09.00 for esp8266 (#22199)
* Platform 2024.09.00 for esp8266

Core 2.7.8

* esp8266 core 2.7.8
2024-09-24 17:25:28 +02:00
Edward Betts
fade4f867d Correct spelling mistakes (#22080) 2024-09-07 15:35:04 +02:00
Jason2866
3537d18483 Update esp8266 platform to 2024.06.10 (#21668)
* Update esp8266 platform (2024.06.00)

* Update strip-floats.py

* Rename strip-floats.py to strip-flags.py

* rename to `strip_flags.py`

* esp8266 v2.7.7
2024-06-20 23:23:53 +02:00
Jason2866
a67f4f0c06 Make use of PIO Project Inspect possible
without the set option, Inspect tries to analyze every lib which does fail
2024-05-02 13:57:18 +02:00
Jason2866
951fba99b1 Breaking: ESP32 Core 3.0.0 only support (#21180)
* Core 3.0.0 only

* rm Arduino30 settings

* rm lib ignore `NimBLE-Arduino`

* rm obsolete or duplicate env entrys
2024-04-15 11:39:48 +02:00
Jason2866
2544cf0305 Update esptool.py (#20890)
* Tasmota esptool.py  v4.7.1
* install only one esptool version
2024-03-07 14:46:22 +01:00
Jason2866
2b0d603d03 Esp8266 ipv6 (#20539)
* esp8266 ipv6 compatible framework
2024-01-18 22:39:50 +01:00
Jason2866
f2f0686601 rm IPv6 (esp8266) build options, not supported 2024-01-18 13:14:06 +01:00
Jason2866
8cc6154478 Update esp8266 Platformio Platform (#20467) 2024-01-11 15:21:53 +01:00
Jason2866
58f50045d9 Add the possibility to set global compile time settings (#20013) 2023-11-14 16:36:09 +01:00
Jason2866
75ec9da8a2 Refactoring of storing safeboot bin (#19858)
* Folder for storing safeboot is now configurable
* Platform 2023.10.06
* Platform 2023.10.12
2023-10-28 13:15:31 +02:00
Jason2866
2b398d309e pio proper lib_ignore fix (#19742) 2023-10-14 20:30:48 +02:00
gneiss15
32d840d2b0 See Issue #19664 (#19665)
Signed-off-by: Günter Neiß <gneiss@web.de>
2023-10-04 19:06:44 +02:00
Theo Arends
dc68232f42 Phase 1 support C2/C6 2023-08-21 17:32:54 +02:00
Jason2866
112c254d54 refac firmware-metrics (#18466)
* refac firmware-metrics

* rm debugging print

* fix esp8266
2023-04-21 16:56:27 +02:00
Jason2866
11a43ea99b Tasmota Core 208 (#18460)
* Tasmota Core 2.0.8
* Fix Linker errors
2023-04-20 20:01:35 +02:00
Jason2866
3dd154ab31 lib_archive = no (#18307) 2023-03-31 18:46:09 +02:00
Jason2866
11645705e3 Flash firmware without run build (#18233)
* Flash without build
* Use firmwares from `build_output`
* simulate build with firmware from `build_output`
* rm debug code
2023-03-21 14:56:24 +01:00
Jason2866
8df25ccf9c esptool.py v4.5.1 for esp8266 (#18107)
to align with esp32 platform. No reinstall of pip installed packages
2023-03-04 16:52:12 +01:00
Jason2866
71e14d62fe all scripts working (#18105)
* mv obj-dump.py
* add pre: and post: to scripts
2023-03-04 11:31:34 +01:00
Jason2866
fe46f4d654 Try to workaround extra_scripts issues 2023-03-02 20:57:17 +01:00
Jason2866
deeed56610 Refactor set_partition_table.py (#18072) 2023-02-28 12:15:19 +01:00
Jason2866
cadab815ef pio script to set env PARTITIONS_TABLE_CSV (#18065) 2023-02-27 17:15:19 +01:00
s-hadinger
ef1211b51f Change compile options for ESP8266 IPv6 (#17526) 2022-12-27 21:27:03 +01:00
Jason2866
163456c3fc Pio: Target: Erase and Upload (#17474) 2022-12-22 11:12:45 +01:00
Jason2866
9fa29c4f39 rm upload_port defaults (#17443)
* rm upload_port defaults
2022-12-20 09:27:10 +01:00
Jason2866
29705c15af revert Platformio changes (#17433) 2022-12-18 17:56:24 +01:00
blakadder
c908dc289e remove manual upload port and switch to autodiscovery in platformio (#17427) 2022-12-17 21:52:12 +01:00
Jason2866
e71913ed42 add option to gz esp32 firmware files (#17379)
* add option to gz esp32 fimrware files

* reverse esp32 gz logic
2022-12-13 16:40:48 +01:00
Stephan Hadinger
d3be3dfe8f IPv6 preview for ESP32, also working for ESP8266 2022-11-30 19:40:58 +01:00
Jason2866
6738eec4c3 Change version naming 2022-11-13 18:04:44 +01:00