Skip to content
This repository was archived by the owner on Jan 29, 2023. It is now read-only.

Commit 4ddbf8a

Browse files
authored
v1.8.0 to use Ethernet_Generic library
### Releases v1.8.0 1. Use new [Ethernet_Generic library](https://github.com/khoih-prog/Ethernet_Generic) as default for W5x00. 2. Rewrite to avoid `multiple-definitions` linker error for multiple-file project 3. Add example [multiFileProject](examples/multiFileProject) to demo how to avoid `multiple-definitions` linker error for multiple-file project 4. Update `Packages' Patches`
1 parent dc70321 commit 4ddbf8a

File tree

24 files changed

+1455
-1778
lines changed

24 files changed

+1455
-1778
lines changed

examples/HTTPClient/BasicAuthGet/BasicAuthGet.ino

Lines changed: 43 additions & 85 deletions
Original file line numberDiff line numberDiff line change
@@ -34,24 +34,12 @@ void setup()
3434
Serial.println(" with " + String(SHIELD_TYPE));
3535
Serial.println(ETHERNET_WEBSERVER_SSL_VERSION);
3636

37-
#if USE_ETHERNET_WRAPPER
38-
39-
EthernetInit();
40-
41-
#else
42-
4337
#if USE_ETHERNET_PORTENTA_H7
4438
ET_LOGWARN(F("======== USE_PORTENTA_H7_ETHERNET ========"));
4539
#elif USE_NATIVE_ETHERNET
4640
ET_LOGWARN(F("======== USE_NATIVE_ETHERNET ========"));
47-
#elif USE_ETHERNET
48-
ET_LOGWARN(F("=========== USE_ETHERNET ==========="));
49-
#elif USE_ETHERNET2
50-
ET_LOGWARN(F("=========== USE_ETHERNET2 ==========="));
51-
#elif USE_ETHERNET3
52-
ET_LOGWARN(F("=========== USE_ETHERNET3 ==========="));
53-
#elif USE_ETHERNET_LARGE
54-
ET_LOGWARN(F("=========== USE_ETHERNET_LARGE ==========="));
41+
#elif USE_ETHERNET_GENERIC
42+
ET_LOGWARN(F("=========== USE_ETHERNET_GENERIC ==========="));
5543
#elif USE_ETHERNET_ESP8266
5644
ET_LOGWARN(F("=========== USE_ETHERNET_ESP8266 ==========="));
5745
#elif USE_ETHERNET_ENC
@@ -76,34 +64,22 @@ void setup()
7664

7765
ET_LOGWARN1(F("ESP8266 setCsPin:"), USE_THIS_SS_PIN);
7866

79-
#if ( USE_ETHERNET || USE_ETHERNET_LARGE || USE_ETHERNET2 || USE_ETHERNET_ENC )
67+
#if ( USE_ETHERNET_GENERIC || USE_ETHERNET_ENC )
8068
// For ESP8266
8169
// Pin D0(GPIO16) D1(GPIO5) D2(GPIO4) D3(GPIO0) D4(GPIO2) D8
82-
// Ethernet 0 X X X X 0
83-
// Ethernet2 X X X X X 0
84-
// Ethernet3 X X X X X 0
85-
// EthernetLarge X X X X X 0
70+
// EthernetGeneric X X X X X 0
8671
// Ethernet_ESP8266 0 0 0 0 0 0
8772
// D2 is safe to used for Ethernet, Ethernet2, Ethernet3, EthernetLarge libs
8873
// Must use library patch for Ethernet, EthernetLarge libraries
8974
Ethernet.init (USE_THIS_SS_PIN);
9075

91-
#elif USE_ETHERNET3
92-
// Use MAX_SOCK_NUM = 4 for 4K, 2 for 8K, 1 for 16K RX/TX buffer
93-
#ifndef ETHERNET3_MAX_SOCK_NUM
94-
#define ETHERNET3_MAX_SOCK_NUM 4
95-
#endif
96-
97-
Ethernet.setCsPin (USE_THIS_SS_PIN);
98-
Ethernet.init (ETHERNET3_MAX_SOCK_NUM);
99-
10076
#elif USE_CUSTOM_ETHERNET
10177

10278
// You have to add initialization for your Custom Ethernet here
10379
// This is just an example to setCSPin to USE_THIS_SS_PIN, and can be not correct and enough
10480
Ethernet.init(USE_THIS_SS_PIN);
10581

106-
#endif //( USE_ETHERNET || USE_ETHERNET2 || USE_ETHERNET3 || USE_ETHERNET_LARGE )
82+
#endif //( USE_ETHERNET_GENERIC || USE_ETHERNET_ENC )
10783

10884
#elif defined(ESP32)
10985

@@ -116,36 +92,27 @@ void setup()
11692
//Ethernet.init(33); // ESP32 with Adafruit Featherwing Ethernet
11793

11894
#ifndef USE_THIS_SS_PIN
119-
#define USE_THIS_SS_PIN 22 // For ESP32
95+
#define USE_THIS_SS_PIN 5 //22 // For ESP32
12096
#endif
12197

12298
ET_LOGWARN1(F("ESP32 setCsPin:"), USE_THIS_SS_PIN);
12399

124100
// For other boards, to change if necessary
125-
#if ( USE_ETHERNET || USE_ETHERNET_LARGE || USE_ETHERNET2 || USE_ETHERNET_ENC )
101+
#if ( USE_ETHERNET_GENERIC || USE_ETHERNET_ENC )
126102
// Must use library patch for Ethernet, EthernetLarge libraries
127103
// ESP32 => GPIO2,4,5,13,15,21,22 OK with Ethernet, Ethernet2, EthernetLarge
128104
// ESP32 => GPIO2,4,5,15,21,22 OK with Ethernet3
129105

130106
//Ethernet.setCsPin (USE_THIS_SS_PIN);
131107
Ethernet.init (USE_THIS_SS_PIN);
132108

133-
#elif USE_ETHERNET3
134-
// Use MAX_SOCK_NUM = 4 for 4K, 2 for 8K, 1 for 16K RX/TX buffer
135-
#ifndef ETHERNET3_MAX_SOCK_NUM
136-
#define ETHERNET3_MAX_SOCK_NUM 4
137-
#endif
138-
139-
Ethernet.setCsPin (USE_THIS_SS_PIN);
140-
Ethernet.init (ETHERNET3_MAX_SOCK_NUM);
141-
142109
#elif USE_CUSTOM_ETHERNET
143110

144111
// You have to add initialization for your Custom Ethernet here
145112
// This is just an example to setCSPin to USE_THIS_SS_PIN, and can be not correct and enough
146113
Ethernet.init(USE_THIS_SS_PIN);
147114

148-
#endif //( USE_ETHERNET || USE_ETHERNET2 || USE_ETHERNET3 || USE_ETHERNET_LARGE )
115+
#endif //( USE_ETHERNET_GENERIC || USE_ETHERNET_ENC )
149116

150117
#elif ETHERNET_USE_RPIPICO
151118

@@ -164,7 +131,7 @@ void setup()
164131
ET_LOGWARN1(F("RPIPICO setCsPin:"), USE_THIS_SS_PIN);
165132

166133
// For other boards, to change if necessary
167-
#if ( USE_ETHERNET || USE_ETHERNET_LARGE || USE_ETHERNET2 || USE_ETHERNET_ENC )
134+
#if ( USE_ETHERNET_GENERIC || USE_ETHERNET_ENC )
168135
// Must use library patch for Ethernet, EthernetLarge libraries
169136
// For RPI Pico using Arduino Mbed RP2040 core
170137
// SCK: GPIO2, MOSI: GPIO3, MISO: GPIO4, SS/CS: GPIO5
@@ -174,17 +141,8 @@ void setup()
174141

175142
//Ethernet.setCsPin (USE_THIS_SS_PIN);
176143
Ethernet.init (USE_THIS_SS_PIN);
177-
178-
#elif USE_ETHERNET3
179-
// Use MAX_SOCK_NUM = 4 for 4K, 2 for 8K, 1 for 16K RX/TX buffer
180-
#ifndef ETHERNET3_MAX_SOCK_NUM
181-
#define ETHERNET3_MAX_SOCK_NUM 4
182-
#endif
183-
184-
Ethernet.setCsPin (USE_THIS_SS_PIN);
185-
Ethernet.init (ETHERNET3_MAX_SOCK_NUM);
186-
187-
#endif //( USE_ETHERNET || USE_ETHERNET2 || USE_ETHERNET3 || USE_ETHERNET_LARGE )
144+
145+
#endif //( USE_ETHERNET_GENERIC || USE_ETHERNET_ENC )
188146

189147
#else //defined(ESP8266)
190148
// unknown board, do nothing, use default SS = 10
@@ -199,35 +157,23 @@ void setup()
199157
#endif
200158

201159
// For other boards, to change if necessary
202-
#if ( USE_ETHERNET || USE_ETHERNET_LARGE || USE_ETHERNET2 || USE_ETHERNET_ENC || USE_NATIVE_ETHERNET )
160+
#if ( USE_ETHERNET_GENERIC || USE_ETHERNET_ENC || USE_NATIVE_ETHERNET )
203161
// Must use library patch for Ethernet, Ethernet2, EthernetLarge libraries
204162

205163
Ethernet.init (USE_THIS_SS_PIN);
206164

207-
#elif USE_ETHERNET3
208-
// Use MAX_SOCK_NUM = 4 for 4K, 2 for 8K, 1 for 16K RX/TX buffer
209-
#ifndef ETHERNET3_MAX_SOCK_NUM
210-
#define ETHERNET3_MAX_SOCK_NUM 4
211-
#endif
212-
213-
Ethernet.setCsPin (USE_THIS_SS_PIN);
214-
Ethernet.init (ETHERNET3_MAX_SOCK_NUM);
215-
216165
#elif USE_CUSTOM_ETHERNET
217166

218167
// You have to add initialization for your Custom Ethernet here
219168
// This is just an example to setCSPin to USE_THIS_SS_PIN, and can be not correct and enough
220169
Ethernet.init(USE_THIS_SS_PIN);
221170

222-
#endif //( USE_ETHERNET || USE_ETHERNET2 || USE_ETHERNET3 || USE_ETHERNET_LARGE )
171+
#endif //( USE_ETHERNET_GENERIC || USE_ETHERNET_ENC )
223172

224-
#endif //defined(ESP8266)
173+
#endif // defined(ESP8266)
225174

226175
#endif // #if !(USE_NATIVE_ETHERNET)
227176

228-
#endif //USE_ETHERNET_WRAPPER
229-
230-
231177
// start the ethernet connection and the server:
232178
// Use DHCP dynamic IP and random mac
233179
uint16_t index = millis() % NUMBER_OF_MAC;
@@ -236,22 +182,34 @@ void setup()
236182
Ethernet.begin(mac[index]);
237183

238184
#if !(USE_NATIVE_ETHERNET || USE_ETHERNET_PORTENTA_H7)
239-
// Just info to know how to connect correctly
240-
Serial.println("=========================");
241-
Serial.println("Currently Used SPI pinout:");
242-
Serial.print("MOSI:");
243-
Serial.println(MOSI);
244-
Serial.print("MISO:");
245-
Serial.println(MISO);
246-
Serial.print("SCK:");
247-
Serial.println(SCK);
248-
Serial.print("SS:");
249-
Serial.println(SS);
250-
#if USE_ETHERNET3
251-
Serial.print("SPI_CS:");
252-
Serial.println(SPI_CS);
253-
#endif
254-
185+
#if defined( ESP32 )
186+
// Just info to know how to connect correctly
187+
// To change for other SPI
188+
Serial.println("=========================");
189+
Serial.println("Currently Used SPI pinout:");
190+
Serial.print("MOSI:");
191+
Serial.println(PIN_MOSI);
192+
Serial.print("MISO:");
193+
Serial.println(PIN_MISO);
194+
Serial.print("SCK:");
195+
Serial.println(PIN_SCK);
196+
Serial.print("SS:");
197+
Serial.println(USE_THIS_SS_PIN);
198+
Serial.println(F("========================="));
199+
#else
200+
// Just info to know how to connect correctly
201+
Serial.println("=========================");
202+
Serial.println("Currently Used SPI pinout:");
203+
Serial.print("MOSI:");
204+
Serial.println(MOSI);
205+
Serial.print("MISO:");
206+
Serial.println(MISO);
207+
Serial.print("SCK:");
208+
Serial.println(SCK);
209+
Serial.print("SS:");
210+
Serial.println(SS);
211+
#endif
212+
255213
Serial.println(F("========================="));
256214

257215
#elif (USE_ETHERNET_PORTENTA_H7)
@@ -269,7 +227,7 @@ void setup()
269227
{
270228
Serial.println("Not connected Ethernet cable");
271229
}
272-
#endif
230+
#endif
273231

274232
Serial.print(F("Using mac index = "));
275233
Serial.println(index);

0 commit comments

Comments
 (0)