Wiznet makers

viktor

Published October 16, 2025 ©

108 UCC

20 WCC

46 VAR

0 Contests

0 Followers

0 Following

Original Link

W5500 TCP Server on LPC54114

W5500 TCP Server on LPC54114

COMPONENTS Hardware components

WIZnet - W5500

x 1


PROJECT DESCRIPTION

📡 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.

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:
 
[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
⚠️ 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.

Documents
Comments Write