Skip to content

v0.4.0

Choose a tag to compare

@github-actions github-actions released this 22 Sep 13:59
· 12 commits to main since this release
550d0c3

Prebuilt firmware for 5 devices, version 0.4.0. Pick your device and a variant, flash the .factory.bin, then provision the device over Bluetooth.

Variants

  • standalone: the protocol server alone; Wi-Fi over Improv BLE.
  • tedge-full: every thin-edge.io feature; Wi-Fi and Cumulocity over lab-ztp-provisioner.
  • tedge-ota: connection, telemetry, restart and firmware update, plus what else fits; Wi-Fi and Cumulocity over lab-ztp-provisioner.

Images

Device App Variant Flash this first Update / OTA Bundle
ESP32-C6-DevKitC-1 (N4) modbus-server standalone modbus-server-standalone-esp32c6-devkitc-0.4.0.factory.bin modbus-server-standalone-esp32c6-devkitc-0.4.0.app.bin modbus-server-standalone-esp32c6-devkitc-0.4.0.zip
ESP32-C6-DevKitC-1 (N4) modbus-server tedge-full modbus-server-tedge-full-esp32c6-devkitc-0.4.0.factory.bin modbus-server-tedge-full-esp32c6-devkitc-0.4.0.app.bin modbus-server-tedge-full-esp32c6-devkitc-0.4.0.zip
ESP32-C6-DevKitC-1 (N4) modbus-server tedge-ota modbus-server-tedge-ota-esp32c6-devkitc-0.4.0.factory.bin modbus-server-tedge-ota-esp32c6-devkitc-0.4.0.app.bin modbus-server-tedge-ota-esp32c6-devkitc-0.4.0.zip
ESP32-C6-DevKitC-1 (N4) opcua-server standalone opcua-server-standalone-esp32c6-devkitc-0.4.0.factory.bin opcua-server-standalone-esp32c6-devkitc-0.4.0.app.bin opcua-server-standalone-esp32c6-devkitc-0.4.0.zip
ESP32-C6-DevKitC-1 (N4) snmp-agent standalone snmp-agent-standalone-esp32c6-devkitc-0.4.0.factory.bin snmp-agent-standalone-esp32c6-devkitc-0.4.0.app.bin snmp-agent-standalone-esp32c6-devkitc-0.4.0.zip
ESP32-C6-DevKitC-1 (N4) snmp-agent tedge-full snmp-agent-tedge-full-esp32c6-devkitc-0.4.0.factory.bin snmp-agent-tedge-full-esp32c6-devkitc-0.4.0.app.bin snmp-agent-tedge-full-esp32c6-devkitc-0.4.0.zip
ESP32-C6-DevKitC-1 (N4) snmp-agent tedge-ota snmp-agent-tedge-ota-esp32c6-devkitc-0.4.0.factory.bin snmp-agent-tedge-ota-esp32c6-devkitc-0.4.0.app.bin snmp-agent-tedge-ota-esp32c6-devkitc-0.4.0.zip
ESP32-C6-DevKitC-1 (N4) tedge-agent tedge-full tedge-agent-tedge-full-esp32c6-devkitc-0.4.0.factory.bin tedge-agent-tedge-full-esp32c6-devkitc-0.4.0.app.bin tedge-agent-tedge-full-esp32c6-devkitc-0.4.0.zip
ESP32-C6-DevKitC-1 (N4) tedge-agent tedge-ota tedge-agent-tedge-ota-esp32c6-devkitc-0.4.0.factory.bin tedge-agent-tedge-ota-esp32c6-devkitc-0.4.0.app.bin tedge-agent-tedge-ota-esp32c6-devkitc-0.4.0.zip
ESP32-S3-DevKitC-1 (N16R8) modbus-server standalone modbus-server-standalone-esp32s3-devkitc-0.4.0.factory.bin modbus-server-standalone-esp32s3-devkitc-0.4.0.app.bin modbus-server-standalone-esp32s3-devkitc-0.4.0.zip
ESP32-S3-DevKitC-1 (N16R8) modbus-server tedge-full modbus-server-tedge-full-esp32s3-devkitc-0.4.0.factory.bin modbus-server-tedge-full-esp32s3-devkitc-0.4.0.app.bin modbus-server-tedge-full-esp32s3-devkitc-0.4.0.zip
ESP32-S3-DevKitC-1 (N16R8) modbus-server tedge-ota modbus-server-tedge-ota-esp32s3-devkitc-0.4.0.factory.bin modbus-server-tedge-ota-esp32s3-devkitc-0.4.0.app.bin modbus-server-tedge-ota-esp32s3-devkitc-0.4.0.zip
ESP32-S3-DevKitC-1 (N16R8) opcua-server standalone opcua-server-standalone-esp32s3-devkitc-0.4.0.factory.bin opcua-server-standalone-esp32s3-devkitc-0.4.0.app.bin opcua-server-standalone-esp32s3-devkitc-0.4.0.zip
ESP32-S3-DevKitC-1 (N16R8) snmp-agent standalone snmp-agent-standalone-esp32s3-devkitc-0.4.0.factory.bin snmp-agent-standalone-esp32s3-devkitc-0.4.0.app.bin snmp-agent-standalone-esp32s3-devkitc-0.4.0.zip
ESP32-S3-DevKitC-1 (N16R8) snmp-agent tedge-full snmp-agent-tedge-full-esp32s3-devkitc-0.4.0.factory.bin snmp-agent-tedge-full-esp32s3-devkitc-0.4.0.app.bin snmp-agent-tedge-full-esp32s3-devkitc-0.4.0.zip
ESP32-S3-DevKitC-1 (N16R8) snmp-agent tedge-ota snmp-agent-tedge-ota-esp32s3-devkitc-0.4.0.factory.bin snmp-agent-tedge-ota-esp32s3-devkitc-0.4.0.app.bin snmp-agent-tedge-ota-esp32s3-devkitc-0.4.0.zip
ESP32-S3-DevKitC-1 (N16R8) tedge-agent tedge-full tedge-agent-tedge-full-esp32s3-devkitc-0.4.0.factory.bin tedge-agent-tedge-full-esp32s3-devkitc-0.4.0.app.bin tedge-agent-tedge-full-esp32s3-devkitc-0.4.0.zip
ESP32-S3-DevKitC-1 (N16R8) tedge-agent tedge-ota tedge-agent-tedge-ota-esp32s3-devkitc-0.4.0.factory.bin tedge-agent-tedge-ota-esp32s3-devkitc-0.4.0.app.bin tedge-agent-tedge-ota-esp32s3-devkitc-0.4.0.zip
Adafruit QT Py ESP32-S3 (N4R2) modbus-server standalone modbus-server-standalone-qtpy-esp32s3-0.4.0.factory.bin modbus-server-standalone-qtpy-esp32s3-0.4.0.app.bin modbus-server-standalone-qtpy-esp32s3-0.4.0.zip
Adafruit QT Py ESP32-S3 (N4R2) modbus-server tedge-full modbus-server-tedge-full-qtpy-esp32s3-0.4.0.factory.bin modbus-server-tedge-full-qtpy-esp32s3-0.4.0.app.bin modbus-server-tedge-full-qtpy-esp32s3-0.4.0.zip
Adafruit QT Py ESP32-S3 (N4R2) modbus-server tedge-ota modbus-server-tedge-ota-qtpy-esp32s3-0.4.0.factory.bin modbus-server-tedge-ota-qtpy-esp32s3-0.4.0.app.bin modbus-server-tedge-ota-qtpy-esp32s3-0.4.0.zip
Adafruit QT Py ESP32-S3 (N4R2) opcua-server standalone opcua-server-standalone-qtpy-esp32s3-0.4.0.factory.bin opcua-server-standalone-qtpy-esp32s3-0.4.0.app.bin opcua-server-standalone-qtpy-esp32s3-0.4.0.zip
Adafruit QT Py ESP32-S3 (N4R2) opcua-server tedge-ota opcua-server-tedge-ota-qtpy-esp32s3-0.4.0.factory.bin opcua-server-tedge-ota-qtpy-esp32s3-0.4.0.app.bin opcua-server-tedge-ota-qtpy-esp32s3-0.4.0.zip
Adafruit QT Py ESP32-S3 (N4R2) snmp-agent standalone snmp-agent-standalone-qtpy-esp32s3-0.4.0.factory.bin snmp-agent-standalone-qtpy-esp32s3-0.4.0.app.bin snmp-agent-standalone-qtpy-esp32s3-0.4.0.zip
Adafruit QT Py ESP32-S3 (N4R2) snmp-agent tedge-full snmp-agent-tedge-full-qtpy-esp32s3-0.4.0.factory.bin snmp-agent-tedge-full-qtpy-esp32s3-0.4.0.app.bin snmp-agent-tedge-full-qtpy-esp32s3-0.4.0.zip
Adafruit QT Py ESP32-S3 (N4R2) snmp-agent tedge-ota snmp-agent-tedge-ota-qtpy-esp32s3-0.4.0.factory.bin snmp-agent-tedge-ota-qtpy-esp32s3-0.4.0.app.bin snmp-agent-tedge-ota-qtpy-esp32s3-0.4.0.zip
Adafruit QT Py ESP32-S3 (N4R2) tedge-agent tedge-full tedge-agent-tedge-full-qtpy-esp32s3-0.4.0.factory.bin tedge-agent-tedge-full-qtpy-esp32s3-0.4.0.app.bin tedge-agent-tedge-full-qtpy-esp32s3-0.4.0.zip
Adafruit QT Py ESP32-S3 (N4R2) tedge-agent tedge-ota tedge-agent-tedge-ota-qtpy-esp32s3-0.4.0.factory.bin tedge-agent-tedge-ota-qtpy-esp32s3-0.4.0.app.bin tedge-agent-tedge-ota-qtpy-esp32s3-0.4.0.zip
ESP32-WROOM-32 DevKitC modbus-server standalone modbus-server-standalone-esp32-devkitc-0.4.0.factory.bin modbus-server-standalone-esp32-devkitc-0.4.0.app.bin modbus-server-standalone-esp32-devkitc-0.4.0.zip
ESP32-WROOM-32 DevKitC modbus-server tedge-ota modbus-server-tedge-ota-esp32-devkitc-0.4.0.factory.bin modbus-server-tedge-ota-esp32-devkitc-0.4.0.app.bin modbus-server-tedge-ota-esp32-devkitc-0.4.0.zip
ESP32-WROOM-32 DevKitC opcua-server standalone opcua-server-standalone-esp32-devkitc-0.4.0.factory.bin opcua-server-standalone-esp32-devkitc-0.4.0.app.bin opcua-server-standalone-esp32-devkitc-0.4.0.zip
ESP32-WROOM-32 DevKitC snmp-agent standalone snmp-agent-standalone-esp32-devkitc-0.4.0.factory.bin snmp-agent-standalone-esp32-devkitc-0.4.0.app.bin snmp-agent-standalone-esp32-devkitc-0.4.0.zip
ESP32-WROOM-32 DevKitC tedge-agent tedge-ota tedge-agent-tedge-ota-esp32-devkitc-0.4.0.factory.bin tedge-agent-tedge-ota-esp32-devkitc-0.4.0.app.bin tedge-agent-tedge-ota-esp32-devkitc-0.4.0.zip
ESP32-CAM (ESP32 + 4 MB PSRAM) modbus-server tedge-ota modbus-server-tedge-ota-esp32-cam-0.4.0.factory.bin modbus-server-tedge-ota-esp32-cam-0.4.0.app.bin modbus-server-tedge-ota-esp32-cam-0.4.0.zip
ESP32-CAM (ESP32 + 4 MB PSRAM) snmp-agent tedge-ota snmp-agent-tedge-ota-esp32-cam-0.4.0.factory.bin snmp-agent-tedge-ota-esp32-cam-0.4.0.app.bin snmp-agent-tedge-ota-esp32-cam-0.4.0.zip
ESP32-CAM (ESP32 + 4 MB PSRAM) tedge-agent tedge-ota tedge-agent-tedge-ota-esp32-cam-0.4.0.factory.bin tedge-agent-tedge-ota-esp32-cam-0.4.0.app.bin tedge-agent-tedge-ota-esp32-cam-0.4.0.zip

Flashing

From a browser (Chrome or Edge, no tools): open ESPHome Web, connect the board, choose Install, tick Erase device, and pick the .factory.bin. When it offers to set up Wi-Fi afterwards, skip it: these images are provisioned over Bluetooth.

With esptool:

esptool --chip <chip> erase-flash
esptool --chip <chip> write-flash 0x0 <image>.factory.bin

The QT Py ESP32-S3 and ESP32-C6 need --before usb-reset; each bundle's README.txt has the exact commands, and scripts/flash.sh <bundle-dir> flashes a bundle from a checkout.

Then provision it: standalone images with Improv Wi-Fi, tedge-* images with lab-ztp-provisioner. See Provisioning Wi-Fi over BLE, including its security notes.

Updating over the air (tedge images)

Put the application images into your tenant's firmware repository, then install from the device's Firmware tab:

scripts/release/c8y-upload.sh v0.4.0

Each image reports a firmware name unique to its device and app, and the version 0.4.0; c8y-firmware.json lists them.

tedge-zephyr 0.0.2. Features per image:

Image Features
modbus-server-tedge-full-esp32c6-devkitc telemetry, health, restart, firmware-update, remote-access, log-upload, coredump, parameters, cert-renewal
modbus-server-tedge-full-esp32s3-devkitc telemetry, health, restart, firmware-update, remote-access, shell-command, log-upload, coredump, parameters, cert-renewal
modbus-server-tedge-full-qtpy-esp32s3 telemetry, health, restart, firmware-update, remote-access, shell-command, log-upload, coredump, parameters, cert-renewal
modbus-server-tedge-ota-esp32-cam telemetry, health, restart, firmware-update
modbus-server-tedge-ota-esp32-devkitc telemetry, health, restart, firmware-update, remote-access
modbus-server-tedge-ota-esp32c6-devkitc telemetry, health, restart, firmware-update
modbus-server-tedge-ota-esp32s3-devkitc telemetry, health, restart, firmware-update
modbus-server-tedge-ota-qtpy-esp32s3 telemetry, health, restart, firmware-update
opcua-server-tedge-ota-qtpy-esp32s3 telemetry, health, restart, firmware-update
snmp-agent-tedge-full-esp32c6-devkitc telemetry, health, restart, firmware-update, remote-access, log-upload, coredump, parameters, cert-renewal
snmp-agent-tedge-full-esp32s3-devkitc telemetry, health, restart, firmware-update, remote-access, log-upload, coredump, parameters, cert-renewal
snmp-agent-tedge-full-qtpy-esp32s3 telemetry, health, restart, firmware-update, remote-access, log-upload, coredump, parameters, cert-renewal
snmp-agent-tedge-ota-esp32-cam telemetry, health, restart, firmware-update
snmp-agent-tedge-ota-esp32c6-devkitc telemetry, health, restart, firmware-update
snmp-agent-tedge-ota-esp32s3-devkitc telemetry, health, restart, firmware-update
snmp-agent-tedge-ota-qtpy-esp32s3 telemetry, health, restart, firmware-update
tedge-agent-tedge-full-esp32c6-devkitc telemetry, health, restart, firmware-update, remote-access, log-upload, coredump, parameters, cert-renewal
tedge-agent-tedge-full-esp32s3-devkitc telemetry, health, restart, firmware-update, remote-access, shell-command, log-upload, coredump, parameters, cert-renewal
tedge-agent-tedge-full-qtpy-esp32s3 telemetry, health, restart, firmware-update, remote-access, shell-command, log-upload, coredump, parameters, cert-renewal
tedge-agent-tedge-ota-esp32-cam telemetry, health, restart, firmware-update
tedge-agent-tedge-ota-esp32-devkitc telemetry, health, restart, firmware-update, remote-access, cert-renewal
tedge-agent-tedge-ota-esp32c6-devkitc telemetry, health, restart, firmware-update
tedge-agent-tedge-ota-esp32s3-devkitc telemetry, health, restart, firmware-update
tedge-agent-tedge-ota-qtpy-esp32s3 telemetry, health, restart, firmware-update

Without certificate renewal (modbus-server-tedge-ota-esp32-cam, modbus-server-tedge-ota-esp32-devkitc, modbus-server-tedge-ota-esp32c6-devkitc, modbus-server-tedge-ota-esp32s3-devkitc, modbus-server-tedge-ota-qtpy-esp32s3, opcua-server-tedge-ota-qtpy-esp32s3, snmp-agent-tedge-ota-esp32-cam, snmp-agent-tedge-ota-esp32c6-devkitc, snmp-agent-tedge-ota-esp32s3-devkitc, snmp-agent-tedge-ota-qtpy-esp32s3, tedge-agent-tedge-ota-esp32-cam, tedge-agent-tedge-ota-esp32c6-devkitc, tedge-agent-tedge-ota-esp32s3-devkitc, tedge-agent-tedge-ota-qtpy-esp32s3): these devices must be onboarded again before their certificate expires, a year after enrolment.

Measurements are published on te/device/<id>///m/<type> over the Cumulocity MQTT Service and need a Smart Function in the tenant; Telemetry in Cumulocity lists each app's topic, payload and units.

Signing

  • Signed with MCUboot's public development key (root-ec-p256.pem): anyone can sign an image these bootloaders accept. Not for production devices.

A device's bootloader only accepts images signed with its own key: a device flashed from one key cannot be updated over the air to images signed with another.

Sizes

Image App image / slot0 RAM (fullest region)
modbus-server-standalone-esp32-devkitc 590471 / 1310720 B (45.05%) dram1_0_seg 51000 / 98304 B (51.88%)
modbus-server-standalone-esp32c6-devkitc 733964 / 1310720 B (56.0%) sram0_0_seg 213496 / 488976 B (43.66%)
modbus-server-standalone-esp32s3-devkitc 583946 / 3145728 B (18.56%) dram0_0_seg 203128 / 384256 B (52.86%)
modbus-server-standalone-qtpy-esp32s3 584076 / 1310720 B (44.56%) dram0_0_seg 200520 / 384256 B (52.18%)
modbus-server-tedge-full-esp32c6-devkitc 959148 / 1310720 B (73.18%) sram0_0_seg 449140 / 488976 B (91.85%)
modbus-server-tedge-full-esp32s3-devkitc 931500 / 3145728 B (29.61%) dram0_0_seg 359492 / 384256 B (93.56%)
modbus-server-tedge-full-qtpy-esp32s3 931691 / 1310720 B (71.08%) dram0_0_seg 355868 / 384256 B (92.61%)
modbus-server-tedge-ota-esp32-cam 800056 / 1310720 B (61.04%) dram1_0_seg 90896 / 98304 B (92.46%)
modbus-server-tedge-ota-esp32-devkitc 811686 / 1310720 B (61.93%) dram0_0_seg 196460 / 196608 B (99.92%)
modbus-server-tedge-ota-esp32c6-devkitc 887483 / 1310720 B (67.71%) sram0_0_seg 420412 / 488976 B (85.98%)
modbus-server-tedge-ota-esp32s3-devkitc 801772 / 3145728 B (25.49%) dram0_0_seg 314772 / 384256 B (81.92%)
modbus-server-tedge-ota-qtpy-esp32s3 801916 / 1310720 B (61.18%) dram0_0_seg 311156 / 384256 B (80.98%)
opcua-server-standalone-esp32-devkitc 750456 / 1310720 B (57.26%) dram1_0_seg 69752 / 98304 B (70.96%)
opcua-server-standalone-esp32c6-devkitc 840524 / 1310720 B (64.13%) sram0_0_seg 255620 / 488976 B (52.28%)
opcua-server-standalone-esp32s3-devkitc 754635 / 3145728 B (23.99%) dram0_0_seg 245244 / 384256 B (63.82%)
opcua-server-standalone-qtpy-esp32s3 754779 / 1310720 B (57.59%) dram0_0_seg 242636 / 384256 B (63.14%)
opcua-server-tedge-ota-qtpy-esp32s3 906700 / 1310720 B (69.18%) dram0_0_seg 346572 / 384256 B (90.19%)
snmp-agent-standalone-esp32-devkitc 578936 / 1310720 B (44.17%) dram0_0_seg 131912 / 196608 B (67.09%)
snmp-agent-standalone-esp32c6-devkitc 732219 / 1310720 B (55.86%) sram0_0_seg 243712 / 488976 B (49.84%)
snmp-agent-standalone-esp32s3-devkitc 582635 / 3145728 B (18.52%) dram0_0_seg 233356 / 384256 B (60.73%)
snmp-agent-standalone-qtpy-esp32s3 582764 / 1310720 B (44.46%) dram0_0_seg 230748 / 384256 B (60.05%)
snmp-agent-tedge-full-esp32c6-devkitc 957674 / 1310720 B (73.06%) sram0_0_seg 485068 / 488976 B (99.2%)
snmp-agent-tedge-full-esp32s3-devkitc 806491 / 3145728 B (25.64%) dram0_0_seg 379472 / 384256 B (98.75%)
snmp-agent-tedge-full-qtpy-esp32s3 806634 / 1310720 B (61.54%) dram0_0_seg 375848 / 384256 B (97.81%)
snmp-agent-tedge-ota-esp32-cam 795527 / 1310720 B (60.69%) dram1_0_seg 94992 / 98304 B (96.63%)
snmp-agent-tedge-ota-esp32c6-devkitc 886284 / 1310720 B (67.62%) sram0_0_seg 456380 / 488976 B (93.33%)
snmp-agent-tedge-ota-esp32s3-devkitc 735435 / 3145728 B (23.38%) dram0_0_seg 350596 / 384256 B (91.24%)
snmp-agent-tedge-ota-qtpy-esp32s3 735578 / 1310720 B (56.12%) dram0_0_seg 346972 / 384256 B (90.3%)
tedge-agent-tedge-full-esp32c6-devkitc 890283 / 1310720 B (67.92%) sram0_0_seg 440340 / 488976 B (90.05%)
tedge-agent-tedge-full-esp32s3-devkitc 928362 / 3145728 B (29.51%) dram0_0_seg 350200 / 384256 B (91.14%)
tedge-agent-tedge-full-qtpy-esp32s3 928555 / 1310720 B (70.84%) dram0_0_seg 346576 / 384256 B (90.19%)
tedge-agent-tedge-ota-esp32-cam 785815 / 1310720 B (59.95%) dram1_0_seg 83728 / 98304 B (85.17%)
tedge-agent-tedge-ota-esp32-devkitc 799335 / 1310720 B (60.98%) dram0_0_seg 196024 / 196608 B (99.7%)
tedge-agent-tedge-ota-esp32c6-devkitc 884636 / 1310720 B (67.49%) sram0_0_seg 411676 / 488976 B (84.19%)
tedge-agent-tedge-ota-esp32s3-devkitc 733899 / 3145728 B (23.33%) dram0_0_seg 306128 / 384256 B (79.67%)
tedge-agent-tedge-ota-qtpy-esp32s3 734043 / 1310720 B (56.0%) dram0_0_seg 302512 / 384256 B (78.73%)

Verify downloads with sha256sum -c SHA256SUMS.