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

Commit a1ed003

Browse files
authored
v2.0.1 to add SPI1 support to RP2040
### Releases v1.8.1 1. Add support to SPI1 for RP2040 using [arduino-pico core](https://github.com/earlephilhower/arduino-pico) 2. Rewrite all the examples to support new features 3. Update `Packages' Patches`
1 parent 069dc9b commit a1ed003

File tree

24 files changed

+967
-665
lines changed

24 files changed

+967
-665
lines changed

examples/HTTPClient/BasicAuthGet/BasicAuthGet.ino

Lines changed: 46 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -25,15 +25,8 @@ int port = 8080;
2525
EthernetClient client;
2626
EthernetHttpClient httpClient(client, serverAddress, port);
2727

28-
void setup()
28+
void initEthernet()
2929
{
30-
Serial.begin(115200);
31-
while (!Serial);
32-
33-
Serial.print("\nStarting BasicAuthGet on " + String(BOARD_NAME));
34-
Serial.println(" with " + String(SHIELD_TYPE));
35-
Serial.println(ETHERNET_WEBSERVER_SSL_VERSION);
36-
3730
#if USE_ETHERNET_PORTENTA_H7
3831
ET_LOGWARN(F("======== USE_PORTENTA_H7_ETHERNET ========"));
3932
#elif USE_NATIVE_ETHERNET
@@ -49,12 +42,24 @@ void setup()
4942
#endif
5043

5144
#if !(USE_NATIVE_ETHERNET || USE_ETHERNET_PORTENTA_H7)
45+
46+
#if (USING_SPI2)
47+
#if defined(CUR_PIN_MISO)
48+
ET_LOGWARN(F("Default SPI pinout:"));
49+
ET_LOGWARN1(F("MOSI:"), CUR_PIN_MOSI);
50+
ET_LOGWARN1(F("MISO:"), CUR_PIN_MISO);
51+
ET_LOGWARN1(F("SCK:"), CUR_PIN_SCK);
52+
ET_LOGWARN1(F("SS:"), CUR_PIN_SS);
53+
ET_LOGWARN(F("========================="));
54+
#endif
55+
#else
5256
ET_LOGWARN(F("Default SPI pinout:"));
5357
ET_LOGWARN1(F("MOSI:"), MOSI);
5458
ET_LOGWARN1(F("MISO:"), MISO);
5559
ET_LOGWARN1(F("SCK:"), SCK);
5660
ET_LOGWARN1(F("SS:"), SS);
5761
ET_LOGWARN(F("========================="));
62+
#endif
5863

5964
#if defined(ESP8266)
6065
// For ESP8266, change for other boards if necessary
@@ -182,35 +187,33 @@ void setup()
182187
Ethernet.begin(mac[index]);
183188

184189
#if !(USE_NATIVE_ETHERNET || USE_ETHERNET_PORTENTA_H7)
190+
ET_LOGWARN(F("========================="));
191+
185192
#if defined( ESP32 )
186193
// Just info to know how to connect correctly
187194
// 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("========================="));
195+
ET_LOGWARN(F("Currently Used SPI pinout:"));
196+
ET_LOGWARN1(F("MOSI:"), PIN_MOSI);
197+
ET_LOGWARN1(F("MISO:"), PIN_MISO);
198+
ET_LOGWARN1(F("SCK:"), PIN_SCK);
199+
ET_LOGWARN1(F("SS:"), PIN_SS);
199200
#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);
201+
#if defined(CUR_PIN_MISO)
202+
ET_LOGWARN(F("Currently Used SPI pinout:"));
203+
ET_LOGWARN1(F("MOSI:"), CUR_PIN_MOSI);
204+
ET_LOGWARN1(F("MISO:"), CUR_PIN_MISO);
205+
ET_LOGWARN1(F("SCK:"), CUR_PIN_SCK);
206+
ET_LOGWARN1(F("SS:"), CUR_PIN_SS);
207+
#else
208+
ET_LOGWARN(F("Currently Used SPI pinout:"));
209+
ET_LOGWARN1(F("MOSI:"), MOSI);
210+
ET_LOGWARN1(F("MISO:"), MISO);
211+
ET_LOGWARN1(F("SCK:"), SCK);
212+
ET_LOGWARN1(F("SS:"), SS);
213+
#endif
211214
#endif
212215

213-
Serial.println(F("========================="));
216+
ET_LOGWARN(F("========================="));
214217

215218
#elif (USE_ETHERNET_PORTENTA_H7)
216219
if (Ethernet.hardwareStatus() == EthernetNoHardware)
@@ -236,6 +239,18 @@ void setup()
236239
Serial.println(Ethernet.localIP());
237240
}
238241

242+
void setup()
243+
{
244+
Serial.begin(115200);
245+
while (!Serial);
246+
247+
Serial.print("\nStarting BasicAuthGet on " + String(BOARD_NAME));
248+
Serial.println(" with " + String(SHIELD_TYPE));
249+
Serial.println(ETHERNET_WEBSERVER_SSL_VERSION);
250+
251+
initEthernet();
252+
}
253+
239254
void loop()
240255
{
241256
Serial.println("making GET request with HTTP basic authentication");

examples/HTTPClient/BasicAuthGet/defines.h

Lines changed: 34 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,16 @@
99

1010
#pragma once
1111

12+
#ifndef defines_h
13+
#define defines_h
14+
1215
#define DEBUG_ETHERNET_WEBSERVER_PORT Serial
1316

1417
// Debug Level from 0 to 4
1518
#define _ETHERNET_WEBSERVER_LOGLEVEL_ 3
1619

20+
#define USING_SPI2 false //true
21+
1722
#if ( defined(ARDUINO_PORTENTA_H7_M7) || defined(ARDUINO_PORTENTA_H7_M4) )
1823

1924
#if defined(BOARD_NAME)
@@ -30,7 +35,7 @@
3035

3136
#define ETHERNET_USE_PORTENTA_H7 true
3237
#define USE_ETHERNET_PORTENTA_H7 true
33-
38+
3439
#endif
3540

3641
#if ( defined(ARDUINO_SAMD_ZERO) || defined(ARDUINO_SAMD_MKR1000) || defined(ARDUINO_SAMD_MKRWIFI1010) \
@@ -42,7 +47,7 @@
4247
#undef ETHERNET_USE_SAMD
4348
#endif
4449
#define ETHERNET_USE_SAMD true
45-
#endif
50+
#endif
4651

4752
#if ( defined(NRF52840_FEATHER) || defined(NRF52832_FEATHER) || defined(NRF52_SERIES) || defined(ARDUINO_NRF52_ADAFRUIT) || \
4853
defined(NRF52840_FEATHER_SENSE) || defined(NRF52840_ITSYBITSY) || defined(NRF52840_CIRCUITPLAY) || defined(NRF52840_CLUE) || \
@@ -253,13 +258,13 @@
253258
#warning Use ESP8266 architecture
254259
#include <ESP8266mDNS.h>
255260
#define ETHERNET_USE_ESP8266
256-
#define BOARD_TYPE "ESP8266"
261+
#define BOARD_TYPE ARDUINO_BOARD
257262

258263
#elif ( defined(ESP32) )
259264
// For ESP32
260265
#warning Use ESP32 architecture
261266
#define ETHERNET_USE_ESP32
262-
#define BOARD_TYPE "ESP32"
267+
#define BOARD_TYPE ARDUINO_BOARD
263268

264269
#define W5500_RST_PORT 21
265270

@@ -288,35 +293,30 @@
288293

289294
#else
290295
// For RPI Pico using E. Philhower RP2040 core
291-
// SCK: GPIO18, MOSI: GPIO19, MISO: GPIO16, SS/CS: GPIO17
292-
#define USE_THIS_SS_PIN 17
296+
#if (USING_SPI2)
297+
// SCK: GPIO14, MOSI: GPIO15, MISO: GPIO12, SS/CS: GPIO13 for SPI1
298+
#define USE_THIS_SS_PIN 13
299+
#else
300+
// SCK: GPIO18, MOSI: GPIO19, MISO: GPIO16, SS/CS: GPIO17 for SPI0
301+
#define USE_THIS_SS_PIN 17
302+
#endif
293303

294304
#endif
295-
305+
296306
#define SS_PIN_DEFAULT USE_THIS_SS_PIN
297307

298308
// For RPI Pico
299-
#warning Use RPI-Pico RP2040 architecture
300-
301-
#elif (__AVR__)
302-
// For Mega
303-
// Default pin 10 to SS/CS
304-
#define USE_THIS_SS_PIN 10
305-
#define BOARD_TYPE "AVR"
306-
307-
#error Not supporting AVR Mega, Nano, UNO, etc. yet.
308-
// Currently not OK. See https://github.com/mike-matera/ArduinoSTL/issues/56
309-
// Hopefully will be fixed in Arduino IDE 1.8.14
310-
#include "ArduinoSTL.h" // https://github.com/mike-matera/ArduinoSTL
309+
#warning Use RPI-Pico RP2040 architecture
311310

312311
#else
313-
312+
// For Mega
314313
// Default pin 10 to SS/CS
315314
#define USE_THIS_SS_PIN 10
316-
#define BOARD_TYPE "Unknown"
317315

318-
//#error Not supporting yet.
316+
// Reduce size for Mega
317+
#define SENDCONTENT_P_BUFFER_SZ 512
319318

319+
#define BOARD_TYPE "AVR Mega"
320320
#endif
321321

322322
#ifndef BOARD_NAME
@@ -345,7 +345,9 @@
345345
#define USE_ETHERNET_ESP8266 false
346346
#define USE_ETHERNET_ENC false
347347
#define USE_CUSTOM_ETHERNET false
348-
348+
349+
////////////////////////////
350+
349351
#if ( USE_ETHERNET_GENERIC || USE_ETHERNET_ESP8266 || USE_ETHERNET_ENC || \
350352
USE_NATIVE_ETHERNET || USE_ETHERNET_PORTENTA_H7 )
351353
#ifdef USE_CUSTOM_ETHERNET
@@ -390,7 +392,11 @@
390392
#endif
391393

392394
#else
393-
#define SHIELD_TYPE "W5x00 using Ethernet_Generic Library"
395+
#if USING_SPI2
396+
#define SHIELD_TYPE "W5x00 using Ethernet_Generic Library on SPI1"
397+
#else
398+
#define SHIELD_TYPE "W5x00 using Ethernet_Generic Library on SPI0/SPI"
399+
#endif
394400
#endif
395401

396402
#define ETHERNET_LARGE_BUFFERS
@@ -427,6 +433,8 @@
427433
// Select just 1 of the following #include if uncomment #define USE_CUSTOM_ETHERNET
428434
// Otherwise, standard Ethernet library will be used for W5x00
429435

436+
////////////////////////////
437+
430438
#elif USE_UIP_ETHERNET
431439
#include "UIPEthernet.h"
432440
#warning Using UIPEthernet library
@@ -472,3 +480,5 @@ IPAddress ip(192, 168, 2, 222);
472480

473481
// Google DNS Server IP
474482
IPAddress myDns(8, 8, 8, 8);
483+
484+
#endif //defines_h

examples/HTTPClient/CustomHeader/CustomHeader.ino

Lines changed: 46 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -24,15 +24,8 @@ int port = 8080;
2424
EthernetClient client;
2525
EthernetHttpClient httpClient(client, serverAddress, port);
2626

27-
void setup()
27+
void initEthernet()
2828
{
29-
Serial.begin(115200);
30-
while (!Serial);
31-
32-
Serial.print("\nStarting BasicAuthGet on " + String(BOARD_NAME));
33-
Serial.println(" with " + String(SHIELD_TYPE));
34-
Serial.println(ETHERNET_WEBSERVER_SSL_VERSION);
35-
3629
#if USE_ETHERNET_PORTENTA_H7
3730
ET_LOGWARN(F("======== USE_PORTENTA_H7_ETHERNET ========"));
3831
#elif USE_NATIVE_ETHERNET
@@ -48,12 +41,24 @@ void setup()
4841
#endif
4942

5043
#if !(USE_NATIVE_ETHERNET || USE_ETHERNET_PORTENTA_H7)
44+
45+
#if (USING_SPI2)
46+
#if defined(CUR_PIN_MISO)
47+
ET_LOGWARN(F("Default SPI pinout:"));
48+
ET_LOGWARN1(F("MOSI:"), CUR_PIN_MOSI);
49+
ET_LOGWARN1(F("MISO:"), CUR_PIN_MISO);
50+
ET_LOGWARN1(F("SCK:"), CUR_PIN_SCK);
51+
ET_LOGWARN1(F("SS:"), CUR_PIN_SS);
52+
ET_LOGWARN(F("========================="));
53+
#endif
54+
#else
5155
ET_LOGWARN(F("Default SPI pinout:"));
5256
ET_LOGWARN1(F("MOSI:"), MOSI);
5357
ET_LOGWARN1(F("MISO:"), MISO);
5458
ET_LOGWARN1(F("SCK:"), SCK);
5559
ET_LOGWARN1(F("SS:"), SS);
5660
ET_LOGWARN(F("========================="));
61+
#endif
5762

5863
#if defined(ESP8266)
5964
// For ESP8266, change for other boards if necessary
@@ -181,35 +186,33 @@ void setup()
181186
Ethernet.begin(mac[index]);
182187

183188
#if !(USE_NATIVE_ETHERNET || USE_ETHERNET_PORTENTA_H7)
189+
ET_LOGWARN(F("========================="));
190+
184191
#if defined( ESP32 )
185192
// Just info to know how to connect correctly
186193
// To change for other SPI
187-
Serial.println("=========================");
188-
Serial.println("Currently Used SPI pinout:");
189-
Serial.print("MOSI:");
190-
Serial.println(PIN_MOSI);
191-
Serial.print("MISO:");
192-
Serial.println(PIN_MISO);
193-
Serial.print("SCK:");
194-
Serial.println(PIN_SCK);
195-
Serial.print("SS:");
196-
Serial.println(USE_THIS_SS_PIN);
197-
Serial.println(F("========================="));
194+
ET_LOGWARN(F("Currently Used SPI pinout:"));
195+
ET_LOGWARN1(F("MOSI:"), PIN_MOSI);
196+
ET_LOGWARN1(F("MISO:"), PIN_MISO);
197+
ET_LOGWARN1(F("SCK:"), PIN_SCK);
198+
ET_LOGWARN1(F("SS:"), PIN_SS);
198199
#else
199-
// Just info to know how to connect correctly
200-
Serial.println("=========================");
201-
Serial.println("Currently Used SPI pinout:");
202-
Serial.print("MOSI:");
203-
Serial.println(MOSI);
204-
Serial.print("MISO:");
205-
Serial.println(MISO);
206-
Serial.print("SCK:");
207-
Serial.println(SCK);
208-
Serial.print("SS:");
209-
Serial.println(SS);
200+
#if defined(CUR_PIN_MISO)
201+
ET_LOGWARN(F("Currently Used SPI pinout:"));
202+
ET_LOGWARN1(F("MOSI:"), CUR_PIN_MOSI);
203+
ET_LOGWARN1(F("MISO:"), CUR_PIN_MISO);
204+
ET_LOGWARN1(F("SCK:"), CUR_PIN_SCK);
205+
ET_LOGWARN1(F("SS:"), CUR_PIN_SS);
206+
#else
207+
ET_LOGWARN(F("Currently Used SPI pinout:"));
208+
ET_LOGWARN1(F("MOSI:"), MOSI);
209+
ET_LOGWARN1(F("MISO:"), MISO);
210+
ET_LOGWARN1(F("SCK:"), SCK);
211+
ET_LOGWARN1(F("SS:"), SS);
212+
#endif
210213
#endif
211214

212-
Serial.println(F("========================="));
215+
ET_LOGWARN(F("========================="));
213216

214217
#elif (USE_ETHERNET_PORTENTA_H7)
215218
if (Ethernet.hardwareStatus() == EthernetNoHardware)
@@ -235,6 +238,18 @@ void setup()
235238
Serial.println(Ethernet.localIP());
236239
}
237240

241+
void setup()
242+
{
243+
Serial.begin(115200);
244+
while (!Serial);
245+
246+
Serial.print("\nStarting BasicAuthGet on " + String(BOARD_NAME));
247+
Serial.println(" with " + String(SHIELD_TYPE));
248+
Serial.println(ETHERNET_WEBSERVER_SSL_VERSION);
249+
250+
initEthernet();
251+
}
252+
238253
void loop()
239254
{
240255
Serial.println("Making GET request");

0 commit comments

Comments
 (0)