Add C61 support

This commit is contained in:
iranl
2025-11-23 22:03:15 +01:00
parent 27e9ac2085
commit 299918dfd4
18 changed files with 131 additions and 18 deletions

View File

@@ -12,7 +12,7 @@ jobs:
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
board: [esp32, esp32-nopsram, esp32-s3, esp32-s3-nopsram, esp32-s3-oct, esp32-c3, esp32-c5, esp32-c6, esp32-h2, esp32-solo1, esp32-gl-s10, esp32-p4, esp32-p4c5] board: [esp32, esp32-nopsram, esp32-s3, esp32-s3-nopsram, esp32-s3-oct, esp32-c3, esp32-c5, esp32-c6, esp32-c61, esp32-h2, esp32-solo1, esp32-gl-s10, esp32-p4, esp32-p4c5]
build: [release] build: [release]
env: env:
BOARD: ${{ matrix.board }} BOARD: ${{ matrix.board }}

View File

@@ -18,7 +18,7 @@ jobs:
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
board: [esp32, esp32-nopsram, esp32-s3, esp32-s3-nopsram, esp32-s3-oct, esp32-c3, esp32-c5, esp32-c6, esp32-h2, esp32-solo1, esp32-gl-s10, esp32-p4, esp32-p4c5] board: [esp32, esp32-nopsram, esp32-s3, esp32-s3-nopsram, esp32-s3-oct, esp32-c3, esp32-c5, esp32-c6, esp32-c61, esp32-h2, esp32-solo1, esp32-gl-s10, esp32-p4, esp32-p4c5]
build: [release] build: [release]
env: env:
BOARD: ${{ matrix.board }} BOARD: ${{ matrix.board }}

View File

@@ -34,7 +34,7 @@ jobs:
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
board: [esp32, esp32-nopsram, esp32-s3, esp32-s3-nopsram, esp32-s3-oct, esp32-c3, esp32-c5, esp32-c6, esp32-h2, esp32-solo1, esp32-gl-s10, esp32-p4, esp32-p4c5] board: [esp32, esp32-nopsram, esp32-s3, esp32-s3-nopsram, esp32-s3-oct, esp32-c3, esp32-c5, esp32-c6, esp32-c61, esp32-h2, esp32-solo1, esp32-gl-s10, esp32-p4, esp32-p4c5]
build: [release] build: [release]
env: env:
BOARD: ${{ matrix.board }} BOARD: ${{ matrix.board }}

View File

@@ -12,7 +12,7 @@ jobs:
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
board: [esp32, esp32-nopsram, esp32-s3, esp32-s3-nopsram, esp32-s3-oct, esp32-c3, esp32-c5, esp32-c6, esp32-h2, esp32-solo1, esp32-gl-s10, esp32-p4, esp32-p4c5] board: [esp32, esp32-nopsram, esp32-s3, esp32-s3-nopsram, esp32-s3-oct, esp32-c3, esp32-c5, esp32-c6, esp32-c61, esp32-h2, esp32-solo1, esp32-gl-s10, esp32-p4, esp32-p4c5]
build: [release] build: [release]
env: env:
BOARD: ${{ matrix.board }} BOARD: ${{ matrix.board }}

View File

@@ -2,7 +2,7 @@
You can build this project using Docker. Just run the following commands in the console: You can build this project using Docker. Just run the following commands in the console:
## Build with PlatformIO (will build for the ESP32, ESP32-S3, ESP32-C3, ESP32-C5, ESP32-C6, ESP32-H2, ESP32-P4 and ESP32-Solo1) ## Build with PlatformIO (will build for the ESP32, ESP32-S3, ESP32-C3, ESP32-C5, ESP32-C6, ESP32-C61, ESP32-H2, ESP32-P4 and ESP32-Solo1)
```console ```console
git clone https://github.com/technyon/nuki_hub --recursive git clone https://github.com/technyon/nuki_hub --recursive
cd nuki_hub/Docker cd nuki_hub/Docker

View File

@@ -15,8 +15,8 @@ Feel free to join us on Discord: https://discord.gg/9nPq85bP4p
## Supported devices ## Supported devices
<b>Supported ESP32 devices:</b> <b>Supported ESP32 devices:</b>
- Nuki Hub is compiled against all ESP32 models with Wi-Fi and Bluetooh Low Energy (BLE) which are supported by ESP-IDF 5.5.1 and Arduino Core 3.3.2. - Nuki Hub is compiled against all ESP32 models with Wi-Fi and Bluetooh Low Energy (BLE) which are supported by ESP-IDF 5.5.1 and Arduino Core 3.3.4.
- Tested stable builds are provided for the ESP32, ESP32-S3, ESP32-C3, ESP32-C5, ESP32-C6, ESP32-P4 with the ESP32-C6 module and ESP32-H2. - Tested stable builds are provided for the ESP32, ESP32-S3, ESP32-C3, ESP32-C5, ESP32-C6, ESP32-C61, ESP32-P4 with the ESP32-C6 module and ESP32-H2.
- Untested builds are provided for the ESP32-Solo1 and ESP32-P4 with the ESP32-C5 module (as the developers don't own these devices). - Untested builds are provided for the ESP32-Solo1 and ESP32-P4 with the ESP32-C5 module (as the developers don't own these devices).
<b>Not supported ESP32 devices:</b> <b>Not supported ESP32 devices:</b>
@@ -59,9 +59,9 @@ See the "[Connecting via Ethernet](#connecting-via-ethernet-optional)" section f
## Recommended ESP32 devices ## Recommended ESP32 devices
We 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> We 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 newer models (e.g. ESP32-S3, ESP32-P4, ESP32-C3, ESP32-C5, ESP32-C6, ESP32-H2) these unexpected crashed are seen a lot less. In newer models (e.g. ESP32-S3, ESP32-P4, ESP32-C3, ESP32-C5, ESP32-C6, ESP32-C61, ESP32-H2) these unexpected crashed are seen a lot less.
When buying a new device in 2025 we can only recommend the ESP32-P4 or ESP32-S3 with PSRAM (look for an ESP32-S3 with the designation N>=4 and R>=2 such as an ESP32-S3 N16R8).<br> When buying a new device in 2025 we recommend the ESP32-P4 or 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-P4 with ESP32-C6 or ESP32-C5 module for BLE/WiFi is the most powerfull ESP32 in 2025. The ESP32-P4 with ESP32-C6 or ESP32-C5 module for BLE/WiFi is the most powerfull ESP32 in 2025.
It supports anything the ESP32 range has to offer with the highest CPU clocks, largest flash and PSRAM, Ethernet, PoE and WiFi6 (and 5 GHZ WiFi with the C5 as co-processor). It supports anything the ESP32 range has to offer with the highest CPU clocks, largest flash and PSRAM, Ethernet, PoE and WiFi6 (and 5 GHZ WiFi with the C5 as co-processor).
@@ -70,11 +70,13 @@ The ESP32-S3 is a dual-core CPU with many GPIO's, ability to enlarge RAM using P
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 (C5, C6 or ESP32-P4 with C6/C5 module) 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 (C5, C6 or ESP32-P4 with C6/C5 module)
The ESP32-C5 with PSRAM is a good option providing higher clockspeeds than the C6 and adding PSRAM and WIFI 6 on the 5 Ghz band support. The ESP32-C5 with PSRAM is a good option providing higher clockspeeds than the C6 and adding PSRAM and WIFI 6 on the 5 Ghz band support.
The ESP32-C61 with PSRAM adds PSRAM compared to the C6.
Nuki Hub uses both CPU cores (if available) to process tasks (e.g. HTTP server/MQTT client/BLE scanner/BLE client) and thus runs better on dual-core devices.<br> Nuki Hub uses both CPU cores (if available) to process tasks (e.g. HTTP server/MQTT client/BLE scanner/BLE client) and thus runs better on dual-core devices.<br>
Other considerations: Other considerations:
- If Ethernet/PoE is required: ESP32-P4 with ESP32-C6 or ESP32-C5 module or ESP32-S3 with PSRAM in combination with a SPI Ethernet module ([W5500](https://www.aliexpress.com/w/wholesale-w5500.html)) and [PoE to Ethernet and USB type B/C splitter](https://aliexpress.com/w/wholesale-poe-splitter-usb-c.html) or the LilyGO-T-ETH ELite, LilyGO-T-ETH-Lite-ESP32S3 or M5stack Atom S3R with the M5stack AtomPoe W5500 module - If Ethernet/PoE is required: ESP32-P4 with ESP32-C6 or ESP32-C5 module or ESP32-S3 with PSRAM in combination with a SPI Ethernet module ([W5500](https://www.aliexpress.com/w/wholesale-w5500.html)) and [PoE to Ethernet and USB type B/C splitter](https://aliexpress.com/w/wholesale-poe-splitter-usb-c.html) or the LilyGO-T-ETH ELite, LilyGO-T-ETH-Lite-ESP32S3 or M5stack Atom S3R with the M5stack AtomPoe W5500 module
- If WIFI6 is required: ESP32-P4 with ESP32-C6 or ESP32-C5 module, ESP32-C5 or ESP32-C6 - If WIFI6 is required: ESP32-P4 with ESP32-C6 or ESP32-C5 module, ESP32-C5, ESP32-C6 or ESP32-C61
Devices ranked best-to-worst: Devices ranked best-to-worst:
- ESP32-P4 with ESP32-C5 module (UNTESTED) - ESP32-P4 with ESP32-C5 module (UNTESTED)
@@ -85,6 +87,7 @@ Devices ranked best-to-worst:
- ...... <br> - ...... <br>
(Devices below will not support some Nuki Hub functions, be slower and/or are more likely to experience unexpected crashes) (Devices below will not support some Nuki Hub functions, be slower and/or are more likely to experience unexpected crashes)
- ESP32-S3 without PSRAM - ESP32-S3 without PSRAM
- ESP32-C61 with PSRAM
- ...... - ......
- ESP32 with PSRAM - ESP32 with PSRAM
- ...... - ......
@@ -202,6 +205,7 @@ On version >=9.10 of Nuki Hub with only a Nuki Lock connected the expected free
- ESP32-C3: 70.000 bytes - ESP32-C3: 70.000 bytes
- ESP32-C5 with PSRAM: 130.000 bytes + PSRAM - ESP32-C5 with PSRAM: 130.000 bytes + PSRAM
- ESP32-C6: 200.000 bytes - ESP32-C6: 200.000 bytes
- ESP32-C61 with PSRAM: TBD + PSRAM
- ESP32-P4: 450.000 bytes - ESP32-P4: 450.000 bytes
- ESP32-S3 135.000 bytes - ESP32-S3 135.000 bytes
- ESP32-S3 with PSRAM: 185.000 bytes + PSRAM - ESP32-S3 with PSRAM: 185.000 bytes + PSRAM
@@ -962,7 +966,7 @@ Now connect via Wi-Fi and change the network hardware to "Generic W5500".<br>
If Ethernet hardware isn't detected or initialised properly after changing the network device, Wi-Fi will be used as a fallback.<br> If Ethernet hardware isn't detected or initialised properly after changing the network device, Wi-Fi will be used as a fallback.<br>
<br> <br>
Note: LAN8720 modules are only supported on the ESP32, ESP32-P4 and ESP32-Solo1, not on the ESP32-S3, ESP32-C3, ESP32-C5 or ESP-C6<br> Note: LAN8720 modules are only supported on the ESP32, ESP32-P4 and ESP32-Solo1, not on the ESP32-S3, ESP32-C3, ESP32-C5, ESP-C6 or ESP-C61<br>
## Debugging crashes ## Debugging crashes

View File

@@ -0,0 +1,44 @@
{
"build": {
"arduino": {
"partitions": "default_8MB.csv",
"memory_type": "qio_qspi"
},
"core": "esp32",
"extra_flags": [
"-DBOARD_HAS_PSRAM"
],
"f_cpu": "160000000L",
"f_flash": "80000000L",
"flash_mode": "qio",
"psram_type": "qio",
"mcu": "esp32c61",
"variant": "esp32c61"
},
"connectivity": [
"bluetooth",
"wifi"
],
"debug": {
"openocd_target": "esp32c61.cfg"
},
"frameworks": [
"arduino",
"espidf"
],
"name": "Espressif ESP32-C61-DevKitC-1 N8R2 (8 MB Flash Quad, 2 MB PSRAM Quad)",
"upload": {
"flash_size": "8MB",
"maximum_ram_size": 327680,
"maximum_size": 8388608,
"require_upload_port": true,
"speed": 460800
},
"espidf": {
"custom_sdkconfig": [
"CONFIG_IDF_TARGET=\"esp32c61\""
]
},
"url": "https://docs.espressif.com/projects/esp-dev-kits/en/latest/esp32c61/esp32-c61-devkitc-1/user_guide.html",
"vendor": "Espressif"
}

View File

@@ -70,7 +70,7 @@
<div id="URL_based_input" class="collapsible"> <div id="URL_based_input" class="collapsible">
<select id="pick-variant-selector"> <select id="pick-variant-selector">
<optgroup label="Release version"> <optgroup label="Release version">
<option label="NukiHub Default (ESP32, ESP32-C3, ESP32-C5, ESP32-C6, ESP32-S3, ESP32-P4)" value="https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/webflash_manifest.json"></option> <option label="NukiHub Default (ESP32, ESP32-C3, ESP32-C5, ESP32-C6, ESP32-C61, ESP32-S3, ESP32-P4)" value="https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/webflash_manifest.json"></option>
<option label="NukiHub ESP32-S3 OCTAL PSRAM" value="https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/webflash_manifest_s3octal.json"></option> <option label="NukiHub ESP32-S3 OCTAL PSRAM" value="https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/webflash_manifest_s3octal.json"></option>
<option label="NukiHub ESP32-SOLO1" value="https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/webflash_manifest_solo1.json"></option> <option label="NukiHub ESP32-SOLO1" value="https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/webflash_manifest_solo1.json"></option>
<option label="NukiHub GL-S10" value="https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/webflash_manifest_gls10.json"></option> <option label="NukiHub GL-S10" value="https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/webflash_manifest_gls10.json"></option>
@@ -78,7 +78,7 @@
<option label="NukiHub ESP32-S3 NO PSRAM" value="https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/webflash_manifest_s3nopsram.json"></option> <option label="NukiHub ESP32-S3 NO PSRAM" value="https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/webflash_manifest_s3nopsram.json"></option>
</optgroup> </optgroup>
<optgroup label="Beta version"> <optgroup label="Beta version">
<option class="beta" label="NukiHub Default (ESP32, ESP32-C3, ESP32-C5, ESP32-C6, ESP32-S3, ESP32-P4)" value="https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/beta/webflash_manifest.json"></option> <option class="beta" label="NukiHub Default (ESP32, ESP32-C3, ESP32-C5, ESP32-C6, ESP32-C61, ESP32-S3, ESP32-P4)" value="https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/beta/webflash_manifest.json"></option>
<option class="beta" label="NukiHub ESP32-S3 OCTAL PSRAM" value="https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/beta/webflash_manifest_s3octal.json"></option> <option class="beta" label="NukiHub ESP32-S3 OCTAL PSRAM" value="https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/beta/webflash_manifest_s3octal.json"></option>
<option class="beta" label="NukiHub GL-S10" value="https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/beta/webflash_manifest_gls10.json"></option> <option class="beta" label="NukiHub GL-S10" value="https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/beta/webflash_manifest_gls10.json"></option>
<option class="beta" label="NukiHub ESP32-SOLO1" value="https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/beta/webflash_manifest_solo1.json"></option> <option class="beta" label="NukiHub ESP32-SOLO1" value="https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/beta/webflash_manifest_solo1.json"></option>
@@ -87,7 +87,7 @@
<option class="beta" label="No Beta available" disabled value=""></option> <option class="beta" label="No Beta available" disabled value=""></option>
</optgroup> </optgroup>
<optgroup label="Development version"> <optgroup label="Development version">
<option label="NukiHub Default (ESP32, ESP32-C3, ESP32-C5, ESP32-C6, ESP32-S3, ESP32-P4)" value="https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/master/webflash_manifest.json"></option> <option label="NukiHub Default (ESP32, ESP32-C3, ESP32-C5, ESP32-C6, ESP32-C61, ESP32-S3, ESP32-P4)" value="https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/master/webflash_manifest.json"></option>
<option label="NukiHub ESP32-S3 OCTAL PSRAM" value="https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/master/webflash_manifest_s3octal.json"></option> <option label="NukiHub ESP32-S3 OCTAL PSRAM" value="https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/master/webflash_manifest_s3octal.json"></option>
<option label="NukiHub ESP32-SOLO1" value="https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/master/webflash_manifest_solo1.json"></option> <option label="NukiHub ESP32-SOLO1" value="https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/master/webflash_manifest_solo1.json"></option>
<option label="NukiHub GL-S10" value="https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/master/webflash_manifest_gls10.json"></option> <option label="NukiHub GL-S10" value="https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/master/webflash_manifest_gls10.json"></option>

View File

@@ -162,6 +162,13 @@ build_flags =
-DNUKI_HUB_HTTPS_SERVER -DNUKI_HUB_HTTPS_SERVER
-DFORCE_NUKI_HUB_HTTPS_SERVER -DFORCE_NUKI_HUB_HTTPS_SERVER
[env:esp32-c61]
extends = env:esp32
platform = https://github.com/pioarduino/platform-espressif32.git#develop
board = nuki-esp32-c61
board_build.cmake_extra_args =
-DSDKCONFIG_DEFAULTS="sdkconfig.defaults;sdkconfig.release.defaults;sdkconfig.singlecore.defaults;sdkconfig.ramoptimize.defaults;sdkconfig.defaults.esp32-c61"
[env:esp32-h2] [env:esp32-h2]
extends = env:esp32 extends = env:esp32
board = esp32-h2-devkitm-1 board = esp32-h2-devkitm-1
@@ -281,6 +288,15 @@ build_flags =
${env:esp32_dbg.build_flags} ${env:esp32_dbg.build_flags}
-DFORCE_NUKI_HUB_HTTPS_SERVER -DFORCE_NUKI_HUB_HTTPS_SERVER
[env:esp32-c61_dbg]
extends = env:esp32-c61
board = nuki-esp32-c61
custom_build = debug
board_build.cmake_extra_args =
-DSDKCONFIG_DEFAULTS="sdkconfig.defaults;sdkconfig.debug.defaults;sdkconfig.singlecore.defaults;sdkconfig.ramoptimize.defaults;sdkconfig.defaults.esp32-c61"
build_flags =
${env:esp32_dbg.build_flags}
[env:esp32-h2_dbg] [env:esp32-h2_dbg]
extends = env:esp32-h2 extends = env:esp32-h2
custom_build = debug custom_build = debug

View File

@@ -85,6 +85,13 @@ e000 boot_app0.bin
10000 nuki_hub_esp32c6.bin 10000 nuki_hub_esp32c6.bin
270000 nuki_hub_updater_esp32c6.bin 270000 nuki_hub_updater_esp32c6.bin
ESP32-C61
e000 boot_app0.bin
0 nuki_hub_bootloader_esp32c61.bin
8000 nuki_hub_partitions_esp32c61.bin
10000 nuki_hub_esp32c61.bin
270000 nuki_hub_updater_esp32c61.bin
ESP32-H2 ESP32-H2
e000 boot_app0.bin e000 boot_app0.bin
0 nuki_hub_bootloader_esp32h2.bin 0 nuki_hub_bootloader_esp32h2.bin
@@ -154,6 +161,10 @@ esptool.py --chip esp32c5 --port /dev/ttyUSB0 --baud 921600 --before default-res
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 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-C61
esptool.py --chip esp32c61 --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_esp32c61.bin 0x10000 nuki_hub_esp32c61.bin 0x270000 nuki_hub_updater_esp32c61.bin 0x8000 nuki_hub_partitions_esp32c61.bin
## ESP32-H2 ## 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 nuki_hub_bootloader_esp32h2.bin 0x10000 nuki_hub_esp32h2.bin 0x270000 nuki_hub_updater_esp32h2.bin 0x8000 nuki_hub_partitions_esp32h2.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

View File

@@ -0,0 +1,5 @@
CONFIG_SPIRAM=y
CONFIG_SPIRAM_IGNORE_NOTFOUND=y
CONFIG_MBEDTLS_DEFAULT_MEM_ALLOC=y
CONFIG_BT_NIMBLE_MEM_ALLOC_MODE_DEFAULT=y
CONFIG_SPIRAM_MALLOC_RESERVE_INTERNAL=50768

View File

@@ -5,8 +5,8 @@
#define NUKI_HUB_VERSION "9.14" #define NUKI_HUB_VERSION "9.14"
#define NUKI_HUB_VERSION_INT (uint32_t)914 #define NUKI_HUB_VERSION_INT (uint32_t)914
#define NUKI_HUB_BUILD "unknownbuildnr" #define NUKI_HUB_BUILD "unknownbuildnr"
#define NUKI_HUB_DATE "2025-11-23" #define NUKI_HUB_DATE "2025-11-24"
#define NUKI_HUB_DATE "2025-11-23" #define NUKI_HUB_DATE "2025-11-24"
#define GITHUB_LATEST_RELEASE_URL (char*)"https://github.com/technyon/nuki_hub/releases/latest" #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" #define GITHUB_OTA_MANIFEST_URL (char*)"https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/manifest.json"
@@ -145,6 +145,21 @@
#define GITHUB_MASTER_UPDATER_BINARY_URL_DBG (char*)"https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/debug/master/nuki_hub_updater_esp32c6.bin" #define GITHUB_MASTER_UPDATER_BINARY_URL_DBG (char*)"https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/debug/master/nuki_hub_updater_esp32c6.bin"
#define NUKI_HUB_HW (char*)"ESP32-C6" #define NUKI_HUB_HW (char*)"ESP32-C6"
#define BOOT_BUTTON_GPIO (gpio_num_t)9 #define BOOT_BUTTON_GPIO (gpio_num_t)9
#elif defined(CONFIG_IDF_TARGET_ESP32C61)
#define GITHUB_LATEST_RELEASE_BINARY_URL (char*)"https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/nuki_hub_esp32c61.bin"
#define GITHUB_LATEST_UPDATER_BINARY_URL (char*)"https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/nuki_hub_updater_esp32c61.bin"
#define GITHUB_BETA_RELEASE_BINARY_URL (char*)"https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/beta/nuki_hub_esp32c61.bin"
#define GITHUB_BETA_UPDATER_BINARY_URL (char*)"https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/beta/nuki_hub_updater_esp32c61.bin"
#define GITHUB_MASTER_RELEASE_BINARY_URL (char*)"https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/master/nuki_hub_esp32c61.bin"
#define GITHUB_MASTER_UPDATER_BINARY_URL (char*)"https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/master/nuki_hub_updater_esp32c61.bin"
#define GITHUB_LATEST_RELEASE_BINARY_URL_DBG (char*)"https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/debug/nuki_hub_esp32c61.bin"
#define GITHUB_LATEST_UPDATER_BINARY_URL_DBG (char*)"https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/debug/nuki_hub_updater_esp32c61.bin"
#define GITHUB_BETA_RELEASE_BINARY_URL_DBG (char*)"https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/debug/beta/nuki_hub_esp32c61.bin"
#define GITHUB_BETA_UPDATER_BINARY_URL_DBG (char*)"https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/debug/beta/nuki_hub_updater_esp32c61.bin"
#define GITHUB_MASTER_RELEASE_BINARY_URL_DBG (char*)"https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/debug/master/nuki_hub_esp32c61.bin"
#define GITHUB_MASTER_UPDATER_BINARY_URL_DBG (char*)"https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/debug/master/nuki_hub_updater_esp32c61.bin"
#define NUKI_HUB_HW (char*)"ESP32-C61"
#define BOOT_BUTTON_GPIO (gpio_num_t)9
#elif defined(CONFIG_IDF_TARGET_ESP32H2) #elif defined(CONFIG_IDF_TARGET_ESP32H2)
#define GITHUB_LATEST_RELEASE_BINARY_URL (char*)"https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/nuki_hub_esp32h2.bin" #define GITHUB_LATEST_RELEASE_BINARY_URL (char*)"https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/nuki_hub_esp32h2.bin"
#define GITHUB_LATEST_UPDATER_BINARY_URL (char*)"https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/nuki_hub_updater_esp32h2.bin" #define GITHUB_LATEST_UPDATER_BINARY_URL (char*)"https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/nuki_hub_updater_esp32h2.bin"

View File

@@ -103,6 +103,9 @@ private:
#elif defined(CONFIG_IDF_TARGET_ESP32C6) #elif defined(CONFIG_IDF_TARGET_ESP32C6)
//Based on https://docs.espressif.com/projects/esp-idf/en/latest/esp32c6/api-reference/peripherals/gpio.html and https://www.espressif.com/sites/default/files/documentation/esp32-c6_datasheet_en.pdf //Based on https://docs.espressif.com/projects/esp-idf/en/latest/esp32c6/api-reference/peripherals/gpio.html and https://www.espressif.com/sites/default/files/documentation/esp32-c6_datasheet_en.pdf
const std::vector<uint8_t> _availablePins = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 13, 15, 16, 17, 18, 19, 20, 21, 22, 23 }; const std::vector<uint8_t> _availablePins = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 13, 15, 16, 17, 18, 19, 20, 21, 22, 23 };
#elif defined(CONFIG_IDF_TARGET_ESP32C61)
//Based on https://docs.espressif.com/projects/esp-idf/en/latest/esp32c61/api-reference/peripherals/gpio.html and https://www.espressif.com/sites/default/files/documentation/esp32-c61_datasheet_en.pdf
const std::vector<uint8_t> _availablePins = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 22, 23, 24, 25, 26, 27, 28, 29 };
#elif defined(CONFIG_IDF_TARGET_ESP32P4) #elif defined(CONFIG_IDF_TARGET_ESP32P4)
//Based on https://docs.espressif.com/projects/esp-idf/en/latest/esp32p4/api-reference/peripherals/gpio.html //Based on https://docs.espressif.com/projects/esp-idf/en/latest/esp32p4/api-reference/peripherals/gpio.html
const std::vector<uint8_t> _availablePins = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33 }; const std::vector<uint8_t> _availablePins = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33 };

View File

@@ -4,7 +4,7 @@ dependencies:
esp-nimble-cpp: esp-nimble-cpp:
git: https://github.com/h2zero/esp-nimble-cpp.git git: https://github.com/h2zero/esp-nimble-cpp.git
version: "2.3.3" version: 25af28bcad1d3c42f76bfc6e73bea3f833a4ef6d
espressif/libsodium: "^1.0.20~2" espressif/libsodium: "^1.0.20~2"

View File

@@ -534,7 +534,7 @@ uint8_t checkPartition()
Log->println(running_partition->subtype); Log->println(running_partition->subtype);
#if !defined(CONFIG_IDF_TARGET_ESP32C5) && !defined(CONFIG_IDF_TARGET_ESP32P4) #if !defined(CONFIG_IDF_TARGET_ESP32C5) && !defined(CONFIG_IDF_TARGET_ESP32P4) && !defined(CONFIG_IDF_TARGET_ESP32C61)
if(running_partition->size == 1966080) if(running_partition->size == 1966080)
{ {
return 0; //OLD PARTITION TABLE return 0; //OLD PARTITION TABLE

View File

@@ -93,6 +93,7 @@
<option label="NukiHub ESP32-C3" value="https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/nuki_hub_esp32c3.elf"></option> <option label="NukiHub ESP32-C3" value="https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/nuki_hub_esp32c3.elf"></option>
<option label="NukiHub ESP32-C5" value="https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/nuki_hub_esp32c5.elf"></option> <option label="NukiHub ESP32-C5" value="https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/nuki_hub_esp32c5.elf"></option>
<option label="NukiHub ESP32-C6" value="https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/nuki_hub_esp32c6.elf"></option> <option label="NukiHub ESP32-C6" value="https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/nuki_hub_esp32c6.elf"></option>
<option label="NukiHub ESP32-C61" value="https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/nuki_hub_esp32c61.elf"></option>
<option label="NukiHub ESP32-S3" value="https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/nuki_hub_esp32s3.elf"></option> <option label="NukiHub ESP32-S3" value="https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/nuki_hub_esp32s3.elf"></option>
<option label="NukiHub ESP32-S3 OCTAL PSRAM" value="https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/nuki_hub_esp32s3oct.elf"></option> <option label="NukiHub ESP32-S3 OCTAL PSRAM" value="https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/nuki_hub_esp32s3oct.elf"></option>
<option label="NukiHub ESP32-P4" value="https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/nuki_hub_esp32p4.elf"></option> <option label="NukiHub ESP32-P4" value="https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/nuki_hub_esp32p4.elf"></option>
@@ -104,6 +105,7 @@
<option class="beta" label="NukiHub ESP32-C3" value="https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/beta/nuki_hub_esp32c3.elf"></option> <option class="beta" label="NukiHub ESP32-C3" value="https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/beta/nuki_hub_esp32c3.elf"></option>
<option class="beta" label="NukiHub ESP32-C5" value="https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/beta/nuki_hub_esp32c5.elf"></option> <option class="beta" label="NukiHub ESP32-C5" value="https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/beta/nuki_hub_esp32c5.elf"></option>
<option class="beta" label="NukiHub ESP32-C6" value="https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/beta/nuki_hub_esp32c6.elf"></option> <option class="beta" label="NukiHub ESP32-C6" value="https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/beta/nuki_hub_esp32c6.elf"></option>
<option class="beta" label="NukiHub ESP32-C61" value="https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/beta/nuki_hub_esp32c61.elf"></option>
<option class="beta" label="NukiHub ESP32-S3" value="https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/beta/nuki_hub_esp32s3.elf"></option> <option class="beta" label="NukiHub ESP32-S3" value="https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/beta/nuki_hub_esp32s3.elf"></option>
<option class="beta" label="NukiHub ESP32-S3 OCTAL PSRAM" value="https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/beta/nuki_hub_esp32s3oct.elf"></option> <option class="beta" label="NukiHub ESP32-S3 OCTAL PSRAM" value="https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/beta/nuki_hub_esp32s3oct.elf"></option>
<option class="beta" label="NukiHub ESP32-P4" value="https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/beta/nuki_hub_esp32p4.elf"></option> <option class="beta" label="NukiHub ESP32-P4" value="https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/beta/nuki_hub_esp32p4.elf"></option>
@@ -116,6 +118,7 @@
<option label="NukiHub ESP32-C3" value="https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/master/nuki_hub_esp32c3.elf"></option> <option label="NukiHub ESP32-C3" value="https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/master/nuki_hub_esp32c3.elf"></option>
<option label="NukiHub ESP32-C5" value="https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/master/nuki_hub_esp32c5.elf"></option> <option label="NukiHub ESP32-C5" value="https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/master/nuki_hub_esp32c5.elf"></option>
<option label="NukiHub ESP32-C6" value="https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/master/nuki_hub_esp32c6.elf"></option> <option label="NukiHub ESP32-C6" value="https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/master/nuki_hub_esp32c6.elf"></option>
<option label="NukiHub ESP32-C61" value="https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/master/nuki_hub_esp32c61.elf"></option>
<option label="NukiHub ESP32-S3" value="https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/master/nuki_hub_esp32s3.elf"></option> <option label="NukiHub ESP32-S3" value="https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/master/nuki_hub_esp32s3.elf"></option>
<option label="NukiHub ESP32-S3 OCTAL PSRAM" value="https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/master/nuki_hub_esp32s3oct.elf"></option> <option label="NukiHub ESP32-S3 OCTAL PSRAM" value="https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/master/nuki_hub_esp32s3oct.elf"></option>
<option label="NukiHub ESP32-P4" value="https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/master/nuki_hub_esp32p4.elf"></option> <option label="NukiHub ESP32-P4" value="https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/master/nuki_hub_esp32p4.elf"></option>

View File

@@ -145,6 +145,13 @@ board = nuki-esp32-c5
board_build.cmake_extra_args = board_build.cmake_extra_args =
-DSDKCONFIG_DEFAULTS="sdkconfig.defaults;sdkconfig.defaults.esp32-c5" -DSDKCONFIG_DEFAULTS="sdkconfig.defaults;sdkconfig.defaults.esp32-c5"
[env:updater_esp32-c61]
extends = env:updater_esp32
platform = https://github.com/pioarduino/platform-espressif32.git#develop
board = nuki-esp32-c61
board_build.cmake_extra_args =
-DSDKCONFIG_DEFAULTS="sdkconfig.defaults;sdkconfig.defaults.esp32-c61"
[env:updater_esp32-p4] [env:updater_esp32-p4]
extends = env:updater_esp32 extends = env:updater_esp32
board_build.embed_txtfiles = board_build.embed_txtfiles =

View File

@@ -0,0 +1,5 @@
CONFIG_SPIRAM=y
CONFIG_SPIRAM_IGNORE_NOTFOUND=y
CONFIG_MBEDTLS_DEFAULT_MEM_ALLOC=y
CONFIG_BT_NIMBLE_MEM_ALLOC_MODE_DEFAULT=y
CONFIG_SPIRAM_MALLOC_RESERVE_INTERNAL=50768