Skip to content

fix(format): Fix and future-proof format specifiers#12404

Merged
me-no-dev merged 2 commits into
espressif:masterfrom
lucasssvaz:fix/format_specifiers
Mar 4, 2026
Merged

fix(format): Fix and future-proof format specifiers#12404
me-no-dev merged 2 commits into
espressif:masterfrom
lucasssvaz:fix/format_specifiers

Conversation

@lucasssvaz
Copy link
Copy Markdown
Member

@lucasssvaz lucasssvaz commented Feb 24, 2026

Description of Change

This pull request introduces improvements to logging and string formatting for large integer values across the codebase, as well as enhancements to the CI workflow for compile command collection and merging. The main changes are grouped into two themes: workflow enhancements and codebase improvements for integer handling.

Workflow enhancements:

  • Enabled collection and upload of compile_commands.json artifacts during CI builds, including a new step to merge these files from all build chunks into a single artifact for easier consumption. (.github/workflows/push.yml, .github/scripts/sketch_utils.sh) [1] [2] [3] [4]

Codebase improvements for integer handling and logging:

  • Replaced sprintf with snprintf for safer string formatting, and standardized logging format specifiers to correctly handle 64-bit and unsigned values, improving reliability and correctness in log output. (cores/esp32/FirmwareMSC.cpp, cores/esp32/HEXBuilder.cpp, cores/esp32/HardwareSerial.cpp, cores/esp32/HWCDC.cpp, cores/esp32/MacAddress.cpp) [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19]
  • Added a new StringUtils.cpp utility for converting 64-bit integers to strings, including safe handling for negative values, and exposed conversion functions for use with the String class. (cores/esp32/StringUtils.cpp)
  • Fixed printing of negative 64-bit integers in the Print class to handle edge cases correctly, especially for INT64_MIN. (cores/esp32/Print.cpp)

These changes improve build artifact management in CI and ensure robust handling and logging of large integer values throughout the codebase.

Test Scenarios

Tested locally

@lucasssvaz lucasssvaz self-assigned this Feb 24, 2026
@lucasssvaz lucasssvaz requested a review from Copilot February 24, 2026 21:08
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Feb 24, 2026

Messages
📖 This PR seems to be quite large (total lines of code: 3195), you might consider splitting it into smaller PRs

👋 Hello lucasssvaz, we appreciate your contribution to this project!


📘 Please review the project's Contributions Guide for key guidelines on code, documentation, testing, and more.

🖊️ Please also make sure you have read and signed the Contributor License Agreement for this project.

Click to see more instructions ...


This automated output is generated by the PR linter DangerJS, which checks if your Pull Request meets the project's requirements and helps you fix potential issues.

DangerJS is triggered with each push event to a Pull Request and modify the contents of this comment.

Please consider the following:
- Danger mainly focuses on the PR structure and formatting and can't understand the meaning behind your code or changes.
- Danger is not a substitute for human code reviews; it's still important to request a code review from your colleagues.
- Addressing info messages (📖) is strongly recommended; they're less critical but valuable.
- To manually retry these Danger checks, please navigate to the Actions tab and re-run last Danger workflow.

Review and merge process you can expect ...


We do welcome contributions in the form of bug reports, feature requests and pull requests.

1. An internal issue has been created for the PR, we assign it to the relevant engineer.
2. They review the PR and either approve it or ask you for changes or clarifications.
3. Once the GitHub PR is approved we do the final review, collect approvals from core owners and make sure all the automated tests are passing.
- At this point we may do some adjustments to the proposed change, or extend it by adding tests or documentation.
4. If the change is approved and passes the tests it is merged into the default branch.

Generated by 🚫 dangerJS against a1cf0a1

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This pull request standardizes format specifiers across the ESP32 Arduino core to improve type safety and future-proof the codebase against compiler changes. The changes replace platform-specific format specifiers (like %d, %u, %x, %lu) with portable C99 macros (PRIu32, PRIx8, %zu, etc.) and upgrade unsafe sprintf calls to snprintf to prevent buffer overflows. Additionally, the PR adds compile_commands.json as a CI artifact for debugging purposes.

Changes:

  • Replaced format specifiers with C99 standard macros (PRIu32, PRIx8, PRIu16, etc.) throughout the codebase
  • Upgraded sprintf to snprintf in multiple files to prevent buffer overflows
  • Added compile_commands.json generation and merging as CI artifacts

Reviewed changes

Copilot reviewed 274 out of 274 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
variants/sensebox_/.ino Updated format specifiers in OTA examples
tests/**/*.ino Standardized format specifiers in validation and performance tests
libraries/Zigbee/src/**/*.cpp Fixed format specifiers in Zigbee library
libraries/WiFi/src/*.cpp Replaced sprintf with snprintf, updated format specifiers
libraries/Wire/src/*.cpp Updated format specifiers for I2C operations
libraries/USB/src/*.cpp Fixed format specifiers in USB library
libraries/Matter/src/**/*.cpp Standardized format specifiers in Matter library
libraries/BLE/src/*.cpp Added inttypes.h includes and updated format specifiers
cores/esp32/.c/.cpp Core library format specifier updates and sprintf→snprintf
.github/workflows/push.yml Added compile commands artifact generation
.github/scripts/sketch_utils.sh Added compile commands collection logic

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Feb 24, 2026

Test Results

 94 files   94 suites   26m 34s ⏱️
 77 tests  77 ✅ 0 💤 0 ❌
714 runs  714 ✅ 0 💤 0 ❌

Results for commit a1cf0a1.

♻️ This comment has been updated with latest results.

@lucasssvaz lucasssvaz force-pushed the fix/format_specifiers branch from 8f3802a to 7204a37 Compare February 25, 2026 01:26
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Feb 25, 2026

Memory usage test (comparing PR against master branch)

The table below shows the summary of memory usage change (decrease - increase) in bytes and percentage for each target.

MemoryFLASH [bytes]FLASH [%]RAM [bytes]RAM [%]
TargetDECINCDECINCDECINCDECINC
ESP32💚 -28⚠️ +284💚 -0.01⚠️ +0.08000.000.00
ESP32C3💚 -72⚠️ +336💚 -0.02⚠️ +0.09000.000.00
ESP32C5💚 -70⚠️ +332💚 -0.02⚠️ +0.09000.000.00
ESP32C6💚 -14⚠️ +3640.00⚠️ +0.11000.000.00
ESP32H2💚 -70⚠️ +324💚 -0.02⚠️ +0.09000.000.00
ESP32P4💚 -68⚠️ +346💚 -0.02⚠️ +0.08000.000.00
ESP32S2💚 -96⚠️ +228💚 -0.03⚠️ +0.06000.000.00
ESP32S3💚 -80⚠️ +232💚 -0.02⚠️ +0.06000.000.00
Click to expand the detailed deltas report [usage change in BYTES]
TargetESP32ESP32C3ESP32C5ESP32C6ESP32H2ESP32P4ESP32S2ESP32S3
ExampleFLASHRAMFLASHRAMFLASHRAMFLASHRAMFLASHRAMFLASHRAMFLASHRAMFLASHRAM
libraries/ArduinoOTA/examples/BasicOTA⚠️ +40⚠️ +180⚠️ +220⚠️ +220--⚠️ +2200000
libraries/ArduinoOTA/examples/SignedOTA⚠️ +40⚠️ +180⚠️ +180⚠️ +180--⚠️ +180⚠️ +160⚠️ +240
libraries/AsyncUDP/examples/AsyncUDPClient00⚠️ +120⚠️ +120⚠️ +120--⚠️ +1200000
libraries/AsyncUDP/examples/AsyncUDPMulticastServer00⚠️ +120⚠️ +120⚠️ +120--⚠️ +1200000
libraries/AsyncUDP/examples/AsyncUDPServer00⚠️ +120⚠️ +120⚠️ +120--⚠️ +1200000
libraries/BLE/examples/Beacon_Scanner00⚠️ +20⚠️ +20💚 -60💚 -60💚 -60--⚠️ +40
libraries/BLE/examples/Client00⚠️ +20⚠️ +20⚠️ +20⚠️ +20⚠️ +20--⚠️ +40
libraries/BLE/examples/Client_Gamepad00⚠️ +100⚠️ +20⚠️ +100⚠️ +100⚠️ +100--⚠️ +40
libraries/BLE/examples/Client_Server💚 -160⚠️ +20⚠️ +20⚠️ +20⚠️ +20⚠️ +20--⚠️ +40
libraries/BLE/examples/Client_multiconnect00⚠️ +20⚠️ +20⚠️ +20⚠️ +20⚠️ +20--⚠️ +40
libraries/BLE/examples/Client_secure_static_passkey00⚠️ +20⚠️ +20⚠️ +20⚠️ +20⚠️ +20--⚠️ +40
libraries/BLE/examples/EddystoneTLM_Beacon💚 -160💚 -140💚 -60💚 -60💚 -60💚 -140--00
libraries/BLE/examples/EddystoneURL_Beacon💚 -160💚 -60💚 -60💚 -60💚 -60💚 -60--💚 -120
libraries/BLE/examples/Notify💚 -160⚠️ +20⚠️ +20⚠️ +20⚠️ +20⚠️ +20--⚠️ +40
libraries/BLE/examples/Scan💚 -160⚠️ +20⚠️ +20⚠️ +20⚠️ +20⚠️ +20--⚠️ +40
libraries/BLE/examples/Server00⚠️ +20⚠️ +20⚠️ +20⚠️ +20⚠️ +20--⚠️ +40
libraries/BLE/examples/Server_Gamepad00⚠️ +20⚠️ +20⚠️ +20⚠️ +20⚠️ +20--⚠️ +40
libraries/BLE/examples/Server_multiconnect00⚠️ +20⚠️ +20⚠️ +20⚠️ +20⚠️ +20--⚠️ +40
libraries/BLE/examples/Server_secure_static_passkey00⚠️ +20⚠️ +20⚠️ +20⚠️ +20⚠️ +20--⚠️ +40
libraries/BLE/examples/UART00⚠️ +20⚠️ +20⚠️ +20⚠️ +20⚠️ +20--⚠️ +40
libraries/BLE/examples/Write00⚠️ +20⚠️ +20⚠️ +20⚠️ +20⚠️ +20--⚠️ +40
libraries/BLE/examples/iBeacon00⚠️ +20⚠️ +20⚠️ +20⚠️ +20⚠️ +20--⚠️ +40
libraries/BluetoothSerial/examples/DiscoverConnect00--------------
libraries/BluetoothSerial/examples/GetLocalMAC00--------------
libraries/BluetoothSerial/examples/SerialToSerialBT00--------------
libraries/BluetoothSerial/examples/SerialToSerialBTM00--------------
libraries/BluetoothSerial/examples/SerialToSerialBT_Legacy⚠️ +160--------------
libraries/BluetoothSerial/examples/SerialToSerialBT_SSP00--------------
libraries/BluetoothSerial/examples/bt_classic_device_discovery00--------------
libraries/BluetoothSerial/examples/bt_remove_paired_devices⚠️ +40--------------
libraries/DNSServer/examples/CaptivePortal00⚠️ +140⚠️ +40⚠️ +140--⚠️ +20💚 -160💚 -40
libraries/EEPROM/examples/eeprom_class00000000000000⚠️ +160
libraries/EEPROM/examples/eeprom_extra0000000000000000
libraries/EEPROM/examples/eeprom_write⚠️ +16000000000000000
libraries/ESP32/examples/AnalogOut/LEDCFade00000000000000⚠️ +160
libraries/ESP32/examples/AnalogOut/LEDCSingleChannel00000000000000⚠️ +160
libraries/ESP32/examples/AnalogOut/LEDCSoftwareFade00000000000000⚠️ +160
libraries/ESP32/examples/AnalogOut/SigmaDelta00000000000000⚠️ +160
libraries/ESP32/examples/AnalogOut/ledcFrequency00000000000000⚠️ +160
libraries/ESP32/examples/AnalogOut/ledcWrite_RGB⚠️ +16000000000000000
libraries/ESP32/examples/AnalogRead00000000000000⚠️ +160
libraries/ESP32/examples/AnalogReadContinuous0000000000000000
libraries/ESP32/examples/ArduinoStackSize0000000000000000
libraries/ESP32/examples/ArduinoWaitTimeBeforeStartingSketch00000000000000⚠️ +160
libraries/ESP32/examples/CI/CIBoardsTest0000000000000000
libraries/ESP32/examples/Camera/CameraWebServer⚠️ +920----------⚠️ +1000⚠️ +920
ESP32/examples/Camera/CameraWebServer (2)⚠️ +1080----------⚠️ +1000⚠️ +760
libraries/ESP32/examples/ChipID/GetChipID0000000000000000
libraries/ESP32/examples/DeepSleep/ExternalWakeUp00----------0000
libraries/ESP32/examples/DeepSleep/SmoothBlink_ULP_Code00--------------
libraries/ESP32/examples/DeepSleep/TimerWakeUp00000000--000000
libraries/ESP32/examples/DeepSleep/TouchWakeUp00--------000000
libraries/ESP32/examples/FreeRTOS/BasicMultiThreading00000000000000⚠️ +160
libraries/ESP32/examples/FreeRTOS/Mutex0000000000000000
libraries/ESP32/examples/FreeRTOS/Queue00000000000000⚠️ +160
libraries/ESP32/examples/FreeRTOS/Semaphore0000000000000000
libraries/ESP32/examples/GPIO/BlinkRGB00000000000000⚠️ +160
libraries/ESP32/examples/GPIO/FunctionalInterrupt⚠️ +160000000000000⚠️ +160
libraries/ESP32/examples/GPIO/FunctionalInterruptLambda0000000000000000
libraries/ESP32/examples/GPIO/FunctionalInterruptStruct0000000000000000
libraries/ESP32/examples/GPIO/GPIOInterrupt0000000000000000
libraries/ESP32/examples/MacAddress/GetMacAddress⚠️ +280⚠️ +640⚠️ +700⚠️ +220⚠️ +700⚠️ +640⚠️ +280⚠️ +280
libraries/ESP32/examples/RMT/Legacy_RMT_Driver_Compatible00000000000000⚠️ +160
libraries/ESP32/examples/RMT/RMTCallback0000000000000000
libraries/ESP32/examples/RMT/RMTLoopback⚠️ +160000000000000⚠️ +160
libraries/ESP32/examples/RMT/RMTReadXJT⚠️ +160000000000000⚠️ +160
libraries/ESP32/examples/RMT/RMTWrite_RGB_LED⚠️ +160000000000000⚠️ +160
libraries/ESP32/examples/RMT/RMT_CPUFreq_Test00000000000000⚠️ +160
libraries/ESP32/examples/RMT/RMT_EndOfTransmissionState0000000000000000
libraries/ESP32/examples/RMT/RMT_LED_Blink00000000000000⚠️ +160
libraries/ESP32/examples/ResetReason/ResetReason0000000000000000
libraries/ESP32/examples/ResetReason/ResetReason20000000000000000
libraries/ESP32/examples/Serial/BaudRateDetect_Demo00000000000000⚠️ +160
libraries/ESP32/examples/Serial/HardwareFlowControl_Demo0000000000000000
libraries/ESP32/examples/Serial/OnReceiveError_BREAK_Demo0000000000000000
libraries/ESP32/examples/Serial/OnReceive_Demo00000000000000⚠️ +160
libraries/ESP32/examples/Serial/RS485_Echo_Demo0000000000000000
libraries/ESP32/examples/Serial/RxFIFOFull_Demo000000000000⚠️ +40⚠️ +200
libraries/ESP32/examples/Serial/RxTimeout_Demo000000000000⚠️ +120⚠️ +200
libraries/ESP32/examples/Serial/Serial_All_CPU_Freqs00000000000000⚠️ +160
libraries/ESP32/examples/Serial/Serial_STD_Func_OnReceive0000000000000000
libraries/ESP32/examples/Serial/onReceiveExample0000000000000000
libraries/ESP32/examples/Serial/print64bitVariable----------------
libraries/ESP32/examples/TWAI/TWAIreceive0000--00000000⚠️ +160
libraries/ESP32/examples/TWAI/TWAItransmit⚠️ +16000--0000000000
libraries/ESP32/examples/Template/ExampleTemplate00000000000000⚠️ +160
libraries/ESP32/examples/Time/SimpleTime00⚠️ +120⚠️ +120⚠️ +120--⚠️ +1200000
libraries/ESP32/examples/Timer/RepeatTimer0000000000000000
libraries/ESP32/examples/Timer/WatchdogTimer0000000000000000
libraries/ESP32/examples/Touch/TouchButton00--------000000
libraries/ESP32/examples/Touch/TouchInterrupt⚠️ +160--------000000
libraries/ESP32/examples/Touch/TouchRead00--------000000
libraries/ESP_I2S/examples/ES8388_loopback00000000000000⚠️ +160
libraries/ESP_I2S/examples/Record_to_WAV⚠️ +640--------⚠️ +140--⚠️ +280
libraries/ESP_I2S/examples/Simple_tone0000000000000000
libraries/ESP_NOW/examples/ESP_NOW_Broadcast_Master⚠️ +160⚠️ +120⚠️ +120⚠️ +120----0000
libraries/ESP_NOW/examples/ESP_NOW_Broadcast_Slave00⚠️ +120⚠️ +120⚠️ +120----0000
libraries/ESP_NOW/examples/ESP_NOW_Network⚠️ +160⚠️ +120⚠️ +120⚠️ +120----0000
libraries/ESP_NOW/examples/ESP_NOW_Serial00⚠️ +120⚠️ +120⚠️ +120----0000
libraries/ESPmDNS/examples/mDNS-SD_Extended⚠️ +120⚠️ +420⚠️ +420⚠️ +420--⚠️ +420⚠️ +160⚠️ +120
libraries/ESPmDNS/examples/mDNS_Web_Server⚠️ +40⚠️ +340⚠️ +340⚠️ +340--⚠️ +3400000
libraries/Ethernet/examples/ETH_LAN8720⚠️ +320--------------
libraries/Ethernet/examples/ETH_TLK110⚠️ +320--------⚠️ +500----
libraries/Ethernet/examples/ETH_W5500_Arduino_SPI💚 -40⚠️ +220⚠️ +220💚 -140⚠️ +220⚠️ +220⚠️ +120⚠️ +120
libraries/Ethernet/examples/ETH_W5500_IDF_SPI💚 -40⚠️ +220⚠️ +220💚 -140⚠️ +220⚠️ +220⚠️ +120⚠️ +120
libraries/Ethernet/examples/ETH_WIFI_BRIDGE💚 -280💚 -260💚 -260💚 -140--💚 -260💚 -120💚 -120
libraries/FFat/examples/FFat_Test⚠️ +640⚠️ +140⚠️ +120⚠️ +420⚠️ +140⚠️ +120💚 -40⚠️ +280
libraries/FFat/examples/FFat_time⚠️ +960⚠️ +160⚠️ +140⚠️ +480--⚠️ +180⚠️ +240⚠️ +200
libraries/HTTPClient/examples/Authorization00⚠️ +120⚠️ +120⚠️ +120--⚠️ +1200000
libraries/HTTPClient/examples/BasicHttpClient00⚠️ +120⚠️ +120⚠️ +120--⚠️ +1200000
libraries/HTTPClient/examples/BasicHttpsClient00⚠️ +120⚠️ +120⚠️ +120--⚠️ +1200000
libraries/HTTPClient/examples/CustomHeaders⚠️ +160⚠️ +120⚠️ +120⚠️ +120--⚠️ +1200000
libraries/HTTPClient/examples/HTTPClientEnterprise00⚠️ +120⚠️ +120⚠️ +120----0000
libraries/HTTPClient/examples/ReuseConnection00⚠️ +120⚠️ +120⚠️ +120--⚠️ +1200000
libraries/HTTPClient/examples/StreamHttpClient00⚠️ +120⚠️ +120⚠️ +120--⚠️ +12000⚠️ +160
libraries/HTTPUpdate/examples/httpUpdate⚠️ +40⚠️ +180⚠️ +180⚠️ +180--⚠️ +180⚠️ +120⚠️ +40
libraries/HTTPUpdate/examples/httpUpdateSPIFFS⚠️ +40⚠️ +180⚠️ +180⚠️ +180--⚠️ +180⚠️ +120⚠️ +200
libraries/HTTPUpdate/examples/httpUpdateSecure⚠️ +40⚠️ +180⚠️ +180⚠️ +180--⚠️ +180⚠️ +120⚠️ +40
libraries/HTTPUpdateServer/examples/WebUpdater00⚠️ +560⚠️ +560⚠️ +560--⚠️ +560⚠️ +4000
libraries/Hash/examples/HEX⚠️ +240⚠️ +580⚠️ +580⚠️ +100⚠️ +580⚠️ +580⚠️ +240⚠️ +240
libraries/Hash/examples/MD5⚠️ +240⚠️ +580⚠️ +580⚠️ +100⚠️ +580⚠️ +580⚠️ +320⚠️ +240
libraries/Hash/examples/PBKDF2_HMAC⚠️ +240⚠️ +580⚠️ +580⚠️ +100⚠️ +580⚠️ +580⚠️ +320⚠️ +240
libraries/Hash/examples/SHA1⚠️ +240⚠️ +580⚠️ +580⚠️ +100⚠️ +580⚠️ +580⚠️ +320⚠️ +240
libraries/Hash/examples/SHA2⚠️ +400⚠️ +580⚠️ +580⚠️ +100⚠️ +580⚠️ +580⚠️ +320⚠️ +240
libraries/Hash/examples/SHA3⚠️ +240⚠️ +580⚠️ +580⚠️ +100⚠️ +580⚠️ +580⚠️ +320⚠️ +400
libraries/Hash/examples/SHA3Stream⚠️ +400⚠️ +580⚠️ +580⚠️ +100⚠️ +580⚠️ +580⚠️ +440⚠️ +240
libraries/Insights/examples/DiagnosticsSmokeTest00⚠️ +120⚠️ +120⚠️ +120----0000
libraries/Insights/examples/MinimalDiagnostics00⚠️ +120⚠️ +120⚠️ +120----0000
libraries/LittleFS/examples/LITTLEFS_test⚠️ +1800⚠️ +1580⚠️ +1580⚠️ +600⚠️ +1600⚠️ +1600⚠️ +1280⚠️ +1440
libraries/LittleFS/examples/LITTLEFS_time⚠️ +800⚠️ +220⚠️ +220⚠️ +540--⚠️ +220⚠️ +280⚠️ +360
libraries/Matter/examples/MatterColorLight0000000000--0000
libraries/Matter/examples/MatterCommissionTest0000000000--0000
libraries/Matter/examples/MatterComposedLights⚠️ +16000000000--0000
libraries/Matter/examples/MatterContactSensor0000000000--0000
libraries/Matter/examples/MatterDimmableLight⚠️ +16000⚠️ +160⚠️ +160⚠️ +160--0000
libraries/Matter/examples/MatterDimmablePlugin0000⚠️ +160⚠️ +160⚠️ +160--0000
libraries/Matter/examples/MatterEnhancedColorLight0000⚠️ +160⚠️ +160⚠️ +160--0000
libraries/Matter/examples/MatterEvents0000000000--0000
libraries/Matter/examples/MatterFan💚 -4000000000--00⚠️ +160
libraries/Matter/examples/MatterHumiditySensor0000000000--00⚠️ +160
libraries/Matter/examples/MatterLambdaSingleCallbackManyEPs0000000000--0000
libraries/Matter/examples/MatterMinimum0000000000--0000
libraries/Matter/examples/MatterOccupancySensor0000000000--0000
libraries/Matter/examples/MatterOccupancyWithHoldTime0000000000--0000
libraries/Matter/examples/MatterOnIdentify⚠️ +16000000000--0000
libraries/Matter/examples/MatterOnOffLight⚠️ +16000000000--0000
libraries/Matter/examples/MatterOnOffPlugin0000000000--00⚠️ +160
libraries/Matter/examples/MatterPressureSensor0000000000--00⚠️ +160
libraries/Matter/examples/MatterRainSensor0000000000--0000
libraries/Matter/examples/MatterSimpleBlinds0000000000--0000
libraries/Matter/examples/MatterSmartButton⚠️ +16000000000--0000
libraries/Matter/examples/MatterStatus⚠️ +16000000000--0000
libraries/Matter/examples/MatterTemperatureControlledCabinet0000000000--0000
libraries/Matter/examples/MatterTemperatureControlledCabinetLevels0000000000--0000
libraries/Matter/examples/MatterTemperatureLight0000⚠️ +160⚠️ +160⚠️ +160--0000
libraries/Matter/examples/MatterTemperatureSensor⚠️ +16000000000--0000
libraries/Matter/examples/MatterThermostat0000000000--00⚠️ +160
libraries/Matter/examples/MatterWaterFreezeDetector⚠️ +16000000000--0000
libraries/Matter/examples/MatterWaterLeakDetector0000000000--0000
libraries/Matter/examples/MatterWindowCovering0000000000--00⚠️ +160
libraries/NetBIOS/examples/ESP_NBNST00⚠️ +120⚠️ +120⚠️ +120--⚠️ +12000⚠️ +160
libraries/NetworkClientSecure/examples/WiFiClientInsecure00⚠️ +120⚠️ +120⚠️ +120--⚠️ +12000⚠️ +160
libraries/NetworkClientSecure/examples/WiFiClientPSK⚠️ +160⚠️ +120⚠️ +120⚠️ +120--⚠️ +12000⚠️ +160
libraries/NetworkClientSecure/examples/WiFiClientSecure00⚠️ +120⚠️ +120⚠️ +120--⚠️ +12000⚠️ +160
libraries/NetworkClientSecure/examples/WiFiClientSecureEnterprise00⚠️ +120⚠️ +120⚠️ +120----0000
libraries/NetworkClientSecure/examples/WiFiClientSecureProtocolUpgrade⚠️ +160⚠️ +120⚠️ +120⚠️ +120--⚠️ +12000⚠️ +160
libraries/NetworkClientSecure/examples/WiFiClientShowPeerCredentials00⚠️ +120⚠️ +120⚠️ +120--⚠️ +12000⚠️ +160
libraries/NetworkClientSecure/examples/WiFiClientTrustOnFirstUse00⚠️ +120⚠️ +120⚠️ +120--⚠️ +1200000
libraries/PPP/examples/PPP_Basic⚠️ +240⚠️ +600⚠️ +600⚠️ +120⚠️ +600⚠️ +600⚠️ +240⚠️ +240
libraries/PPP/examples/PPP_WIFI_BRIDGE00⚠️ +120⚠️ +120⚠️ +120--⚠️ +1200000
libraries/Preferences/examples/Prefs2Struct⚠️ +16000000000000000
libraries/Preferences/examples/StartCounter00000000000000⚠️ +160
libraries/SD/examples/SD_Test⚠️ +2720⚠️ +3220⚠️ +3240⚠️ +3600⚠️ +3240⚠️ +3240⚠️ +1960⚠️ +2160
libraries/SD/examples/SD_time⚠️ +2840⚠️ +3360⚠️ +3320⚠️ +3640--⚠️ +3380⚠️ +2280⚠️ +2160
libraries/SD_MMC/examples/SDMMC_Test⚠️ +2680--------⚠️ +3280--⚠️ +2280
libraries/SD_MMC/examples/SDMMC_time⚠️ +2720--------⚠️ +3460--⚠️ +2320
libraries/SPI/examples/SPI_Multiple_Buses0000000000000000
libraries/SPIFFS/examples/SPIFFS_Test⚠️ +1960⚠️ +1540⚠️ +1540⚠️ +600⚠️ +1580⚠️ +1600⚠️ +1280⚠️ +1440
libraries/SPIFFS/examples/SPIFFS_time⚠️ +960⚠️ +220⚠️ +220⚠️ +560--⚠️ +240⚠️ +280⚠️ +360
libraries/SimpleBLE/examples/SimpleBleDevice00--------------
libraries/TFLiteMicro/examples/hello_world00000000000000⚠️ +160
libraries/Ticker/examples/Blinker00000000000000⚠️ +160
libraries/Ticker/examples/TickerBasic00000000000000⚠️ +160
libraries/Ticker/examples/TickerParameter00000000000000⚠️ +160
libraries/Update/examples/AWS_S3_OTA_Update00⚠️ +140⚠️ +140⚠️ +140--⚠️ +1400000
libraries/Update/examples/HTTPS_OTA_Update00⚠️ +140⚠️ +140⚠️ +140--⚠️ +14000⚠️ +160
libraries/Update/examples/HTTP_Client_AES_OTA_Update00⚠️ +140⚠️ +140⚠️ +140--⚠️ +1400000
libraries/Update/examples/HTTP_Server_AES_OTA_Update⚠️ +40⚠️ +400⚠️ +400⚠️ +400--⚠️ +4000000
libraries/Update/examples/OTAWebUpdater⚠️ +40⚠️ +340⚠️ +340⚠️ +340--⚠️ +340⚠️ +40⚠️ +160
libraries/Update/examples/SD_Update💚 -280💚 -720💚 -700⚠️ +420💚 -700💚 -680💚 -960💚 -800
libraries/Update/examples/Signed_OTA_Update00⚠️ +140⚠️ +140⚠️ +140--⚠️ +1400000
libraries/WebServer/examples/AdvancedWebServer⚠️ +120⚠️ +180⚠️ +180⚠️ +180--⚠️ +180⚠️ +240⚠️ +160
libraries/WebServer/examples/ChunkWriting⚠️ +40⚠️ +160⚠️ +160⚠️ +160--⚠️ +160⚠️ +160⚠️ +40
libraries/WebServer/examples/FSBrowser⚠️ +1080⚠️ +260⚠️ +340⚠️ +620--⚠️ +260⚠️ +360⚠️ +440
libraries/WebServer/examples/Filters00⚠️ +140⚠️ +140⚠️ +140--⚠️ +1400000
libraries/WebServer/examples/HelloServer00⚠️ +140⚠️ +140⚠️ +140--⚠️ +140⚠️ +4000
libraries/WebServer/examples/HttpAdvancedAuth⚠️ +240⚠️ +360⚠️ +400⚠️ +400--⚠️ +400⚠️ +20000
libraries/WebServer/examples/HttpAuthCallback00⚠️ +360⚠️ +400⚠️ +400--⚠️ +400⚠️ +240⚠️ +240
libraries/WebServer/examples/HttpAuthCallbackInline00⚠️ +360⚠️ +400⚠️ +400--⚠️ +400⚠️ +240⚠️ +240
libraries/WebServer/examples/HttpBasicAuth00⚠️ +360⚠️ +400⚠️ +400--⚠️ +400⚠️ +120⚠️ +280
libraries/WebServer/examples/HttpBasicAuthSHA1⚠️ +240⚠️ +360⚠️ +360⚠️ +360--⚠️ +360⚠️ +20000
libraries/WebServer/examples/HttpBasicAuthSHA1orBearerToken00⚠️ +360⚠️ +360⚠️ +360--⚠️ +360⚠️ +20000
libraries/WebServer/examples/Middleware⚠️ +40⚠️ +320⚠️ +320⚠️ +320----⚠️ +120⚠️ +160
libraries/WebServer/examples/MultiHomedServers00⚠️ +140⚠️ +140⚠️ +140--⚠️ +1400000
libraries/WebServer/examples/PathArgServer00⚠️ +60⚠️ +140⚠️ +140--⚠️ +6000⚠️ +160
libraries/WebServer/examples/SDWebServer⚠️ +840⚠️ +360⚠️ +360⚠️ +720--⚠️ +360⚠️ +200⚠️ +160
libraries/WebServer/examples/SimpleAuthentification00⚠️ +140⚠️ +140⚠️ +140--⚠️ +14000⚠️ +160
libraries/WebServer/examples/UploadHugeFile⚠️ +800⚠️ +60⚠️ +140⚠️ +500--⚠️ +60⚠️ +240⚠️ +200
libraries/WebServer/examples/WebServer⚠️ +800⚠️ +160⚠️ +160⚠️ +520--⚠️ +160⚠️ +320⚠️ +240
libraries/WebServer/examples/WebUpdate00⚠️ +540⚠️ +540⚠️ +540--⚠️ +540⚠️ +4000
libraries/WiFi/examples/FTM/FTM_Initiator00⚠️ +120⚠️ +120⚠️ +120--⚠️ +1200000
libraries/WiFi/examples/FTM/FTM_Responder00⚠️ +120⚠️ +120⚠️ +120--⚠️ +1200000
libraries/WiFi/examples/SimpleWiFiServer00⚠️ +120⚠️ +120⚠️ +120--⚠️ +12000⚠️ +160
libraries/WiFi/examples/WPS00⚠️ +120⚠️ +120⚠️ +120----0000
libraries/WiFi/examples/WiFiAccessPoint00⚠️ +120⚠️ +120⚠️ +120--⚠️ +1200000
libraries/WiFi/examples/WiFiBlueToothSwitch00⚠️ +120⚠️ +120⚠️ +120------⚠️ +160
libraries/WiFi/examples/WiFiClient00⚠️ +120⚠️ +120⚠️ +120--⚠️ +1200000
libraries/WiFi/examples/WiFiClientBasic00⚠️ +120⚠️ +120⚠️ +120--⚠️ +12000⚠️ +160
libraries/WiFi/examples/WiFiClientConnect00⚠️ +120⚠️ +120⚠️ +120--⚠️ +1200000
libraries/WiFi/examples/WiFiClientEnterprise00⚠️ +120⚠️ +120⚠️ +120----0000
libraries/WiFi/examples/WiFiClientEvents00⚠️ +120⚠️ +120⚠️ +120--⚠️ +1200000
libraries/WiFi/examples/WiFiClientStaticIP00⚠️ +120⚠️ +120⚠️ +120--⚠️ +1200000
libraries/WiFi/examples/WiFiExtender00⚠️ +120⚠️ +120⚠️ +120--⚠️ +1200000
libraries/WiFi/examples/WiFiIPv600⚠️ +120⚠️ +120⚠️ +120--⚠️ +1200000
libraries/WiFi/examples/WiFiMulti00⚠️ +120⚠️ +120⚠️ +120--⚠️ +12000⚠️ +160
libraries/WiFi/examples/WiFiMultiAdvanced00⚠️ +120⚠️ +120⚠️ +120--⚠️ +120⚠️ +12000
libraries/WiFi/examples/WiFiScan⚠️ +160⚠️ +120⚠️ +120⚠️ +120--⚠️ +1200000
libraries/WiFi/examples/WiFiScanAsync00⚠️ +120⚠️ +120⚠️ +120--⚠️ +120⚠️ +12000
libraries/WiFi/examples/WiFiScanDualAntenna00⚠️ +120⚠️ +120⚠️ +120--⚠️ +1200000
libraries/WiFi/examples/WiFiScanTime00⚠️ +120⚠️ +120⚠️ +120--⚠️ +1200000
libraries/WiFi/examples/WiFiSmartConfig💚 -40⚠️ +120⚠️ +120⚠️ +120----00⚠️ +160
libraries/WiFi/examples/WiFiTelnetToSerial00⚠️ +120⚠️ +120⚠️ +120--⚠️ +12000⚠️ +160
libraries/WiFi/examples/WiFiUDPClient00⚠️ +120⚠️ +120⚠️ +120--⚠️ +1200000
libraries/WiFiProv/examples/WiFiProv00⚠️ +120⚠️ +120⚠️ +120----0000
libraries/Wire/examples/WireMaster0000000000000000
libraries/Wire/examples/WireScan0000000000000000
libraries/Wire/examples/WireSlave⚠️ +160000000000000⚠️ +160
libraries/Wire/examples/WireSlaveFunctionalCallback⚠️ +160000000000000⚠️ +160
libraries/Zigbee/examples/Zigbee_Analog_Input_Output⚠️ +16000000000--0000
libraries/Zigbee/examples/Zigbee_Color_Dimmer_Switch0000000000--0000
libraries/Zigbee/examples/Zigbee_Electrical_AC_Sensor0000000000--0000
libraries/Zigbee/examples/Zigbee_Electrical_AC_Sensor_MultiPhase0000000000--0000
libraries/Zigbee/examples/Zigbee_Fan_Control0000000000--00⚠️ +160
libraries/Zigbee/examples/Zigbee_Gateway00⚠️ +120⚠️ +120------0000
libraries/Zigbee/examples/Zigbee_Multistate_Input_Output0000000000--0000
libraries/Zigbee/examples/Zigbee_On_Off_MultiSwitch0000000000--0000
libraries/Zigbee/examples/Zigbee_On_Off_Switch0000000000--00⚠️ +160
libraries/Zigbee/examples/Zigbee_Power_Outlet⚠️ +16000000000--00⚠️ +160
libraries/Zigbee/examples/Zigbee_Range_Extender0000000000--0000
libraries/Zigbee/examples/Zigbee_Thermostat0000000000--0000
libraries/BLE/examples/Server_secure_authorization--⚠️ +100⚠️ +20⚠️ +100⚠️ +100----⚠️ +40
libraries/ESP32/examples/HWCDC_Events--0000000000--⚠️ +160
libraries/RainMaker/examples/RMakerCustom--⚠️ +120⚠️ +120⚠️ +120----0000
libraries/RainMaker/examples/RMakerCustomAirCooler--⚠️ +120⚠️ +120⚠️ +120----0000
libraries/RainMaker/examples/RMakerSonoffDualR3--⚠️ +120⚠️ +120⚠️ +120----⚠️ +4000
libraries/RainMaker/examples/RMakerSwitch--⚠️ +120⚠️ +120⚠️ +120----0000
libraries/ESP32/examples/AnalogOut/LEDCGammaFade----00000000----
libraries/OpenThread/examples/CLI/COAP/coap_lamp----000000------
libraries/OpenThread/examples/CLI/COAP/coap_switch----000000------
libraries/OpenThread/examples/CLI/SimpleCLI----000000------
libraries/OpenThread/examples/CLI/SimpleNode----000000------
libraries/OpenThread/examples/CLI/SimpleThreadNetwork/ExtendedRouterNode----⚠️ +260⚠️ +260⚠️ +260------
libraries/OpenThread/examples/CLI/SimpleThreadNetwork/LeaderNode----000000------
libraries/OpenThread/examples/CLI/SimpleThreadNetwork/RouterNode----000000------
libraries/OpenThread/examples/CLI/ThreadScan----000000------
libraries/OpenThread/examples/CLI/onReceive----000000------
libraries/OpenThread/examples/Native/SimpleThreadNetwork/LeaderNode----000000------
libraries/OpenThread/examples/Native/SimpleThreadNetwork/RouterNode----000000------
libraries/Zigbee/examples/Zigbee_Binary_Input_Output----000000------
libraries/Zigbee/examples/Zigbee_CarbonDioxide_Sensor----000000------
libraries/Zigbee/examples/Zigbee_Color_Dimmable_Light----000000------
libraries/Zigbee/examples/Zigbee_Contact_Switch----000000------
libraries/Zigbee/examples/Zigbee_Dimmable_Light----000000------
libraries/Zigbee/examples/Zigbee_Electrical_DC_Sensor----000000------
libraries/Zigbee/examples/Zigbee_Illuminance_Sensor----000000------
libraries/Zigbee/examples/Zigbee_OTA_Client----000000------
libraries/Zigbee/examples/Zigbee_Occupancy_Sensor----000000------
libraries/Zigbee/examples/Zigbee_On_Off_Light----000000------
libraries/Zigbee/examples/Zigbee_PM25_Sensor----000000------
libraries/Zigbee/examples/Zigbee_Pressure_Flow_Sensor----000000------
libraries/Zigbee/examples/Zigbee_Scan_Networks----⚠️ +120⚠️ +200⚠️ +120------
libraries/Zigbee/examples/Zigbee_Temp_Hum_Sensor_Sleepy----000000------
libraries/Zigbee/examples/Zigbee_Temperature_Sensor----000000------
libraries/Zigbee/examples/Zigbee_Vibration_Sensor----000000------
libraries/Zigbee/examples/Zigbee_Wind_Speed_Sensor----000000------
libraries/Zigbee/examples/Zigbee_Window_Covering----000000------
libraries/ESP_HostedOTA/examples/ESP_HostedOTA----------⚠️ +120----
libraries/ESP_SR/examples/Basic----------00--⚠️ +160
libraries/SD_MMC/examples/SD2USBMSC----------⚠️ +3240--⚠️ +2200
libraries/USB/examples/CompositeDevice----------000000
libraries/USB/examples/ConsumerControl----------0000⚠️ +160
libraries/USB/examples/CustomHIDDevice----------000000
libraries/USB/examples/FirmwareMSC----------000000
libraries/USB/examples/Gamepad----------0000⚠️ +160
libraries/USB/examples/HIDVendor----------000000
libraries/USB/examples/Keyboard/KeyboardLogout----------000000
libraries/USB/examples/Keyboard/KeyboardMessage----------000000
libraries/USB/examples/Keyboard/KeyboardReprogram----------000000
libraries/USB/examples/Keyboard/KeyboardSerial----------0000⚠️ +160
libraries/USB/examples/KeyboardAndMouseControl----------0000⚠️ +160
libraries/USB/examples/MIDI/MidiController----------0000⚠️ +160
libraries/USB/examples/MIDI/MidiInterface----------000000
libraries/USB/examples/MIDI/MidiMultiChannel----------0000⚠️ +160
libraries/USB/examples/MIDI/MidiMusicBox----------000000
libraries/USB/examples/MIDI/ReceiveMidi----------000000
libraries/USB/examples/Mouse/ButtonMouseControl----------000000
libraries/USB/examples/SystemControl----------0000⚠️ +160
libraries/USB/examples/USBMSC----------0000⚠️ +160
libraries/USB/examples/USBSerial----------000000
libraries/USB/examples/USBVendor----------000000
ESP32/examples/Camera/CameraWebServer (3)--------------⚠️ +920

@lucasssvaz lucasssvaz force-pushed the fix/format_specifiers branch 7 times, most recently from bd74291 to 73545cd Compare February 27, 2026 02:02
@lucasssvaz lucasssvaz force-pushed the fix/format_specifiers branch from 73545cd to 7b977d5 Compare February 27, 2026 02:05
@lucasssvaz lucasssvaz requested a review from Jason2866 February 27, 2026 12:42
@lucasssvaz lucasssvaz marked this pull request as ready for review February 27, 2026 12:42
@lucasssvaz lucasssvaz added the Status: Review needed Issue or PR is awaiting review label Feb 27, 2026
@Jason2866
Copy link
Copy Markdown
Collaborator

@lucasssvaz will do a framework build and test with the Tasmota build which failed because nano lib incompatibility in Arduino core. Feedback in a few hours

Copy link
Copy Markdown
Collaborator

@Jason2866 Jason2866 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tasmota LVGL CSI CAM build does work with this changes. Does fail without this PR since sprintf was used with not nano lib compatible settings.
Great refactoring!!

@me-no-dev me-no-dev added Status: Pending Merge Pull Request is ready to be merged and removed Status: Review needed Issue or PR is awaiting review labels Mar 4, 2026
@me-no-dev me-no-dev merged commit f65f49b into espressif:master Mar 4, 2026
84 checks passed
@lucasssvaz lucasssvaz deleted the fix/format_specifiers branch March 4, 2026 13:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Status: Pending Merge Pull Request is ready to be merged

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants