RobotDyn MEGA 2560 ETH R3

RobotDyn MEGA 2560 ETH R3 is an excellent choice for a controlled-over-the-Net device or a multi-functional data collector.
introduction

Product Overview

If you’re looking to build a network-connected device, RobotDyn MEGA 2560 ETH R3 with LAN and additional Wi-Fi connection, is the best solution use Arduino Mega 2560 R3 and Ethernet controller W5500 and with Wi-Fi module ESP-01!RobotDyn MEGA 2560 ETH R3 is a fully featured Ethernet-connected device via LAN or Wi-Fi. Depending on your use case, it can act as a server or a net member. In a server role, it will receive requests from other devices and services in local network and internet, and respond or react accordingly. In a net member role, the RobotDyn MEGA 2560 ETH R3 can collect data from different devices or industrial equipment and send it through the local network or Internet. It can also receive data from local network and internet, and control connected devices and equipment. The RobotDyn MEGA 2560 ETH R3 can also act as stand-alone unit, providing autonomous reaction based on the defined algorithm in response to network changes or other triggers.RobotDyn MEGA 2560 ETH R3 features 5 devices on one board:
  1. Mega 2560 based on an ATmega2560 with 70 I/O.
  2. Ethernet controller based on WizNet W5500 TCP/IP.
  3. Optional PoE function (receiving power directly through the Ethernet cable). Can select passive PoE or active (intellect) PoE.
  4. Micro SD card module.
  5. Additional Wi-Fi module ESP-01, based on ESP8266 microcontroller.

Ports and buses

RobotDyn MEGA 2560 ETH R3 has 70 input/output ports, 12 of which can be used for PWM, and 16 analog ports with 10-bits resolution (0 — 1023). The board is equipped with an RJ45, micro USB, DC power jack, and a reset button.

W5500 Ethernet

WizNet W5500 is a TCP/IP embedded LAN Ethernet controller. It provides TCP/IP Stack, 10BaseT/100BaseTX Ethernet with full or half-duplex, MAC and PHY. W5500 is using a highly efficient SPI protocol, with 80 MHz clocks for high-speed connectivity to Atmega2560. For lower energy consumption, W5500 provides WOL (Wake on LAN) and Power Off modes.

ESP-01 Wi-Fi

On board have socket for connecting Wi-Fi ESP-01 module. Wi-Fi module connecting to Serial3 interface via RX3(D15)/TX3(D14) I/O.In Arduino code, for control a Wi-Fi module need to use Serial3 port.

Micro-SD card rider

The board also features the Micro SD card socket. The micro SD card can be used to save and store the data, which can later be transferred over the network. Digital port D4 (CS-CS2) of the ATmega2560 is dedicated to work with the micro SD. For card detect used D9, but you can cut off soldering pads for disconnect this function.** Digital port D10 (SS-CS2) is used by WizNet W5500. The Ethernet controller and microSD card are connected through the SPI bus.

Programming in Arduino IDE

RobotDyn MEGA 2560 ETH R3 can be programmed via an Arduino IDE. Select Arduino Mega 2560 in the «Boards» menu, and use Ethernet3 / Ethernet4 library.

Power supply

RobotDyn MEGA 2560 ETH R3 can be powered via:
  • USB port (5V, 500mA);
  • DC-IN jack, PWC 2.1mm, (supporting 7-24V DC input voltage);
  • Through an Ethernet cable using PoE (Power over Ethernet) — requires PoE-enabled switch or a PoE injector. Note: PoE module is optional. There are several PoE options available, depending on the PoE equipment you use.
The Active PoE is compliant with 802.3af or 802.3at. It will check the power coming in, and, if it doesn’t meet the device requirements, it just won’t power up.The Passive PoE is a simplified version that does not perform a handshake, so it is important to know what PoE voltage your device supplies requires before plugging in the Ethernet cable and powering it up. If you connect the wrong voltage you may cause permanent electrical damage to the device.Make sure to select the correct board option with relevant PoE module.
features

Ports and buses

RobotDyn MEGA 2560 ETH R3 has 70 input/output ports, 12 of which can be used for PWM, and 16 analog ports with 10-bits resolution (0 — 1023). The board is equipped with an RJ45, micro USB, DC power jack, and a reset button.

W5500 Ethernet

WizNet W5500 is a TCP/IP embedded LAN Ethernet controller. It provides TCP/IP Stack, 10BaseT/100BaseTX Ethernet with full or half-duplex, MAC and PHY. W5500 is using a highly efficient SPI protocol, with 80 MHz clocks for high-speed connectivity to Atmega2560. For lower energy consumption, W5500 provides WOL (Wake on LAN) and Power Off modes.

ESP-01 Wi-Fi

On board have socket for connecting Wi-Fi ESP-01 module. Wi-Fi module connecting to Serial3 interface via RX3(D15)/TX3(D14) I/O.In Arduino code, for control a Wi-Fi module need to use Serial3 port.

Micro-SD card rider

The board also features the Micro SD card socket. The micro SD card can be used to save and store the data, which can later be transferred over the network. Digital port D4 (CS-CS2) of the ATmega2560 is dedicated to work with the micro SD. For card detect used D9, but you can cut off soldering pads for disconnect this function.** Digital port D10 (SS-CS2) is used by WizNet W5500. The Ethernet controller and microSD card are connected through the SPI bus.

Programming in Arduino IDE

RobotDyn MEGA 2560 ETH R3 can be programmed via an Arduino IDE. Select Arduino Mega 2560 in the «Boards» menu, and use Ethernet3 / Ethernet4 library.

Power supply

RobotDyn MEGA 2560 ETH R3 can be powered via:
  • USB port (5V, 500mA);
  • DC-IN jack, PWC 2.1mm, (supporting 7-24V DC input voltage);
  • Through an Ethernet cable using PoE (Power over Ethernet) — requires PoE-enabled switch or a PoE injector. Note: PoE module is optional. There are several PoE options available, depending on the PoE equipment you use.
The Active PoE is compliant with 802.3af or 802.3at. It will check the power coming in, and, if it doesn’t meet the device requirements, it just won’t power up.The Passive PoE is a simplified version that does not perform a handshake, so it is important to know what PoE voltage your device supplies requires before plugging in the Ethernet cable and powering it up. If you connect the wrong voltage you may cause permanent electrical damage to the device.Make sure to select the correct board option with relevant PoE module.
technical details

Specifications

MEGA 2560 ETH R3 with ATmega2560 & W5500

Input Voltage (VIN/DCВ jack)7~12V
PowerВ IN (USB)5V-limit 500mAВ
PoE TypeNo PoE/Active PoE/Passive PoE
PowerВ IN (PoE)Optional module, 48V(Input), 9V(Output)
Digital I/O54
PWM Output12
Analog I/O16
Reserved Pins
  • D4В is used forВ SD card select;
  • D10В is used for W5500 CS;
  • *Optional: D8В is used for W5500В interrupting, D7В is used for W5500 initialization, D9В is used forВ SD card detect
USB socketMicro-USB
Ethernet socketRJ45
PCB Size53.35Г—101.61mm
Card ReaderMicro SDВ card, with logic level convertor
Weight63g

Mega MCU

MicrocontrollerATmega2560(AVR 8-bit)
Operating Voltage5VВ
Memory Size256KB
SRAM8KB
EEPROM4KB
Clock Speed16MHz

Ethernet MCU

MicrocontrollerWiznet W5500
PHY compliance10BaseT/100BaseTX Ethernet. Full and half duplexВ
Operating Voltage3.3V
MemoryInternal 32Kbytes Memory for Tx/Rx Buffers
TCP/IP ProtocolsTCP, UDP, ICMP, IPv4, ARP, IGMP, PPPoE
PHY Clock Speed25MHz

Passive PoE(optional)

Ethernet Power (IN)12~48V DC
OutputDCВ 9V В

Active PoE(optional)

Ethernet Power (IN)12~48V DC
OutputDCВ 12V

WiFi(optional)

WiFI moduleESP-01(ESP8266)
Reserved Pins
  • D14/TX3
  • D15/RX3
how to use

Robotdyn.jpg

I/O defines on Mega ETH

For Ethernet W5500 Chipset:

  • D10 — SS (CS1)
  • D51 — MOSI
  • D50 — MISO
  • D52 — SCK
  • D8 — INT (select D8 with W5500-INT pin jumper, pin solder jumper at bottom layer, default: not connected)
  • D7/3.3V — RST (select D7 with W5500-RST pin solder jumper at the bottom layer, default: connected to 3.3V)

For SD card reader:

  • D4 — CS(CS2)
  • D9 – Card detect (pin solder jumper at bottom layer, default: not connected)
  • D51 — MOSI/DI
  • D50 — MISO/DO
  • D52 — SCK/CLK

NOTE: Both W5500 and SD card communicate with ATmega2560 via SPI bus. Pin D10 and pin D4 are chip Selection pins for W5500 and SD slot. They cannot be used as general I/O.

 

Steps for Arduino IDE:

    1. Select port:

 

    1. Select board:

  1. Please install the libraries:
    • SD.h — SD Library
    • SPI.h — SPI library
    • Ethernet.h/Ethernet2.h/ Ethernet3.h — Ethernet / Ethernet2 / Ethernet3 libraries

Copy below code into the sketch and then upload: 

  1. #include <Ethernet3.h>
  2. #include <SPI.h>
  3. #include <EEPROM.h>
  4. #include <SD.h>
  5. #define SS 10 //W5500 CS
  6. #define RST 7 //W5500 RST
  7. #define CS 4 //SD CS pin
  8. // enter MAC-address and IP-address of your controller below;
  9. // IP-address depends on your local network:
  10. byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
  11. char macstr[18];
  12. IPAddress ip(192,168,1,111);
  13. // initialize Ethernet Server library by designating a port
  14. // (default port for HTTP is «80»):
  15. EthernetServer server(80);
  16. // specifying a contact and default state for LED:
  17. String LED1State = “Off”;
  18. const int LED = 13;
  19. // specifying variables for the client:
  20. char linebuf[80];
  21. int charcount=0;
  22. void eeprom_read()
  23. {
  24. if (EEPROM.read(1) == ‘#’)
  25. {
  26. for (int i = 2; i < 6; i++)
  27. {
  28. mac[i] = EEPROM.read(i);
  29. }
  30. }
  31. }
  32. void eeprom_write()
  33. {
  34. EEPROM.write(1, ‘#’);
  35. snprintf(macstr, 18, “%02x:%02x:%02x:%02x:%02x:%02x”, mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]);
  36. }
  37. void setup() {
  38. // preparing LED-module:
  39. pinMode(LED_BUILTIN, OUTPUT);
  40. digitalWrite(LED_BUILTIN, HIGH);
  41. pinMode(SS, OUTPUT);
  42. pinMode(RST, OUTPUT);
  43. pinMode(CS, OUTPUT);
  44. digitalWrite(SS, LOW);
  45. digitalWrite(CS, HIGH);
  46. /* If you want to control Reset function of W5500 Ethernet controller */
  47. digitalWrite(RST,HIGH);
  48. pinMode(LED, OUTPUT);
  49. digitalWrite(LED, HIGH);
  50. // opening a sequential communication with 9600 baud speed:
  51. Serial.begin(9600);
  52. eeprom_read();
  53. eeprom_write();
  54. // initialising Ethernet-communication and server:
  55. Ethernet.begin(mac, ip);
  56. server.begin();
  57. Serial.print(“server is at “); // “server at “
  58. Serial.println(Ethernet.localIP());
  59. Serial.println(Ethernet.macAddressReport());
  60. }
  61. // Displaying a webpage with a «ON/OFF» button for LED:
  62. void dashboardPage(EthernetClient &client) {
  63. client.println(“<!DOCTYPE HTML><html><head>”);
  64. client.println(“<meta name=”viewport” content=”width=device-width, initial-scale=1″></head><body>”);
  65. client.println(“<h3>Arduino Web Server – <a href=”/”>Refresh</a></h3>”);
  66. client.println(“<h3>local IP<h3>”);
  67. client.println(Ethernet.localIP());
  68. client.println(“<h3>”);
  69. client.println(“<h3>mac Address<h3>”);
  70. client.println(Ethernet.macAddressReport());
  71. client.println(“<h3>”);
  72. client.println(“<h3>TEXT<h3>”);
  73. client.println(“<section id=”contact”><div class=”content”><div id=”form”><form action=””id=”contactForm”method=”GET”><textarea class=”message”placeholder=”Enter your message”tabindex=4></textarea><input type=”submit”name=”submit”value=”Send to Serial”class=”submit”tabindex=5></form></div></section>”);
  74. // generating a button to control LED:
  75. client.println(“<h4>LED 13 – State: ” + LED1State + “</h4>”);
  76. // if LED is off, Displaying an «ON» button:
  77. if(LED1State == “Off”){
  78. client.println(“<a href=”/LED13on”><button>ON</button></a>”);
  79. }
  80. // if LED is on, Displaying an «OFF» button:
  81. else if(LED1State == “On”){
  82. client.println(“<a href=”/LED13off”><button>OFF</button></a>”);
  83. }
  84. client.println(“</body></html>”);
  85. }
  86. void loop() {
  87. // reading the incoming clients:
  88. EthernetClient client = server.available();
  89. if (client) {
  90. //Serial.print (client.read());
  91. //Serial.println(“new client”); // “new client”
  92. memset(linebuf,0,sizeof(linebuf));
  93. charcount=0;
  94. // HTTP-request is ending with blank line:
  95. boolean currentLineIsBlank = true;
  96. while (client.connected()) {
  97. if (client.available()) {
  98. char c = client.read();
  99. // reading a HTTP-request, one symbol at a time:
  100. linebuf[charcount]=c;
  101. if (charcount<sizeof(linebuf)-1) charcount++;
  102. // if you reached the end of the line (i.e. if you recieved
  103. // symbol form a new line), it means that
  104. // HTTP-request is completed, and you can send the answer:
  105. if (c == ‘n’ && currentLineIsBlank) {
  106. dashboardPage(client);
  107. break;
  108. }
  109. if (c == ‘n’) {
  110. if (strstr(linebuf,”GET /id=”) > 0)Serial.println(linebuf);
  111. if (strstr(linebuf,”GET /LED13off”) > 0){
  112. digitalWrite(LED, HIGH);
  113. LED1State = “Off”;
  114. }
  115. else if (strstr(linebuf,”GET /LED13on”) > 0){
  116. digitalWrite(LED, LOW);
  117. LED1State = “On”;
  118. }
  119. // if you recieved a symbol form a new line
  120. currentLineIsBlank = true;
  121. memset(linebuf,0,sizeof(linebuf));
  122. charcount=0;
  123. }
  124. else if (c != ‘r’) {
  125. // if you recieved any other symbol
  126. currentLineIsBlank = false;
  127. }
  128. }
  129. }
  130. // providing a time for a borwser to recieve the data:
  131. delay(1);
  132. // closing the connection:
  133. client.stop();
  134. //Serial.println(“client disonnected”); // “Client is disconnected”
  135. }
  136. }

Result

  

documents
Code
Arduino Lib Ethernet3
Schematics
Schematic
Others
Dimensional drawing (DIM)
Input and Output (I/O) diagram

COMMENTS

Please Login to comment
  Subscribe  
Notify of