Portenta H7 + MKR ETH Shield

Hello,

I just purchased a Portenta H7 board along with an MKR ETH Shield.

The goal is to get a simple UDP server running on the Portenta, but I'm not able to get anything working (I'm not even able to ping the board, for example). To troubleshoot, I ran the following sketch (adapted from the Ethernet documentation example) :

#include <SPI.h>
#include <Ethernet.h>

byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};
IPAddress ip(172, 17, 0, 4);

void setup() {
  // Open serial communications and wait for port to open:
  Serial.begin(9600);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for native USB port only
  }

  Ethernet.begin(mac, ip);

  if (Ethernet.hardwareStatus() == EthernetNoHardware) {
    Serial.println("Ethernet shield was not found.");
  }
  else if (Ethernet.hardwareStatus() == EthernetW5100) {
    Serial.println("W5100 Ethernet controller detected.");
  }
  else if (Ethernet.hardwareStatus() == EthernetW5200) {
    Serial.println("W5200 Ethernet controller detected.");
  }
  else if (Ethernet.hardwareStatus() == EthernetW5500) {
    Serial.println("W5500 Ethernet controller detected.");
  }
}

void loop () {}

And I always get the following output :

Ethernet shield was not found.

Does someone know if I'm doing something wrong ? Maybe I forgot something ?
Does anyone have experience with the Portenta H7 + MKR ETH combo ?

Thank you !

Hello again,

So we fixed the issue.

Eventhough the Portenta H7 follows the Arduino MKR form factor, we notice the pin layouts mismatch.

If you simply plug the MKR ETH Shield into the Portenta H7, the SPI1_CS pin of the Portenta H7 isn't connected to the ETH_SS pin of the MKR ETH Shield.

After using some jump wires, we were able to get it working, and we got the following output :

W5500 Ethernet controller detected.

I have very little experience with Arduino, so I don't know if this issue is common.

Hi amestag,

Trying to test your code but can't compile :

In file included from C:\Users\utilisateur\AppData\Local\Arduino15\packages\arduino\hardware\mbed\1.3.0\cores\arduino/mbed/features/lwipstack/lwip/src/include/lwip/opt.h:51:0,
                 from C:\Users\utilisateur\AppData\Local\Arduino15\packages\arduino\hardware\mbed\1.3.0\cores\arduino/mbed/features/lwipstack/lwip/src/include/netif/Ethernet.h:44,
                 from C:\Users\utilisateur\Documents\Arduino\sketch_nov19a\sketch_nov19a.ino:2:
C:\Users\utilisateur\AppData\Local\Arduino15\packages\arduino\hardware\mbed\1.3.0\cores\arduino/mbed/features/lwipstack/lwipopts.h:34:2: error: #error "Either IPv4 or IPv6 must be enabled."
 #error "Either IPv4 or IPv6 must be enabled."
  ^~~~~
C:\Users\utilisateur\AppData\Local\Arduino15\packages\arduino\hardware\mbed\1.3.0\cores\arduino/mbed/features/lwipstack/lwipopts.h:71:2: error: #error "Either IPv4 or IPv6 must be preferred."
 #error "Either IPv4 or IPv6 must be preferred."
  ^~~~~
exit status 1
Error compiling for board Arduino Portenta H7 (M7 core).

i'm using IDE 1.8.13 and all libraries are up to date.
Any ideas ?

I'm brand new to Arduino, though I've used other microcontrollers. How does the Ethernet MKR Shield plug into the Portenta MKR headers? From the photos it looks like there are just naked unpopulated headers on the Portenta board. I cannot figure out from any documentation how this is supposed to work. Do we need to solder the MKR Shield on? Sorry if these are dumb questions.

From the response rate on this forum and the total lack of response to any thread from Arduino support, seems like the Portenta isn't a well-supported product and maybe I should look at something else.

Hi amestag,
trying to test your code but can't compile also in Pro IDE (Alpha):

/Users/nico/Library/Arduino15/packages/arduino/hardware/mbed/1.3.1/cores/arduino/mbed/features/lwipstack/lwipopts.h:34:2: error: #error "Either IPv4 or IPv6 must be enabled."
#error "Either IPv4 or IPv6 must be enabled."
 ^~~~~
/Users/nico/Library/Arduino15/packages/arduino/hardware/mbed/1.3.1/cores/arduino/mbed/features/lwipstack/lwipopts.h:71:2: error: #error "Either IPv4 or IPv6 must be preferred."
#error "Either IPv4 or IPv6 must be preferred."
 ^~~~~
Using library SPI in folder: /Users/nico/Library/Arduino15/packages/arduino/hardware/mbed/1.3.1/libraries/SPI (legacy)
Compilation error: Error: 2 UNKNOWN: exit status 1

Same story for both M7 and M4 core.
Can you please help us?
Thank you

matt-d3d:
From the photos it looks like there are just naked unpopulated headers on the Portenta board.

That's correct. The Portenta H7 comes without any headers pre-soldered to allow the most possible flexibility to the user:

  • Male headers - never wear out
  • Female headers - compatible with MKR shields, don't get bent
  • Passthrough headers - allow plugging in to a breadboard or MKR shield while still leaving connectivity from the top (but note this may physically interfere with modules like the vision shield that use the high density connectors)
  • No headers - the high density and Eslov connectors might provide all the connectivity needed, rendering headers superfluous.
  • Direct solder connections

matt-d3d:
Do we need to solder the MKR Shield on?

You can if you like. Or you can solder headers to the board. They are available from any seller of electronics parts if you don't already have a supply on hand.

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.