P4 Fixes
This commit is contained in:
25
README.md
25
README.md
@@ -16,8 +16,8 @@ Feel free to join us on Discord: https://discord.gg/9nPq85bP4p
|
||||
|
||||
<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.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.
|
||||
- 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).
|
||||
- Tested stable builds are provided for the ESP32, ESP32-S3, ESP32-C3, ESP32-C6, ESP32-P4 (with the ESP32-C6-MINI-1 module for BLE and WiFi) and ESP32-H2.
|
||||
- Untested builds are provided for the ESP32-Solo1 (as the developers don't own one).
|
||||
|
||||
<b>Not supported ESP32 devices:</b>
|
||||
- The ESP32-S2 has no built-in BLE and as such can't run Nuki Hub.
|
||||
@@ -49,6 +49,9 @@ As an alternative to Wi-Fi (which is available on any supported ESP32), the foll
|
||||
- [LilyGO-T-ETH ELite](https://github.com/Xinyuan-LilyGO/LilyGO-T-ETH-Series)
|
||||
- [GL-S10 (Revisions 2.1, 2.3 / 1.0 might not be supported)](https://www.gl-inet.com/products/gl-s10/)
|
||||
- [Waveshare ESP32-S3-ETH / ESP32-S3-POE-ETH](https://www.waveshare.com/esp32-s3-eth.htm?sku=28771)
|
||||
- [Waveshare ESP32-P4-NANO](https://www.waveshare.com/esp32-p4-nano.htm)
|
||||
- [Waveshare ESP32-P4-Module-DEV-KIT](https://www.waveshare.com/esp32-p4-module-dev-kit.htm)
|
||||
- [Espressif ESP32-P4-Function-EV-Board](https://docs.espressif.com/projects/esp-dev-kits/en/latest/esp32p4/esp32-p4-function-ev-board/index.html)
|
||||
|
||||
In principle all ESP32 (and variants) devices with built-in ethernet port are supported, but might require additional setup using the "Custom LAN setup" option.
|
||||
See the "[Connecting via Ethernet](#connecting-via-ethernet-optional)" section for more information.
|
||||
@@ -59,20 +62,24 @@ We don't recommend using single-core ESP32 devices (ESP32-C3, ESP32-C6, ESP32-H2
|
||||
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.
|
||||
In newer models (e.g. ESP32-S3, ESP32-P4, ESP32-C3, ESP32-C6, ESP32-H2) these unexpected crashes are seen 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>
|
||||
|
||||
The ESP32-P4 with ESP32-C6-MINI-1 module for BLE/WiFi is the most powerfull ESP32 in 2025.
|
||||
It supports (with the C6 co-processor) anything the ESP32 range has to offer with the highest CPU clocks, largest flash and PSRAM, Ethernet, PoE and WiFi6.
|
||||
The only function missing (when not using a C5 as co-processor) is 5Ghz WiFi support.
|
||||
|
||||
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)
|
||||
|
||||
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 Ethernet/PoE is required: ESP32-P4 with ESP32-C6-MINI-1 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 absolutely required: ESP32-P4 with ESP32-C6-MINI-1 module or ESP32-C6
|
||||
|
||||
Devices ranked best-to-worst:
|
||||
- ESP32-P4 with ESP32-C6-MINI-1 module (UNTESTED)
|
||||
- ESP32-P4 with ESP32-C6-MINI-1 module
|
||||
- ...... <br>
|
||||
- ESP32-S3 with PSRAM
|
||||
- ...... <br>
|
||||
(Devices below will not support some Nuki Hub functions, be slower and/or are more likely to experience unexpected crashes)
|
||||
|
||||
@@ -13,7 +13,7 @@ default_envs = esp32
|
||||
boards_dir = boards
|
||||
|
||||
[env]
|
||||
platform = https://github.com/pioarduino/platform-espressif32/releases/download/54.03.20/platform-espressif32.zip
|
||||
platform = https://github.com/iranl/nuki_hub/raw/refs/heads/binary/platform-espressif32.zip
|
||||
platform_packages =
|
||||
framework = arduino, espidf
|
||||
board_build.embed_txtfiles =
|
||||
@@ -43,7 +43,7 @@ build_flags =
|
||||
-DNUKI_NO_WDT_RESET
|
||||
-DNUKI_MUTEX_RECURSIVE
|
||||
-DNUKI_64BIT_TIME
|
||||
-DETH_SPI_SUPPORTS_NO_IRQ
|
||||
-DETH_SPI_SUPPORTS_NO_IRQ
|
||||
-Wno-ignored-qualifiers
|
||||
-Wno-missing-field-initializers
|
||||
-Wno-type-limits
|
||||
@@ -137,6 +137,8 @@ board_build.cmake_extra_args =
|
||||
extends = env:esp32
|
||||
board_build.embed_txtfiles =
|
||||
board = esp32-p4
|
||||
board_build.cmake_extra_args =
|
||||
-DSDKCONFIG_DEFAULTS="sdkconfig.defaults;sdkconfig.release.defaults;sdkconfig.defaults.esp32-p4"
|
||||
build_flags =
|
||||
${env.build_flags}
|
||||
-DCORE_DEBUG_LEVEL=ARDUHAL_LOG_LEVEL_NONE
|
||||
@@ -166,7 +168,7 @@ build_flags =
|
||||
extends = env:esp32-gl-s10
|
||||
custom_build = debug
|
||||
board_build.cmake_extra_args =
|
||||
-DSDKCONFIG_DEFAULTS="sdkconfig.defaults;sdkconfig.debug.defaults;sdkconfig.defaults.esp32;sdkconfig.gls10.defaults"
|
||||
-DSDKCONFIG_DEFAULTS="sdkconfig.defaults;sdkconfig.debug.defaults;sdkconfig.defaults.esp32;sdkconfig.gls10.defaults"
|
||||
build_flags =
|
||||
${env:esp32_dbg.build_flags}
|
||||
-DNUKI_TARGET_GL_S10=y
|
||||
|
||||
@@ -73,7 +73,7 @@ e000 boot_app0.bin
|
||||
|
||||
ESP32-P4
|
||||
e000 boot_app0.bin
|
||||
0 nuki_hub_bootloader_esp32p4.bin
|
||||
2000 nuki_hub_bootloader_esp32p4.bin
|
||||
8000 nuki_hub_partitions_esp32p4.bin
|
||||
10000 nuki_hub_esp32p4.bin
|
||||
270000 nuki_hub_updater_esp32p4.bin
|
||||
@@ -127,7 +127,7 @@ esptool.py --chip esp32h2 --port /dev/ttyUSB0 --baud 921600 --before default_res
|
||||
|
||||
## 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 nuki_hub_bootloader_esp32p4.bin 0x10000 nuki_hub_esp32p4.bin 0x270000 nuki_hub_updater_esp32p4.bin 0x8000 nuki_hub_partitions_esp32p4.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 0x2000 nuki_hub_bootloader_esp32p4.bin 0x10000 nuki_hub_esp32p4.bin 0x270000 nuki_hub_updater_esp32p4.bin 0x8000 nuki_hub_partitions_esp32p4.bin
|
||||
|
||||
## ESP32-SOLO1
|
||||
|
||||
|
||||
@@ -32,7 +32,6 @@ CONFIG_BT_CONTROLLER_DISABLED=y
|
||||
CONFIG_BT_BLUEDROID_ENABLED=n
|
||||
CONFIG_BT_NIMBLE_TRANSPORT_UART=n
|
||||
CONFIG_ESP_ENABLE_BT=y
|
||||
CONFIG_ESP32_P4_EV_BOARD=y
|
||||
CONFIG_BT_NIMBLE_ENABLED=y
|
||||
CONFIG_ESP_HOSTED_ENABLE_BT_NIMBLE=y
|
||||
CONFIG_SLAVE_IDF_TARGET_ESP32C6=y
|
||||
19
src/Config.h
19
src/Config.h
@@ -5,12 +5,27 @@
|
||||
#define NUKI_HUB_VERSION "9.11"
|
||||
#define NUKI_HUB_VERSION_INT (uint32_t)911
|
||||
#define NUKI_HUB_BUILD "unknownbuildnr"
|
||||
#define NUKI_HUB_DATE "2025-05-05"
|
||||
#define NUKI_HUB_DATE "2025-06-09"
|
||||
|
||||
#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"
|
||||
|
||||
#if defined(CONFIG_IDF_TARGET_ESP32C3)
|
||||
#if defined(CONFIG_IDF_TARGET_ESP32P4)
|
||||
#define GITHUB_LATEST_RELEASE_BINARY_URL (char*)"https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/nuki_hub_esp32p4.bin"
|
||||
#define GITHUB_LATEST_UPDATER_BINARY_URL (char*)"https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/nuki_hub_updater_esp32p4.bin"
|
||||
#define GITHUB_BETA_RELEASE_BINARY_URL (char*)"https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/beta/nuki_hub_esp32p4.bin"
|
||||
#define GITHUB_BETA_UPDATER_BINARY_URL (char*)"https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/beta/nuki_hub_updater_esp32p4.bin"
|
||||
#define GITHUB_MASTER_RELEASE_BINARY_URL (char*)"https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/master/nuki_hub_esp32p4.bin"
|
||||
#define GITHUB_MASTER_UPDATER_BINARY_URL (char*)"https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/master/nuki_hub_updater_esp32p4.bin"
|
||||
#define GITHUB_LATEST_RELEASE_BINARY_URL_DBG (char*)"https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/debug/nuki_hub_esp32p4.bin"
|
||||
#define GITHUB_LATEST_UPDATER_BINARY_URL_DBG (char*)"https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/debug/nuki_hub_updater_esp32p4.bin"
|
||||
#define GITHUB_BETA_RELEASE_BINARY_URL_DBG (char*)"https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/debug/beta/nuki_hub_esp32p4.bin"
|
||||
#define GITHUB_BETA_UPDATER_BINARY_URL_DBG (char*)"https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/debug/beta/nuki_hub_updater_esp32p4.bin"
|
||||
#define GITHUB_MASTER_RELEASE_BINARY_URL_DBG (char*)"https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/debug/master/nuki_hub_esp32p4.bin"
|
||||
#define GITHUB_MASTER_UPDATER_BINARY_URL_DBG (char*)"https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/debug/master/nuki_hub_updater_esp32p4.bin"
|
||||
#define NUKI_HUB_HW (char*)"ESP32-P4"
|
||||
#define BOOT_BUTTON_GPIO (gpio_num_t)35
|
||||
#elif defined(CONFIG_IDF_TARGET_ESP32C3)
|
||||
#define GITHUB_LATEST_RELEASE_BINARY_URL (char*)"https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/nuki_hub_esp32c3.bin"
|
||||
#define GITHUB_LATEST_UPDATER_BINARY_URL (char*)"https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/nuki_hub_updater_esp32c3.bin"
|
||||
#define GITHUB_BETA_RELEASE_BINARY_URL (char*)"https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/beta/nuki_hub_esp32c3.bin"
|
||||
|
||||
@@ -162,6 +162,7 @@ void NukiWrapper::readSettings()
|
||||
_forceKeypad = _preferences->getBool(preference_lock_force_keypad, false);
|
||||
_forceId = _preferences->getBool(preference_lock_force_id, false);
|
||||
_isUltra = _preferences->getBool(preference_lock_gemini_enabled, false);
|
||||
_isDebugging = _preferences->getBool(preference_debug_hex_data, false);
|
||||
|
||||
_preferences->getBytes(preference_conf_lock_basic_acl, &_basicLockConfigaclPrefs, sizeof(_basicLockConfigaclPrefs));
|
||||
_preferences->getBytes(preference_conf_lock_advanced_acl, &_advancedLockConfigaclPrefs, sizeof(_advancedLockConfigaclPrefs));
|
||||
@@ -360,7 +361,10 @@ void NukiWrapper::update(bool reboot)
|
||||
Log->println("Updating Lock config based on timer or query");
|
||||
_nextConfigUpdateTs = ts + _intervalConfig * 1000;
|
||||
updateConfig();
|
||||
updateDebug();
|
||||
if(_isDebugging)
|
||||
{
|
||||
updateDebug();
|
||||
}
|
||||
}
|
||||
if(_waitAuthLogUpdateTs != 0 && ts > _waitAuthLogUpdateTs)
|
||||
{
|
||||
|
||||
@@ -141,6 +141,7 @@ private:
|
||||
bool _keypadEnabled = false;
|
||||
bool _forceId = false;
|
||||
bool _isUltra = false;
|
||||
bool _isDebugging = false;
|
||||
uint _maxKeypadCodeCount = 0;
|
||||
uint _maxTimeControlEntryCount = 0;
|
||||
uint _maxAuthEntryCount = 0;
|
||||
|
||||
@@ -6977,6 +6977,9 @@ const std::vector<std::pair<String, String>> WebCfgServer::getNetworkDetectionOp
|
||||
options.push_back(std::make_pair("9", "ETH01-Evo"));
|
||||
options.push_back(std::make_pair("13", "Waveshare ESP32-S3-ETH / ESP32-S3-ETH-POE"));
|
||||
options.push_back(std::make_pair("14", "LilyGO T-ETH-Lite-ESP32S3"));
|
||||
options.push_back(std::make_pair("15", "Waveshare ESP32-P4-NANO"));
|
||||
options.push_back(std::make_pair("16", "Waveshare ESP32-P4-Module-DEV-KIT"));
|
||||
options.push_back(std::make_pair("17", "ESP32-P4-Function-EV-Board"));
|
||||
options.push_back(std::make_pair("11", "Custom LAN module"));
|
||||
|
||||
return options;
|
||||
|
||||
@@ -15,5 +15,8 @@ enum class NetworkDeviceType
|
||||
ETH01_Evo,
|
||||
Waveshare_ESP32_S3_ETH,
|
||||
LilyGO_T_ETH_Lite_S3,
|
||||
Waveshare_ESP32_P4_NANO,
|
||||
Waveshare_ESP32_P4_Module_DEV_KIT,
|
||||
ESP32_P4_Function_EV_Board,
|
||||
CUSTOM
|
||||
};
|
||||
@@ -20,29 +20,39 @@ const String WifiDevice::deviceName() const
|
||||
|
||||
void WifiDevice::initialize()
|
||||
{
|
||||
ssid = _preferences->getString(preference_wifi_ssid, "");
|
||||
ssid.trim();
|
||||
pass = _preferences->getString(preference_wifi_pass, "");
|
||||
pass.trim();
|
||||
WiFi.setHostname(_hostname.c_str());
|
||||
if (_hostname != "fakep4forhosted") {
|
||||
ssid = _preferences->getString(preference_wifi_ssid, "");
|
||||
ssid.trim();
|
||||
pass = _preferences->getString(preference_wifi_pass, "");
|
||||
pass.trim();
|
||||
WiFi.setHostname(_hostname.c_str());
|
||||
|
||||
WiFi.onEvent([&](WiFiEvent_t event, WiFiEventInfo_t info)
|
||||
{
|
||||
onWifiEvent(event, info);
|
||||
});
|
||||
WiFi.onEvent([&](WiFiEvent_t event, WiFiEventInfo_t info)
|
||||
{
|
||||
onWifiEvent(event, info);
|
||||
});
|
||||
|
||||
if(isWifiConfigured())
|
||||
{
|
||||
Log->println(String("Attempting to connect to saved SSID ") + String(ssid));
|
||||
_openAP = false;
|
||||
if(isWifiConfigured())
|
||||
{
|
||||
Log->println(String("Attempting to connect to saved SSID ") + String(ssid));
|
||||
_openAP = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
Log->println("No SSID or Wifi password saved, opening AP");
|
||||
_openAP = true;
|
||||
}
|
||||
|
||||
scan(false, true);
|
||||
}
|
||||
else
|
||||
{
|
||||
Log->println("No SSID or Wifi password saved, opening AP");
|
||||
_openAP = true;
|
||||
WiFi.disconnect(true);
|
||||
WiFi.mode(WIFI_STA);
|
||||
WiFi.disconnect();
|
||||
delay(5000);
|
||||
Log->println("Dummy WiFi device for Hosted on P4 done");
|
||||
}
|
||||
|
||||
scan(false, true);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -177,7 +187,7 @@ bool WifiDevice::connect()
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -11,6 +11,9 @@
|
||||
NetworkDevice *NetworkDeviceInstantiator::Create(NetworkDeviceType networkDeviceType, String hostname, Preferences *preferences, IPConfiguration *ipConfiguration)
|
||||
{
|
||||
NetworkDevice* device = nullptr;
|
||||
#if defined(CONFIG_IDF_TARGET_ESP32P4)
|
||||
bool fakedevice = true;
|
||||
#endif
|
||||
|
||||
switch (networkDeviceType)
|
||||
{
|
||||
@@ -91,7 +94,35 @@ NetworkDevice *NetworkDeviceInstantiator::Create(NetworkDeviceType networkDevice
|
||||
ETH_PHY_SPI_MOSI_ETHLITES3_W5500,
|
||||
ETH_PHY_W5500);
|
||||
break;
|
||||
|
||||
#if defined(CONFIG_IDF_TARGET_ESP32P4)
|
||||
case NetworkDeviceType::Waveshare_ESP32_P4_NANO:
|
||||
device = new EthernetDevice(hostname, preferences, ipConfiguration, "Waveshare ESP32-P4-NANO",
|
||||
1,
|
||||
51,
|
||||
31,
|
||||
52,
|
||||
ETH_PHY_IP101,
|
||||
ETH_CLOCK_GPIO0_IN);
|
||||
break;
|
||||
case NetworkDeviceType::Waveshare_ESP32_P4_Module_DEV_KIT:
|
||||
device = new EthernetDevice(hostname, preferences, ipConfiguration, "Waveshare ESP32-P4-Module-DEV-KIT",
|
||||
1,
|
||||
51,
|
||||
31,
|
||||
52,
|
||||
ETH_PHY_IP101,
|
||||
ETH_CLOCK_GPIO0_IN);
|
||||
break;
|
||||
case NetworkDeviceType::ESP32_P4_Function_EV_Board:
|
||||
device = new EthernetDevice(hostname, preferences, ipConfiguration, "ESP32-P4-Function-EV-Board",
|
||||
1,
|
||||
51,
|
||||
31,
|
||||
52,
|
||||
ETH_PHY_IP101,
|
||||
ETH_CLOCK_GPIO0_IN);
|
||||
break;
|
||||
#endif
|
||||
case NetworkDeviceType::CUSTOM:
|
||||
{
|
||||
int custPHY = preferences->getInt(preference_network_custom_phy, 0);
|
||||
@@ -153,6 +184,9 @@ NetworkDevice *NetworkDeviceInstantiator::Create(NetworkDeviceType networkDevice
|
||||
else
|
||||
{
|
||||
device = new WifiDevice(hostname, preferences, ipConfiguration);
|
||||
#if defined(CONFIG_IDF_TARGET_ESP32P4)
|
||||
fakedevice = false;
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
}
|
||||
@@ -183,9 +217,15 @@ NetworkDevice *NetworkDeviceInstantiator::Create(NetworkDeviceType networkDevice
|
||||
#ifndef CONFIG_IDF_TARGET_ESP32H2
|
||||
case NetworkDeviceType::WiFi:
|
||||
device = new WifiDevice(hostname, preferences, ipConfiguration);
|
||||
#if defined(CONFIG_IDF_TARGET_ESP32P4)
|
||||
fakedevice = false;
|
||||
#endif
|
||||
break;
|
||||
default:
|
||||
device = new WifiDevice(hostname, preferences, ipConfiguration);
|
||||
#if defined(CONFIG_IDF_TARGET_ESP32P4)
|
||||
fakedevice = false;
|
||||
#endif
|
||||
break;
|
||||
#else
|
||||
default:
|
||||
@@ -202,5 +242,16 @@ NetworkDevice *NetworkDeviceInstantiator::Create(NetworkDeviceType networkDevice
|
||||
#endif
|
||||
}
|
||||
|
||||
#if defined(CONFIG_IDF_TARGET_ESP32P4)
|
||||
if (fakedevice) {
|
||||
Log->println("Create dummy WiFi device for Hosted on P4");
|
||||
NetworkDevice* device2 = nullptr;
|
||||
device2 = new WifiDevice("fakep4forhosted", preferences, ipConfiguration);
|
||||
device2->initialize();
|
||||
delete device2;
|
||||
device2 = NULL;
|
||||
}
|
||||
#endif
|
||||
|
||||
return device;
|
||||
}
|
||||
|
||||
@@ -38,6 +38,12 @@ NetworkDeviceType NetworkUtil::GetDeviceTypeFromPreference(int hardwareDetect, i
|
||||
return NetworkDeviceType::Waveshare_ESP32_S3_ETH;
|
||||
case 14:
|
||||
return NetworkDeviceType::LilyGO_T_ETH_Lite_S3;
|
||||
case 15:
|
||||
return NetworkDeviceType::Waveshare_ESP32_P4_NANO;
|
||||
case 16:
|
||||
return NetworkDeviceType::Waveshare_ESP32_P4_Module_DEV_KIT;
|
||||
case 17:
|
||||
return NetworkDeviceType::ESP32_P4_Function_EV_Board;
|
||||
default:
|
||||
Log->println("Unknown hardware selected, falling back to Wi-Fi.");
|
||||
return NetworkDeviceType::WiFi;
|
||||
@@ -101,7 +107,7 @@ eth_clock_mode_t NetworkUtil::GetCustomClock(int custCLKpref)
|
||||
case 0:
|
||||
return ETH_CLOCK_GPIO0_IN;
|
||||
break;
|
||||
case 1:
|
||||
case 1:
|
||||
return ETH_CLOCK_GPIO0_OUT;
|
||||
break;
|
||||
case 2:
|
||||
|
||||
@@ -13,7 +13,7 @@ default_envs = updater_esp32
|
||||
boards_dir = ../boards
|
||||
|
||||
[env]
|
||||
platform = https://github.com/pioarduino/platform-espressif32/releases/download/54.03.20/platform-espressif32.zip
|
||||
platform = https://github.com/iranl/nuki_hub/raw/refs/heads/binary/platform-espressif32.zip
|
||||
platform_packages =
|
||||
framework = arduino, espidf
|
||||
board_build.embed_txtfiles =
|
||||
@@ -100,6 +100,8 @@ board = esp32-c6-devkitm-1
|
||||
extends = env:updater_esp32
|
||||
board_build.embed_txtfiles =
|
||||
board = esp32-p4
|
||||
board_build.cmake_extra_args =
|
||||
-DSDKCONFIG_DEFAULTS="sdkconfig.defaults;sdkconfig.defaults.esp32-p4"
|
||||
build_flags =
|
||||
${env.build_flags}
|
||||
-DCORE_DEBUG_LEVEL=ARDUHAL_LOG_LEVEL_NONE
|
||||
|
||||
@@ -2,8 +2,16 @@ 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_ALWAYSINTERNAL=4096
|
||||
|
||||
CONFIG_SPIRAM_MALLOC_RESERVE_INTERNAL=50768
|
||||
|
||||
CONFIG_LWIP_TCP_SND_BUF_DEFAULT=65534
|
||||
CONFIG_LWIP_TCP_WND_DEFAULT=65534
|
||||
CONFIG_LWIP_TCP_RECVMBOX_SIZE=64
|
||||
CONFIG_LWIP_UDP_RECVMBOX_SIZE=64
|
||||
CONFIG_LWIP_TCPIP_RECVMBOX_SIZE=64
|
||||
CONFIG_LWIP_TCP_SACK_OUT=y
|
||||
|
||||
CONFIG_ESP_WIFI_STATIC_RX_BUFFER_NUM=16
|
||||
CONFIG_ESP_WIFI_DYNAMIC_RX_BUFFER_NUM=64
|
||||
CONFIG_ESP_WIFI_DYNAMIC_TX_BUFFER_NUM=64
|
||||
@@ -11,14 +19,7 @@ CONFIG_ESP_WIFI_AMPDU_TX_ENABLED=y
|
||||
CONFIG_ESP_WIFI_TX_BA_WIN=32
|
||||
CONFIG_ESP_WIFI_AMPDU_RX_ENABLED=y
|
||||
CONFIG_ESP_WIFI_RX_BA_WIN=32
|
||||
CONFIG_LWIP_TCP_SND_BUF_DEFAULT=65534
|
||||
CONFIG_LWIP_TCP_WND_DEFAULT=65534
|
||||
CONFIG_LWIP_TCP_RECVMBOX_SIZE=64
|
||||
CONFIG_LWIP_UDP_RECVMBOX_SIZE=64
|
||||
CONFIG_LWIP_TCPIP_RECVMBOX_SIZE=64
|
||||
CONFIG_LWIP_TCP_SACK_OUT=y
|
||||
CONFIG_BT_NIMBLE_TRANSPORT_UART=n
|
||||
CONFIG_ESP_HCI_VHCI=y
|
||||
|
||||
CONFIG_ESP_WIFI_REMOTE_ENABLED=y
|
||||
CONFIG_ESP_WIFI_REMOTE_LIBRARY_HOSTED=y
|
||||
CONFIG_ESP_WIFI_ESPNOW_MAX_ENCRYPT_NUM=7
|
||||
@@ -26,4 +27,13 @@ CONFIG_ESP_WIFI_CACHE_TX_BUFFER_NUM=32
|
||||
CONFIG_ESP_WIFI_TX_BUFFER_TYPE=0
|
||||
CONFIG_ESP_WIFI_STATIC_RX_BUFFER_NUM=16
|
||||
CONFIG_ESP_WIFI_DYNAMIC_RX_BUFFER_NUM=32
|
||||
CONFIG_ESP_WIFI_DYNAMIC_RX_MGMT_BUF=0
|
||||
CONFIG_ESP_WIFI_DYNAMIC_RX_MGMT_BUF=0
|
||||
|
||||
CONFIG_ESP_HCI_VHCI=y
|
||||
CONFIG_BT_CONTROLLER_DISABLED=y
|
||||
CONFIG_BT_BLUEDROID_ENABLED=n
|
||||
CONFIG_BT_NIMBLE_TRANSPORT_UART=n
|
||||
CONFIG_ESP_ENABLE_BT=y
|
||||
CONFIG_BT_NIMBLE_ENABLED=y
|
||||
CONFIG_ESP_HOSTED_ENABLE_BT_NIMBLE=y
|
||||
CONFIG_SLAVE_IDF_TARGET_ESP32C6=y
|
||||
Reference in New Issue
Block a user