This commit is contained in:
iranl
2025-04-06 09:45:21 +02:00
parent 35282073d7
commit 9d0f13833d
6 changed files with 43 additions and 41 deletions

View File

@@ -157,8 +157,7 @@ jobs:
mkdir -p webflash/
mkdir -p resources/
mkdir -p src/
cp -vf release/*/nuki_hub_*.bin ota/
cp -vf release/*/webflash_nuki_hub_*.bin webflash/
cp -vf release/*/nuki_hub_*.bin ota/
cp -vf master/resources/ota_manifest.py resources/ota_manifest.py
cp -vf master/src/Config.h src/Config.h
python3 resources/ota_manifest.py release $Version

View File

@@ -58,6 +58,9 @@ See the "[Connecting via Ethernet](#connecting-via-ethernet-optional)" section f
We don't recommend using single-core ESP32 devices (ESP32-C3, ESP32-C6, ESP32-H2, ESP32-Solo1).<br>
Although Nuki Hub supports single-core devices, Nuki Hub uses both CPU cores (if available) to process tasks (e.g. HTTP server/MQTT client/BLE scanner/BLE client) and thus runs much better on dual-core devices.<br>
We also don't recommend using the original ESP32 or ESP32-Solo1 devices because these devices experience unexpected crashes related to the (closed-source) BLE controller.<br>
In all newer models (e.g. ESP32-S3, ESP32-P4, ESP32-C3, ESP32-C6, ESP32-H2) these unexpected crashed haven't been seen.
When buying a new device in 2025 we can only recommend the ESP32-S3 with PSRAM (look for an ESP32-S3 with the designation N>=4 and R>=2 such as an ESP32-S3 N16R8).<br>
The ESP32-S3 is a dual-core CPU with many GPIO's, ability to enlarge RAM using PSRAM, ability to connect Ethernet modules over SPI and optionally power the device with a PoE splitter.<br>
The only functions missing from the ESP32-S3 as compared to other ESP devices is the ability to use some Ethernet modules only supported by the original ESP32 (and ESP32-P4) and the ability to connect over WIFI6 (C6 or ESP32-P4 with C6 module)
@@ -71,17 +74,15 @@ Other considerations:
Devices ranked best-to-worst:
- ESP32-P4 with ESP32-C6-MINI-1 module (UNTESTED)
- ESP32-S3 with PSRAM
- ......
- ...... <br>
(Devices below will not support some Nuki Hub functions, be slower and/or are more likely to experience unexpected crashed)
- ESP32-S3 without PSRAM
- ......
- ESP32 with PSRAM
- ......<br>
(Devices below will not support some Nuki Hub functions)
- ......
- ESP32-S3 without PSRAM
- ESP32 without PSRAM
- ...... <br>
(Devices below will not support more Nuki Hub functions)
- ......
(Devices below will not support more Nuki Hub functions, be slower and/or are more likely to experience unexpected crashed)
- ESP32-C6
- ESP32-solo1
- ESP32-C3

View File

@@ -13,7 +13,7 @@
type="module"
src="https://unpkg.com/esp-web-tools/dist/web/install-button.js?module">
</script>
<esp-web-install-button id="installButton" manifest="https://raw.githubusercontent.com/technyon/nuki_hub/binary/webflash/manifest.json"></esp-web-install-button>
<esp-web-install-button id="installButton" manifest="https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/webflash_manifest.json"></esp-web-install-button>
<br><br><br><br>
Note: If flashing doesn't work, press and hold the "BOOT" switch, then click "Install".
</div>

View File

@@ -28,11 +28,13 @@ def copy_files(source, target, env):
project_dir = env.get('PROJECT_DIR')
board = get_board_name(env)
if "partitions.bin" in file.name:
shutil.copy(file, f"{target_dir}/nuki_hub.{file.name}")
elif "firmware" in file.stem:
if "firmware" in file.stem:
shutil.copy(file, f"{target_dir}/nuki_hub_{board}{file.suffix}")
shutil.copy(f"{project_dir}/updater/release/{board}/updater.bin", f"{target_dir}/nuki_hub_updater_{board}{file.suffix}")
elif "bootloader" in file.stem:
shutil.copy(file, f"{target_dir}/nuki_hub_bootloader_{board}{file.suffix}")
elif "partitions" in file.stem:
shutil.copy(file, f"{target_dir}/nuki_hub_partitions_{board}{file.suffix}")
else:
shutil.copy(file, f"{target_dir}/{file.name}")
@@ -79,4 +81,4 @@ env.AddPostAction("$BUILD_DIR/partitions.bin", copy_files)
env.AddPostAction("$BUILD_DIR/bootloader.bin", copy_files)
env.AddPostAction("$BUILD_DIR/firmware.elf", copy_files)
env.AddPostAction("$BUILD_DIR/${PROGNAME}.bin", merge_bin)
#env.AddPostAction("$BUILD_DIR/${PROGNAME}.bin", merge_bin)

View File

@@ -24,64 +24,64 @@ Howto flash (Espressif Flash Download Tools)
ESP32
e000 boot_app0.bin
1000 bootloader.bin
8000 nuki_hub.partitions.bin
1000 nuki_hub_bootloader_esp32.bin
8000 nuki_hub_partitions_esp32.bin
10000 nuki_hub_esp32.bin
280000 nuki_hub_updater_esp32.bin
ESP32-GL-S10
e000 boot_app0.bin
1000 bootloader.bin
8000 nuki_hub.partitions.bin
1000 nuki_hub_bootloader_esp32.bin
8000 nuki_hub_partitions_esp32.bin
10000 nuki_hub_esp32.bin
280000 nuki_hub_updater_esp32.bin
ESP32-S3
e000 boot_app0.bin
0 bootloader.bin
8000 nuki_hub.partitions.bin
0 nuki_hub_bootloader_esp32s3.bin
8000 nuki_hub_partitions_esp32s3.bin
10000 nuki_hub_esp32s3.bin
280000 nuki_hub_updater_esp32s3.bin
ESP32-S3-OCT
e000 boot_app0.bin
0 bootloader.bin
8000 nuki_hub.partitions.bin
0 nuki_hub_bootloader_esp32s3oct.bin
8000 nuki_hub_partitions_esp32s3oct.bin
10000 nuki_hub_esp32s3oct.bin
280000 nuki_hub_updater_esp32s3oct.bin
ESP32-C3
e000 boot_app0.bin
0 bootloader.bin
8000 nuki_hub.partitions.bin
0 nuki_hub_bootloader_esp32c3.bin
8000 nuki_hub_partitions_esp32c3.bin
10000 nuki_hub_esp32c3.bin
280000 nuki_hub_updater_esp32c3.bin
ESP32-C6
e000 boot_app0.bin
0 bootloader.bin
8000 nuki_hub.partitions.bin
0 nuki_hub_bootloader_esp32c6.bin
8000 nuki_hub_partitions_esp32c6.bin
10000 nuki_hub_esp32c6.bin
280000 nuki_hub_updater_esp32c6.bin
ESP32-H2
e000 boot_app0.bin
0 bootloader.bin
8000 nuki_hub.partitions.bin
0 nuki_hub_bootloader_esp32h2.bin
8000 nuki_hub_partitions_esp32h2.bin
10000 nuki_hub_esp32h2.bin
280000 nuki_hub_updater_esp32h2.bin
ESP32-P4
e000 boot_app0.bin
0 bootloader.bin
8000 nuki_hub.partitions.bin
0 nuki_hub_bootloader_esp32p4.bin
8000 nuki_hub_partitions_esp32p4.bin
10000 nuki_hub_esp32p4.bin
280000 nuki_hub_updater_esp32p4.bin
ESP32-SOLO1
e000 boot_app0.bin
1000 bootloader.bin
8000 nuki_hub.partitions.bin
1000 nuki_hub_bootloader_esp32-solo1.bin
8000 nuki_hub_partitions_esp32-solo1.bin
10000 nuki_hub_esp32-solo1.bin
280000 nuki_hub_updater_esp32-solo1.bin
@@ -99,38 +99,38 @@ As an alternative to the Download Tools, you can also use the esptool from the E
## ESP32
esptool.py --chip esp32 --port /dev/ttyUSB0 --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq keep --flash_size detect 0xe000 boot_app0.bin 0x1000 bootloader.bin 0x10000 nuki_hub_esp32.bin 0x270000 nuki_hub_updater_esp32.bin 0x8000 nuki_hub.partitions.bin
esptool.py --chip esp32 --port /dev/ttyUSB0 --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq keep --flash_size detect 0xe000 boot_app0.bin 0x1000 nuki_hub_bootloader_esp32.bin 0x10000 nuki_hub_esp32.bin 0x270000 nuki_hub_updater_esp32.bin 0x8000 nuki_hub_partitions_esp32.bin
## ESP32-GL-S10
esptool.py --chip esp32 --port /dev/ttyUSB0 --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq keep --flash_size detect 0xe000 boot_app0.bin 0x1000 bootloader.bin 0x10000 nuki_hub_esp32.bin 0x270000 nuki_hub_updater_esp32.bin 0x8000 nuki_hub.partitions.bin
esptool.py --chip esp32 --port /dev/ttyUSB0 --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq keep --flash_size detect 0xe000 boot_app0.bin 0x1000 nuki_hub_bootloader_esp32.bin 0x10000 nuki_hub_esp32.bin 0x270000 nuki_hub_updater_esp32.bin 0x8000 nuki_hub_partitions_esp32.bin
## ESP32-S3
esptool.py --chip esp32s3 --port /dev/ttyUSB0 --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq keep --flash_size detect 0xe000 boot_app0.bin 0x0 bootloader.bin 0x10000 nuki_hub_esp32s3.bin 0x270000 nuki_hub_updater_esp32s3.bin 0x8000 nuki_hub.partitions.bin
esptool.py --chip esp32s3 --port /dev/ttyUSB0 --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq keep --flash_size detect 0xe000 boot_app0.bin 0x0 nuki_hub_bootloader_esp32s3.bin 0x10000 nuki_hub_esp32s3.bin 0x270000 nuki_hub_updater_esp32s3.bin 0x8000 nuki_hub_partitions_esp32s3.bin
## ESP32-S3-OCT
esptool.py --chip esp32s3 --port /dev/ttyUSB0 --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq keep --flash_size detect 0xe000 boot_app0.bin 0x0 bootloader.bin 0x10000 nuki_hub_esp32s3oct.bin 0x270000 nuki_hub_updater_esp32s3oct.bin 0x8000 nuki_hub.partitions.bin
esptool.py --chip esp32s3 --port /dev/ttyUSB0 --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq keep --flash_size detect 0xe000 boot_app0.bin 0x0 nuki_hub_bootloader_esp32s3oct.bin 0x10000 nuki_hub_esp32s3oct.bin 0x270000 nuki_hub_updater_esp32s3oct.bin 0x8000 nuki_hub_partitions_esp32s3oct.bin
## ESP32-C3
esptool.py --chip esp32c3 --port /dev/ttyUSB0 --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq keep --flash_size detect 0xe000 boot_app0.bin 0x0 bootloader.bin 0x10000 nuki_hub_esp32c3.bin 0x270000 nuki_hub_updater_esp32c3.bin 0x8000 nuki_hub.partitions.bin
esptool.py --chip esp32c3 --port /dev/ttyUSB0 --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq keep --flash_size detect 0xe000 boot_app0.bin 0x0 nuki_hub_bootloader_esp32c3.bin 0x10000 nuki_hub_esp32c3.bin 0x270000 nuki_hub_updater_esp32c3.bin 0x8000 nuki_hub_partitions_esp32c3.bin
## ESP32-C6
esptool.py --chip esp32c6 --port /dev/ttyUSB0 --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq keep --flash_size detect 0xe000 boot_app0.bin 0x0 bootloader.bin 0x10000 nuki_hub_esp32c6.bin 0x270000 nuki_hub_updater_esp32c6.bin 0x8000 nuki_hub.partitions.bin
esptool.py --chip esp32c6 --port /dev/ttyUSB0 --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq keep --flash_size detect 0xe000 boot_app0.bin 0x0 nuki_hub_bootloader_esp32c6.bin 0x10000 nuki_hub_esp32c6.bin 0x270000 nuki_hub_updater_esp32c6.bin 0x8000 nuki_hub_partitions_esp32c6.bin
## ESP32-H2
esptool.py --chip esp32h2 --port /dev/ttyUSB0 --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq keep --flash_size detect 0xe000 boot_app0.bin 0x0 bootloader.bin 0x10000 nuki_hub_esp32h2.bin 0x270000 nuki_hub_updater_esp32h2.bin 0x8000 nuki_hub.partitions.bin
esptool.py --chip esp32h2 --port /dev/ttyUSB0 --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq keep --flash_size detect 0xe000 boot_app0.bin 0x0 nuki_hub_bootloader_esp32h2.bin 0x10000 nuki_hub_esp32h2.bin 0x270000 nuki_hub_updater_esp32h2.bin 0x8000 nuki_hub_partitions_esp32h2.bin
## ESP32-P4
esptool.py --chip esp32p4 --port /dev/ttyUSB0 --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq keep --flash_size detect 0xe000 boot_app0.bin 0x0 bootloader.bin 0x10000 nuki_hub_esp32p4.bin 0x270000 nuki_hub_updater_esp32p4.bin 0x8000 nuki_hub.partitions.bin
esptool.py --chip esp32p4 --port /dev/ttyUSB0 --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq keep --flash_size detect 0xe000 boot_app0.bin 0x0 nuki_hub_bootloader_esp32p4.bin 0x10000 nuki_hub_esp32p4.bin 0x270000 nuki_hub_updater_esp32p4.bin 0x8000 nuki_hub_partitions_esp32p4.bin
## ESP32-SOLO1
esptool.py --chip esp32 --port /dev/ttyUSB0 --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq keep --flash_size detect 0xe000 boot_app0.bin 0x1000 bootloader.bin 0x10000 nuki_hub_esp32-solo1.bin 0x270000 nuki_hub_updater_esp32-solo1.bin 0x8000 nuki_hub.partitions.bin
esptool.py --chip esp32 --port /dev/ttyUSB0 --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq keep --flash_size detect 0xe000 boot_app0.bin 0x1000 nuki_hub_bootloader_esp32-solo1.bin 0x10000 nuki_hub_esp32-solo1.bin 0x270000 nuki_hub_updater_esp32-solo1.bin 0x8000 nuki_hub_partitions_esp32-solo1.bin
Adjust the serial device and path to the binaries if necessary.

View File

@@ -5,7 +5,7 @@
#define NUKI_HUB_VERSION "9.10"
#define NUKI_HUB_VERSION_INT (uint32_t)910
#define NUKI_HUB_BUILD "unknownbuildnr"
#define NUKI_HUB_DATE "2025-04-02"
#define NUKI_HUB_DATE "2025-04-06"
#define GITHUB_LATEST_RELEASE_URL (char*)"https://github.com/technyon/nuki_hub/releases/latest"
#define GITHUB_OTA_MANIFEST_URL (char*)"https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/manifest.json"