---
title: "How to start with W5100S XIAO-RP2040"
url: "https://maker.wiznet.io/louis_m/projects/how-to-start-with-w5100s-xiao-rp2040/"
markdown_url: "https://maker.wiznet.io/louis_m/projects/how-to-start-with-w5100s-xiao-rp2040/md"
type: "WCC: WIZnet Created Content"
author: "Louis"
author_url: "https://maker.wiznet.io/louis_m/"
original_author: "Louis"
published: "2023-06-23"
language: "en"
hardware: ["WIZnet W5100S"]
likes: 0
views: 359
comments: 0
source: "WIZnet Makers (https://maker.wiznet.io/)"
---

# How to start with W5100S XIAO-RP2040

> How to start with W5100S XIAO-RP2040

Original author: Louis

## Components

- **WIZnet W5100S** x 1 ([docs](https://docs.wiznet.io/Product/Chip/Ethernet/W5100S))
- Software: **MicroPython** ([docs](http://micropython.org/))

## Article

### **Features**

This project is an example of building Ethernet using the XIAO-RP2040 and W5100S.

I have done a lot of projects related to RP2040. We always used the Pico board to proceed. I used a lot of W5100S-EVB-Pico, an Ethernet-enabled board in Pico. Now, I want to make a smaller and more efficient board than this board and proceed with the project.

[XIAO-Series](https://www.seeedstudio.com/xiao-series-page)

![](https://hackster.imgix.net/uploads/attachments/1603486/image_393kSjFJ4k.png?auto=compress%2Cformat&w=740&h=555&fit=max)

- **High Performance:** Powered by [Raspberry Pi 2040 c](https://files.seeedstudio.com/wiki/XIAO-RP2040/res/rp2040_datasheet.pdf)hip, dual-core operating up to 133 MHz, equipped 264KB of SRAM, and 2MB of onboard flash memory

- **Ultra-small Design:** 21 x 17.5mm, Seeed Studio XIAO series classic form-factor, suitable for wearable devices

- **Multiple Development Interfaces:** 2x buttons, 11x digital / 4x analog pins, 1x I2C interface, 1x UART port, 1x SPI port, and 1x SWD Bonding pad interface

- **Multiple Develop Platform: **Support Arduino / Micropython / CircuitPython development, friendly for beginners, satisfied for electronics enthusiasts

- **Perfect for Production:** Breadboard-friendly & SMD design, no components on the back

The XIAO board is the smallest configuration based on various MCUs. It's made very small like the image.

[WIZnet W5100S](https://docs.wiznet.io/Product/iEthernet/W5100S/overview)

![WIZnet W5100S](https://hackster.imgix.net/uploads/attachments/1603478/image_6v0OneTaTO.png?auto=compress%2Cformat&w=740&h=555&fit=max)

WIZnet W5100S

- W5100S is a TCP/IP Ethernet chip.The W5100S helps the MCU communicate easily via SPI.

`Once you have your XIAO-RP2040 and W5100S Ethernet module mounted, as shown in the figure below, you are ready to get started.`

![](https://hackster.imgix.net/uploads/attachments/1603479/image_mLFFqRReOu.png?auto=compress%2Cformat&w=740&h=555&fit=max) ">

&lt;W5100S-XIAO> &lt;XIAO-RP2040> &lt;W5100S-XIAO + XIAO-RP2040>

Now let's set up Micropython in our environment. *Connect Raspberry Pi Pico to desktop or laptop using 5 pin micro USB cable.*

### **Development environment configuration**

![](https://hackster.imgix.net/uploads/attachments/1603483/image_T8qmrGvq5B.png?auto=compress%2Cformat&w=740&h=555&fit=max)

**MicroPython Thonny IDE**

Install `Thonny IDE` on Raspberry Pi Pico by referring to the link

Thonny IDE Link : [Thonny](https://thonny.org/)

1. The drive will be called **RPI-RP2** on all RP2040 boards. Download the **UF2**(rp2_w5100s_20221111_v2.0.0.uf2) file from the link below and put the file in Pico.

F/W Download link : [W5100S-XIAO-RP2040](https://github.com/Wiznet/RP2040-HAT-MicroPython/releases/download/v2.0.0/rp2_w5100s_20221111_v2.0.0.uf2)

2. You can also access the firmware installation menu if you click on **MicroPython (Raspberry Pi Pico)** in the status bar and choose ‘Configure interpreter …’.

![](https://hackster.imgix.net/uploads/attachments/1603484/image_KwJ5NzFq6K.png?auto=compress%2Cformat&w=740&h=555&fit=max)

3. Look at the Shell panel at the bottom of the "Thonny" editor. You should see something like this:

![](https://hackster.imgix.net/uploads/attachments/1603485/image_eDQIR0G76k.png?auto=compress%2Cformat&w=740&h=555&fit=max)

### **Ethernet Test**

Now that we're done setting up our environment, let's implement TCP/IP Ethernet.

Import the Ethernet source from the link below, which is a basic TCP/IP send/receive example from the Loopback sample.

[https://github.com/min-hs/w5100s-xiao-rp2040.git](https://github.com/min-hs/w5100s-xiao-rp2040cc.git)

![enable Server](https://hackster.imgix.net/uploads/attachments/1604542/image_4wwontHIF7.png?auto=compress%2Cformat&w=740&h=555&fit=max)

enable Server

Since the W5100S-XIAO board will be acting as a server, enable the **server_loop() **function and run the code to wait for the client to connect. When you run the code, the IP address information appears as shown below.

![](https://hackster.imgix.net/uploads/attachments/1604543/image_6DoaxrbGSe.png?auto=compress%2Cformat&w=740&h=555&fit=max)

When a client connects, an RGB LED lights up on the board.

![](https://hackster.imgix.net/uploads/attachments/1604569/image_XKAC7h8jsv.png?auto=compress%2Cformat&w=740&h=555&fit=max)

![](https://hackster.imgix.net/uploads/attachments/1604570/image_TgX2sWzTpD.png?auto=compress%2Cformat&w=740&h=555&fit=max)

---

Source: https://maker.wiznet.io/louis_m/projects/how-to-start-with-w5100s-xiao-rp2040/
