MKRZERO with W5100 Ethernet modul as gateway, Not working

  • Hi all,
    I am trying to get a MRKZero and a W5100 Ethernet module working as a gateway, but its not working.
    Tried as a first step to get a web-server running on this combo, but the sketch reports "Ethernet shield not found".
    If i get the web-server running i should be able to get the Ethernet gateway running too.

    I seen lots of samples and instructions for the Arduino UNO, but am not able to translate these to the MKRZero.

    I hope there is someone who can help me with this.

    Connections between the Arduino and the Ethernet modul:

    W5100                  MKRZero   
    1    GND                 GND
    2    5V                  5V
    3    Reset
    4    SS                  ???
    5    SCK                 SCK
    6    MOSI                MOSI
    7    MISO                MISO
    8    GND
    9    POE+
    10   POE-


      Web Server
     A simple web server that shows the value of the analog input pins.
     using an Arduino Wiznet Ethernet shield.
     * Ethernet shield attached to pins 10, 11, 12, 13
     * Analog inputs attached to pins A0 through A5 (optional)
     created 18 Dec 2009
     by David A. Mellis
     modified 9 Apr 2012
     by Tom Igoe
     modified 02 Sept 2015
     by Arturo Guadalupi
    #include <SPI.h>
    #include <Ethernet.h>
    // Enter a MAC address and IP address for your controller below.
    // The IP address will be dependent on your local network:
    byte mac[] = {
      0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED
    IPAddress ip(192, 168, 28, 177);
    // Initialize the Ethernet server library
    // with the IP address and port you want to use
    // (port 80 is default for HTTP):
    EthernetServer server(80);
    void setup() {
      // You can use Ethernet.init(pin) to configure the CS pin
      //Ethernet.init(7);  // Most Arduino shields
      //Ethernet.init(5);   // MKR ETH shield
      //Ethernet.init(0);   // Teensy 2.0
      //Ethernet.init(20);  // Teensy++ 2.0
      //Ethernet.init(15);  // ESP8266 with Adafruit Featherwing Ethernet
      //Ethernet.init(33);  // ESP32 with Adafruit Featherwing Ethernet
      // Open serial communications and wait for port to open:
      while (!Serial) {
        ; // wait for serial port to connect. Needed for native USB port only
      Serial.println("Ethernet WebServer Example");
      // start the Ethernet connection and the server:
      Ethernet.begin(mac, ip);
      // Check for Ethernet hardware present
      if (Ethernet.hardwareStatus() == EthernetNoHardware) {
        Serial.println("Ethernet shield was not found.  Sorry, can't run without hardware. :(");
        while (true) {
          delay(1); // do nothing, no point running without Ethernet hardware
      if (Ethernet.linkStatus() == LinkOFF) {
        Serial.println("Ethernet cable is not connected.");
      // start the server
      Serial.print("server is at ");
    void loop() {
      // listen for incoming clients
      EthernetClient client = server.available();
      if (client) {
        Serial.println("new client");
        // an http request ends with a blank line
        boolean currentLineIsBlank = true;
        while (client.connected()) {
          if (client.available()) {
            char c =;
            // if you've gotten to the end of the line (received a newline
            // character) and the line is blank, the http request has ended,
            // so you can send a reply
            if (c == '\n' && currentLineIsBlank) {
              // send a standard http response header
              client.println("HTTP/1.1 200 OK");
              client.println("Content-Type: text/html");
              client.println("Connection: close");  // the connection will be closed after completion of the response
              client.println("Refresh: 5");  // refresh the page automatically every 5 sec
              client.println("<!DOCTYPE HTML>");
              // output the value of each analog input pin
              for (int analogChannel = 0; analogChannel < 6; analogChannel++) {
                int sensorReading = analogRead(analogChannel);
                client.print("analog input ");
                client.print(" is ");
                client.println("<br />");
            if (c == '\n') {
              // you're starting a new line
              currentLineIsBlank = true;
            } else if (c != '\r') {
              // you've gotten a character on the current line
              currentLineIsBlank = false;
        // give the web browser time to receive the data
        // close the connection:
        Serial.println("client disconnected");

Log in to reply

Suggested Topics