v0.4.0
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.binThe 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.0Each 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.