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

Commit d04bc0f

Browse files
authored
v1.8.0 to fix macAddress bug, etc.
### Releases v1.8.0 1. Fix `macAddress` bug. Check [Unable so set MAC Address #2](#2) 2. Permit setting `macAddress` for supporting Ethernet shields W5x00 and ENC28J60 3. Add functions relating to `macAddress` 4. Rewrite all the examples to support new features 5. Drop support to `Ethernet_ESP8266` 6. Update `Packages' Patches`
1 parent cbee093 commit d04bc0f

File tree

32 files changed

+690
-1218
lines changed

32 files changed

+690
-1218
lines changed

examples/AM2315_Ethernet/AM2315_Ethernet.ino

Lines changed: 30 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -65,30 +65,39 @@ void heartBeatPrint()
6565

6666
localEthernetIP = Ethernet.localIP();
6767

68-
#if ( (USE_ETHERNET2 || USE_ETHERNET3) && !(USE_NATIVE_ETHERNET) )
69-
// To modify Ethernet2 library
68+
#if (USE_ETHERNET_GENERIC)
69+
70+
#if USE_W5100
71+
// The linkStatus() is not working with W5100. Just using IP != 0.0.0.0
72+
if ( (uint32_t) localEthernetIP != 0 )
73+
#else
7074
linkStatus = Ethernet.link();
71-
ET_LOGINFO3("localEthernetIP = ", localEthernetIP, ", linkStatus = ", (linkStatus == 1) ? "LinkON" : "LinkOFF" );
75+
ETM_LOGINFO1("localEthernetIP = ", localEthernetIP);
76+
77+
if ( ( linkStatus == 1 ) || ((uint32_t) localEthernetIP != 0) )
78+
#endif
7279

73-
if ( ( linkStatus == 1 ) && ((uint32_t) localEthernetIP != 0) )
7480
#else
7581

7682
// The linkStatus() is not working with W5100. Just using IP != 0.0.0.0
7783
// Better to use ping for W5100
7884
linkStatus = (int) Ethernet.linkStatus();
79-
ET_LOGINFO3("localEthernetIP = ", localEthernetIP, ", linkStatus = ", (linkStatus == LinkON) ? "LinkON" : "LinkOFF" );
80-
81-
if ( ( (linkStatus == LinkON) || !isW5500 ) && ((uint32_t) localEthernetIP != 0) )
85+
ETM_LOGINFO1("localEthernetIP = ", localEthernetIP);
86+
87+
if ( ( (linkStatus == LinkON) || !isW5500 ) || ((uint32_t) localEthernetIP != 0) )
8288
#endif
8389
{
8490
Serial.print(F("H"));
8591
}
8692
else
87-
Serial.print(F("F"));
93+
Serial.print(F("F"));
8894

8995
if (num == 80)
9096
{
9197
Serial.println();
98+
99+
ethernet_manager.printMacAddress();
100+
92101
num = 1;
93102
}
94103
else if (num++ % 10 == 0)
@@ -127,8 +136,6 @@ void initEthernet()
127136
ET_LOGWARN(F("======== USE_NATIVE_ETHERNET ========"));
128137
#elif USE_ETHERNET_GENERIC
129138
ET_LOGWARN(F("=========== USE_ETHERNET_GENERIC ==========="));
130-
#elif USE_ETHERNET_ESP8266
131-
ET_LOGWARN(F("=========== USE_ETHERNET_ESP8266 ==========="));
132139
#elif USE_ETHERNET_ENC
133140
ET_LOGWARN(F("=========== USE_ETHERNET_ENC ==========="));
134141
#else
@@ -321,6 +328,19 @@ void setup()
321328
ethernet_manager.setCORSHeader("Your Access-Control-Allow-Origin");
322329
#endif
323330

331+
//////////////////////////////////////////////
332+
333+
#define USING_CUSTOM_MAC_ADDRESS false
334+
335+
#if USING_CUSTOM_MAC_ADDRESS
336+
// To use your specified macAddress
337+
byte newMacAddress[6] = { 0xFE, 0xED, 0xDE, 0xAD, 0xBE, 0xEF };
338+
339+
ethernet_manager.setMacAddress(newMacAddress);
340+
#endif
341+
342+
//////////////////////////////////////////////
343+
324344
ethernet_manager.begin();
325345

326346
//////////////////////////////////////////////

examples/AM2315_Ethernet/defines.h

Lines changed: 21 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222

2323
// Debug Level from 0 to 4
2424
#define _ETHERNET_WEBSERVER_LOGLEVEL_ 2
25-
#define _ETHERNET_MANAGER_LOGLEVEL_ 2
25+
#define _ETHERNET_MANAGER_LOGLEVEL_ 4
2626

2727
#define DRD_GENERIC_DEBUG true
2828

@@ -80,11 +80,27 @@
8080

8181
#if defined(ETHERNET_USE_SAMD)
8282
// For SAMD
83-
// Default pin 10 to SS/CS
84-
#define USE_THIS_SS_PIN 10
83+
// Default pin SS/CS,if no SS pin, use pin 10
84+
#if defined(PIN_SPI_MOSI)
85+
//#warning Using SS pin
86+
#define USE_THIS_SS_PIN 10 //SS
87+
#else
88+
#define USE_THIS_SS_PIN 10
89+
#endif
8590

8691
#if ( defined(ARDUINO_SAMD_ZERO) && !defined(SEEED_XIAO_M0) )
8792
#define BOARD_TYPE "SAMD Zero"
93+
94+
// Default to use W5100. Must change to false for W5500, W5100S, for faster SPI clock
95+
// Must use true for SAMD21, such as Zero, SAMD_FEATHER_M0_EXPRESS, etc.
96+
#define USE_W5100 true
97+
98+
// Use this for ARDUINO_SAMD_ZERO, etc. if can't print to terminal with Serial.print
99+
#if defined(SERIAL_PORT_USBVIRTUAL)
100+
#define Serial SERIAL_PORT_USBVIRTUAL
101+
#warning Using SAMD Zero SerialUSB
102+
#endif
103+
88104
#elif defined(ARDUINO_SAMD_MKR1000)
89105
#define BOARD_TYPE "SAMD MKR1000"
90106
#elif defined(ARDUINO_SAMD_MKRWIFI1010)
@@ -226,6 +242,7 @@
226242
#endif
227243

228244
#elif ( defined(CORE_TEENSY) )
245+
#error Teensy not supported
229246
// Default pin 10 to SS/CS
230247
#define USE_THIS_SS_PIN 10
231248

@@ -335,8 +352,6 @@
335352
//#define USE_UIP_ETHERNET true
336353
#define USE_UIP_ETHERNET false
337354

338-
// Note: To rename ESP628266 Ethernet lib files to Ethernet_ESP8266.h and Ethernet_ESP8266.cpp
339-
// In order to USE_ETHERNET_ESP8266
340355
#if ( !defined(USE_UIP_ETHERNET) || !USE_UIP_ETHERNET )
341356

342357
// To override the default CS/SS pin. Don't use unless you know exactly which pin to use
@@ -346,11 +361,10 @@
346361

347362
// Only one if the following to be true
348363
#define USE_ETHERNET_GENERIC true
349-
#define USE_ETHERNET_ESP8266 false
350364
#define USE_ETHERNET_ENC false
351365
#define USE_CUSTOM_ETHERNET false
352366

353-
#if ( USE_ETHERNET_GENERIC || USE_ETHERNET_ESP8266 || USE_ETHERNET_ENC || USE_NATIVE_ETHERNET )
367+
#if ( USE_ETHERNET_GENERIC || USE_ETHERNET_ENC || USE_NATIVE_ETHERNET )
354368
#ifdef USE_CUSTOM_ETHERNET
355369
#undef USE_CUSTOM_ETHERNET
356370
#endif
@@ -375,11 +389,6 @@
375389

376390
#include "Ethernet_Generic.h"
377391
#warning Using Ethernet_Generic lib
378-
379-
#elif USE_ETHERNET_ESP8266
380-
#include "Ethernet_ESP8266.h"
381-
#warning Using Ethernet_ESP8266 lib
382-
#define SHIELD_TYPE "W5x00 using Ethernet_ESP8266 Library"
383392

384393
#elif USE_ETHERNET_ENC
385394
#include "EthernetENC.h"

examples/Ethernet_Generic/Ethernet_Generic.ino

Lines changed: 56 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -30,18 +30,25 @@ void heartBeatPrint()
3030
localEthernetIP = Ethernet.localIP();
3131

3232
#if (USE_ETHERNET_GENERIC)
33+
34+
#if USE_W5100
35+
// The linkStatus() is not working with W5100. Just using IP != 0.0.0.0
36+
if ( (uint32_t) localEthernetIP != 0 )
37+
#else
3338
linkStatus = Ethernet.link();
34-
ET_LOGINFO3("localEthernetIP = ", localEthernetIP, ", linkStatus = ", (linkStatus == 1) ? "LinkON" : "LinkOFF" );
39+
ETM_LOGINFO1("localEthernetIP = ", localEthernetIP);
40+
41+
if ( ( linkStatus == 1 ) || ((uint32_t) localEthernetIP != 0) )
42+
#endif
3543

36-
if ( ( linkStatus == 1 ) && ((uint32_t) localEthernetIP != 0) )
3744
#else
3845

3946
// The linkStatus() is not working with W5100. Just using IP != 0.0.0.0
4047
// Better to use ping for W5100
4148
linkStatus = (int) Ethernet.linkStatus();
42-
ET_LOGINFO3("localEthernetIP = ", localEthernetIP, ", linkStatus = ", (linkStatus == LinkON) ? "LinkON" : "LinkOFF" );
43-
44-
if ( ( (linkStatus == LinkON) || !isW5500 ) && ((uint32_t) localEthernetIP != 0) )
49+
ETM_LOGINFO1("localEthernetIP = ", localEthernetIP);
50+
51+
if ( ( (linkStatus == LinkON) || !isW5500 ) || ((uint32_t) localEthernetIP != 0) )
4552
#endif
4653
{
4754
Serial.print(F("H"));
@@ -52,6 +59,9 @@ void heartBeatPrint()
5259
if (num == 80)
5360
{
5461
Serial.println();
62+
63+
ethernet_manager.printMacAddress();
64+
5565
num = 1;
5666
}
5767
else if (num++ % 10 == 0)
@@ -70,32 +80,31 @@ void check_status()
7080
if ((millis() > checkstatus_timeout))
7181
{
7282
heartBeatPrint();
83+
7384
checkstatus_timeout = millis() + STATUS_CHECK_INTERVAL;
7485
}
7586
}
7687

7788
void initEthernet()
7889
{
7990
#if ( defined(USE_UIP_ETHERNET) && USE_UIP_ETHERNET )
80-
ET_LOGWARN(F("======== USE_UIP_ETHERNET ========"));
91+
ETM_LOGWARN(F("======== USE_UIP_ETHERNET ========"));
8192
#elif USE_NATIVE_ETHERNET
82-
ET_LOGWARN(F("======== USE_NATIVE_ETHERNET ========"));
93+
ETM_LOGWARN(F("======== USE_NATIVE_ETHERNET ========"));
8394
#elif USE_ETHERNET_GENERIC
84-
ET_LOGWARN(F("=========== USE_ETHERNET_GENERIC ==========="));
85-
#elif USE_ETHERNET_ESP8266
86-
ET_LOGWARN(F("=========== USE_ETHERNET_ESP8266 ==========="));
95+
ETM_LOGWARN(F("=========== USE_ETHERNET_GENERIC ==========="));
8796
#elif USE_ETHERNET_ENC
88-
ET_LOGWARN(F("=========== USE_ETHERNET_ENC ==========="));
97+
ETM_LOGWARN(F("=========== USE_ETHERNET_ENC ==========="));
8998
#else
90-
ET_LOGWARN(F("========================="));
99+
ETM_LOGWARN(F("========================="));
91100
#endif
92101

93-
ET_LOGWARN(F("Default SPI pinout:"));
94-
ET_LOGWARN1(F("MOSI:"), MOSI);
95-
ET_LOGWARN1(F("MISO:"), MISO);
96-
ET_LOGWARN1(F("SCK:"), SCK);
97-
ET_LOGWARN1(F("SS:"), SS);
98-
ET_LOGWARN(F("========================="));
102+
ETM_LOGWARN(F("Default SPI pinout:"));
103+
ETM_LOGWARN1(F("MOSI:"), MOSI);
104+
ETM_LOGWARN1(F("MISO:"), MISO);
105+
ETM_LOGWARN1(F("SCK:"), SCK);
106+
ETM_LOGWARN1(F("SS:"), SS);
107+
ETM_LOGWARN(F("========================="));
99108

100109
#if defined(ESP8266)
101110

@@ -111,7 +120,7 @@ void initEthernet()
111120
#define USE_THIS_SS_PIN D2 // For ESP8266
112121
#endif
113122

114-
ET_LOGWARN1(F("ESP8266 setCsPin:"), USE_THIS_SS_PIN);
123+
ETM_LOGWARN1(F("ESP8266 setCsPin:"), USE_THIS_SS_PIN);
115124

116125
#if ( USE_ETHERNET_GENERIC || USE_ETHERNET_ENC )
117126
// For ESP8266
@@ -160,7 +169,7 @@ void initEthernet()
160169
#endif
161170
#endif
162171

163-
ET_LOGWARN1(F("ESP32 setCsPin:"), USE_THIS_SS_PIN);
172+
ETM_LOGWARN1(F("ESP32 setCsPin:"), USE_THIS_SS_PIN);
164173

165174
// For other boards, to change if necessary
166175
#if ( USE_ETHERNET_GENERIC || USE_ETHERNET_ENC )
@@ -186,9 +195,9 @@ void initEthernet()
186195
#endif
187196

188197
#if defined(BOARD_NAME)
189-
ET_LOGWARN3(F("Board :"), BOARD_NAME, F(", setCsPin:"), USE_THIS_SS_PIN);
198+
ETM_LOGWARN3(F("Board :"), BOARD_NAME, F(", setCsPin:"), USE_THIS_SS_PIN);
190199
#else
191-
ET_LOGWARN1(F("Unknown board setCsPin:"), USE_THIS_SS_PIN);
200+
ETM_LOGWARN1(F("Unknown board setCsPin:"), USE_THIS_SS_PIN);
192201
#endif
193202

194203
// For other boards, to change if necessary
@@ -209,20 +218,20 @@ void initEthernet()
209218

210219
// Just info to know how to connect correctly
211220
#if defined(CUR_PIN_MISO)
212-
ET_LOGWARN(F("Currently Used SPI pinout:"));
213-
ET_LOGWARN1(F("MOSI:"), CUR_PIN_MOSI);
214-
ET_LOGWARN1(F("MISO:"), CUR_PIN_MISO);
215-
ET_LOGWARN1(F("SCK:"), CUR_PIN_SCK);
216-
ET_LOGWARN1(F("SS:"), CUR_PIN_SS);
221+
ETM_LOGWARN(F("Currently Used SPI pinout:"));
222+
ETM_LOGWARN1(F("MOSI:"), CUR_PIN_MOSI);
223+
ETM_LOGWARN1(F("MISO:"), CUR_PIN_MISO);
224+
ETM_LOGWARN1(F("SCK:"), CUR_PIN_SCK);
225+
ETM_LOGWARN1(F("SS:"), CUR_PIN_SS);
217226
#else
218-
ET_LOGWARN(F("Currently Used SPI pinout:"));
219-
ET_LOGWARN1(F("MOSI:"), MOSI);
220-
ET_LOGWARN1(F("MISO:"), MISO);
221-
ET_LOGWARN1(F("SCK:"), SCK);
222-
ET_LOGWARN1(F("SS:"), SS);
227+
ETM_LOGWARN(F("Currently Used SPI pinout:"));
228+
ETM_LOGWARN1(F("MOSI:"), MOSI);
229+
ETM_LOGWARN1(F("MISO:"), MISO);
230+
ETM_LOGWARN1(F("SCK:"), SCK);
231+
ETM_LOGWARN1(F("SS:"), SS);
223232
#endif
224233

225-
ET_LOGWARN(F("========================="));
234+
ETM_LOGWARN(F("========================="));
226235
}
227236

228237
#if USING_CUSTOMS_STYLE
@@ -234,7 +243,7 @@ void setup()
234243
{
235244
// Debug console
236245
Serial.begin(115200);
237-
while (!Serial);
246+
while (!Serial && millis() < 5000);
238247

239248
delay(200);
240249

@@ -272,6 +281,19 @@ void setup()
272281
ethernet_manager.setCORSHeader("Your Access-Control-Allow-Origin");
273282
#endif
274283

284+
//////////////////////////////////////////////
285+
286+
#define USING_CUSTOM_MAC_ADDRESS true //false
287+
288+
#if USING_CUSTOM_MAC_ADDRESS
289+
// To use your specified macAddress
290+
byte newMacAddress[6] = { 0xFE, 0xED, 0xDE, 0xAD, 0xBE, 0xEF };
291+
292+
ethernet_manager.setMacAddress(newMacAddress);
293+
#endif
294+
295+
//////////////////////////////////////////////
296+
275297
ethernet_manager.begin();
276298

277299
//////////////////////////////////////////////

0 commit comments

Comments
 (0)