Skip to content

Releases: ruuvi/ruuvi.gateway_esp.c

v1.17.3

v1.17.3 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 26 Jun 07:26
c4196c2

Minor Enhancements:

  • #1325: Auto-generate gw_cfg_default_gen.json from 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_headers in 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=false was 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_*_mount error cleanup in ESP-IDF v4.2.x

Full Changelog: v1.17.2...v1.17.3

v1.16.3

v1.16.3 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 22 Jun 13:46
aff40f0

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

v1.17.2 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 03 Jun 17:10
7a7c65f

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

v1.17.1 Pre-release
Pre-release

Choose a tag to compare

@TheSomeMan TheSomeMan released this 20 Feb 11:27
056b6bf

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

v1.17.0 Pre-release
Pre-release

Choose a tag to compare

@TheSomeMan TheSomeMan released this 08 Jan 18:16
8046d8d

New features:

  • Add firmware signature verification

v1.16.2

Choose a tag to compare

@TheSomeMan TheSomeMan released this 28 Jul 11:06
3c3ace9

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

Choose a tag to compare

@TheSomeMan TheSomeMan released this 13 Jun 10:19
e5bd0f3

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

Choose a tag to compare

@TheSomeMan TheSomeMan released this 05 Jun 06:48
63bccbb

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

Choose a tag to compare

@TheSomeMan TheSomeMan released this 15 May 11:32
d7b7b9c

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

Choose a tag to compare

@TheSomeMan TheSomeMan released this 07 Mar 12:34
df53946

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