---
title: "PICSimLab Examples Part ETH w5500"
url: "https://maker.wiznet.io/scott/projects/picsimlab-examples-part-eth-w5500/"
markdown_url: "https://maker.wiznet.io/scott/projects/picsimlab-examples-part-eth-w5500/md"
type: "UCC: User Created Content"
author: "scott"
author_url: "https://maker.wiznet.io/scott/"
original_url: "https://lcgamboa.github.io/picsimlab_examples/parts_ETH_w5500.html"
published: "2026-02-04"
language: "en"
tags: ["W5500", "Arduino Ethernet Shield"]
hardware: ["WIZnet W5500"]
likes: 0
views: 756
comments: 0
source: "WIZnet Makers (https://maker.wiznet.io/)"
---

# PICSimLab Examples Part ETH w5500

> PICSimLab Examples Part ETH w5500

Original source: https://lcgamboa.github.io/picsimlab_examples/parts_ETH_w5500.html

## Components

- **WIZnet W5500** x 1 ([docs](https://docs.wiznet.io/Product/Chip/Ethernet/W5500))

WIZnet parts: W5500 ([Datasheet](https://docs.wiznet.io/Product/Chip/Ethernet/W5500/datasheet?utm_source=maker&utm_medium=project&utm_campaign=w5500), [product hub](https://maker.wiznet.io/products/w5500/))

## Documents and links

- [StandardFirmataEthernet](https://github.com/firmata/arduino/blob/master/examples/StandardFirmataEthernet/StandardFirmataEthernet.ino) (code)
- [UdpNtpClient](https://github.com/arduino-libraries/Ethernet/blob/master/examples/UdpNtpClient/UdpNtpClient.ino) (code)
- [WebClientRepeating](https://github.com/arduino-libraries/Ethernet/blob/master/examples/WebClientRepeating/WebClientRepeating.ino) (code)
- [WebServer](https://github.com/arduino-libraries/Ethernet/blob/master/examples/WebServer/WebServer.ino) (code)
- [PICSimLab Software](https://picsim-pic-microcontroller-simulator.soft112.com/)

## Article

임베디드 시스템에서 Ethernet 기능은 이제 기본 요구사항이 되었습니다.
하지만 실제 보드 환경에서 네트워크 기능을 검증하려면 장비 준비, 배선, 테스트 환경 구축 등 초기 진입장벽이 높습니다.

이번 글에서는 **PICSimLab**이라는 시뮬레이터를 이용해
**WIZnet W5500 Ethernet 칩을 PC에서 가상으로 구동하고, TCP/UDP/웹서버 예제를 테스트하는 프로젝트**를 소개합니다.

---

## PICSimLab이란?

![](https://cdn.soft112.com/picsim-pic-microcontroller-simulator/00/00/00/CM/000000CMIT/pad_screenshot.png)

***PICSimLab***

PICSimLab은 마이크로컨트롤러 보드와 주변장치를 PC에서 그대로 시뮬레이션할 수 있는 오픈소스 툴입니다.

단순히 CPU만 실행하는 것이 아니라,

- Arduino Uno 같은 보드

- UART 터미널

- LED, 버튼, 센서

- Ethernet 모듈(W5500)

까지 함께 동작하는 환경을 제공합니다.

즉, 실제 하드웨어 없이도 펌웨어를 검증할 수 있습니다.

---

## W5500 Ethernet 파트 지원

이번 예제의 핵심은 PICSimLab이 **WIZnet W5500 Ethernet 컨트롤러를 SPI 기반 Peripheral로 제공한다는 점**입니다.

Arduino Uno 보드에 W5500이 연결된 형태로 구성되며, 기본 핀 매핑은 다음과 같습니다.

MOSI: D11

- MISO: D12

- SCLK: D13

- CS: D10

- RESET: Reset 라인

이를 통해 실제 Ethernet Shield 환경과 동일한 구조로 테스트가 가능합니다.

---

## 포함된 Ethernet 예제들

프로젝트는 W5500 기반 네트워크 기능을 단계적으로 검증할 수 있도록 4개의 대표 예제를 제공합니다.

---

### 1. StandardFirmataEthernet

![](https://lcgamboa.github.io/picsimlab_examples/board_Arduino_Uno/atmega328p/firmata_ethernet/firmata_ethernet.png)

*StandardFirmataEthernet*

Firmata는 Arduino를 “원격 I/O 장치”처럼 사용할 수 있게 해주는 표준 프로토콜입니다.
즉, Arduino에 Firmata 펌웨어를 올려두면 PC가 시리얼이나 네트워크를 통해 디지털 출력, PWM, ADC 입력 같은 핀 기능을 직접 제어할 수 있습니다.

`StandardFirmataEthernet` 예제는 Arduino Uno + W5500을 TCP 기반 Firmata 서버로 만들며, PC에서 네트워크로 핀을 제어할 수 있습니다.

이 구성은 IoT 게이트웨이, 원격 제어 테스트에 매우 유용합니다.

---

### 2. UDP NTP Client

![](https://lcgamboa.github.io/picsimlab_examples/board_Arduino_Uno/atmega328p/udpntpclient/udpntpclient.png)

*UdpNtpClient*

두 번째 예제는 UDP 기반으로 NTP 서버에서 시간을 받아오는 데모입니다.

- UDP 송수신 확인

- 네트워크 초기화 검증

- W5500 Datagram 동작 테스트

같은 목적에 적합합니다.

터미널에서는 Unix Time과 UTC 시간이 출력됩니다.

---

### 3. WebClientRepeating (HTTP Client)

![](https://lcgamboa.github.io/picsimlab_examples/board_Arduino_Uno/atmega328p/webclientrepeating/webclientrepeating.png)

*WebClientRepeating (HTTP Client)*

이 예제는 Arduino가 HTTP 클라이언트가 되어 주기적으로 웹 서버에 요청을 보내는 구조입니다.

동작 흐름은 다음과 같습니다.

- DHCP로 IP 할당

- DNS로 도메인 해석

- TCP 연결

- HTTP GET 전송

- 응답 출력

임베디드 환경에서 가장 흔한 “클라우드 연동” 패턴을 그대로 재현합니다.

---

### 4. WebServer (HTTP Server)

![](https://lcgamboa.github.io/picsimlab_examples/board_Arduino_Uno/atmega328p/webserver/webserver.png)

*WebServer (HTTP Server)*

마지막 예제는 W5500 기반으로 Arduino가 웹서버 역할을 수행하는 데모입니다.

특히 PICSimLab은 내부 네트워크를 호스트로 포워딩하기 때문에, 브라우저에서 다음 주소로 바로 접속 가능합니다.

```plaintext
http://127.0.0.1:2080
```

웹 페이지에서는 Analog Input 값이 표시되며, 시리얼 터미널에는 HTTP 요청 로그가 출력됩니다.

즉, PC에서 완전한 임베디드 웹서버 테스트가 가능합니다.

---

## 이 프로젝트의 가치

이 예제 묶음은 W5500 기반 Ethernet 기능을 하드웨어 없이도 빠르게 검증할 수 있는 좋은 레퍼런스입니다.

특히 다음 항목을 손쉽게 테스트할 수 있습니다.

- SPI 기반 W5500 초기화

- TCP Client / Server 소켓 동작

- UDP Datagram 처리

- DHCP/DNS 네트워크 스택 검증

- 브라우저 기반 WebServer 테스트

임베디드 Ethernet 개발 초기 단계에서 매우 강력한 시뮬레이션 환경입니다.

---

## 확장 활용 가능성 (이 프로젝트로 할 수 있는 발전 방향)

이 예제는 단순한 데모를 넘어, WIZnet Ethernet 기반 프로젝트로 자연스럽게 확장할 수 있습니다.

- **IoT 디바이스 프로토타이핑**
  센서 데이터 전송, 원격 제어 같은 네트워크 기능을 빠르게 검증할 수 있습니다.

- **산업용 Ethernet 데모 구성**
  간단한 모니터링 웹페이지나 TCP 기반 제어 인터페이스로 확장 가능합니다.

- **네트워크 통신 안정성 테스트**
  반복 접속, 장시간 세션 유지 등 품질 검증용 시나리오에 활용할 수 있습니다.

- **WIZnet 제품군 학습 출발점**
  W5500을 시작으로 W5100S, W6100(IPv6) 등으로 확장 학습이 가능합니다.

---

## 마무리

PICSimLab + W5500 조합은 개발 장비가 없어도 네트워크 펌웨어를 검증하고 TCP/UDP/HTTP 동작을 확인할 수 있는 매우 효율적인 개발 접근입니다.

W5500 기반 제품을 설계하거나 Ethernet 기능을 빠르게 프로토타이핑하려는 엔지니어에게 추천할 만한 프로젝트입니다.

---

## FAQ

### Q1. 왜 W5500이 임베디드 Ethernet에서 많이 쓰이나요?

W5500은 TCP/IP 스택을 칩 내부에서 처리하는 Hardwired TCP/IP 구조를 제공하기 때문에, MCU 부하를 크게 줄이면서 안정적인 Ethernet 통신을 구현할 수 있습니다.

---

### Q2. W5500은 어떤 MCU와도 연결할 수 있나요?

네. W5500은 표준 SPI 인터페이스 기반이므로,

AVR (Arduino)

STM32

ESP32

RP2040

등 거의 모든 MCU에서 사용 가능합니다.

---

### Q3. PICSimLab로 실제 제품 개발이 가능한가요?

PICSimLab은 제품 개발의 최종 단계보다는,

초기 펌웨어 검증

네트워크 프로토콜 테스트

데모 및 교육 자료 제작

단계에서 매우 강력한 도구입니다.

실제 제품에서는 최종적으로 Real Board 검증이 필요합니다.

---

### Q4. W6100과는 어떤 차이가 있나요?

W5500: IPv4 기반, 가장 널리 사용되는 표준 Ethernet 칩

W6100: IPv4 + IPv6 지원, 차세대 IoT 환경에 적합

IPv6가 필요하다면 W6100이 좋은 선택입니다.

---

### Q5. WIZnet Ethernet 칩으로 어떤 제품을 만들 수 있나요?

대표적으로 다음과 같은 제품군이 많습니다.

Ethernet 센서 모듈

산업용 게이트웨이

원격 제어 컨트롤러

Embedded WebServer 장치

스마트팩토리 네트워크 노드

---

---

Ethernet connectivity has become a fundamental requirement in modern embedded systems.
However, validating network functionality on real hardware often requires physical boards, wiring, and a dedicated test environment, which can create a high entry barrier.

In this article, we introduce a project that uses **PICSimLab**, an open-source simulator, to run the **WIZnet W5500 Ethernet controller virtually on a PC** and test TCP, UDP, and web server examples without physical hardware.

---

## What is PICSimLab?

PICSimLab is an open-source embedded hardware simulator that allows developers to run microcontroller boards and peripherals directly on a PC.

It does not simulate only the CPU core, but also provides a complete board-level environment including:

- Arduino Uno and other MCU boards

- UART terminal output

- LEDs, buttons, sensors

- Ethernet modules such as the W5500

This makes it possible to validate firmware behavior even before having real hardware available.

---

## W5500 Ethernet Part Support

The key point of this project is that PICSimLab provides the **WIZnet W5500 Ethernet controller as an SPI-based peripheral part**.

It is connected to an Arduino Uno board in the same way as a typical Ethernet Shield setup.
The default pin mapping is:

MOSI: D11

- MISO: D12

- SCLK: D13

- CS: D10

- RESET: Reset line

With this configuration, developers can test Ethernet firmware in an environment very close to real hardware.

---

## Included Ethernet Examples

This project provides four representative examples that validate W5500-based networking step by step.

---

### 1. StandardFirmataEthernet

Firmata is a standard protocol that allows an Arduino to behave like a remote I/O device.
Once the Firmata firmware is uploaded, a PC can control Arduino pins over serial or network, including digital outputs, PWM, and analog input reading.

The `StandardFirmataEthernet` example turns an Arduino Uno + W5500 into a TCP-based Firmata server, enabling the PC to control the board remotely through Ethernet.

This setup is especially useful for IoT gateways and remote control testing.

---

### 2. UDP NTP Client

The second example demonstrates UDP communication by retrieving time data from an NTP server.

It is useful for validating:

- UDP packet transmission and reception

- Network initialization

- W5500 datagram behavior

The terminal output shows Unix time and UTC time values.

---

### 3. WebClientRepeating (HTTP Client)

This example demonstrates an embedded HTTP client that repeatedly sends web requests.

The typical workflow includes:

- IP assignment via DHCP

- Domain resolution via DNS

- TCP connection establishment

- HTTP GET request transmission

- Response output to the terminal

This represents one of the most common cloud-connected IoT communication patterns.

---

### 4. WebServer (HTTP Server)

The final example turns the Arduino + W5500 into a simple embedded web server.

PICSimLab bridges the internal network to the host system, so the server can be accessed directly from a browser at:

```plaintext
http://127.0.0.1:2080
```

The web page displays analog input values, while the serial terminal prints incoming HTTP request logs.

This makes it possible to test a complete embedded web server environment entirely on a PC.

---

## Value of This Project

This example collection is an excellent reference for quickly validating W5500 Ethernet functionality without hardware.

It enables developers to test:

- SPI-based W5500 initialization

- TCP client and server socket operation

- UDP datagram communication

- DHCP/DNS network stack behavior

- Browser-based embedded web server validation

It provides a powerful simulation environment for the early stages of embedded Ethernet development.

---

## Extension Possibilities

Although these are demo examples, they can easily be extended into real WIZnet-based applications:

- Rapid IoT device prototyping

- Simple industrial Ethernet monitoring demos

- Network stability and long-term socket testing

- A starting point for learning other WIZnet products such as W5100S or W6100 (IPv6)

---

## Conclusion

The combination of PICSimLab and the W5500 offers an efficient way to:

- Validate Ethernet firmware without hardware

- Test TCP/UDP/HTTP behavior quickly

- Build networking demos and educational environments

This project is highly recommended for engineers designing W5500-based products or exploring embedded Ethernet development.

---

## WIZnet-Focused FAQ

### Q1. Why is the W5500 widely used in embedded Ethernet systems?

The W5500 provides a Hardwired TCP/IP engine, which offloads the TCP/IP stack from the MCU.
This reduces MCU workload and enables stable Ethernet communication even in resource-limited environments.

---

### Q2. Can the W5500 work with any microcontroller?

Yes. The W5500 uses a standard SPI interface, so it can be connected to almost any MCU platform, including:

- AVR (Arduino)

- STM32

- ESP32

- RP2040

---

### Q3. Can PICSimLab replace real hardware testing?

PICSimLab is extremely useful for:

- Early firmware validation

- Protocol testing

- Demo and educational purposes

- However, final product verification must still be performed on real hardware.

---

### Q4. What is the difference between W5500 and W6100?

- **W5500**: IPv4-based Ethernet controller, most widely adopted

- **W6100**: Supports both IPv4 and IPv6, suitable for next-generation IoT networks

---

### Q5. What types of products can be built with WIZnet Ethernet chips?

Common applications include:

- Ethernet sensor modules

- Industrial gateways

- Remote control controllers

- Embedded web server devices

- Smart factory network nodes

---

Source: https://maker.wiznet.io/scott/projects/picsimlab-examples-part-eth-w5500/
