diff --git a/.github/workflows/beta.yml b/.github/workflows/beta.yml
index 103a4de..6768dd1 100644
--- a/.github/workflows/beta.yml
+++ b/.github/workflows/beta.yml
@@ -12,7 +12,7 @@ jobs:
strategy:
fail-fast: false
matrix:
- board: [esp32, esp32-s3, esp32-s3-oct, esp32-c3, esp32-c6, esp32-h2, esp32-solo1, esp32-gl-s10, esp32-p4]
+ board: [esp32, esp32-s3, esp32-s3-oct, esp32-c3, esp32-c5, esp32-c6, esp32-h2, esp32-solo1, esp32-gl-s10, esp32-p4]
build: [release]
env:
BOARD: ${{ matrix.board }}
@@ -36,7 +36,7 @@ jobs:
key: ${{ runner.os }}-pio-${{ matrix.board }}
- uses: actions/setup-python@v5
with:
- python-version: '3.10'
+ python-version: '3.11'
- name: Install dependencies
run: make deps
- name: Add version info
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 98196f1..5c4e935 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -18,7 +18,7 @@ jobs:
strategy:
fail-fast: false
matrix:
- board: [esp32, esp32-s3, esp32-s3-oct, esp32-c3, esp32-c6, esp32-h2, esp32-solo1, esp32-gl-s10, esp32-p4]
+ board: [esp32, esp32-s3, esp32-s3-oct, esp32-c3, esp32-c5, esp32-c6, esp32-h2, esp32-solo1, esp32-gl-s10, esp32-p4]
build: [release]
env:
BOARD: ${{ matrix.board }}
@@ -42,7 +42,7 @@ jobs:
key: ${{ runner.os }}-pio-${{ matrix.board }}
- uses: actions/setup-python@v5
with:
- python-version: '3.10'
+ python-version: '3.11'
- name: Install dependencies
run: make deps
- name: Add version info
diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml
index 9713a6b..ae6e08b 100644
--- a/.github/workflows/nightly.yml
+++ b/.github/workflows/nightly.yml
@@ -34,7 +34,7 @@ jobs:
strategy:
fail-fast: false
matrix:
- board: [esp32, esp32-s3, esp32-s3-oct, esp32-c3, esp32-c6, esp32-h2, esp32-solo1, esp32-gl-s10, esp32-p4]
+ board: [esp32, esp32-s3, esp32-s3-oct, esp32-c3, esp32-c5, esp32-c6, esp32-h2, esp32-solo1, esp32-gl-s10, esp32-p4]
build: [release]
env:
BOARD: ${{ matrix.board }}
@@ -58,7 +58,7 @@ jobs:
key: ${{ runner.os }}-pio-${{ matrix.board }}
- uses: actions/setup-python@v5
with:
- python-version: '3.10'
+ python-version: '3.11'
- name: Install dependencies
run: make deps
- name: Add version info
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 0113275..bcb795b 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -12,7 +12,7 @@ jobs:
strategy:
fail-fast: false
matrix:
- board: [esp32, esp32-s3, esp32-s3-oct, esp32-c3, esp32-c6, esp32-h2, esp32-solo1, esp32-gl-s10, esp32-p4]
+ board: [esp32, esp32-s3, esp32-s3-oct, esp32-c3, esp32-c5, esp32-c6, esp32-h2, esp32-solo1, esp32-gl-s10, esp32-p4]
build: [release]
env:
BOARD: ${{ matrix.board }}
@@ -36,7 +36,7 @@ jobs:
key: ${{ runner.os }}-pio-${{ matrix.board }}
- uses: actions/setup-python@v5
with:
- python-version: '3.10'
+ python-version: '3.11'
- name: Install dependencies
run: make deps
- name: Add version info
diff --git a/Docker/README.md b/Docker/README.md
index 1809df4..fb6c479 100644
--- a/Docker/README.md
+++ b/Docker/README.md
@@ -2,7 +2,7 @@
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-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-H2, ESP32-P4 and ESP32-Solo1)
```console
git clone https://github.com/technyon/nuki_hub --recursive
cd nuki_hub/Docker
diff --git a/README.md b/README.md
index 2b0547a..d3c98f8 100644
--- a/README.md
+++ b/README.md
@@ -16,7 +16,7 @@ Feel free to join us on Discord: https://discord.gg/9nPq85bP4p
Supported ESP32 devices:
- Nuki Hub is compiled against all ESP32 models with Wi-Fi and Bluetooh Low Energy (BLE) which are supported by ESP-IDF 5.4.1 and Arduino Core 3.2.0.
-- Tested stable builds are provided for the ESP32, ESP32-S3, ESP32-C3, ESP32-C6 and ESP32-H2.
+- Tested stable builds are provided for the ESP32, ESP32-S3, ESP32-C3, ESP32-C5, ESP32-C6 and ESP32-H2.
- Untested builds are provided for the ESP32-P4 (with the ESP32-C6-MINI-1 module for BLE and WiFi) and ESP32-Solo1 (as the developers don't own one).
Not supported ESP32 devices:
@@ -55,25 +55,26 @@ See the "[Connecting via Ethernet](#connecting-via-ethernet-optional)" section f
## Recommended ESP32 devices
-We don't recommend using single-core ESP32 devices (ESP32-C3, ESP32-C6, ESP32-H2, ESP32-Solo1).
-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.
+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.
+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.
-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.
-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).
+When buying a new device in 2025 we generally 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).
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.
-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)
+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 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.
+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.
We provide a build for the ESP32-P4 with ESP32-C6-MINI-1 module for BLE/WiFi but this device is untested as of now.
Other considerations:
- If Ethernet/PoE is required: An 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 absolutely required (it probably isn't): ESP32-C6 or ESP32-P4 with ESP32-C6-MINI-1 module (UNTESTED)
+- If WIFI6 is required: ESP32-C5, ESP32-C6 or ESP32-P4 with ESP32-C6-MINI-1 module (UNTESTED)
Devices ranked best-to-worst:
- ESP32-P4 with ESP32-C6-MINI-1 module (UNTESTED)
- ESP32-S3 with PSRAM
+- ESP32-C5 with PSRAM
- ......
(Devices below will not support some Nuki Hub functions, be slower and/or are more likely to experience unexpected crashes)
- ESP32-S3 without PSRAM
@@ -83,6 +84,7 @@ Devices ranked best-to-worst:
- ESP32 without PSRAM
- ......
(Devices below will not support more Nuki Hub functions, be slower and/or are more likely to experience unexpected crashes)
+- ESP32-C5
- ESP32-C6
- ESP32-solo1
- ESP32-C3
@@ -189,6 +191,7 @@ On version >=9.10 of Nuki Hub with only a Nuki Lock connected the expected free
- ESP32: 70.000 bytes
- ESP32 with PSRAM: 110.000 bytes + PSRAM
- ESP32-C3: 90.000 bytes
+- ESP32-C5: TBD bytes
- ESP32-C6: 200.000 bytes
- ESP32-S3 130.000 bytes
- ESP32-S3 with PSRAM: 180.000 bytes + PSRAM
@@ -943,7 +946,7 @@ Now connect via Wi-Fi and change the network hardware to "Generic W5500".
If Ethernet hardware isn't detected or initialised properly after changing the network device, Wi-Fi will be used as a fallback.
-Note: LAN8720 modules are only supported on the ESP32, ESP32-P4 and ESP32-Solo1, not on the ESP32-S3, ESP32-C3 or ESP-C6
+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
## FAQ / Troubleshooting
diff --git a/boards/nuki-esp32-c5.json b/boards/nuki-esp32-c5.json
new file mode 100644
index 0000000..f9719f0
--- /dev/null
+++ b/boards/nuki-esp32-c5.json
@@ -0,0 +1,31 @@
+{
+ "build": {
+ "core": "esp32",
+ "f_cpu": "240000000L",
+ "f_flash": "80000000L",
+ "flash_mode": "qio",
+ "mcu": "esp32c5",
+ "variant": "esp32c5"
+ },
+ "connectivity": [
+ "bluetooth",
+ "wifi"
+ ],
+ "debug": {
+ "openocd_target": "esp32c5.cfg"
+ },
+ "frameworks": [
+ "arduino",
+ "espidf"
+ ],
+ "name": "ESP32-C5 (>=4MB QD, QUAD OR NO PSRAM)",
+ "upload": {
+ "flash_size": "4MB",
+ "maximum_ram_size": 327680,
+ "maximum_size": 4194304,
+ "require_upload_port": true,
+ "speed": 460800
+ },
+ "url": "https://docs.espressif.com/projects/esp-dev-kits/en/latest/esp32c5/esp32-c5-devkitc-1/user_guide.html",
+ "vendor": "Espressif"
+}
diff --git a/index.html b/index.html
index 3c6fa7a..269ab1a 100644
--- a/index.html
+++ b/index.html
@@ -70,20 +70,20 @@