HomeKit has its own logic for network provisioning, including support
for Apple WAC and so, uses its own app_network component.
Recent restructuring pulled in the common rmaker_app_network component
instead.
- Use led_indicator component from component manager for ws2812 and RGB
LEDs
- Add other components from examples/common via idf_component.yml
instead of adding as EXTRA_COMPONENT_DIRS in CMakeLists.txt
- Remove qrcode sources from examples/common
- Added idf_component.yml file to app_wifi component with qrcode dependency
- Added qrcode_display function in app_wifi which wraps the qrcode generation
- With newest IDF releases with recent feature additions, the app partitions were getting overflown.
- This optimised partions file make fullest use of flash. Hence we get more room for app partitions.
- Updated esp_insights submodule and the component version dependency
- Selected `ESP_INSIGHTS_TRANSPORT_MQTT` in examples sdkconfig.defaults
- Called esp_insights_cmd_resp_enable
- Also updated `cli` submodule to the latest
- led_light: Use the new bulk write callback (single callback invoked just once
for multiple param writes) and use esp_rmaker_param_update()
so that all updated params are also reported together.
- Other examples: Just replace esp_rmaker_param_update_and_report with
esp_rmaker_param_update() and let the Rainmaker core report all
updated params together.
- Added entry for esp32c2 build in CI
- RAM optimized sdkconfig.defaults.esp32c2
- Disable ws2812 led drivers from non-rmt supported devices
- Use GPIO9 as BOOT button for C2
- The feature prevents brute force attacks by not allowing more than allowed PoP attempts
- Allowed failure attempts are configurable via menuconfig and is 5 by default
- Change added for both `app_wifi` and `app_wifi_with_homekit`
- Min IDF version needed (release/v5.1.3)
- Due to some changes in esp-idf after v5.1.3, CONFIG_BT_ENABLED gets set
even for esp32s2, causing issues in compilation.
- In earlier esp-idf versions, since this was not applicable for esp32-s2,
it was getting skipped even when it was present in sdkconfig.defaults.
- Added sdkconfig.defaults.esp32s2 and disabled BT explicitly
1. ESP32C6 button configs for RGB LED and Boot GPIO
2. CI: Added entry for C6 in `.gitlab.yaml`
3. Added `partitions_4mb_optimised.csv` which uses flash to the full extent
- Created sdkconfig.defaults for esp32c6 and used partitions_4mb_optimised.csv as default
- This is made default for esp32c6 because, for esp32c6, image sizes exceed config from partitions.csv
4. Fixed matter examples CMakeLits.txt files for c6 support
- Updated partitions.csv in all examples to use final
esp_secure_cert partition format.
- This option can only be enabled if claiming is disabled.
- The Rainmaker app will fall back to using NVS if it
fails to fetch from the `esp_secure_cert` partition.
This has been done to allow a common firmware to be built that
can run on both kinds of devices, i.e. ones that use NVS
and ones that use the `esp_secure_cert` partition.
This reverts commit 7c1e894fe0.
The commit needs to be reverted as IDF5.0 does not allow selecting
ESP_HTTPS_SERVER when MBEDTLS is in client only mode.
.. Since this is the recommended setting and well supported by the
RainMaker SDK, to ensure that OTA upgrades do not break the device
and ensure that the MQTT connection works fine with the new firmware.
- OTA using topics is now enabled in all examples
- esp_rmaker_ota_enable_default() is the simplified API that enables
OTA using Topics with the default server certificates
Instead of using 1 or 2 certificates for server authentication, use a
bundle of commonly used server certificates, so that even if the server
moves to a different signing authority, the device connection is not
affected.
This change has been done for claiming, OTA and MQTT certificates.
Features now enabled by default are:
- User id check in user-node association for better handling of reset to
factory from security perspective.
- Secure local control
Order of component dirs has been changed so that the rmaker_common from
esp-rainmker gets used, rather than the one from esp-insights
Also move app_wifi_with_homekit to a separate private component which would override the common/app_wifi
Note that WAC can be enabled only with MFi variant of ESP HomeKit SDK
Closes: https://github.com/espressif/esp-rainmaker/issues/78
Button event callbacks are executed in the context of FreeRTOS Timer task.
Reporting param updates from that causes stack overflow, specifically on ESP32-C3.
As a temporary workaround, the stack size for FreeRTOS Timer task has been increased.
The following are now part of a separate repo (and included as git submodule):
- MQTT glue layer
- Work Queue
- Utilities (reset, reboot, time sync, timezone, etc.)
- Factory Storage
Even CLI is now a part of a seperate repo, included here as a git submodule.
Earlier, it was the application code's responsibility to call the
esp_rmaker_user_mapping_endpoint_create() and esp_rmaker_user_mapping_endpoint_register()
APIs at appropriate places in Wi-Fi provisioning code to enable user node mapping
functionality. To simplify this, the logic has been moved to RainMaker Core, so that
this happens automatically.
For some reason, if you want to retain the older logic in your application code
and do not want RainMaker_core to enable this, please set the
CONFIG_ESP_RMAKER_DISABLE_USER_MAPPING_PROV config option.
Default parameter names like name, power, etc. have been changed to Name, Power, etc.
respectively, so that they look better in the phone app UIs.
Note that, with this change, any user configured device name (the name set from phone apps),
or any other persistent parameter for which a default name was used (Eg. power)
will be affected, as the values will no more be found in the NVS storage. Please edit your
application code accordingly if you want to stick with the old names.
Please check CHANGES.md for guidelines.