- Set button GPIO to 28 for ESP32-C5 devkit (vs GPIO 9 for other C-series)
- Set WS2812 LED GPIO to 27 for ESP32-C5 devkit (vs GPIO 8 for other C-series)
- Updated examples: gpio, switch, multi_device, temperature_sensor, fan, led_light
- 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
Since all CONFIG_APP_WIFI_x config options have been renamed to CONFIG_APP_NETWORK_x,
the older settings may get lost after upgrading esp-rainmaker to use the
new app_network component. This commit ensures that the old config options
will get automatically renamed to appropriate new config options.
- 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
- 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)
When device is already provisioned, `wifi_prov_mgr_configure_sta` API call fails.
This happens because, provisioning manager is in uninitialized state.
We set Wi-Fi credetials directly using `esp_wifi_set_config` in that case.
Also removed error check on `wifi_prov_mgr_is_provisioned` API call, as for
IDF 4.x APIs return `ESP_ERR_INVALID_STATE`
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
- qrcode, ws2812_led and gpio_button moved to examples/common
- esp-insights and rmaker_common submodules updated
- json_generator and json_parser components copied from component
manager so that they can be used for component overrides
For BLE provisioning, adding some metadata in BLE advertisement can help
apps in filtering the scanned device list better, instead of relying
just on the prefix. It can also help show the device type even before
provisioning.
Metadata has been added in led_light and switch examples only, but can be
added in any other project too, as per the apps' requirement.
Cause: A vicious cycle:
MQTT budget exceed error print getting logged into ESP-Insights.
When the RTC memory is full, this causes it to drop the message and
raise memory full event, which then taken action as reporting Insights
data immediately. This again causes MQTT budget exceed error!
The fix: Do not try to send message when budget is not available
Signed-off-by: Vikram <vikram.dattu@espressif.com>
Earlier, a reset and reboot were required if wrong Wi-Fi credentials
were given during provisioning. With this change, based on some
configured number of reconnection attempts, the firmware will go back into
provisioning mode.
- Provide an option of provisioning without PoP pin (use with caution).
- Config option for provisioning timeout (set to 30 min by default).
Useful especially when there is no PoP, and so you want to keep the device
in provisioning mode only for a few minutes after boot up.
- app_insights:
- Replaced esp_insights_rmaker_enable() API with esp_insights_enable()
- Enable errors, warnings, and events when user selects LOG_TYPE_ALL
- Fixed compilation errors and warnings
- Compilation issues were seen on some hosts after insights components were included.
- app_wifi: CMake file had esp_rainmaker as a dependency even if it was no dependent on it.
- WS2812 could not be used for ESP32 due to Kconfig logic
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.
- In claiming, change the 4 byte random number to 64 byte and store it
as binary data instead of hex representation.
- Instead of reading PoP as hex string from NVS, read it as binary data
(because of above change) and then convert to hex representation.
- Instead of using mac address, use last 3 bytes of the above random number
number as suffix for SSID.
The last change was made so as to allow generating the QR code completely outside
the device, without knowing its mac address.
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.
If IDF version being used is 4.0, following changes will happen:
- tcpip_adapter will be used, instead of esp_netif.
- MQTT port 8883 will be used, even if 443 is chosen, because
443 requires ALPN options in MQTT, which aren't supported in IDF 4.0