25
25
* [ VS Code & PlatformIO] ( #vs-code--platformio )
26
26
* [ Libraries' Patches] ( #libraries-patches )
27
27
* [ 1. For fixing ESP32 compile error] ( #1-for-fixing-esp32-compile-error )
28
+ * [ HOWTO Fix ` Multiple Definitions ` Linker Error] ( #howto-fix-multiple-definitions-linker-error )
28
29
* [ HOWTO Use analogRead() with ESP32 running WiFi and/or BlueTooth (BT/BLE)] ( #howto-use-analogread-with-esp32-running-wifi-andor-bluetooth-btble )
29
30
* [ 1. ESP32 has 2 ADCs, named ADC1 and ADC2] ( #1--esp32-has-2-adcs-named-adc1-and-adc2 )
30
31
* [ 2. ESP32 ADCs functions] ( #2-esp32-adcs-functions )
50
51
* [ 12. WebClient] ( examples/WebClient )
51
52
* [ 13. WebClientRepeating] ( examples/WebClientRepeating )
52
53
* [ 14. WebServer] ( examples/WebServer )
54
+ * [ 15. ** multiFileProject** ] ( examples/multiFileProject )
53
55
* [ Example AdvancedWebServer] ( #example-advancedwebserver )
54
56
* [ File AdvancedWebServer.ino] ( #file-advancedwebserverino )
55
57
* [ Debug Terminal Output Samples] ( #debug-terminal-output-samples )
@@ -100,7 +102,7 @@ Please also check these twin libraries
100
102
1 . [ WebServer_WT32_ETH01] ( https://github.com/khoih-prog/WebServer_WT32_ETH01 ) for ESP32-based ` WT32_ETH01 ` using ` LwIP LAN8720 `
101
103
2 . [ WebServer_ESP32_ENC] ( https://github.com/khoih-prog/WebServer_ESP32_ENC ) for ESP32-boards using ` LwIP ENC28J60 `
102
104
3 . [ WebServer_ESP32_W5500] ( https://github.com/khoih-prog/WebServer_ESP32_W5500 ) for ESP32-boards using ` LwIP W5500 `
103
-
105
+ 4 . [ WebServer_ESP32_SC_ENC ] ( https://github.com/khoih-prog/WebServer_ESP32_SC_ENC ) for ESP32_S3-boards using ` LwIP ENC28J60 `
104
106
105
107
106
108
#### Currently supported Boards
@@ -111,6 +113,23 @@ This [**WebServer_ESP32_SC_W5500** library](https://github.com/khoih-prog/WebSer
111
113
112
114
Hopefully the ` ESP32_S2 ` and ` ESP32_C3-based ` boards will be supported in the near future to use ` LwIP W5500 or ENC28J60 Ethernet `
113
115
116
+
117
+ #### ESP32S3_DEV
118
+
119
+ <p align =" center " >
120
+ <img src="https://github.com/khoih-prog/WebServer_ESP32_SC_W5500/raw/main/pics/ESP32S3_DEV.png">
121
+ </p >
122
+
123
+ #### W5500
124
+
125
+ <p align =" center " >
126
+ <img src="https://github.com/khoih-prog/WebServer_ESP32_SC_W5500/raw/main/pics/W5500.png">
127
+ </p >
128
+
129
+ <p align =" center " >
130
+ <img src="https://github.com/khoih-prog/WebServer_ESP32_SC_W5500/raw/main/pics/W5500_small.png">
131
+ </p >
132
+
114
133
---
115
134
---
116
135
@@ -157,6 +176,32 @@ To fix [`ESP32 compile error`](https://github.com/espressif/arduino-esp32), just
157
176
- [ Server.h] ( LibraryPatches/esp32/cores/esp32/Server.h )
158
177
159
178
179
+ ---
180
+ ---
181
+
182
+
183
+ ### HOWTO Fix ` Multiple Definitions ` Linker Error
184
+
185
+ The current library implementation, using ` xyz-Impl.h ` instead of standard ` xyz.cpp ` , possibly creates certain ` Multiple Definitions ` Linker error in certain use cases.
186
+
187
+ You can include this ` .hpp ` file
188
+
189
+ ``` cpp
190
+ // Can be included as many times as necessary, without `Multiple Definitions` Linker Error
191
+ #include " WebServer_ESP32_SC_W5500.hpp" // https://github.com/khoih-prog/WebServer_ESP32_SC_W5500
192
+ ```
193
+
194
+ in many files. But be sure to use the following ` .h ` file ** in just 1 ` .h ` , ` .cpp ` or ` .ino ` file** , which must ** not be included in any other file** , to avoid ` Multiple Definitions ` Linker Error
195
+
196
+ ``` cpp
197
+ // To be included only in main(), .ino with setup() to avoid `Multiple Definitions` Linker Error
198
+ #include " WebServer_ESP32_SC_W5500.h" // https://github.com/khoih-prog/WebServer_ESP32_SC_W5500
199
+ ```
200
+
201
+ Check the new [ ** multiFileProject** example] ( examples/multiFileProject ) for a ` HOWTO ` demo.
202
+
203
+
204
+
160
205
---
161
206
---
162
207
@@ -358,6 +403,52 @@ void serveStatic();
358
403
size_t streamFile ();
359
404
```
360
405
406
+
407
+ ---
408
+ ---
409
+
410
+ ### How to connect W5500 to ESP32_S3
411
+
412
+ You can change the ` INT ` pin to another one. Default is ` GPIO4 `
413
+
414
+ ``` cpp
415
+ // Must connect INT to GPIOxx or not working
416
+ #define INT_GPIO 4
417
+ ```
418
+
419
+ ---
420
+
421
+
422
+ #### ESP32S3_DEV
423
+
424
+ <p align =" center " >
425
+ <img src="https://github.com/khoih-prog/WebServer_ESP32_SC_W5500/raw/main/pics/ESP32S3_DEV.png">
426
+ </p >
427
+
428
+ #### W5500
429
+
430
+ <p align =" center " >
431
+ <img src="https://github.com/khoih-prog/WebServer_ESP32_SC_W5500/raw/main/pics/W5500.png">
432
+ </p >
433
+
434
+ <p align =" center " >
435
+ <img src="https://github.com/khoih-prog/WebServer_ESP32_SC_W5500/raw/main/pics/W5500_small.png">
436
+ </p >
437
+
438
+
439
+
440
+ | W5500| <--->| ESP32_S3|
441
+ | :-:| :-:| :-:|
442
+ | MOSI| <--->| GPIO11|
443
+ | MISO| <--->| GPIO13|
444
+ | SCK| <--->| GPIO12|
445
+ | SS| <--->| GPIO10|
446
+ | INT| <--->| GPIO4|
447
+ | RST| <--->| RST|
448
+ | GND| <--->| GND|
449
+ | 3.3V| <--->| 3.3V|
450
+
451
+
361
452
---
362
453
---
363
454
@@ -379,7 +470,7 @@ size_t streamFile();
379
470
12 . [ WebClient] ( examples/WebClient )
380
471
13 . [ WebClientRepeating] ( examples/WebClientRepeating )
381
472
14 . [ WebServer] ( examples/WebServer )
382
-
473
+ 15 . [ ** multiFileProject ** ] ( examples/multiFileProject )
383
474
384
475
---
385
476
---
@@ -406,7 +497,7 @@ The following are debug terminal output and screen shot when running example [Ad
406
497
407
498
``` cpp
408
499
Start AdvancedWebServer on ESP32S3_DEV with ESP32_S3_W5500
409
- WebServer_ESP32_SC_W5500 v1.0.0 for core v2.0.0 +
500
+ WebServer_ESP32_SC_W5500 v1.0.1 for core v2.0.0 +
410
501
[EWS] Default SPI pinout:
411
502
[EWS] SPI_HOST: 2
412
503
[EWS] MOSI: 11
@@ -434,7 +525,7 @@ The terminal output of **ESP32S3_DEV with W5500** running [MQTT_ThingStream exam
434
525
435
526
```cpp
436
527
Start MQTT_ThingStream on ESP32S3_DEV with ESP32_S3_W5500
437
- WebServer_ESP32_SC_W5500 v1.0.0 for core v2.0.0+
528
+ WebServer_ESP32_SC_W5500 v1.0.1 for core v2.0.0+
438
529
[EWS] Default SPI pinout:
439
530
[EWS] SPI_HOST: 2
440
531
[EWS] MOSI: 11
@@ -467,7 +558,7 @@ The terminal output of **ESP32S3_DEV with W5500** running [MQTTClient_Auth examp
467
558
468
559
``` cpp
469
560
Start MQTTClient_Auth on ESP32S3_DEV with ESP32_S3_W5500
470
- WebServer_ESP32_SC_W5500 v1.0.0 for core v2.0.0 +
561
+ WebServer_ESP32_SC_W5500 v1.0.1 for core v2.0.0 +
471
562
[EWS] Default SPI pinout:
472
563
[EWS] SPI_HOST: 2
473
564
[EWS] MOSI: 11
@@ -497,7 +588,7 @@ The terminal output of **ESP32S3_DEV with W5500** running [MQTTClient_Basic exam
497
588
498
589
```cpp
499
590
Start MQTTClient_Basic on ESP32S3_DEV with ESP32_S3_W5500
500
- WebServer_ESP32_SC_W5500 v1.0.0 for core v2.0.0+
591
+ WebServer_ESP32_SC_W5500 v1.0.1 for core v2.0.0+
501
592
[EWS] Default SPI pinout:
502
593
[EWS] SPI_HOST: 2
503
594
[EWS] MOSI: 11
@@ -527,7 +618,7 @@ The terminal output of **ESP32S3_DEV with W5500** running [WebClient example](ex
527
618
528
619
``` cpp
529
620
Start WebClient on ESP32S3_DEV with ESP32_S3_W5500
530
- WebServer_ESP32_SC_W5500 v1.0.0 for core v2.0.0 +
621
+ WebServer_ESP32_SC_W5500 v1.0.1 for core v2.0.0 +
531
622
[EWS] Default SPI pinout:
532
623
[EWS] SPI_HOST: 2
533
624
[EWS] MOSI: 11
@@ -613,7 +704,7 @@ The terminal output of **ESP32S3_DEV with W5500** running [UDPSendReceive exampl
613
704
614
705
```cpp
615
706
Start UDPSendReceive on ESP32S3_DEV with ESP32_S3_W5500
616
- WebServer_ESP32_SC_W5500 v1.0.0 for core v2.0.0+
707
+ WebServer_ESP32_SC_W5500 v1.0.1 for core v2.0.0+
617
708
[EWS] Default SPI pinout:
618
709
[EWS] SPI_HOST: 2
619
710
[EWS] MOSI: 11
@@ -683,11 +774,14 @@ Submit issues to: [WebServer_ESP32_SC_W5500 issues](https://github.com/khoih-pro
683
774
684
775
1 . Bug Searching and Killing
685
776
2 . Add support to ** ESP32_S2 and ESP32_C3-based boards** using ` LwIP W5500 Ethernet `
686
- 3 . Add support to ** ESP32_S2/S3 and ESP32_C3-based boards** using ` LwIP ENC28J60 Ethernet `
777
+ 3 . Add support to ** ESP32_S2 and ESP32_C3-based boards** using ` LwIP ENC28J60 Ethernet `
687
778
688
779
### DONE
689
780
690
781
1 . Add support to ** ESP32S3-based boards** using ` LwIP W5500 Ethernet `
782
+ 2 . Using ` SPI_DMA_CH_AUTO ` instead of manually selected
783
+ 3 . Add example [ multiFileProject]] ( https://github.com/khoih-prog/WebServer_ESP32_SC_W5500/tree/main/examples/multiFileProject )
784
+
691
785
692
786
---
693
787
---
@@ -728,7 +822,7 @@ If you want to contribute to this project:
728
822
729
823
## Copyright
730
824
731
- - Copyright (c) 2016- Hristo Gochkov
825
+ - Copyright (c) 2016- Ivan Grokhotkov
732
826
733
827
- Copyright (c) 2022- Khoi Hoang
734
828
0 commit comments