diff --git a/.gitignore b/.gitignore index 313aa69..d45756b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ build/ *.bin sdkconfig.old +managed_components/ diff --git a/combine.py b/combine.py index 1222f01..7e657f6 100644 --- a/combine.py +++ b/combine.py @@ -15,7 +15,7 @@ def extract_firmware_version(): booloaderData = open("build/bootloader/bootloader.bin", "rb").read() -partitionData = open("build/partitions.bin", "rb").read() +partitionData = open("build/partition_table/partition-table.bin", "rb").read() #phyData = open("data/phy.bin", "rb").read() appData = open("build/nina-fw.bin", "rb").read() diff --git a/main/CommandHandler.cpp b/main/CommandHandler.cpp index 7506801..9b0ef23 100644 --- a/main/CommandHandler.cpp +++ b/main/CommandHandler.cpp @@ -63,7 +63,7 @@ int errno; // Note: following version definition line is parsed by python script. Please don't change its format (space, indent) only update its version number. // ADAFRUIT-CHANGE: not fixed length // The version number obeys semver rules. We suffix with "+adafruit" to distinguish from Arduino NINA-FW. -const char FIRMWARE_VERSION[] = "2.0.0-rc.0+adafruit"; +const char FIRMWARE_VERSION[] = "3.0.0-rc.0+adafruit"; // ADAFRUIT-CHANGE: user-supplied cert and key // Optional, user-defined X.509 certificate @@ -91,22 +91,20 @@ static uint8_t _disconnectReason = WIFI_REASON_UNSPECIFIED; // But if this is turned back into a regular Arduino sketch, that won't work, because // LWIP_HOOK_IP4_INPUT is set at compile time when building esp-idf components. -typedef esp_netif_recv_ret_t (*lwip_input_fn_t)(void *input_netif_handle, void *buffer, size_t len, void *eb); -static lwip_input_fn_t _originalStaNetifInput = NULL; -static lwip_input_fn_t _originalAPNetifInput = NULL; - static esp_netif_recv_ret_t _staNetifInputHook(void *input_netif_handle, void *buffer, size_t len, void *eb) { CommandHandlerClass::onWiFiReceive(); - return _originalStaNetifInput(input_netif_handle, buffer, len, eb); + return CommandHandler.originalStaNetifInput(input_netif_handle, buffer, len, eb); } static esp_netif_recv_ret_t _apNetifInputHook(void *input_netif_handle, void *buffer, size_t len, void *eb) { CommandHandlerClass::onWiFiReceive(); - return _originalAPNetifInput(input_netif_handle, buffer, len, eb); + return CommandHandler.originalAPNetifInput(input_netif_handle, buffer, len, eb); } + + static void _setupNTP(void) { esp_sntp_setoperatingmode(SNTP_OPMODE_POLL); @@ -118,7 +116,7 @@ static void _setupNTP(void) extern esp_netif_t *get_esp_interface_netif(esp_interface_t interface); -static void _setupEventHandlers(void) +void _setupEventHandlers(void) { // Fetch the default netif's. Interpose our own input handlers in front of their input handlers, // so that we can notice every time we recieve a packet. @@ -127,13 +125,13 @@ static void _setupEventHandlers(void) esp_netif_t *apNetif = get_esp_interface_netif(ESP_IF_WIFI_AP); if (staNetif != NULL && staNetif->lwip_input_fn != _staNetifInputHook) { - _originalAPNetifInput = staNetif->lwip_input_fn; - staNetif->lwip_input_fn = &_staNetifInputHook; + CommandHandler.originalAPNetifInput = staNetif->lwip_input_fn; + staNetif->lwip_input_fn = _staNetifInputHook; } if (apNetif != NULL && apNetif->lwip_input_fn != _staNetifInputHook) { - _originalAPNetifInput = apNetif->lwip_input_fn; - apNetif->lwip_input_fn = &_apNetifInputHook; + CommandHandler.originalAPNetifInput = apNetif->lwip_input_fn; + apNetif->lwip_input_fn = _apNetifInputHook; } // Do some cleanup on a station disconnect. @@ -2520,6 +2518,4 @@ void CommandHandlerClass::handleWiFiDisconnect() } } - - CommandHandlerClass CommandHandler; diff --git a/main/CommandHandler.h b/main/CommandHandler.h index 0cb513a..8deab34 100644 --- a/main/CommandHandler.h +++ b/main/CommandHandler.h @@ -22,6 +22,10 @@ #include +// include for esp_netif_recv_ret_t +#include "lwip/esp_netif_net_stack.h" +typedef esp_netif_recv_ret_t (*lwip_input_fn_t)(void *input_netif_handle, void *buffer, size_t len, void *eb); + class CommandHandlerClass { public: CommandHandlerClass(); @@ -31,6 +35,9 @@ public: static void onWiFiReceive(); static void onWiFiDisconnect(arduino_event_t*); + lwip_input_fn_t originalStaNetifInput = NULL; + lwip_input_fn_t originalAPNetifInput = NULL; + private: static void gpio0Updater(void*); static int ping(/*IPAddress*/uint32_t host, uint8_t ttl); diff --git a/main/sketch.ino.cpp b/main/sketch.ino.cpp index 40ca5b4..90121bb 100644 --- a/main/sketch.ino.cpp +++ b/main/sketch.ino.cpp @@ -49,7 +49,7 @@ #ifdef NINA_DEBUG int debug = 1; #else -int debug = 0; +int debug = 1; #endif uint8_t* commandBuffer; @@ -105,19 +105,17 @@ void setupWiFi(); void setupBluetooth(); void setup() { - setDebug(debug); + Serial.begin(115200); + Serial.println("Serial!"); + ets_printf("ets_printf\n"); +// setDebug(debug); + Serial.println("Serial2!"); + delay(1000); // put SWD and SWCLK pins connected to SAMD as inputs pinMode(15, INPUT); pinMode(21, INPUT); -#if defined(NANO_RP2040_CONNECT) - pinMode(26, OUTPUT); - pinMode(27, OUTPUT); - digitalWrite(26, HIGH); - digitalWrite(27, HIGH); -#endif - pinMode(5, INPUT); if (digitalRead(5) == LOW) { if (debug) ets_printf("*** BLUETOOTH ON\n"); @@ -126,7 +124,9 @@ void setup() { } else { if (debug) ets_printf("*** WIFI ON\n"); + ESP_LOGI("setup", "before setupWiFi()"); setupWiFi(); + ESP_LOGI("setup", "after setupWiFi()"); } } diff --git a/sdkconfig b/sdkconfig index a50ac6a..575b112 100644 --- a/sdkconfig +++ b/sdkconfig @@ -419,12 +419,12 @@ CONFIG_ARDUINO_UDP_TASK_PRIORITY=3 # Debug Log Configuration # # CONFIG_ARDUHAL_LOG_DEFAULT_LEVEL_NONE is not set -CONFIG_ARDUHAL_LOG_DEFAULT_LEVEL_ERROR=y +# CONFIG_ARDUHAL_LOG_DEFAULT_LEVEL_ERROR is not set # CONFIG_ARDUHAL_LOG_DEFAULT_LEVEL_WARN is not set -# CONFIG_ARDUHAL_LOG_DEFAULT_LEVEL_INFO is not set +CONFIG_ARDUHAL_LOG_DEFAULT_LEVEL_INFO=y # CONFIG_ARDUHAL_LOG_DEFAULT_LEVEL_DEBUG is not set # CONFIG_ARDUHAL_LOG_DEFAULT_LEVEL_VERBOSE is not set -CONFIG_ARDUHAL_LOG_DEFAULT_LEVEL=1 +CONFIG_ARDUHAL_LOG_DEFAULT_LEVEL=3 # CONFIG_ARDUHAL_LOG_COLORS is not set CONFIG_ARDUHAL_ESP_LOG=y # end of Debug Log Configuration @@ -577,7 +577,6 @@ CONFIG_COMPILER_ORPHAN_SECTIONS_WARNING=y # # CONFIG_APPTRACE_DEST_JTAG is not set CONFIG_APPTRACE_DEST_NONE=y -# CONFIG_APPTRACE_DEST_UART0 is not set # CONFIG_APPTRACE_DEST_UART1 is not set # CONFIG_APPTRACE_DEST_UART2 is not set CONFIG_APPTRACE_DEST_UART_NONE=y @@ -1015,7 +1014,6 @@ CONFIG_GPTIMER_ISR_HANDLER_IN_IRAM=y # # ESP-Driver:SPI Configurations # -CONFIG_SPI_MASTER_IN_IRAM=y CONFIG_SPI_MASTER_ISR_IN_IRAM=y # CONFIG_SPI_SLAVE_IN_IRAM is not set CONFIG_SPI_SLAVE_ISR_IN_IRAM=y @@ -1193,7 +1191,6 @@ CONFIG_XTAL_FREQ=40 # end of Main XTAL Config CONFIG_ESP_SPI_BUS_LOCK_ISR_FUNCS_IN_IRAM=y -CONFIG_ESP_SPI_BUS_LOCK_FUNCS_IN_IRAM=y # end of Hardware Settings # @@ -1311,11 +1308,13 @@ CONFIG_ESP_MAIN_TASK_AFFINITY_CPU0=y # CONFIG_ESP_MAIN_TASK_AFFINITY_NO_AFFINITY is not set CONFIG_ESP_MAIN_TASK_AFFINITY=0x0 CONFIG_ESP_MINIMAL_SHARED_STACK_SIZE=2048 -# CONFIG_ESP_CONSOLE_UART_DEFAULT is not set +CONFIG_ESP_CONSOLE_UART_DEFAULT=y # CONFIG_ESP_CONSOLE_UART_CUSTOM is not set -CONFIG_ESP_CONSOLE_NONE=y -CONFIG_ESP_CONSOLE_UART_NUM=-1 -CONFIG_ESP_CONSOLE_ROM_SERIAL_PORT_NUM=-1 +# CONFIG_ESP_CONSOLE_NONE is not set +CONFIG_ESP_CONSOLE_UART=y +CONFIG_ESP_CONSOLE_UART_NUM=0 +CONFIG_ESP_CONSOLE_ROM_SERIAL_PORT_NUM=0 +CONFIG_ESP_CONSOLE_UART_BAUDRATE=115200 CONFIG_ESP_INT_WDT=y CONFIG_ESP_INT_WDT_TIMEOUT_MS=300 CONFIG_ESP_INT_WDT_CHECK_CPU1=y @@ -1402,6 +1401,7 @@ CONFIG_ESP_WIFI_IRAM_OPT=y CONFIG_ESP_WIFI_RX_IRAM_OPT=y CONFIG_ESP_WIFI_ENABLE_WPA3_SAE=y CONFIG_ESP_WIFI_ENABLE_SAE_PK=y +CONFIG_ESP_WIFI_SOFTAP_SAE_SUPPORT=y CONFIG_ESP_WIFI_ENABLE_WPA3_OWE_STA=y # CONFIG_ESP_WIFI_SLP_IRAM_OPT is not set CONFIG_ESP_WIFI_SLP_DEFAULT_MIN_ACTIVE_TIME=50 @@ -1409,7 +1409,7 @@ CONFIG_ESP_WIFI_SLP_DEFAULT_MAX_ACTIVE_TIME=10 CONFIG_ESP_WIFI_SLP_DEFAULT_WAIT_BROADCAST_DATA_TIME=15 CONFIG_ESP_WIFI_STA_DISCONNECTED_PM_ENABLE=y CONFIG_ESP_WIFI_GMAC_SUPPORT=y -# CONFIG_ESP_WIFI_SOFTAP_SUPPORT is not set +CONFIG_ESP_WIFI_SOFTAP_SUPPORT=y # CONFIG_ESP_WIFI_SLP_BEACON_LOST_OPT is not set CONFIG_ESP_WIFI_ESPNOW_MAX_ENCRYPT_NUM=7 # CONFIG_ESP_WIFI_NAN_ENABLE is not set @@ -1420,6 +1420,7 @@ CONFIG_ESP_WIFI_MBEDTLS_TLS_CLIENT=y # CONFIG_ESP_WIFI_MBO_SUPPORT is not set # CONFIG_ESP_WIFI_DPP_SUPPORT is not set # CONFIG_ESP_WIFI_11R_SUPPORT is not set +# CONFIG_ESP_WIFI_WPS_SOFTAP_REGISTRAR is not set # # WPS Configuration Options @@ -1534,7 +1535,7 @@ CONFIG_FREERTOS_TICK_SUPPORT_CORETIMER=y CONFIG_FREERTOS_CORETIMER_0=y # CONFIG_FREERTOS_CORETIMER_1 is not set CONFIG_FREERTOS_SYSTICK_USES_CCOUNT=y -# CONFIG_FREERTOS_PLACE_FUNCTIONS_INTO_FLASH is not set +CONFIG_FREERTOS_PLACE_FUNCTIONS_INTO_FLASH=y # CONFIG_FREERTOS_CHECK_PORT_CRITICAL_COMPLIANCE is not set # end of Port @@ -2588,11 +2589,13 @@ CONFIG_ESP32_PANIC_PRINT_REBOOT=y CONFIG_SYSTEM_EVENT_QUEUE_SIZE=32 CONFIG_SYSTEM_EVENT_TASK_STACK_SIZE=2048 CONFIG_MAIN_TASK_STACK_SIZE=3584 -# CONFIG_CONSOLE_UART_DEFAULT is not set +CONFIG_CONSOLE_UART_DEFAULT=y # CONFIG_CONSOLE_UART_CUSTOM is not set -CONFIG_CONSOLE_UART_NONE=y -CONFIG_ESP_CONSOLE_UART_NONE=y -CONFIG_CONSOLE_UART_NUM=-1 +# CONFIG_CONSOLE_UART_NONE is not set +# CONFIG_ESP_CONSOLE_UART_NONE is not set +CONFIG_CONSOLE_UART=y +CONFIG_CONSOLE_UART_NUM=0 +CONFIG_CONSOLE_UART_BAUDRATE=115200 CONFIG_INT_WDT=y CONFIG_INT_WDT_TIMEOUT_MS=300 CONFIG_INT_WDT_CHECK_CPU1=y @@ -2657,6 +2660,7 @@ CONFIG_WPA_MBEDTLS_TLS_CLIENT=y # CONFIG_WPA_MBO_SUPPORT is not set # CONFIG_WPA_DPP_SUPPORT is not set # CONFIG_WPA_11R_SUPPORT is not set +# CONFIG_WPA_WPS_SOFTAP_REGISTRAR is not set # CONFIG_WPA_WPS_STRICT is not set # CONFIG_WPA_DEBUG_PRINT is not set # CONFIG_WPA_TESTING_OPTIONS is not set diff --git a/sdkconfig.defaults b/sdkconfig.defaults index 42b9e74..e69de29 100644 --- a/sdkconfig.defaults +++ b/sdkconfig.defaults @@ -1 +0,0 @@ -CONFIG_ESP_WIFI_SOFTAP_SUPPORT=n