MakerLab
ArduinoArduino Ethernet

Arduino Ethernet: Connecting Your Projects to the World

The Arduino Ethernet board brings wired networking capabilities to the Arduino platform, enabling your creations to communicate over a local network or the internet.

Arduino Ethernet

The Arduino Ethernet is a microcontroller board based on the Atmel ATmega328P, the same powerful 8-bit AVR microcontroller found on the popular Arduino Uno. What sets it apart is the integrated Wiznet W5100 Ethernet controller, which provides a network (IP) stack capable of both TCP and UDP. This allows the Arduino Ethernet to connect to a network using a standard Ethernet cable, opening up a vast range of possibilities for remote monitoring, control, and data logging.

At its core, the Arduino Ethernet utilizes the ATmega328P microcontroller, running at a clock speed of 16 MHz. This processor offers a good balance of performance and power efficiency for many embedded applications. The board also features the Wiznet W5100 chip, a dedicated hardware network controller that offloads the complex task of managing network protocols from the main microcontroller. This design choice ensures that the ATmega328P has ample processing power left for your actual project code, rather than being consumed by network packet handling.

Released around 2011, the Arduino Ethernet was a significant step in making network-connected projects more accessible to hobbyists and students. It bridges the gap between simple microcontroller projects and more complex internet-of-things (IoT) applications. While newer boards might offer Wi-Fi or more processing power, the Arduino Ethernet remains a robust and reliable choice for projects requiring a stable wired network connection, especially where Wi-Fi might be unreliable or unavailable. It's ideal for makers who need their Arduino projects to interact with other devices on a local network or access the internet for data exchange.

This board is particularly well-suited for applications where a consistent and secure wired connection is paramount. Think of industrial monitoring systems, home automation controllers that need to be reliably accessible on the home network, or data loggers that transmit information to a central server. Its ease of use, combined with the power of the ATmega328P and the integrated Ethernet controller, makes it a valuable tool for learning about embedded networking and building sophisticated connected devices.

Watch

Related video, embedded from YouTube.

Specifications

Microcontroller / SoCAtmel ATmega328P
Architecture8-bit AVR
Clock speed16 MHz
Flash / Storage32 KB (2 KB used by bootloader)
RAM / SRAM2 KB
Operating voltage5V
Digital I/O pins14 (of which 6 provide PWM output)
Analog / ADC6 (10-bit)
PWM6 pins (3, 5, 6, 9, 10, 11)
Connectivity10/100 Ethernet (Wiznet W5100)
USBNone (for programming, requires separate USB-to-Serial adapter or ISP programmer)
Power input7-12V recommended via DC barrel jack or Vin pin
DimensionsStandard Arduino form factor (approx. 68.6mm x 53.3mm)

Pinout & pin functions

PinFunction
GNDGround
IOREFVoltage Reference (for shields)
RESETReset pin
3.3VRegulated 3.3V output
5VRegulated 5V output
GNDGround
A0-A5Analog Input pins (can also be used as digital I/O)
D0 (RX)Serial Receive pin
D1 (TX)Serial Transmit pin
D2Digital I/O pin
D3Digital I/O pin (PWM)
D4Digital I/O pin
D5Digital I/O pin (PWM)
D6Digital I/O pin (PWM)
D7Digital I/O pin
D8Digital I/O pin
D9Digital I/O pin (PWM)
D10Digital I/O pin (PWM, SS for SPI)
D11Digital I/O pin (PWM, MOSI for SPI)
D12Digital I/O pin (MISO for SPI)
D13Digital I/O pin (SCK for SPI, built-in LED)
Ethernet CSChip Select for Ethernet controller (connected to D10)
Ethernet INTInterrupt pin for Ethernet controller (connected to D2)
Ethernet RXEthernet receive data (internal to W5100)
Ethernet TXEthernet transmit data (internal to W5100)
VinPower input (7-12V recommended)
DC JackPower input connector (7-12V recommended)

Wiring & circuit basics

Powering the Arduino Ethernet requires careful attention to voltage and current. The board can be powered via its DC barrel jack or the Vin pin using a voltage source between 7V and 12V. An onboard voltage regulator will then step this down to the 5V required by the ATmega328P and other 5V components. Avoid powering the board directly through the 5V pin unless you are providing a clean, regulated 5V supply, as this bypasses the onboard regulator and can damage the board if the voltage is too high. The maximum current draw will depend on your project's components; ensure your power supply can provide at least 500mA to 1A for most applications, especially when using the Ethernet connection.

The Arduino Ethernet operates at a 5V logic level. This means that digital HIGH signals are typically 5V, and digital LOW signals are 0V. When interfacing with external components, especially sensors or modules that operate at 3.3V logic levels, it is crucial to use level shifting circuitry to prevent damage to either the Arduino or the external component. For example, connecting a 3.3V sensor's output directly to a 5V Arduino input might work if the sensor's output voltage is close enough to 5V, but connecting a 5V Arduino output to a 3.3V input will almost certainly cause damage. Always check the datasheets of your components.

A simple LED circuit demonstrates basic wiring. Connect an LED's anode (longer leg) to digital pin D7 through a current-limiting resistor (typically 220-330 ohms). Connect the LED's cathode (shorter leg) to a GND pin. When D7 is set to HIGH (5V), current flows from the Arduino, through the resistor and LED, to ground, illuminating the LED. The resistor protects both the LED and the Arduino's output pin from excessive current. For an I2C sensor like a BME280, connect its VCC to the Arduino's 5V pin, GND to a GND pin, SDA to the dedicated SDA pin (analog pin A4 on this board), and SCL to the dedicated SCL pin (analog pin A5).

Programming & getting started

The primary toolchain for the Arduino Ethernet is the Arduino IDE. Download and install the latest version from the official Arduino website. Once installed, select 'Arduino Uno' from the Tools > Board menu, as the Arduino Ethernet shares the same microcontroller. To upload code, you will need a separate USB-to-Serial adapter (like an FTDI adapter) connected to the board's serial pins (RX/TX) and the appropriate pins on the adapter. Alternatively, you can use an In-System Programmer (ISP) to flash the bootloader and sketches directly via the ICSP header. For network applications, you'll use libraries like 'Ethernet.h' which abstract the W5100's functionality.

To upload your first sketch (e.g., a simple 'Blink' example adapted for the Ethernet board, or a basic web server), connect your USB-to-Serial adapter to the Arduino Ethernet's RX and TX pins (ensure the adapter's TX connects to the Arduino's RX, and vice-versa), and connect the adapter to your computer. Select the correct COM port for your adapter in the Arduino IDE. Write or load your sketch, then click the Upload button. The Arduino Ethernet will reset, and the compiled code will be transferred via the serial connection. For network examples, remember to configure the MAC address and IP address within your sketch.

Project ideas

Simple Web ServerHost a basic webpage directly from your Arduino Ethernet. This project uses the Ethernet shield's networking capabilities and digital pins to control LEDs or read sensor values displayed on the webpage. It teaches fundamental web server concepts and network communication protocols.
Networked Sensor Data LoggerConnect various sensors (temperature, humidity, light) to the Arduino Ethernet and log their readings to a remote server or a local network storage device. This project utilizes analog and digital pins for sensors and the Ethernet connection for data transmission, demonstrating IoT data acquisition.
Remote Controlled RobotBuild a simple robot that can be controlled over the network. The Arduino Ethernet receives commands (e.g., 'forward', 'left') via Ethernet and translates them into motor movements using motor driver shields or components. This project combines networking with basic robotics and control systems.
Email NotifierConfigure the Arduino Ethernet to send an email notification when a specific event occurs, such as a button press or a sensor threshold being crossed. This project involves using the Ethernet connection to interact with an email server (often via a relay service) and understanding event-driven programming.
Networked Traffic Light ControllerSimulate a traffic light system where multiple Arduino Ethernet boards coordinate their signals over a network. This teaches inter-device communication, synchronization, and distributed control systems, going beyond single-board projects.
Home Automation HubUse the Arduino Ethernet as a central hub to monitor and control simple home devices (lights, relays) connected to it. It can act as a gateway for other microcontrollers or directly control devices, accessible from any computer on the local network.

Buying tips & gotchas

When purchasing an Arduino Ethernet, be aware that it's an older board and might be harder to find new. Look for genuine Arduino boards or reputable clones, as performance can vary with unofficial versions. Ensure the board comes with the Wiznet W5100 chip, as some boards might use alternative controllers with different library requirements. A common pitfall is incorrect wiring of the Ethernet cable or misunderstanding the MAC address and IP address configuration needed for network communication. You'll likely need a separate USB-to-Serial adapter for programming, so factor that into your purchase if you don't already have one. Accessories like Ethernet shields (though this board has it integrated), sensors, and relays will expand its capabilities significantly.