---
title: "Ethernet for RP2350A in Minutes: WeAct RP2350A_V20 + WIZnet W5500 (SPI Hardwired TCP/IP)"
url: "https://maker.wiznet.io/junlee0615/projects/ethernet-for-rp2350a-in-minutes-weact-rp2350a-v20-wiznet-w5500-spi-hardwired-tcp-ip/"
markdown_url: "https://maker.wiznet.io/junlee0615/projects/ethernet-for-rp2350a-in-minutes-weact-rp2350a-v20-wiznet-w5500-spi-hardwired-tcp-ip/md"
type: "UCC: User Created Content"
author: "Electronics-Lab"
author_url: "https://www.electronics-lab.com/weact-studio-rp2350a_v20-microcontroller-board-with-dual-core-raspberry-pi-rp2350a-soc-and-arm-cortex-m33-risc-v-cores/"
editor: "WIZnet"
editor_url: "https://maker.wiznet.io/"
original_author: "Electronics-Lab"
original_url: "https://www.electronics-lab.com/weact-studio-rp2350a_v20-microcontroller-board-with-dual-core-raspberry-pi-rp2350a-soc-and-arm-cortex-m33-risc-v-cores/"
published: "2026-01-28"
language: "en"
tags: ["RP2350A", "W5500", "Ethernet", "SPI", "IoT"]
hardware: ["WIZnet W5500", "WeAct Studio RP2350A_V20"]
likes: 0
views: 381
comments: 0
source: "WIZnet Makers (https://maker.wiznet.io/)"
---

# Ethernet for RP2350A in Minutes: WeAct RP2350A_V20 + WIZnet W5500 (SPI Hardwired TCP/IP)

> Turn the WeAct RP2350A_V20 into a wired IoT node using WIZnet W5500 over SPI—fast bring-up, stable Ethernet, and simple socket-based networking.

Original author: Electronics-Lab (source: https://www.electronics-lab.com/weact-studio-rp2350a_v20-microcontroller-board-with-dual-core-raspberry-pi-rp2350a-soc-and-arm-cortex-m33-risc-v-cores/)

## Components

- **WIZnet W5500** x 1 ([docs](https://docs.wiznet.io/Product/Chip/Ethernet/W5500))
- **WeAct Studio RP2350A_V20** x 1
- Software: **Raspberry Pi OS** ([docs](https://www.raspberrypi.com/software/))
- Software: **WIZnet io Library** ([docs](https://github.com/Wiznet/ioLibrary_Driver))

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

## Introduction

Let’s start with what we’re building.

The **WeAct RP2350A_V20** is a small, affordable board based on Raspberry Pi’s **RP2350A**, with a Pico 2-style layout and a USB-C port.

But out of the box, it’s still a microcontroller board—so if you want **reliable wired networking**, you’ll usually add an Ethernet controller.

That’s where **WIZnet W5500** comes in.

## WIZnet Product Integration

The networking block is simple and proven:

**RP2350A_V20 ↔ SPI ↔ WIZnet W5500 ↔ Ethernet**.

W5500 is a “hardwired TCP/IP” Ethernet controller, so you don’t need to implement the full network stack in your MCU firmware.

You mostly talk to it through **socket-style APIs**—and you’re online.

## Technical Implementation

Here’s what we’re combining:

**RP2350A_V20 (RP2350A SoC)**

Dual-core **Arm Cortex-M33** or dual-core **Hazard3 RISC-V**, up to **150 MHz520 KB SRAM4 MB or 16 MB QSPI flash** options

**USB Type-C (USB 1.1 host/device)** for power and programming

**2×20-pin headers**, with lots of GPIO and PIO capability

**WIZnet W5500**

SPI interface, embedded MAC+PHY

8 hardware sockets and 32 KB internal buffer

### Wiring (practical, “just works” approach)

Use any free SPI peripheral on RP2350A and wire:

RP2350A **SCK** → W5500 **SCK**

RP2350A **MOSI** → W5500 **MOSI**

RP2350A **MISO** → W5500 **MISO**

RP2350A **CS** → W5500 **CS**

RP2350A **3V3** → W5500 **3V3**

RP2350A **GND** → W5500 **GND**

Optional but recommended:

RP2350A **GPIO** → W5500 **RST** (reset control)

RP2350A **GPIO** → W5500 **INT** (interrupt-driven networking)

Note: pin names vary by board definition—so pick pins that match your SDK/Arduino pin map.

## Reproduction Guide

Let’s bring it up step by step.

Flash a simple “SPI + Ethernet” test firmware to the RP2350A_V20.

Confirm SPI is alive (optional, but saves time).

Initialize W5500 with your MAC address.

Start DHCP and print the assigned IP.

Run a quick client test (HTTP GET) or a tiny TCP server.

If you see an IP address on the serial monitor, you’re done.

## Core Features and Performance

Here’s what you get immediately:

**Stable wired Ethernet** for deployments where Wi‑Fi is a risk

**Fast bring-up**: socket-based networking on top of W5500

**Good fit for real products**: RP2350 security + W5500 proven Ethernet

## Code Snippet

Here’s the core logic pattern: SPI init, W5500 init, then DHCP.

#include &lt;SPI.h>

#include &lt;Ethernet.h>

// Pick a CS pin that matches your RP2350A_V20 wiring

static const int W5500_CS = 5;

byte mac[6] = { 0x02, 0x00, 0x23, 0x50, 0xA0, 0x01 }; // demo MAC

void setup() {

Serial.begin(115200);

while (!Serial) {}

Ethernet.init(W5500_CS);

if (Ethernet.begin(mac) == 0) {

Serial.println("DHCP failed. Check cable / link / CS pin / SPI wiring.");

for (;;) {}

}

Serial.print("IP: ");

Serial.println(Ethernet.localIP());

}

void loop() {

// Add your TCP/UDP application here

}

Once DHCP works, everything else is just your application protocol.

## Applications and Extensions

A few real-world ways to use this combo:

**Industrial sensors**: reliable Ethernet + MCU simplicity

**Building automation**: long cable runs, centralized switching

**Networked controllers**: Modbus/TCP, simple TCP bridges, telemetry

**Tiny edge nodes**: local dashboards + data push

Extensions you might add:

*(planned)* interrupt-driven RX with W5500 INT for lower latency

*(planned)* static IP + watchdog recovery for unattended deployments

## Conclusion

To wrap up: the WeAct RP2350A_V20 gives you a modern dual-architecture MCU platform, and **WIZnet W5500** gives you a fast path to real Ethernet.

If you want a stable wired IoT node without wrestling with a full TCP/IP stack on the MCU, this is a clean, repeatable approach.

Try it with a W5500 module today, and turn your RP2350A project into a network-ready device.

---

Source: https://maker.wiznet.io/junlee0615/projects/ethernet-for-rp2350a-in-minutes-weact-rp2350a-v20-wiznet-w5500-spi-hardwired-tcp-ip/
