---
title: "W5500 TCP Server on LPC54114"
url: "https://maker.wiznet.io/viktor/projects/w5500-tcp-server-on-lpc54114/"
markdown_url: "https://maker.wiznet.io/viktor/projects/w5500-tcp-server-on-lpc54114/md"
type: "UCC: User Created Content"
author: "Mohammadreza Hosseini"
author_url: "https://github.com/mohammadrezahosseini99/LPC_W5500_TCPStream"
editor: "WIZnet"
editor_url: "https://maker.wiznet.io/"
original_author: "Mohammadreza Hosseini"
original_url: "https://github.com/mohammadrezahosseini99/LPC_W5500_TCPStream"
published: "2025-10-16"
language: "en"
hardware: ["WIZnet W5500"]
likes: 0
views: 4663
comments: 0
source: "WIZnet Makers (https://maker.wiznet.io/)"
---

# W5500 TCP Server on LPC54114

> W5500 TCP Server on LPC54114

Original author: Mohammadreza Hosseini (source: https://github.com/mohammadrezahosseini99/LPC_W5500_TCPStream)

## 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/))

## Article

## 📡 LPC_W5500_TCPStream — Lightweight TCP Streaming on NXP LPC54114

We discovered an intriguing open-source project on GitHub called **LPC_W5500_TCPStream**, built by **Mohammadreza Hosseini**. This project shows how to build a **real-time streaming TCP server** using the **WIZnet W5500 Ethernet controller** on an **NXP LPC54114** microcontroller.

### About the MCU

The project is built on the **NXP LPC54114**, a low-power ARM Cortex-M4 microcontroller known for its balance of performance and energy efficiency. The LPC54114 family is designed for applications that need responsive processing while maintaining long battery life, making it well-suited for sensor hubs, data acquisition, and lightweight communication systems.

[![](https://maker.wiznet.io/upload/ckeditor5/1039087477%5F1763720599%2Epng)](https://www.nxp.com/design/design-center/software/development-software/mcuxpresso-software-and-tools-/lpcxpresso-boards/lpcxpresso54114-board:OM13089)

Key characteristics of the LPC54114 include:

- **ARM Cortex-M4 core** running at up to 100 MHz, providing ample CPU resources for network management and application logic.

- **Low-power architecture** with multiple sleep modes and an efficient power domain design, benefiting always-on or periodically active networked devices.

- **Flexible peripheral set** including SPI, I²C, GPIO, and timers — allowing seamless integration with external modules such as the W5500 Ethernet controller.

- **Dual-core variant availability** in the LPC5411x family (Cortex-M4 + Cortex-M0+) for applications requiring task offloading or parallel execution.

- **Robust memory options**, offering SRAM and Flash sizes well matched to network tasks, buffering, and real-time processing.

### What the project does

- Implements a **standalone TCP server** (IPv4) using W5500’s hardware TCP/IP stack, allowing data to be continuously streamed between the microcontroller and a connected client.

- Detects client connections and disconnections automatically, and resets the socket when needed to ensure ongoing reliability.

- Supports **static IP configuration**, echo mode (returning received data back to the client), and link status monitoring via PHY checks.

- Designed for **stable SPI communication** (up to 80 MHz) between LPC54114 and W5500.

- Its architecture is modular enough that it could be adapted to other MCU platforms with minimal changes.

### Hardware / Wiring Setup

- The W5500 module connects to the LPC54114 via SPI (FLEXCOMM6).

- A “LINKLED” output (on `P0_2`) is used to indicate link or socket events.

- Standard 3.3 V and GND connections, along with the SPI lines, form the core of the interface.

### Usage Flow / How It Works

- **Build & Flash** the firmware onto the LPC54114 using MCUXpresso IDE or GCC toolchain.

- Connect the W5500 to your Ethernet network.

- On your PC or client side, open a TCP client (e.g. `netcat`, a Python socket script) to the device’s IP and port.

- When the connection opens, the device starts streaming live data; any data sent by the client is echoed back.

- If the connection drops, the server logic resets the socket and waits for a new client.

- Example output logs include messages like:

```plaintext
[TCP server] Hello #a  
[TCP server] Received: Sent data  
[TCP server] Hello #b
```

### Strengths & Considerations

**Strengths:**

- Uses the hardware TCP stack of W5500 to offload complexity from the microcontroller.

- Reliable, continuous streaming with built-in reconnection handling.

- Good reference for embedded makers wanting to build streaming or telemetry systems over Ethernet.

- MIT-licensed, so it can be adapted, extended, and integrated into other projects with attribution.

**Considerations / limitations:**

- The project currently supports only **one client at a time** (one socket). Multiplayer/multi-client support is listed as a future improvement.

- It doesn’t include more advanced network features (e.g. UDP broadcast, DTLS, SSL) out of the box.

- Performance in real-world systems may require optimizing SPI timing, buffer sizes, error handling, and memory constraints.

- Adapting to other MCU architectures may require tweaks in driver or hardware abstraction layers.

---

### About the Author

The project was developed by Mohammadreza Hosseini, an embedded-systems engineer with expertise in microcontroller-based networking and Ethernet integration. He has worked with hardware protocols and firmware design, bringing together efficient MCU implementation and hardware TCP/IP solutions such as the W5500. This contribution continues his focus on real-world maker applications, enabling reliable data streaming and connected embedded systems.

> **⚠️Disclaimer:** The author information is based on publicly available professional profiles and is included here to provide context and credit. We do not claim any additional rights to his work.

🔗 Project link: [LPC_W5500_TCPStream on GitHub](https://github.com/mohammadrezahosseini99/LPC_W5500_TCPStream?utm_source=chatgpt.com)
⚠️ **Disclaimer:** This project is publicly released under the MIT License. We are featuring it to inform and inspire makers in the community. All credit belongs to Mohammadreza Hosseini, and we do **not** claim ownership of the code or design.

---

Source: https://maker.wiznet.io/viktor/projects/w5500-tcp-server-on-lpc54114/
