For my project I am using the Particle Ethernet FeatherWing to allow the MAX32630FTHR to communicate with the local network and enable my alarm.
The Particle Ethernet FeatherWing is based around the WIZnet W5500 and under normal circumstances will work with the standard Arduino Ethernet library version 2.0.0+. This is however not compatible with the older Maxim core. It took a while but I worked round the problem, and here is my solution just in case it is helpful to someone else.
Before we get into the software, we need to add some header pins to the MAX32630FTHR. My advice is to loosely place the pins in the FeatherWing and quickly solder on the corner pins. After that the header pins are held in place and the rest of the pins will be so much easier to solder.

My work around with the Arduino IDE 1.8 it to this is to use the older Ethernet2 library, that is a drop in replacement to the version 1 Ethernet library but supports the W5500. This addresses most of the issues, but we still need to copy across a few files to get this to work. Here are the setup instructions...
First install the Ethernet2 library from the Arduino library manager (Sketch->Include Library->Manage Libraries…).
Once installed we need to copy the following files from the Arduino AVR core "%homepath%\Documents\ArduinoData\packages\arduino\hardware\avr\1.8.6\cores\arduino" to the Ethernet2 library directory "%homepath%\Documents\Arduino\libraries\Ethernet2\src".
- Client.h
- Server.h
- IPAddress.h
- IPAddress.cpp
- Udp.h
I will note that although it would make more sense to copy the missing files to the Mamim core ("%homepath%\Documents\ArduinoData\packages\Maxim\hardware\arm\1.1.5\cores\arduino") and not the Ethernet2 library, but doing this uncovers yet more issues that need to be addressed, so lets take the easy road on this occasion.
So after this modification, and including Ethernet2.h instead of Ethernet.h our standard Ethernet applications will compile but not run. We still need to tell the library what pin to use in our setup code. From the schematic we can see the chip select is on pin 22 if the featherwing connector (traditionally GPIO10) and that is mapped to pin 7 on CON12 (P5.4 /SDIO 2) according to the MAX32630FTHR schematic.
So, in English, just add “Ethernet.init(P5_4);” to setup() before calling “Ethernet.begin”.
And that is it. Here is a cut down version of the WebClient example to set with…
#include <SPI.h>
#include <Ethernet2.h>
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
char server[] = "www.google.com";
EthernetClient client;
void setup() {
Serial.begin(115200);
Serial.println("Starting...");
Ethernet.init(P5_4);
Ethernet.begin(mac);
delay(1000);
Serial.println("connecting...");
if (client.connect(server, 80)) {
Serial.println("connected");
client.println("GET /search?q=arduino HTTP/1.1");
client.println("Host: www.google.com");
client.println("Connection: close");
client.println();
}
else {
Serial.println("connection failed");
}
}
void loop()
{
if (client.available()) {
char c = client.read();
Serial.print(c);
}
if (!client.connected()) {
Serial.println();
Serial.println("disconnecting.");
client.stop();
while (true);
}
}