Je ne sais pas pour la lib EtherShield mais si comme la lib Ethernet standard (W5100) elle utilise le bus SPI hardware de l'ATmega, ca ne peut pas se résumer à changer des définitions dans un fichier H car le bus SPI hardware est à un endroit différent sur UNO/NG/2009 et sur Mega.
En plus du connecteur 2x3 de l'ICSP qui est le bon connecteur à utiliser pour un shield qui veut être compatible UNO et MEGA, le bus SPI se trouve :
- SS/CS : Uno = D10 - Mega=D53
- MOSI : Uno=D11 - Mega=D51
- MISO : Uno=D12 - Mega=D50
- SCLK : Uno=D13 - Mega=D52
Dont si le shield ENJ ne prend pas le bus SPI sur le connecteur ICSP, il va falloir couper des pistes et tirer des fils.