---
title: "Building a PoE Network Speaker with the W55RP20"
url: "https://maker.wiznet.io/nexp/contest/building-a-poe-network-speaker-with-the-w55rp20/"
markdown_url: "https://maker.wiznet.io/nexp/contest/building-a-poe-network-speaker-with-the-w55rp20/md"
type: "Contests"
author: "nexp"
author_url: "https://maker.wiznet.io/nexp/"
original_author: "JonghoPark"
published: "2026-06-19"
language: "en"
likes: 3
views: 290
comments: 0
source: "WIZnet Makers (https://maker.wiznet.io/)"
---

# Building a PoE Network Speaker with the W55RP20

> A PoE-powered network audio speaker based on W55RP20, using Ethernet for audio streaming and an external DAC for high-quality playback.

Original author: JonghoPark

## Documents and links

- [W55RP20 Arduino - I2S Arduino AMP TAS5825P WAV File Output Test](https://nexp.tistory.com/4303) (code)
- [W55RP20 Arduino - Audio Output Test via Network](https://nexp.tistory.com/4305) (code)
- [W55RP20 Arduino - Improving iperf Transmission Rate Using Ethernet3 Library](https://nexp.tistory.com/4308) (code)
- [Measuring Maximum UDP Transmission Rate in W55RP20 Pi Pico C/C++ SDK Environment](https://nexp.tistory.com/4309) (code)
- [\[W55RP20-4032\] 96kHz High-Quality Audio Transmission Test via UDP (I2S Output)](https://nexp.tistory.com/4311) (code)
- [\[W55RP20-4032\] W55RP20 4032 Standard Pin Map Board Form](https://nexp.tistory.com/4294) (schematics)
- [Building a PoE-based Network Speaker Using W55RP20](https://nexp.tistory.com/4315)

## Article

## Building a High-Performance PoE Network Speaker with the W55RP20

![](https://maker.wiznet.io/upload/ckeditor5/617942194%5F1781899511%2Epng)

This article shares the development process of a real-time audio streaming network speaker built using the W55RP20 System-in-Package (SiP), which combines the RP2040 microcontroller and the W5500 Ethernet controller into a single chip.

The W55RP20 is a cost-effective yet powerful networking solution, making it an excellent choice for PoE (Power over Ethernet)-based network audio devices. This project successfully validates both the hardware and software architecture required to build a PoE-powered network speaker using the W55RP20 and a high-performance audio amplifier.

[Embedded media](https://www.youtube.com/embed/Gyevo880WJ8)

---

## 1. Project Overview and Hardware Configuration

The W55RP20 provides a powerful networking platform at a very competitive cost. To facilitate rapid integration into real-world applications, a standard pin-compatible development board named **W55RP20-4032** was designed and developed.

### Hardware Specifications

- **MCU:** W55RP20 (RP2040 + W5500 + Flash Memory)

- **Audio Amplifier:** TAS5825P
  - Class-D architecture
  - Hybrid-Pro algorithm for high efficiency and low heat generation

- **Interfaces:**
  - I2S for audio data transmission
  - I2C for amplifier configuration and control

- **Debug & Display:**
  - Dual NeoPixel (SK6812) LEDs
  - SSD1306 OLED display for status monitoring

![](https://maker.wiznet.io/upload/ckeditor5/617942194%5F1781898345%2Epng)

![](https://maker.wiznet.io/upload/ckeditor5/617942194%5F1781898386%2Epng)

---

## 2. Development Environment: Arduino vs. Pico C/C++ SDK

Initial testing was performed using the Arduino environment with the lwIP networking stack due to its ease of development and rapid prototyping capabilities. However, because lwIP relies on a software TCP/IP stack, network throughput was limited to approximately **2 Mbps**.

While this bandwidth was sufficient for CD-quality audio streaming (44.1 kHz, 16-bit), future expansion to high-resolution audio formats (96 kHz, 24-bit and above) required greater network performance.

To overcome this limitation, development was migrated to the **Raspberry Pi Pico C/C++ SDK**, enabling direct control of the W5500 hardware TCP/IP stack and significantly improving network efficiency.

Later, the Arduino environment was enhanced by integrating and optimizing the **W55RP20_Ethernet3** library, allowing utilization of the hardware TCP/IP offload engine (TOE). As a result:

- Arduino + lwIP throughput: ~2 Mbps

- Arduino + W55RP20_Ethernet3 throughput: ~6 Mbps

- Pico SDK + W5500 Hardware Stack (UDP): ~17 Mbps

### Related Articles

- Arduino lwIP Environment
  <https://nexp.tistory.com/4295>

- Arduino lwIP UDP Throughput Test
  <https://nexp.tistory.com/4306>

- Arduino W55RP20_Ethernet3 UDP Throughput Test
  <https://nexp.tistory.com/4308>

- W55RP20 Pico SDK UDP Throughput Test
  <https://nexp.tistory.com/4309>

---

## 3. Technical Challenges and Troubleshooting

One of the most significant challenges during development was eliminating audio noise and ensuring stable real-time audio streaming.

### Eliminating Byte-Split Noise

Reference:
<https://nexp.tistory.com/4303>

Previously, 32-bit audio samples were transmitted as four separate 8-bit segments. Timing mismatches occasionally caused bit shifts, resulting in audible distortion and waveform corruption.

#### Solution

Instead of splitting the audio data into individual bytes, complete 32-bit (`int32_t`) samples were transmitted atomically. This ensured that the DAC always received intact audio samples, completely eliminating waveform corruption.

### Improving W55RP20 Ethernet Performance

Reference:
<https://nexp.tistory.com/4309>

The Arduino implementation was upgraded to use the W5500 hardware TCP/IP offload engine through the W55RP20_Ethernet3 library.

Key improvements included:

- Enhanced UDP throughput using iPerf

- Optimization specifically for network speaker applications

- Successful transmission of 96 kHz high-resolution audio

- Verification of audio quality at higher sampling rates

### Solving UDP Transmission Issues on W55RP20

Reference:
<https://nexp.tistory.com/4311>

Since real-time audio applications require low latency, UDP was selected as the primary transport protocol.

Key achievements:

- UDP throughput optimization

- Stable real-time audio streaming

- Reliable 96 kHz high-quality audio playback

- Reduced packet loss and transmission jitter

---

## 4. Integrated Dashboard and Streaming Features

Beyond basic audio playback, a Python-based audio streaming dashboard was developed to provide real-time control and monitoring capabilities.

### Real-Time Audio Streaming

Users can select audio sources directly from a PC and stream them instantly to the network speaker.

### Text-to-Speech (TTS)

Entered text is automatically converted into WAV audio and broadcast over the network speaker system.

### YouTube Audio Streaming

By entering a YouTube URL, the system can extract audio in real time and stream it directly to the speaker.

### Audio Visualization

A real-time waveform viewer displays the output WAV signal, allowing users to monitor audio activity visually.

![](https://maker.wiznet.io/upload/ckeditor5/617942194%5F1781898465%2Epng)

---

## 5. Conclusion and Future Development (PoE)

This project successfully demonstrated that the W55RP20 provides a stable and high-performance platform for real-time network audio applications.

Through extensive hardware and software validation, reliable transmission of high-quality audio over Ethernet was achieved while maintaining low latency and excellent network efficiency.

The next phase of development will focus on completing a fully integrated PoE-powered network speaker solution, including:

- IEEE 802.3af/at PoE support

- Enhanced audio processing features

- Multi-speaker synchronization

- Network audio broadcasting and paging functions

- Commercial-ready hardware design

The results confirm that the W55RP20 is a highly capable and cost-effective platform for next-generation network audio and PoE speaker applications.

![](https://maker.wiznet.io/upload/ckeditor5/617942194%5F1781899182%2Epng)

![](https://maker.wiznet.io/upload/ckeditor5/617942194%5F1781898579%2Epng)

---

Source: https://maker.wiznet.io/nexp/contest/building-a-poe-network-speaker-with-the-w55rp20/
