diff --git a/.gitignore b/.gitignore index e948a50..449c400 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ +.dummy .idea build debug diff --git a/README.md b/README.md index 1f25aff..05eb7c9 100644 --- a/README.md +++ b/README.md @@ -15,13 +15,13 @@ Feel free to join us on Discord: https://discord.gg/9nPq85bP4p ## Supported devices 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.1.4 and Arduino Core 3.0.7. +- Nuki Hub is compiled against all ESP32 models with Wi-Fi and Bluetooh Low Energy (BLE) which are supported by ESP-IDF 5.3.2 and Arduino Core 3.1.0. - Tested stable builds are provided for the ESP32, ESP32-S3 and ESP32-C3. - Untested builds are provided for the ESP32-Solo1. - Support for the ESP32-C6 and ESP32-H2 is experimental. There could be more frequent crashes than on other ESP32 devices and connections with the Nuki device could be slower than on other ESP32 devices. Not supported ESP32 devices: -- The ESP32-S2 has no BLE and as such can't run Nuki Hub. +- The ESP32-S2 and ESP32-P4 have no built-in BLE and as such can't run Nuki Hub. Supported Nuki devices: - Nuki Smart Lock 1.0 diff --git a/boards/nuki-esp32solo1.json b/boards/nuki-esp32solo1.json new file mode 100644 index 0000000..9c86dac --- /dev/null +++ b/boards/nuki-esp32solo1.json @@ -0,0 +1,34 @@ +{ + "build": { + "core": "esp32", + "extra_flags": "-DARDUINO_ESP32_DEV -DARDUINO_USB_CDC_ON_BOOT=0 -DCORE32SOLO1", + "f_cpu": "160000000L", + "f_flash": "40000000L", + "flash_mode": "dio", + "mcu": "esp32", + "variant": "esp32" + }, + "connectivity": [ + "wifi", + "bluetooth", + "ethernet", + "can" + ], + "debug": { + "openocd_target": "esp32-solo-1.cfg" + }, + "frameworks": [ + "arduino", + "espidf" + ], + "name": "Espressif Generic ESP32-solo1 4M Flash", + "upload": { + "flash_size": "4MB", + "maximum_ram_size": 327680, + "maximum_size": 4194304, + "require_upload_port": true, + "speed": 460800 + }, + "url": "https://en.wikipedia.org/wiki/ESP32", + "vendor": "Espressif" +} \ No newline at end of file diff --git a/pio_package_post.py b/pio_package_post.py index b412cad..fdbfad1 100644 --- a/pio_package_post.py +++ b/pio_package_post.py @@ -7,8 +7,8 @@ from pathlib import Path def get_board_name(env): board = env.get('BOARD_MCU') - if env.get('BOARD') == 'esp32-solo1': - board = env.get('BOARD').replace('-', '') + if env.get('BOARD') == 'nuki-esp32solo1': + board = 'esp32solo1' elif env.get('BOARD') == 'nuki-esp32-s3-oct': board = 'esp32s3oct' return board diff --git a/platformio.ini b/platformio.ini index 1785ee6..f16dfef 100644 --- a/platformio.ini +++ b/platformio.ini @@ -13,7 +13,7 @@ default_envs = esp32 boards_dir = boards [env] -platform = https://github.com/pioarduino/platform-espressif32/releases/download/51.03.07/platform-espressif32.zip +platform = https://github.com/pioarduino/platform-espressif32/releases/download/53.03.10/platform-espressif32.zip platform_packages = framework = arduino, espidf board_build.embed_txtfiles = @@ -123,7 +123,7 @@ lib_ignore = [env:esp32-solo1] extends = env:esp32 -board = esp32-solo1 +board = nuki-esp32solo1 board_build.cmake_extra_args = -DSDKCONFIG_DEFAULTS="sdkconfig.defaults;sdkconfig.release.defaults;sdkconfig.defaults.esp32-solo1" diff --git a/sdkconfig.defaults b/sdkconfig.defaults index ba24c42..37e2539 100644 --- a/sdkconfig.defaults +++ b/sdkconfig.defaults @@ -70,6 +70,18 @@ CONFIG_ARDUINO_SELECTIVE_WiFiProv=n CONFIG_ARDUINO_SELECTIVE_BLE=n CONFIG_ARDUINO_SELECTIVE_BluetoothSerial=n CONFIG_ARDUINO_SELECTIVE_SimpleBLE=n +CONFIG_ARDUINO_SELECTIVE_ESP_SR=n +CONFIG_ARDUINO_SELECTIVE_Zigbee=n +CONFIG_ARDUINO_SELECTIVE_SD=n +CONFIG_ARDUINO_SELECTIVE_SD_MMC=n +CONFIG_ARDUINO_SELECTIVE_SPIFFS=n +CONFIG_ARDUINO_SELECTIVE_FFat=n +CONFIG_ARDUINO_SELECTIVE_LittleFS=n +CONFIG_ARDUINO_SELECTIVE_PPP=n +CONFIG_ARDUINO_SELECTIVE_Matter=n +CONFIG_ARDUINO_SELECTIVE_RainMaker=n +CONFIG_ARDUINO_SELECTIVE_OpenThread=n +CONFIG_ARDUINO_SELECTIVE_Insights=n CONFIG_HEAP_TASK_TRACKING=n CONFIG_LOG_COLORS=n CONFIG_LOG_MAXIMUM_EQUALS_DEFAULT=n diff --git a/src/Config.h b/src/Config.h index c64e6c2..bc9d543 100644 --- a/src/Config.h +++ b/src/Config.h @@ -5,7 +5,7 @@ #define NUKI_HUB_VERSION "9.05" #define NUKI_HUB_VERSION_INT (uint32_t)905 #define NUKI_HUB_BUILD "unknownbuildnr" -#define NUKI_HUB_DATE "2024-12-03" +#define NUKI_HUB_DATE "2024-12-16" #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" diff --git a/updater/pio_package_post.py b/updater/pio_package_post.py index 571b73f..1c6f405 100644 --- a/updater/pio_package_post.py +++ b/updater/pio_package_post.py @@ -6,8 +6,8 @@ from pathlib import Path def get_board_name(env): board = env.get('BOARD_MCU') - if env.get('BOARD') == 'esp32-solo1': - board = env.get('BOARD').replace('-', '') + if env.get('BOARD') == 'nuki-esp32solo1': + board = 'esp32solo1' elif env.get('BOARD') == 'nuki-esp32-s3-oct': board = 'esp32s3oct' return board diff --git a/updater/platformio.ini b/updater/platformio.ini index 959c43e..b7e1e4a 100644 --- a/updater/platformio.ini +++ b/updater/platformio.ini @@ -13,7 +13,7 @@ default_envs = updater_esp32 boards_dir = ../boards [env] -platform = https://github.com/pioarduino/platform-espressif32/releases/download/51.03.07/platform-espressif32.zip +platform = https://github.com/pioarduino/platform-espressif32/releases/download/53.03.10/platform-espressif32.zip platform_packages = framework = arduino, espidf board_build.embed_txtfiles = @@ -100,6 +100,6 @@ lib_deps = [env:updater_esp32-solo1] extends = env:updater_esp32 -board = esp32-solo1 +board = nuki-esp32solo1 board_build.cmake_extra_args = -DSDKCONFIG_DEFAULTS="sdkconfig.defaults;sdkconfig.defaults.esp32-solo1" \ No newline at end of file diff --git a/updater/sdkconfig.defaults b/updater/sdkconfig.defaults index 60592b8..a5ac4e3 100644 --- a/updater/sdkconfig.defaults +++ b/updater/sdkconfig.defaults @@ -9,6 +9,23 @@ CONFIG_ESPTOOLPY_HEADER_FLASHSIZE_UPDATE=y CONFIG_BT_ENABLED=n CONFIG_IEEE802154_ENABLED=n CONFIG_ARDUINO_SELECTIVE_COMPILATION=y +CONFIG_ARDUINO_SELECTIVE_WebServer=n +CONFIG_ARDUINO_SELECTIVE_WiFiProv=n +CONFIG_ARDUINO_SELECTIVE_BLE=n +CONFIG_ARDUINO_SELECTIVE_BluetoothSerial=n +CONFIG_ARDUINO_SELECTIVE_SimpleBLE=n +CONFIG_ARDUINO_SELECTIVE_ESP_SR=n +CONFIG_ARDUINO_SELECTIVE_Zigbee=n +CONFIG_ARDUINO_SELECTIVE_SD=n +CONFIG_ARDUINO_SELECTIVE_SD_MMC=n +CONFIG_ARDUINO_SELECTIVE_SPIFFS=n +CONFIG_ARDUINO_SELECTIVE_FFat=n +CONFIG_ARDUINO_SELECTIVE_LittleFS=n +CONFIG_ARDUINO_SELECTIVE_PPP=n +CONFIG_ARDUINO_SELECTIVE_Matter=n +CONFIG_ARDUINO_SELECTIVE_RainMaker=n +CONFIG_ARDUINO_SELECTIVE_OpenThread=n +CONFIG_ARDUINO_SELECTIVE_Insights=n CONFIG_MBEDTLS_CERTIFICATE_BUNDLE=y CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_CMN=y CONFIG_LOG_COLORS=n