From a947770598489ebae94396806ce5a0166168e4c7 Mon Sep 17 00:00:00 2001 From: Robin Jones Date: Thu, 30 Jan 2025 20:39:49 +0000 Subject: [PATCH 1/9] Add ethernet driver to CMakePresets Add ethernet driver to CMakePresets --- targets/ESP32/CMakePresets.json | 1 + 1 file changed, 1 insertion(+) diff --git a/targets/ESP32/CMakePresets.json b/targets/ESP32/CMakePresets.json index 4372534551..0866a9ce94 100644 --- a/targets/ESP32/CMakePresets.json +++ b/targets/ESP32/CMakePresets.json @@ -484,6 +484,7 @@ "NF_FEATURE_DEBUGGER": "ON", "NF_FEATURE_RTC": "ON", "NF_FEATURE_HAS_SDCARD": "ON", + "ESP32_ETHERNET_SUPPORT": "ON", "API_nanoFramework.Device.OneWire": "ON", "API_nanoFramework.Device.Bluetooth": "ON", "API_nanoFramework.Graphics": "ON", From 03b72a5ca8c99e7ed0c8b37cd1880f0f8f8107a0 Mon Sep 17 00:00:00 2001 From: Robin Jones Date: Thu, 30 Jan 2025 21:07:38 +0000 Subject: [PATCH 2/9] Define interface --- targets/ESP32/CMakePresets.json | 1 + 1 file changed, 1 insertion(+) diff --git a/targets/ESP32/CMakePresets.json b/targets/ESP32/CMakePresets.json index 0866a9ce94..064d922839 100644 --- a/targets/ESP32/CMakePresets.json +++ b/targets/ESP32/CMakePresets.json @@ -485,6 +485,7 @@ "NF_FEATURE_RTC": "ON", "NF_FEATURE_HAS_SDCARD": "ON", "ESP32_ETHERNET_SUPPORT": "ON", + "ESP32_ETHERNET_INTERFACE": "W5500", "API_nanoFramework.Device.OneWire": "ON", "API_nanoFramework.Device.Bluetooth": "ON", "API_nanoFramework.Graphics": "ON", From 71a9a1bedf2ca0099cb825679fbcebda5d588ffe Mon Sep 17 00:00:00 2001 From: Robin Jones Date: Thu, 30 Jan 2025 21:35:01 +0000 Subject: [PATCH 3/9] Add required defines --- targets/ESP32/CMakePresets.json | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/targets/ESP32/CMakePresets.json b/targets/ESP32/CMakePresets.json index 064d922839..82d3c02f3a 100644 --- a/targets/ESP32/CMakePresets.json +++ b/targets/ESP32/CMakePresets.json @@ -486,6 +486,12 @@ "NF_FEATURE_HAS_SDCARD": "ON", "ESP32_ETHERNET_SUPPORT": "ON", "ESP32_ETHERNET_INTERFACE": "W5500", + "ESP32_ETHERNET_SPI_MISO_GPIO": "19", + "ESP32_ETHERNET_SPI_MOSI_GPIO": "23", + "ESP32_ETHERNET_SPI_SCLK_GPIO": "18", + "ESP32_ETHERNET_SPI_INT_GPIO": "34", + "ESP32_ETHERNET_SPI_CS": "26", + "ETH_PHY_RST_GPIO": "13", "API_nanoFramework.Device.OneWire": "ON", "API_nanoFramework.Device.Bluetooth": "ON", "API_nanoFramework.Graphics": "ON", From f246ce1288cd31bd006f05b5f439cc3375c9ddef Mon Sep 17 00:00:00 2001 From: Robin Jones Date: Thu, 30 Jan 2025 21:57:09 +0000 Subject: [PATCH 4/9] Test ESP32_ETHERNET_SPI_HOST --- targets/ESP32/CMakePresets.json | 1 + 1 file changed, 1 insertion(+) diff --git a/targets/ESP32/CMakePresets.json b/targets/ESP32/CMakePresets.json index 82d3c02f3a..ab620fac12 100644 --- a/targets/ESP32/CMakePresets.json +++ b/targets/ESP32/CMakePresets.json @@ -490,6 +490,7 @@ "ESP32_ETHERNET_SPI_MOSI_GPIO": "23", "ESP32_ETHERNET_SPI_SCLK_GPIO": "18", "ESP32_ETHERNET_SPI_INT_GPIO": "34", + "ESP32_ETHERNET_SPI_HOST": "HSPI_HOST", "ESP32_ETHERNET_SPI_CS": "26", "ETH_PHY_RST_GPIO": "13", "API_nanoFramework.Device.OneWire": "ON", From f7ccc13f3023b106820200acef318e22bd763d7f Mon Sep 17 00:00:00 2001 From: Robin Jones Date: Fri, 6 Jun 2025 15:07:35 +0100 Subject: [PATCH 5/9] Update ethernet options --- targets/ESP32/CMakePresets.json | 6 ------ .../ESP32/_Network/esp32_ethernet_options.h.in | 16 ++++++++-------- 2 files changed, 8 insertions(+), 14 deletions(-) diff --git a/targets/ESP32/CMakePresets.json b/targets/ESP32/CMakePresets.json index 91a5e69a11..f8107315a1 100644 --- a/targets/ESP32/CMakePresets.json +++ b/targets/ESP32/CMakePresets.json @@ -538,12 +538,6 @@ "NF_FEATURE_HAS_SDCARD": "ON", "ESP32_ETHERNET_SUPPORT": "ON", "ESP32_ETHERNET_INTERFACE": "W5500", - "ESP32_ETHERNET_SPI_MISO_GPIO": "19", - "ESP32_ETHERNET_SPI_MOSI_GPIO": "23", - "ESP32_ETHERNET_SPI_SCLK_GPIO": "18", - "ESP32_ETHERNET_SPI_INT_GPIO": "34", - "ESP32_ETHERNET_SPI_HOST": "HSPI_HOST", - "ESP32_ETHERNET_SPI_CS": "26", "ETH_PHY_RST_GPIO": "13", "API_nanoFramework.Device.OneWire": "ON", "API_nanoFramework.Device.Bluetooth": "ON", diff --git a/targets/ESP32/_Network/esp32_ethernet_options.h.in b/targets/ESP32/_Network/esp32_ethernet_options.h.in index a3e5652434..3c84da06fa 100644 --- a/targets/ESP32/_Network/esp32_ethernet_options.h.in +++ b/targets/ESP32/_Network/esp32_ethernet_options.h.in @@ -29,16 +29,16 @@ // Experimental SPI (Untested) // Use an SPI Ethernet module // Pins choosen to work with wrover and jtag avoiding strapping pins (on same side of dev board) -#define ESP32_ETHERNET_SPI_HOST SPI2_HOST -#define ESP32_ETHERNET_SPI_CLOCK_MHZ 8 -#define ESP32_ETHERNET_SPI_CS 5 -#define ESP32_ETHERNET_SPI_INT_GPIO 16 -// also requires ETH_PHY_RST_GPIO 17 +#define ESP32_ETHERNET_SPI_HOST HSPI_HOST +#define ESP32_ETHERNET_SPI_CLOCK_MHZ 20 +#define ESP32_ETHERNET_SPI_CS 26 +#define ESP32_ETHERNET_SPI_INT_GPIO 34 +#define ETH_PHY_RST_GPIO 13 // Define SPI pins to use -#define ESP32_ETHERNET_SPI_MISO_GPIO 23 -#define ESP32_ETHERNET_SPI_MOSI_GPIO 18 -#define ESP32_ETHERNET_SPI_SCLK_GPIO 19 +#define ESP32_ETHERNET_SPI_MISO_GPIO 19 +#define ESP32_ETHERNET_SPI_MOSI_GPIO 23 +#define ESP32_ETHERNET_SPI_SCLK_GPIO 18 #endif From 11b9bc017b6bc826fc940a78a9581472804b2491 Mon Sep 17 00:00:00 2001 From: Robin Jones Date: Fri, 6 Jun 2025 15:30:11 +0100 Subject: [PATCH 6/9] Fix build --- targets/ESP32/_Network/esp32_ethernet_options.h.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/targets/ESP32/_Network/esp32_ethernet_options.h.in b/targets/ESP32/_Network/esp32_ethernet_options.h.in index 3c84da06fa..cf36a8a1a8 100644 --- a/targets/ESP32/_Network/esp32_ethernet_options.h.in +++ b/targets/ESP32/_Network/esp32_ethernet_options.h.in @@ -33,7 +33,7 @@ #define ESP32_ETHERNET_SPI_CLOCK_MHZ 20 #define ESP32_ETHERNET_SPI_CS 26 #define ESP32_ETHERNET_SPI_INT_GPIO 34 -#define ETH_PHY_RST_GPIO 13 +// ETH_PHY_RST_GPIO is defined in the CMake file. // Define SPI pins to use #define ESP32_ETHERNET_SPI_MISO_GPIO 19 From bebdf7f1a3e5d74bdea81048a2644618fdca182d Mon Sep 17 00:00:00 2001 From: Robin Jones Date: Fri, 6 Jun 2025 16:21:36 +0100 Subject: [PATCH 7/9] Move values from config options to cmake options --- targets/ESP32/CMakePresets.json | 42 +++++++++++++++++++ .../_Network/esp32_ethernet_options.h.in | 15 ++++--- 2 files changed, 49 insertions(+), 8 deletions(-) diff --git a/targets/ESP32/CMakePresets.json b/targets/ESP32/CMakePresets.json index f8107315a1..d62e75bb41 100644 --- a/targets/ESP32/CMakePresets.json +++ b/targets/ESP32/CMakePresets.json @@ -538,7 +538,14 @@ "NF_FEATURE_HAS_SDCARD": "ON", "ESP32_ETHERNET_SUPPORT": "ON", "ESP32_ETHERNET_INTERFACE": "W5500", + "ESP32_ETHERNET_SPI_HOST": "HSPI_HOST", + "ESP32_ETHERNET_SPI_CLOCK_MHZ": "20", + "ESP32_ETHERNET_SPI_CS": "26", + "ESP32_ETHERNET_SPI_INT_GPIO": "34", "ETH_PHY_RST_GPIO": "13", + "ESP32_ETHERNET_SPI_MISO_GPIO": "19", + "ESP32_ETHERNET_SPI_MOSI_GPIO": "23", + "ESP32_ETHERNET_SPI_SCLK_GPIO": "18", "API_nanoFramework.Device.OneWire": "ON", "API_nanoFramework.Device.Bluetooth": "ON", "API_nanoFramework.Graphics": "ON", @@ -635,7 +642,14 @@ "NF_FEATURE_RTC": "ON", "NF_FEATURE_HAS_SDCARD": "ON", "ESP32_ETHERNET_SUPPORT": "ON", + "ESP32_ETHERNET_SPI_HOST": "SPI2_HOST", + "ESP32_ETHERNET_SPI_CLOCK_MHZ": "8", + "ESP32_ETHERNET_SPI_CS": "5", + "ESP32_ETHERNET_SPI_INT_GPIO": "16", "ETH_PHY_RST_GPIO": "5", + "ESP32_ETHERNET_SPI_MISO_GPIO": "23", + "ESP32_ETHERNET_SPI_MOSI_GPIO": "18", + "ESP32_ETHERNET_SPI_SCLK_GPIO": "19", "ETH_RMII_CLK_OUT_GPIO": "17", "API_System.Device.I2c.Slave": "OFF", "API_nanoFramework.Device.OneWire": "ON" @@ -657,7 +671,14 @@ "NF_FEATURE_RTC": "ON", "NF_FEATURE_HAS_SDCARD": "ON", "ESP32_ETHERNET_SUPPORT": "ON", + "ESP32_ETHERNET_SPI_HOST": "SPI2_HOST", + "ESP32_ETHERNET_SPI_CLOCK_MHZ": "8", + "ESP32_ETHERNET_SPI_CS": "5", + "ESP32_ETHERNET_SPI_INT_GPIO": "16", "ETH_PHY_RST_GPIO": "12", + "ESP32_ETHERNET_SPI_MISO_GPIO": "23", + "ESP32_ETHERNET_SPI_MOSI_GPIO": "18", + "ESP32_ETHERNET_SPI_SCLK_GPIO": "19", "ETH_RMII_CLK_OUT_GPIO": "17", "API_nanoFramework.Device.OneWire": "ON", "API_System.Device.I2c.Slave": "OFF" @@ -681,7 +702,14 @@ "API_nanoFramework.Device.OneWire": "ON", "API_System.Device.I2c.Slave": "ON", "ESP32_ETHERNET_SUPPORT": "ON", + "ESP32_ETHERNET_SPI_HOST": "SPI2_HOST", + "ESP32_ETHERNET_SPI_CLOCK_MHZ": "8", + "ESP32_ETHERNET_SPI_CS": "5", + "ESP32_ETHERNET_SPI_INT_GPIO": "16", "ETH_PHY_RST_GPIO": "12", + "ESP32_ETHERNET_SPI_MISO_GPIO": "23", + "ESP32_ETHERNET_SPI_MOSI_GPIO": "18", + "ESP32_ETHERNET_SPI_SCLK_GPIO": "19", "ETH_RMII_CLK_OUT_GPIO": "00" } }, @@ -753,7 +781,14 @@ "NF_FEATURE_HAS_SDCARD": "ON", "ESP32_ETHERNET_SUPPORT": "ON", "ESP32_ETHERNET_INTERFACE": "IP101", + "ESP32_ETHERNET_SPI_HOST": "SPI2_HOST", + "ESP32_ETHERNET_SPI_CLOCK_MHZ": "8", + "ESP32_ETHERNET_SPI_CS": "5", + "ESP32_ETHERNET_SPI_INT_GPIO": "16", "ETH_PHY_RST_GPIO": "5", + "ESP32_ETHERNET_SPI_MISO_GPIO": "23", + "ESP32_ETHERNET_SPI_MOSI_GPIO": "18", + "ESP32_ETHERNET_SPI_SCLK_GPIO": "19", "ETH_RMII_CLK_IN_GPIO": "0", "ETH_PHY_ADDR": "1", "API_nanoFramework.Device.OneWire": "ON", @@ -779,7 +814,14 @@ "ESP32_ETHERNET_SUPPORT": "ON", "ETH_RMII_CLK_IN_GPIO": "0", "ETH_PHY_ADDR": "1", + "ESP32_ETHERNET_SPI_HOST": "SPI2_HOST", + "ESP32_ETHERNET_SPI_CLOCK_MHZ": "8", + "ESP32_ETHERNET_SPI_CS": "5", + "ESP32_ETHERNET_SPI_INT_GPIO": "16", "ETH_PHY_RST_GPIO": "16", + "ESP32_ETHERNET_SPI_MISO_GPIO": "23", + "ESP32_ETHERNET_SPI_MOSI_GPIO": "18", + "ESP32_ETHERNET_SPI_SCLK_GPIO": "19", "API_nanoFramework.Device.OneWire": "ON", "API_System.Device.I2c.Slave": "OFF" } diff --git a/targets/ESP32/_Network/esp32_ethernet_options.h.in b/targets/ESP32/_Network/esp32_ethernet_options.h.in index cf36a8a1a8..744385fb3d 100644 --- a/targets/ESP32/_Network/esp32_ethernet_options.h.in +++ b/targets/ESP32/_Network/esp32_ethernet_options.h.in @@ -29,16 +29,15 @@ // Experimental SPI (Untested) // Use an SPI Ethernet module // Pins choosen to work with wrover and jtag avoiding strapping pins (on same side of dev board) -#define ESP32_ETHERNET_SPI_HOST HSPI_HOST -#define ESP32_ETHERNET_SPI_CLOCK_MHZ 20 -#define ESP32_ETHERNET_SPI_CS 26 -#define ESP32_ETHERNET_SPI_INT_GPIO 34 -// ETH_PHY_RST_GPIO is defined in the CMake file. +#cmakedefine ESP32_ETHERNET_SPI_HOST @ESP32_ETHERNET_SPI_HOST@ +#cmakedefine ESP32_ETHERNET_SPI_CLOCK_MHZ @ESP32_ETHERNET_SPI_CLOCK_MHZ@ +#cmakedefine ESP32_ETHERNET_SPI_CS @ESP32_ETHERNET_SPI_CS@ +#cmakedefine ESP32_ETHERNET_SPI_INT_GPIO @ESP32_ETHERNET_SPI_INT_GPIO@ // Define SPI pins to use -#define ESP32_ETHERNET_SPI_MISO_GPIO 19 -#define ESP32_ETHERNET_SPI_MOSI_GPIO 23 -#define ESP32_ETHERNET_SPI_SCLK_GPIO 18 +#cmakedefine ESP32_ETHERNET_SPI_MISO_GPIO @ESP32_ETHERNET_SPI_SCLK_GPIO@ +#cmakedefine ESP32_ETHERNET_SPI_MOSI_GPIO @ESP32_ETHERNET_SPI_SCLK_GPIO@ +#cmakedefine ESP32_ETHERNET_SPI_SCLK_GPIO @ESP32_ETHERNET_SPI_SCLK_GPIO@ #endif From b387d1da2869352eaf9b74774058cc4c87be68a1 Mon Sep 17 00:00:00 2001 From: Robin Jones Date: Fri, 6 Jun 2025 16:35:45 +0100 Subject: [PATCH 8/9] Fix copy and paste error --- targets/ESP32/_Network/esp32_ethernet_options.h.in | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/targets/ESP32/_Network/esp32_ethernet_options.h.in b/targets/ESP32/_Network/esp32_ethernet_options.h.in index 744385fb3d..328f3f5821 100644 --- a/targets/ESP32/_Network/esp32_ethernet_options.h.in +++ b/targets/ESP32/_Network/esp32_ethernet_options.h.in @@ -35,8 +35,8 @@ #cmakedefine ESP32_ETHERNET_SPI_INT_GPIO @ESP32_ETHERNET_SPI_INT_GPIO@ // Define SPI pins to use -#cmakedefine ESP32_ETHERNET_SPI_MISO_GPIO @ESP32_ETHERNET_SPI_SCLK_GPIO@ -#cmakedefine ESP32_ETHERNET_SPI_MOSI_GPIO @ESP32_ETHERNET_SPI_SCLK_GPIO@ +#cmakedefine ESP32_ETHERNET_SPI_MISO_GPIO @ESP32_ETHERNET_SPI_MISO_GPIO@ +#cmakedefine ESP32_ETHERNET_SPI_MOSI_GPIO @ESP32_ETHERNET_SPI_MOSI_GPIO@ #cmakedefine ESP32_ETHERNET_SPI_SCLK_GPIO @ESP32_ETHERNET_SPI_SCLK_GPIO@ #endif From 3b6f364668db677a7a695b93731f3ed88f228ec4 Mon Sep 17 00:00:00 2001 From: Robin Jones Date: Fri, 6 Jun 2025 18:01:25 +0100 Subject: [PATCH 9/9] Remove un-necessary present options --- targets/ESP32/CMakePresets.json | 7 ------- 1 file changed, 7 deletions(-) diff --git a/targets/ESP32/CMakePresets.json b/targets/ESP32/CMakePresets.json index d62e75bb41..a44c3278f5 100644 --- a/targets/ESP32/CMakePresets.json +++ b/targets/ESP32/CMakePresets.json @@ -781,14 +781,7 @@ "NF_FEATURE_HAS_SDCARD": "ON", "ESP32_ETHERNET_SUPPORT": "ON", "ESP32_ETHERNET_INTERFACE": "IP101", - "ESP32_ETHERNET_SPI_HOST": "SPI2_HOST", - "ESP32_ETHERNET_SPI_CLOCK_MHZ": "8", - "ESP32_ETHERNET_SPI_CS": "5", - "ESP32_ETHERNET_SPI_INT_GPIO": "16", "ETH_PHY_RST_GPIO": "5", - "ESP32_ETHERNET_SPI_MISO_GPIO": "23", - "ESP32_ETHERNET_SPI_MOSI_GPIO": "18", - "ESP32_ETHERNET_SPI_SCLK_GPIO": "19", "ETH_RMII_CLK_IN_GPIO": "0", "ETH_PHY_ADDR": "1", "API_nanoFramework.Device.OneWire": "ON",