espressif / arduino-esp32

Arduino core for the ESP32
GNU Lesser General Public License v2.1
13.75k stars 7.44k forks source link

ci(json): Add requires_any field and use QIO by default to match IDE #10472

Closed lucasssvaz closed 1 month ago

lucasssvaz commented 1 month ago

Description of Change

As we can easily change the flash mode for some sketch to DIO, lets switch the default back to QIO so we match the IDE default.

Also add the requires_any field to the JSON so we can match requirements in a OR configuration. This will be useful for sketches that require one option or the other, for example the sketches that require WiFi connectivity needs either CONFIG_SOC_WIFI_SUPPORTED=y or CONFIG_ESP_WIFI_REMOTE_ENABLED=y.

Also add some QoL improvements.

Tests scenarios

CI

github-actions[bot] commented 1 month ago
Warnings
:warning: **Some issues found for the commit messages in this PR:** - the commit message `"ci(FQBN): Use QIO as default as DIO can be used on demand now"`: - *scope/component* should be lowercase without whitespace, allowed special characters are `_` `/` `.` `,` `*` `-` `.` *** **Please fix these commit messages** - here are some basic tips: - follow [Conventional Commits style](https://www.conventionalcommits.org/en/v1.0.0/) - correct format of commit message should be: `(): `, for example `fix(esp32): Fixed startup timeout issue` - allowed types are: `change,ci,docs,feat,fix,refactor,remove,revert,test` - sufficiently descriptive message summary should be between 20 to 72 characters and start with upper case letter - avoid Jira references in commit messages (unavailable/irrelevant for our customers) `TIP:` Install pre-commit hooks and run this check when committing (uses the [Conventional Precommit Linter](https://github.com/espressif/conventional-precommit-linter)).
Messages
:book: You might consider squashing your 5 commits (simplifying branch history).

πŸ‘‹ Hello lucasssvaz, we appreciate your contribution to 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.
- Resolve all warnings (⚠️ ) before requesting a review from human reviewers - they will appreciate it.
- 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 :no_entry_sign: dangerJS against 4eab83b07d07ea77458e80b1a074decb34fdde3e

github-actions[bot] commented 1 month ago

Test Results

 56 files   -β€Šβ€‡99   56 suites   -β€Š99   4m 14s :stopwatch: - 1h 42m 51s  21 tests  -β€Šβ€‡12   21 :white_check_mark:  -β€Šβ€‡10  0 :zzz: Β±0  0 :x: Β±0  135 runsβ€Š  -β€Š189  135 :white_check_mark:  -β€Š183  0 :zzz: Β±0  0 :x: Β±0 

Results for commit 4eab83b0. ± Comparison against base commit ee8931d1.

This pull request removes 12 tests. ``` performance.coremark.test_coremark ‑ test_coremark performance.fibonacci.test_fibonacci ‑ test_fibonacci performance.linpack_double.test_linpack_double ‑ test_linpack_double performance.linpack_float.test_linpack_float ‑ test_linpack_float performance.psramspeed.test_psramspeed ‑ test_psramspeed performance.ramspeed.test_ramspeed ‑ test_ramspeed performance.superpi.test_superpi ‑ test_superpi test_touch_errors test_touch_interrtupt test_touch_read … ```

:recycle: This comment has been updated with latest results.

github-actions[bot] commented 1 month ago

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
ESP32S3:green_heart: -24:bangbang: +2091K:green_heart: -0.01:bangbang: +215.090:bangbang: +15K0.00:bangbang: +26.21
ESP32S2:green_heart: -24:bangbang: +4K:green_heart: -0.01:warning: +0.390:warning: +240.00:warning: +0.05
ESP32C3:green_heart: -240:green_heart: -0.010.00000.000.00
ESP32C6:green_heart: -320:green_heart: -0.010.00000.000.00
ESP32H2:green_heart: -240:green_heart: -0.010.00000.000.00
ESP32:green_heart: -32:bangbang: +11K:green_heart: -0.01:bangbang: +1.120:warning: +640.00:warning: +0.11
Click to expand the detailed deltas report [usage change in BYTES]
TargetESP32S3ESP32S2ESP32C3ESP32C6ESP32H2ESP32
ExampleFLASHRAMFLASHRAMFLASHRAMFLASHRAMFLASHRAMFLASHRAM
ArduinoOTA/examples/BasicOTA:green_heart: -160:green_heart: -160:green_heart: -240:green_heart: -240--:green_heart: -240
AsyncUDP/examples/AsyncUDPClient:green_heart: -160:green_heart: -160:green_heart: -240:green_heart: -240--:green_heart: -240
AsyncUDP/examples/AsyncUDPMulticastServer:green_heart: -160:green_heart: -160:green_heart: -240:green_heart: -240--:green_heart: -240
AsyncUDP/examples/AsyncUDPServer:green_heart: -160:green_heart: -240:green_heart: -240:green_heart: -240--:green_heart: -240
BLE/examples/BLE5_extended_scan:green_heart: -160--:green_heart: -240:green_heart: -240:green_heart: -240--
BLE/examples/BLE5_multi_advertising:green_heart: -160--:green_heart: -240:green_heart: -240:green_heart: -240--
BLE/examples/BLE5_periodic_advertising:green_heart: -160--:green_heart: -240:green_heart: -240:green_heart: -240--
BLE/examples/BLE5_periodic_sync:green_heart: -160--:green_heart: -240:green_heart: -240:green_heart: -240--
BLE/examples/Beacon_Scanner:green_heart: -160--:green_heart: -240:green_heart: -240:green_heart: -240:green_heart: -160
BLE/examples/Client:green_heart: -160--:green_heart: -240:green_heart: -240:green_heart: -240:green_heart: -160
BLE/examples/EddystoneTLM_Beacon:green_heart: -160--:green_heart: -240:green_heart: -240:green_heart: -240:green_heart: -160
BLE/examples/EddystoneURL_Beacon:green_heart: -160--:green_heart: -240:green_heart: -240:green_heart: -240:green_heart: -160
BLE/examples/Notify:green_heart: -160--:green_heart: -240:green_heart: -240:green_heart: -240:green_heart: -160
BLE/examples/Scan:green_heart: -160--:green_heart: -240:green_heart: -240:green_heart: -240:green_heart: -160
BLE/examples/Server:green_heart: -160--:green_heart: -240:green_heart: -240:green_heart: -240:green_heart: -160
BLE/examples/Server_multiconnect:green_heart: -160--:green_heart: -240:green_heart: -240:green_heart: -240:green_heart: -160
BLE/examples/UART:green_heart: -160--:green_heart: -240:green_heart: -240:green_heart: -240:green_heart: -160
BLE/examples/Write:green_heart: -160--:green_heart: -240:green_heart: -240:green_heart: -240:green_heart: -160
BLE/examples/iBeacon:green_heart: -160--:green_heart: -240:green_heart: -240:green_heart: -240:green_heart: -160
DNSServer/examples/CaptivePortal:green_heart: -160:green_heart: -240:green_heart: -240:green_heart: -240--00
EEPROM/examples/eeprom_class:green_heart: -160:green_heart: -160:green_heart: -240:green_heart: -240:green_heart: -240:green_heart: -160
EEPROM/examples/eeprom_extra:green_heart: -160:green_heart: -160:green_heart: -240:green_heart: -240:green_heart: -240:green_heart: -160
EEPROM/examples/eeprom_write00:green_heart: -160:green_heart: -240:green_heart: -240:green_heart: -240:green_heart: -160
ESP32/examples/AnalogOut/LEDCFade:green_heart: -160:green_heart: -160:green_heart: -240:green_heart: -240:green_heart: -240:green_heart: -160
ESP32/examples/AnalogOut/LEDCSingleChannel00:green_heart: -160:green_heart: -240:green_heart: -240:green_heart: -24000
ESP32/examples/AnalogOut/LEDCSoftwareFade00:green_heart: -160:green_heart: -240:green_heart: -240:green_heart: -24000
ESP32/examples/AnalogOut/SigmaDelta:green_heart: -160:green_heart: -160:green_heart: -240:green_heart: -240:green_heart: -240:green_heart: -160
ESP32/examples/AnalogOut/ledcFrequency:green_heart: -16000:green_heart: -240:green_heart: -240:green_heart: -240:green_heart: -160
ESP32/examples/AnalogOut/ledcWrite_RGB:green_heart: -160:green_heart: -160:green_heart: -240:green_heart: -240:green_heart: -240:green_heart: -160
ESP32/examples/AnalogRead00:green_heart: -160:green_heart: -240:green_heart: -240:green_heart: -240:green_heart: -160
ESP32/examples/AnalogReadContinuous:green_heart: -160:green_heart: -160:green_heart: -240:green_heart: -240:green_heart: -240:green_heart: -160
ESP32/examples/ArduinoStackSize:green_heart: -160:green_heart: -160:green_heart: -240:green_heart: -240:green_heart: -240:green_heart: -160
ESP32/examples/CI/CIBoardsTest0000:green_heart: -240:green_heart: -240:green_heart: -24000
ESP32/examples/Camera/CameraWebServer:bangbang: +2091K:bangbang: +15K:bangbang: +4K:warning: +24------:bangbang: +11K:warning: +64
ESP32/examples/ChipID/GetChipID:green_heart: -160:green_heart: -160:green_heart: -240:green_heart: -240:green_heart: -240:green_heart: -160
ESP32/examples/DeepSleep/ExternalWakeUp:green_heart: -160:green_heart: -160------:green_heart: -160
ESP32/examples/DeepSleep/TimerWakeUp:green_heart: -160:green_heart: -160:green_heart: -240:green_heart: -240--:green_heart: -160
ESP32/examples/DeepSleep/TouchWakeUp:green_heart: -160:green_heart: -160------:green_heart: -160
ESP32/examples/FreeRTOS/BasicMultiThreading:green_heart: -160:green_heart: -160:green_heart: -240:green_heart: -240:green_heart: -240:green_heart: -160
ESP32/examples/FreeRTOS/Mutex00:green_heart: -160:green_heart: -240:green_heart: -240:green_heart: -240:green_heart: -160
ESP32/examples/FreeRTOS/Queue:green_heart: -160:green_heart: -160:green_heart: -240:green_heart: -240:green_heart: -240:green_heart: -160
ESP32/examples/FreeRTOS/Semaphore00:green_heart: -160:green_heart: -240:green_heart: -240:green_heart: -240:green_heart: -160
ESP32/examples/GPIO/BlinkRGB:green_heart: -16000:green_heart: -240:green_heart: -240:green_heart: -24000
ESP32/examples/GPIO/FunctionalInterrupt:green_heart: -160:green_heart: -160:green_heart: -240:green_heart: -240:green_heart: -24000
ESP32/examples/GPIO/FunctionalInterruptStruct:green_heart: -160:green_heart: -160:green_heart: -240:green_heart: -240:green_heart: -240:green_heart: -160
ESP32/examples/GPIO/GPIOInterrupt:green_heart: -160:green_heart: -160:green_heart: -240:green_heart: -240:green_heart: -240:green_heart: -160
ESP32/examples/HWCDC_Events00--:green_heart: -240:green_heart: -240:green_heart: -240--
ESP32/examples/MacAddress/GetMacAddress00:green_heart: -160:green_heart: -240:green_heart: -240:green_heart: -240:green_heart: -160
ESP32/examples/RMT/Legacy_RMT_Driver_Compatible:green_heart: -160:green_heart: -160:green_heart: -240:green_heart: -240:green_heart: -240:green_heart: -160
ESP32/examples/RMT/RMTCallback:green_heart: -160:green_heart: -160:green_heart: -240:green_heart: -240:green_heart: -240:green_heart: -160
ESP32/examples/RMT/RMTLoopback:green_heart: -160:green_heart: -160:green_heart: -240:green_heart: -240:green_heart: -240:green_heart: -160
ESP32/examples/RMT/RMTReadXJT:green_heart: -160:green_heart: -160:green_heart: -240:green_heart: -240:green_heart: -240:green_heart: -160
ESP32/examples/RMT/RMTWrite_RGB_LED:green_heart: -16000:green_heart: -240:green_heart: -240:green_heart: -240:green_heart: -160
ESP32/examples/RMT/RMT_CPUFreq_Test:green_heart: -160:green_heart: -160:green_heart: -240:green_heart: -240:green_heart: -240:green_heart: -160
ESP32/examples/RMT/RMT_EndOfTransmissionState:green_heart: -16000:green_heart: -240:green_heart: -240:green_heart: -240:green_heart: -160
ESP32/examples/RMT/RMT_LED_Blink:green_heart: -16000:green_heart: -240:green_heart: -240:green_heart: -240:green_heart: -160
ESP32/examples/ResetReason/ResetReason:green_heart: -160:green_heart: -160:green_heart: -240:green_heart: -240:green_heart: -240:green_heart: -160
ESP32/examples/ResetReason/ResetReason2:green_heart: -160:green_heart: -160:green_heart: -240:green_heart: -240:green_heart: -240:green_heart: -160
ESP32/examples/Serial/BaudRateDetect_Demo:green_heart: -160:green_heart: -160:green_heart: -240:green_heart: -240:green_heart: -240:green_heart: -160
ESP32/examples/Serial/OnReceiveError_BREAK_Demo:green_heart: -160:green_heart: -160:green_heart: -240:green_heart: -240:green_heart: -240:green_heart: -160
ESP32/examples/Serial/OnReceive_Demo:green_heart: -160:green_heart: -160:green_heart: -240:green_heart: -240:green_heart: -240:green_heart: -160
ESP32/examples/Serial/RS485_Echo_Demo:green_heart: -160:green_heart: -160:green_heart: -240:green_heart: -240:green_heart: -240:green_heart: -160
ESP32/examples/Serial/RxFIFOFull_Demo:green_heart: -160:green_heart: -160:green_heart: -240:green_heart: -240:green_heart: -240:green_heart: -160
ESP32/examples/Serial/RxTimeout_Demo:green_heart: -160:green_heart: -160:green_heart: -240:green_heart: -240:green_heart: -240:green_heart: -160
ESP32/examples/Serial/Serial_All_CPU_Freqs:green_heart: -160:green_heart: -160:green_heart: -240:green_heart: -240:green_heart: -240:green_heart: -160
ESP32/examples/Serial/Serial_STD_Func_OnReceive00:green_heart: -160:green_heart: -240:green_heart: -240:green_heart: -240:green_heart: -160
ESP32/examples/Serial/onReceiveExample:green_heart: -160:green_heart: -160:green_heart: -240:green_heart: -240:green_heart: -240:green_heart: -160
ESP32/examples/TWAI/TWAIreceive00:green_heart: -160:green_heart: -240:green_heart: -240:green_heart: -240:green_heart: -160
ESP32/examples/TWAI/TWAItransmit0000:green_heart: -240:green_heart: -240:green_heart: -24000
ESP32/examples/Template/ExampleTemplate:green_heart: -160:green_heart: -160:green_heart: -240:green_heart: -240:green_heart: -24000
ESP32/examples/Time/SimpleTime:green_heart: -160:green_heart: -240:green_heart: -240:green_heart: -240--:green_heart: -240
ESP32/examples/Timer/RepeatTimer:green_heart: -160:green_heart: -160:green_heart: -240:green_heart: -240:green_heart: -240:green_heart: -160
ESP32/examples/Timer/WatchdogTimer:green_heart: -16000:green_heart: -240:green_heart: -240:green_heart: -240:green_heart: -160
ESP32/examples/Touch/TouchButtonV2:green_heart: -160:green_heart: -160--------
ESP32/examples/Touch/TouchInterrupt:green_heart: -160:green_heart: -160------:green_heart: -160
ESP32/examples/Touch/TouchRead:green_heart: -160:green_heart: -160------00
ESP32/examples/Utilities/HEXBuilder:green_heart: -160:green_heart: -160:green_heart: -240:green_heart: -240:green_heart: -240:green_heart: -160
ESP32/examples/Utilities/MD5Builder:green_heart: -16000:green_heart: -240:green_heart: -240:green_heart: -240:green_heart: -160
ESP32/examples/Utilities/SHA1Builder:green_heart: -16000:green_heart: -240:green_heart: -240:green_heart: -240:green_heart: -160
ESP_I2S/examples/ES8388_loopback:green_heart: -160:green_heart: -160:green_heart: -240:green_heart: -240:green_heart: -240:green_heart: -160
ESP_I2S/examples/Record_to_WAV:green_heart: -160--------:green_heart: -160
ESP_I2S/examples/Simple_tone:green_heart: -160:green_heart: -160:green_heart: -240:green_heart: -240:green_heart: -240:green_heart: -160
ESP_NOW/examples/ESP_NOW_Broadcast_Master:green_heart: -160:green_heart: -160:green_heart: -240:green_heart: -240--00
ESP_NOW/examples/ESP_NOW_Broadcast_Slave:green_heart: -160:green_heart: -240:green_heart: -240:green_heart: -240--:green_heart: -240
ESP_NOW/examples/ESP_NOW_Network:green_heart: -160:green_heart: -160:green_heart: -240:green_heart: -240--00
ESP_NOW/examples/ESP_NOW_Serial:green_heart: -160:green_heart: -240:green_heart: -240:green_heart: -240--:green_heart: -240
ESP_SR/examples/Basic00----------
ESPmDNS/examples/mDNS-SD_Extended00:green_heart: -160:green_heart: -240:green_heart: -240--:green_heart: -240
ESPmDNS/examples/mDNS_Web_Server:green_heart: -160:green_heart: -240:green_heart: -240:green_heart: -240--:green_heart: -240
Ethernet/examples/ETH_W5500_Arduino_SPI00:green_heart: -160:green_heart: -240:green_heart: -240:green_heart: -240:green_heart: -160
Ethernet/examples/ETH_W5500_IDF_SPI00:green_heart: -160:green_heart: -240:green_heart: -240:green_heart: -240:green_heart: -160
Ethernet/examples/ETH_WIFI_BRIDGE:green_heart: -160:green_heart: -160:green_heart: -240:green_heart: -240--:green_heart: -240
FFat/examples/FFat_Test:green_heart: -160:green_heart: -160:green_heart: -240:green_heart: -240:green_heart: -240:green_heart: -160
FFat/examples/FFat_time:green_heart: -160:green_heart: -160:green_heart: -240:green_heart: -240--:green_heart: -240
HTTPClient/examples/Authorization:green_heart: -160:green_heart: -240:green_heart: -240:green_heart: -240--:green_heart: -240
HTTPClient/examples/BasicHttpClient:green_heart: -160:green_heart: -160:green_heart: -240:green_heart: -240--:green_heart: -240
HTTPClient/examples/BasicHttpsClient:green_heart: -160:green_heart: -240:green_heart: -240:green_heart: -240--:green_heart: -240
HTTPClient/examples/HTTPClientEnterprise:green_heart: -160:green_heart: -240:green_heart: -240:green_heart: -240--:green_heart: -240
HTTPClient/examples/ReuseConnection:green_heart: -160:green_heart: -160:green_heart: -240:green_heart: -240--:green_heart: -240
HTTPClient/examples/StreamHttpClient:green_heart: -160:green_heart: -160:green_heart: -240:green_heart: -240--00
HTTPUpdate/examples/httpUpdate:green_heart: -160:green_heart: -240:green_heart: -240:green_heart: -240--:green_heart: -240
HTTPUpdate/examples/httpUpdateSPIFFS:green_heart: -160:green_heart: -240:green_heart: -240:green_heart: -240--00
HTTPUpdate/examples/httpUpdateSecure:green_heart: -240:green_heart: -240:green_heart: -240:green_heart: -240--:green_heart: -240
HTTPUpdateServer/examples/WebUpdater:green_heart: -160:green_heart: -240:green_heart: -240:green_heart: -240--:green_heart: -240
Insights/examples/DiagnosticsSmokeTest:green_heart: -160:green_heart: -160:green_heart: -240:green_heart: -240--:green_heart: -240
Insights/examples/MinimalDiagnostics:green_heart: -160:green_heart: -160:green_heart: -240:green_heart: -240--00
LittleFS/examples/LITTLEFS_test00:green_heart: -160:green_heart: -240:green_heart: -240:green_heart: -240:green_heart: -160
LittleFS/examples/LITTLEFS_time:green_heart: -160:green_heart: -240:green_heart: -240:green_heart: -240--:green_heart: -240
NetBIOS/examples/ESP_NBNST:green_heart: -160:green_heart: -160:green_heart: -240:green_heart: -240--:green_heart: -240
NetworkClientSecure/examples/WiFiClientInsecure:green_heart: -160:green_heart: -240:green_heart: -240:green_heart: -240--:green_heart: -240
NetworkClientSecure/examples/WiFiClientPSK:green_heart: -160:green_heart: -240:green_heart: -240:green_heart: -240--:green_heart: -240
NetworkClientSecure/examples/WiFiClientSecure:green_heart: -160:green_heart: -160:green_heart: -240:green_heart: -240--00
NetworkClientSecure/examples/WiFiClientSecureEnterprise:green_heart: -160:green_heart: -240:green_heart: -240:green_heart: -240--:green_heart: -240
NetworkClientSecure/examples/WiFiClientSecureProtocolUpgrade:green_heart: -160:green_heart: -240:green_heart: -240:green_heart: -240--:green_heart: -240
NetworkClientSecure/examples/WiFiClientShowPeerCredentials:green_heart: -160:green_heart: -240:green_heart: -240:green_heart: -240--:green_heart: -240
NetworkClientSecure/examples/WiFiClientTrustOnFirstUse:green_heart: -160:green_heart: -160:green_heart: -240:green_heart: -240--:green_heart: -240
PPP/examples/PPP_Basic:green_heart: -160:green_heart: -160:green_heart: -240:green_heart: -240:green_heart: -24000
PPP/examples/PPP_WIFI_BRIDGE:green_heart: -160:green_heart: -240:green_heart: -240:green_heart: -240--:green_heart: -240
Preferences/examples/Prefs2Struct:green_heart: -160:green_heart: -160:green_heart: -240:green_heart: -240:green_heart: -240:green_heart: -160
Preferences/examples/StartCounter:green_heart: -160:green_heart: -160:green_heart: -240:green_heart: -240:green_heart: -240:green_heart: -160
RainMaker/examples/RMakerCustom:green_heart: -16000:green_heart: -160:green_heart: -160--:green_heart: -160
RainMaker/examples/RMakerCustomAirCooler:green_heart: -160:green_heart: -1600000--00
RainMaker/examples/RMakerSonoffDualR3:green_heart: -16000:green_heart: -160:green_heart: -160--:green_heart: -160
RainMaker/examples/RMakerSwitch:green_heart: -160000000--:green_heart: -160
SD/examples/SD_Test:green_heart: -16000:green_heart: -16000:green_heart: -240:green_heart: -160
SD/examples/SD_time:green_heart: -160:green_heart: -240:green_heart: -240:green_heart: -240--:green_heart: -240
SD_MMC/examples/SD2USBMSC:green_heart: -160----------
SD_MMC/examples/SDMMC_Test:green_heart: -160--------:green_heart: -160
SD_MMC/examples/SDMMC_time:green_heart: -160--------:green_heart: -240
SPI/examples/SPI_Multiple_Buses:green_heart: -16000:green_heart: -240:green_heart: -240:green_heart: -240:green_heart: -160
SPIFFS/examples/SPIFFS_Test:green_heart: -160:green_heart: -160:green_heart: -240:green_heart: -240:green_heart: -240:green_heart: -160
SPIFFS/examples/SPIFFS_time:green_heart: -160:green_heart: -240:green_heart: -240:green_heart: -240--:green_heart: -240
SimpleBLE/examples/SimpleBleDevice:green_heart: -160--:green_heart: -240:green_heart: -240:green_heart: -240:green_heart: -160
TFLiteMicro/examples/hello_world:green_heart: -160:green_heart: -160:green_heart: -240:green_heart: -240:green_heart: -24000
Ticker/examples/Blinker:green_heart: -160:green_heart: -160:green_heart: -240:green_heart: -240:green_heart: -240:green_heart: -160
Ticker/examples/TickerBasic:green_heart: -160:green_heart: -160:green_heart: -240:green_heart: -240:green_heart: -240:green_heart: -160
Ticker/examples/TickerParameter:green_heart: -160:green_heart: -160:green_heart: -240:green_heart: -240:green_heart: -240:green_heart: -160
USB/examples/CompositeDevice:green_heart: -160:green_heart: -160--------
USB/examples/ConsumerControl:green_heart: -16000--------
USB/examples/CustomHIDDevice:green_heart: -160:green_heart: -160--------
USB/examples/FirmwareMSC:green_heart: -160:green_heart: -160--------
USB/examples/Gamepad:green_heart: -160:green_heart: -160--------
USB/examples/HIDVendor:green_heart: -160:green_heart: -160--------
USB/examples/Keyboard/KeyboardLogout:green_heart: -160:green_heart: -160--------
USB/examples/Keyboard/KeyboardMessage:green_heart: -160:green_heart: -160--------
USB/examples/Keyboard/KeyboardReprogram:green_heart: -16000--------
USB/examples/Keyboard/KeyboardSerial:green_heart: -16000--------
USB/examples/KeyboardAndMouseControl:green_heart: -160:green_heart: -160--------
USB/examples/MIDI/MidiController:green_heart: -160:green_heart: -160--------
USB/examples/MIDI/MidiInterface:green_heart: -16000--------
USB/examples/MIDI/MidiMusicBox:green_heart: -160:green_heart: -160--------
USB/examples/MIDI/ReceiveMidi:green_heart: -160:green_heart: -160--------
USB/examples/Mouse/ButtonMouseControl:green_heart: -16000--------
USB/examples/SystemControl:green_heart: -16000--------
USB/examples/USBMSC0000--------
USB/examples/USBSerial:green_heart: -160:green_heart: -160--------
USB/examples/USBVendor:green_heart: -160:green_heart: -160--------
Update/examples/AWS_S3_OTA_Update00:green_heart: -160:green_heart: -240:green_heart: -240--:green_heart: -240
Update/examples/HTTPS_OTA_Update:green_heart: -160:green_heart: -240:green_heart: -240:green_heart: -240--:green_heart: -240
Update/examples/HTTP_Client_AES_OTA_Update:green_heart: -160:green_heart: -160:green_heart: -240:green_heart: -240--:green_heart: -240
Update/examples/HTTP_Server_AES_OTA_Update00:green_heart: -240:green_heart: -240:green_heart: -240--00
Update/examples/OTAWebUpdater:green_heart: -160:green_heart: -240:green_heart: -240:green_heart: -240--:green_heart: -240
Update/examples/SD_Update:green_heart: -160:green_heart: -160:green_heart: -240:green_heart: -240:green_heart: -240:green_heart: -160
WebServer/examples/AdvancedWebServer:green_heart: -160:green_heart: -240:green_heart: -240:green_heart: -240--:green_heart: -240
WebServer/examples/FSBrowser:green_heart: -160:green_heart: -240:green_heart: -240:green_heart: -240--:green_heart: -240
WebServer/examples/Filters:green_heart: -160:green_heart: -240:green_heart: -240:green_heart: -240--:green_heart: -240
WebServer/examples/HelloServer:green_heart: -160:green_heart: -240:green_heart: -240:green_heart: -240--:green_heart: -240
WebServer/examples/HttpAdvancedAuth:green_heart: -160:green_heart: -240:green_heart: -240:green_heart: -240--:green_heart: -240
WebServer/examples/HttpAuthCallback:green_heart: -160:green_heart: -160:green_heart: -240:green_heart: -240--:green_heart: -240
WebServer/examples/HttpAuthCallbackInline:green_heart: -160:green_heart: -160:green_heart: -240:green_heart: -240--:green_heart: -240
WebServer/examples/HttpBasicAuth:green_heart: -160:green_heart: -240:green_heart: -240:green_heart: -240--:green_heart: -320
WebServer/examples/HttpBasicAuthSHA1:green_heart: -160:green_heart: -240:green_heart: -240:green_heart: -240--:green_heart: -240
WebServer/examples/HttpBasicAuthSHA1orBearerToken:green_heart: -160:green_heart: -240:green_heart: -240:green_heart: -240--:green_heart: -240
WebServer/examples/MultiHomedServers:green_heart: -160:green_heart: -240:green_heart: -240:green_heart: -240--:green_heart: -240
WebServer/examples/PathArgServer:green_heart: -160:green_heart: -240:green_heart: -160:green_heart: -160--:green_heart: -240
WebServer/examples/SDWebServer00:green_heart: -240:green_heart: -240:green_heart: -240--00
WebServer/examples/SimpleAuthentification00:green_heart: -160:green_heart: -240:green_heart: -240--:green_heart: -240
WebServer/examples/UploadHugeFile:green_heart: -160:green_heart: -240:green_heart: -160:green_heart: -320--:green_heart: -240
WebServer/examples/WebServer00:green_heart: -160:green_heart: -240:green_heart: -240--:green_heart: -240
WebServer/examples/WebUpdate00:green_heart: -240:green_heart: -240:green_heart: -240--00
WiFi/examples/FTM/FTM_Initiator:green_heart: -160:green_heart: -160:green_heart: -240:green_heart: -240--:green_heart: -240
WiFi/examples/FTM/FTM_Responder:green_heart: -160:green_heart: -160:green_heart: -240:green_heart: -240--00
WiFi/examples/SimpleWiFiServer:green_heart: -160:green_heart: -240:green_heart: -240:green_heart: -240--:green_heart: -240
WiFi/examples/WPS:green_heart: -160:green_heart: -240:green_heart: -240:green_heart: -240--:green_heart: -240
WiFi/examples/WiFiAccessPoint:green_heart: -160:green_heart: -240:green_heart: -240:green_heart: -240--:green_heart: -240
WiFi/examples/WiFiBlueToothSwitch:green_heart: -160--:green_heart: -240:green_heart: -240--:green_heart: -240
WiFi/examples/WiFiClient:green_heart: -160:green_heart: -160:green_heart: -240:green_heart: -240--:green_heart: -240
WiFi/examples/WiFiClientBasic:green_heart: -160:green_heart: -160:green_heart: -240:green_heart: -240--:green_heart: -240
WiFi/examples/WiFiClientConnect:green_heart: -160:green_heart: -160:green_heart: -240:green_heart: -240--00
WiFi/examples/WiFiClientEnterprise:green_heart: -160:green_heart: -160:green_heart: -240:green_heart: -240--00
WiFi/examples/WiFiClientEvents:green_heart: -160:green_heart: -160:green_heart: -240:green_heart: -240--00
WiFi/examples/WiFiClientStaticIP:green_heart: -160:green_heart: -160:green_heart: -240:green_heart: -240--:green_heart: -240
WiFi/examples/WiFiExtender:green_heart: -160:green_heart: -160:green_heart: -240:green_heart: -240--:green_heart: -240
WiFi/examples/WiFiIPv6:green_heart: -160:green_heart: -240:green_heart: -240:green_heart: -240--:green_heart: -240
WiFi/examples/WiFiMulti:green_heart: -160:green_heart: -160:green_heart: -240:green_heart: -240--:green_heart: -240
WiFi/examples/WiFiMultiAdvanced:green_heart: -160:green_heart: -160:green_heart: -240:green_heart: -240--00
WiFi/examples/WiFiScan:green_heart: -160:green_heart: -240:green_heart: -240:green_heart: -240--:green_heart: -240
WiFi/examples/WiFiScanAsync:green_heart: -160:green_heart: -160:green_heart: -240:green_heart: -240--:green_heart: -240
WiFi/examples/WiFiScanDualAntenna:green_heart: -160:green_heart: -160:green_heart: -240:green_heart: -240--:green_heart: -240
WiFi/examples/WiFiScanTime:green_heart: -160:green_heart: -160:green_heart: -240:green_heart: -240--00
WiFi/examples/WiFiSmartConfig:green_heart: -160:green_heart: -160:green_heart: -240:green_heart: -240--00
WiFi/examples/WiFiTelnetToSerial:green_heart: -160:green_heart: -160:green_heart: -240:green_heart: -240--00
WiFi/examples/WiFiUDPClient:green_heart: -160:green_heart: -160:green_heart: -240:green_heart: -240--00
WiFiProv/examples/WiFiProv00:green_heart: -1600000--:green_heart: -160
Wire/examples/WireMaster:green_heart: -160:green_heart: -160:green_heart: -240:green_heart: -240:green_heart: -240:green_heart: -160
Wire/examples/WireScan:green_heart: -160:green_heart: -160:green_heart: -240:green_heart: -240:green_heart: -240:green_heart: -160
Wire/examples/WireSlave:green_heart: -160:green_heart: -160:green_heart: -240:green_heart: -240:green_heart: -240:green_heart: -160
OpenThread/examples/COAP/coap_lamp------:green_heart: -240:green_heart: -240--
OpenThread/examples/COAP/coap_switch------:green_heart: -240:green_heart: -240--
OpenThread/examples/SimpleCLI------:green_heart: -240:green_heart: -240--
OpenThread/examples/SimpleNode------:green_heart: -240:green_heart: -240--
OpenThread/examples/SimpleThreadNetwork/ExtendedRouterNode------:green_heart: -240:green_heart: -240--
OpenThread/examples/SimpleThreadNetwork/LeaderNode------:green_heart: -240:green_heart: -240--
OpenThread/examples/SimpleThreadNetwork/RouterNode------:green_heart: -240:green_heart: -240--
OpenThread/examples/ThreadScan------:green_heart: -240:green_heart: -240--
OpenThread/examples/onReceive------:green_heart: -240:green_heart: -240--
Zigbee/examples/Zigbee_Color_Dimmable_Light------:green_heart: -160:green_heart: -160--
Zigbee/examples/Zigbee_Color_Dimmer_Switch------:green_heart: -160:green_heart: -160--
Zigbee/examples/Zigbee_On_Off_Light------0000--
Zigbee/examples/Zigbee_On_Off_Switch------:green_heart: -160:green_heart: -160--
Zigbee/examples/Zigbee_Scan_Networks------:green_heart: -160:green_heart: -160--
Zigbee/examples/Zigbee_Temperature_Sensor------0000--
Zigbee/examples/Zigbee_Thermostat------:green_heart: -160:green_heart: -160--
BluetoothSerial/examples/DiscoverConnect----------:green_heart: -160
BluetoothSerial/examples/GetLocalMAC----------:green_heart: -160
BluetoothSerial/examples/SerialToSerialBT----------:green_heart: -160
BluetoothSerial/examples/SerialToSerialBTM----------:green_heart: -160
BluetoothSerial/examples/SerialToSerialBT_Legacy----------:green_heart: -160
BluetoothSerial/examples/SerialToSerialBT_SSP----------:green_heart: -160
BluetoothSerial/examples/bt_classic_device_discovery----------:green_heart: -160
BluetoothSerial/examples/bt_remove_paired_devices----------:green_heart: -160
ESP32/examples/DeepSleep/SmoothBlink_ULP_Code----------:green_heart: -160
ESP32/examples/Touch/TouchButton----------:green_heart: -160
Ethernet/examples/ETH_LAN8720----------:green_heart: -160
Ethernet/examples/ETH_TLK110----------:green_heart: -160