Releases: ruuvi/ruuvi.gateway_esp.c
Releases · ruuvi/ruuvi.gateway_esp.c
Release list
v1.17.3
Minor Enhancements:
- #1325: Auto-generate
gw_cfg_default_gen.jsonfrom the hardcoded C defaults (single source of truth for default configuration) - #1323: Declare
http_use_extra_http_path,http_use_extra_http_query,http_use_extra_http_headersin JSON schema and default config - #1310: Update root certificates to the latest version cacert-2026-05-14
- #1301: Refactor nrf52fw firmware-update callbacks into a parameter structure
Bug Fixes:
- #1329: Fix nRF52 firmware update: always report the correct success/failure status to the post-update callback (
flag_success=falsewas never passed on flash-write or post-flash read errors) - #1326: Fix FAT partition mount to support both raw and wear-leveled layouts (enables downgrade from v1.17.x to v1.16.3)
- #1319: Harden Secure Boot signature handling — fix NULL dereference in OTA signature verification and strengthen CI signing-key validation
- #1294: Fix crash during fallback mount caused by incomplete
vfs_fat_*_mounterror cleanup in ESP-IDF v4.2.x
Full Changelog: v1.17.2...v1.17.3
v1.16.3
New Features:
- #1309: Sign v1.16.x release firmware while keeping unsigned-image OTA compatibility
- #1303: Support mounting fatfs_nrf52 partition as raw read-only FAT (enables OTA upgrade from v1.17.x)
Minor Enhancements:
- #1310: Update root certificates to the latest version cacert-2026-05-14
- #1301: Refactor nrf52fw firmware-update callbacks into a parameter structure
Bug Fixes:
- #1294: Fix crash during fallback mount on same FAT partition (incomplete ESP-IDF cleanup leaves dangling FatFs pointer)
- #1105: Force 512-byte sector size for raw-flash FAT volumes
Full Changelog: v1.16.2...v1.16.3
v1.17.2
New features:
- #1086: Resume downloading firmware updates after a brief loss of connection to Wi-Fi access point
- #1062: Support for displaying beta version on "Software update" page when "Auto update for beta testers" is configured
- #924: Ensure valid system time before initiating HTTPS firmware update checks to prevent TLS handshake failures after initial network connection
- #1288: Seed system clock from X-Request-Timestamp on manual fw-update check to allow establishing HTTPS connection when system clock is not synchronized
- #1052: Allow HTTP URLs longer than 255 characters long
Enhancements:
- #1211: Update ESP-IDF from v4.2.2 to v4.2.5
- #1183: Restrict HTTP API during firmware update
- #1264: Add support for accepting files up to 8 KiB via HTTP
- #1281: Automatically create GitHub Release and upload firmware ZIP asset on tag builds
- #1286: ruuvi_gw_flash.py: Support dev/prod release ZIP assets
Minor Enhancements:
- #1159: mbedtls_strerror returns incorrect error description in logs
- #1162: Add error code logging with description to components/tcp_transport/transport_ws
- #1165: If there is error downloading firmware update, erase only the first sectors in each partition
- #1173: Incorrect error codes decoding for some errors returned by transport_ssl
- #1058: Send in statistics info about critical network problems like MIC_FAILURE
- #1093: Increase self-update delay after boot to 2 hours
- #1251: Refine JSON schemas and add validation workflow
- #577: Implement hang protection in esp_mqtt_client_destroy
Bug Fixes:
- #1160: esp_http_client_perform incorrectly handles read error
- #1161: mqtt_client incorrectly handles read error in deliver_publish
- #1163: When connection is lost during the firmware update download, incorrect error message is displayed
- #1164: After firmware download error, the installation completion progress is displayed incorrectly
- #1174: In esp_http_client_perform the error code ERR_TCP_TRANSPORT_CONNECTION_CLOSED_BY_FIN is handled incorrectly
- #1180, #1157: Insufficient buffer for TLS connection when downloading beta firmware versions from GitHub
- #1209: GPIO for antenna configuration does not work in ESP-IDF versions newer than v4.2.2
- #1254: Gateway sometimes reboots due to software assertion when connecting to Wi-Fi network
- #1278: Gateway enters reboot loop if otadata partition contains invalid data
- #1280: otadata corruption after bootloader fallback from a failed firmware update
- #1172: Memory leak on the failure path of fw_update_ota_partition
Full Changelog: v1.17.1...v1.17.2
v1.17.1
Bug fixes
- Fix #1021: Sometimes ER_THROTTLED returned by server after saving configuration
- Fix #1128: esp-tls library inverts the sign of the returned ESP_TLS_ERR_TYPE_MBEDTLS error code
- Fix #1137: Continuous attempts to send data via HTTP after a failed memory allocation
- Fix #1146: Writing beyond SSL output buffer when clearing memory after closing a TLS connection
- Fix #1153: Session object is cloned (allocated/copied/freed) multiple times during TLS connection establishment
Enhancements:
- Close #1092: Restart gateway in case of error "emac_esp32: emac_esp32_transmit(223): insufficient TX buffer size"
- Close #1065: Added fragmented memory detection and preventive gateway restart
- Close #1135: Force restart gateway if Ethernet handler cannot allocate memory for incoming/outgoing frames
- Close #1139: Simulation of memory leakage and memory fragmentation
- Close #1141: Move global variables (pointers and 32-bit aligned) to IRAM
- Close #1144: Reduce hostname buffer size for mbedtls and embed it into mbedtls_ssl_session
- Close #1143: Pre-allocate memory for TLS session tickets to prevent heap fragmentation
- Close #1155: Limit TLS connections session ticket size and embed it into mbedtls_ssl_session
- Close #1157: Use pre-allocated buffer for incoming/outgoing TLS connection data
Full Changelog: v1.17.0...v1.17.1
v1.17.0
New features:
- Add firmware signature verification
v1.16.2
New Features:
- #1069: Add support for BLE extended advertisements
- #1084: Add support for decoding data format 0xE1 in /history API and in MQTT
Minor Enhancements:
- #1066: Script to capture logs from Ruuvi Gateway (ruuvi_gw_log.py)
- #1073: Add ACK handling from nRF52, force reboot of nRF52 when no ACK is present
- #1077: Update root certificates to the latest version cacert-2025-05-20
- #1080: Check connection to Ruuvi Cloud while configuring the Gateway
- #1081: Add info about memory usage to statistics
Bug Fixes:
- #1070: Request to HTTP API /history returns error 401 just after reboot if LAN access without a password is configured
- #1075: UI: Fix: Dynamic setting of BLE scan filter does not work
Full Changelog: v1.15.3...v1.16.1
v1.15.3
Bug Fixes:
- #1061: Failed to retrieve JSON file containing firmware update information. Server returned incorrect json: could not get latest/url
Full Changelog: v1.15.2...v1.15.3
v1.15.2
Minor Enhancements:
- [#1040] Disconnect from Wi-Fi after MIC_FAILURE and set the waiting interval before reconnection to 70 seconds
Full Changelog: v1.15.1...v1.15.2
v1.15.1
Bug Fixes:
- #1022: Gateway reboots with IntegerDivideByZero when trying to update firmware from server that does not return 'Content-length'
- #1019: The network watchdog timer timeout is disabled when configuration mode is activated
- #1017: After erasing the configuration, gateway was restarted by the panic handler (probably as a result of a race condition)
- #1020: UI does not detect gateway reboot when password protection is disabled, and the gateway reboots and reconnects to the network fairly quickly (less than 10 seconds)
- #1018: When the configuration mode is deactivated after the timeout (1 hour), LED is solid green
- #1035: Gateway crashed on WPS restart (in wpa_supplicant component because it tries to 'free' uninitialized pointer)
- #1022: Fix bug in esp_http_client_perform - HTTP HEAD request may fail due to race condition on slow server if server does not send HTTP Content-Length header
- #1025: Gateway erroneously forced to use TLS v1.3, preventing it from establishing a connection using TLS v1.2, resulting in SSL_HANDSHAKE_FAILED when connecting to Azure IoT Hub
- #1040: Implement dynamic delay after Wi-Fi MIC_FAILURE connection problem
- #1037: decoded TXPower has incorrect value
- #1047: HTTP endpoint validation fails when 204 status code is returned
- #1050: Prevent web browser from remembering API keys
- #1053: ESP_ERR_MBEDTLS_SSL_HANDSHAKE_FAILED on HTTP endpoint validation "*.logic.azure.com" because new random number is generated on second "Client Hello"
Minor Enhancements:
- #1016: Do not print error message in logs "WIFI_EVENT_STA_WPS_ER_TIMEOUT"
- #1044: Add HTTP authentication method "API key" that does not prefix the key with the word "Token"
Full Changelog: v1.15.0...v1.15.1
v1.15.0
New Features:
- #967, #978, #984, #986, #996, #1006: TLS v1.3 support for HTTPS and MQTTS
- #998, #988: Support for saving TLS session tickets which is used to resume TLS sessions and greatly reduce the overhead of establishing new HTTPS connections
- #922: WPS support to automatically configure Wi-Fi
- #802, #803: Support for optional decoding of DF5 data format for MQTT and custom HTTP(S) targets
- #774: Support for configuring data sending interval for HTTP custom target
- #909: Supports periodic sending of data via MQTT with a specified period (to reduce traffic)
- #814, #958: Support for configuring custom firmware update server
Minor Enhancements:
- #913, #927, #960, #992, #994: UI improvements
- #937: Optimised Web-UI loading speed
- #982: Updated bundle of CA Root Certificates using cacert-2023-12-12.pem
- #789: Use Ruuvi Time Server (time.ruuvi.com) as a last option
- #917: Added a 1-second delay before sending a response to an authentication request to prevent brute force attacks
- #905: MQTT: set default QoS to 0 to disable message buffering
Bug Fixes:
- #887, #1001: Task watchdog triggers on high-load continuous data retransmission
- #1002, #1010: Task watchdog triggers if target HTTPS server closes the connection or a network error occurs
- #969: Gateway sometimes reboots due to erroneous detection of memory leaks
- #896: Red LED glows slightly even when turned off
- #1003: Red LED starts blinking for a few seconds after checking if the new configuration is available on the remote configuration server
- #954: Green LED can erroneously turn off when there is no communication with one of multiple configured destinations
- #925: Gateway reboots during URL validation if authentication is used but token or username is empty
- #948, #950: Improved handling of invalid URLs on the Software Update page and Automatic Configuration Download page
- #964: UI locks when trying to reconnect to a disabled Wi-Fi AP with a saved password
- #946: Sometimes reconnecting to Wi-Fi does not work correctly
- #962: Attempting to connect to Wi-Fi twice triggers task watchdog
- #938: Wi-Fi connection can only be established on the second attempt
- #956: Wi-Fi AP stops before sending HTTP response when remote configuration download is enabled
- #935: Static IP configuration for Ethernet is not saved
- #970: Saved HMAC-KEY for Ruuvi Cloud is overridden by a custom HTTP target during URL validation, resulting in ER_FORBIDDEN response from Ruuvi Cloud
- #933: Gateway sends two messages to server without delay, which causes "Gateway throttled" response
- #847: Advertisements are sent to the server too often after time synchronisation, resulting in ER_THROTTLED error response
- #907, #901: MQTT: a slow network or MQTT server outage can trigger the task watchdog and reboot the Gateway
- #868: Problem with Gateway configuration via Nginx proxy manager
- #930: Configure button press event is sometimes lost, resulting in the inability to reset settings
Full Changelog: v1.14.1...v1.15.0