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.
Building a High-Performance PoE Network Speaker with the W55RP20
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.
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
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.
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.
-
W55RP20 Arduino - I2S Arduino AMP TAS5825P WAV File Output Test
-
W55RP20 Arduino - Audio Output Test via Network
-
W55RP20 Arduino - Improving iperf Transmission Rate Using Ethernet3 Library
-
Measuring Maximum UDP Transmission Rate in W55RP20 Pi Pico C/C++ SDK Environment
-
[W55RP20-4032] 96kHz High-Quality Audio Transmission Test via UDP (I2S Output)
-
Building a PoE-based Network Speaker Using W55RP20
-
[W55RP20-4032] W55RP20 4032 Standard Pin Map Board Form
