Ethernet Troubleshooting

April 30, 2019 by
Ethernet Troubleshooting
Serzh Ohanyan

Troubleshooting of Ethernet, available only for M-Duino family, step by step:

  • Ensure that the controller is powered between 12-24 Vdc. Just with USB is insufficient to power to power up the Ethernet communication. 

  • For the Ethernet communication protocol there isn't any switch that affects it. So it does not matter the configuration of the switches to implement Ethernet communication. 

  • For Ethernet communication protocol, the defined Arduino Mega pin is pin 10, which is connected and already assembled to the WX5500 Ethernet controller. W5500 IC communicates to the Mega board via SPI bus already assebmled too. You can access easly to Ethernet port in our Ethernet PLCs, it is located at the top of the communications layer. 

IMPORTANT: Make sure to download the Arduino based PLC boards for Arduino IDE. 

Software Configuration

Once the hardware configuration is done, it is possible to proceed with the software configuration and also its usage. Firstly it is necessary to include the Ethernet2.h library provided by Industrial Shields (has the same functionality as Ethernet.h and also the same usage).

*Attention do not use old libraries like MDuino.h or Ardbox.h, these libraries are deprecated and can cause mapping issues to your controller.

For versions V7 or earlier you must use the <Ethernet.h> library. 

Software Example 

To see that Ethernet works correctly, in this example we define an M-Duino as a client and connect to an operating server, Google. If the connection was successful, "Connected to server" is printed, otherwise "Connection failed!". 

// use Ethernet.h if you have a M-Duino V7 version or +
#include <Ethernet2.h>

byte mac[] = {0xBE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED}; // mac address for M-Duino
byte server[] = {8, 8, 8, 8}; // Google 
int tcp_port = 53; // DNS port
char character;
bool ping = false;
int start_time;

EthernetClient client;

void setup(){
  Ethernet.begin(mac); // IP given by DHCP
  Serial.println(Ethernet.localIP()); // print M-Duino ip
  if (client.connect(server, tcp_port)){ // Connection to server
    Serial.println("Connected to server");
  else Serial.println("Connection failed!"); 

void loop(){

Be sure about...

  • Define an IP for the M-Duino. 

  • That the server you want to connect is active. 

  • Connect to the right port. 

​Search in our Blog

Ethernet Troubleshooting
Serzh Ohanyan April 30, 2019
Share this post

Looking for your ideal Programmable Logic Controller?

Take a look at this product comparison with other industrial controllers Arduino-based. 

We are comparing inputs, outputs, communications and other features with the ones of the relevant brands.

Industrial PLC comparison >>>