---
title: "ioNIC HTTP Client Arduino Example"
url: "https://maker.wiznet.io/Grace_Koo/projects/ionic-http-client-arduino-example-1/"
markdown_url: "https://maker.wiznet.io/Grace_Koo/projects/ionic-http-client-arduino-example-1/md"
type: "WCC: WIZnet Created Content"
author: "Grace"
author_url: "https://maker.wiznet.io/Grace_Koo/"
original_author: "Grace_Koo"
published: "2026-03-18"
language: "en"
tags: ["wow-contest-ref"]
hardware: ["WIZnet W55RP20-EVB-Pico", "Raspberry Pi Pico"]
likes: 0
views: 497
comments: 0
source: "WIZnet Makers (https://maker.wiznet.io/)"
---

# ioNIC HTTP Client Arduino Example

> The W55RP20-S2E is configured as an HTTP client via UART or SPI, enabling it to send GET requests to an HTTP server and receive responses.

Original author: Grace_Koo

## Components

- **WIZnet W55RP20-EVB-Pico** x 1 ([docs](https://wiznet.io/products/powered-by-raspberry-pi/w55rp20-evb-pico))
- **Raspberry Pi Pico** x 1 ([docs](https://www.raspberrypi.com/documentation/microcontrollers/raspberry-pi-pico.html))
- Software: **Arduino IDE** ([docs](https://www.arduino.cc/en/software))

## Documents and links

- [GitHub: WoW-io-Design-Contest](https://github.com/WIZnet-ioNIC/WoW-io-Design-Contest) (code)

## Article

## How to HTTP Client Example

This example demonstrates how the Raspberry Pi Pico transmits AT commands to the W55RP20 S2E board via UART or SPI to configure it as a HTTP Client(TCP Client) device.

The Raspberry Pi Pico sends an HTTP GET command to the W55RP20 S2E board via UART or SPI, and when the board receives a response from the PC’s HTTP server, it retransmits the response back to the Raspberry Pi Pico through UART or SPI.

## Step 1: Prepare software

The following serial terminal programs are required for test, download and install from below links.

- [Arduino IDE](https://www.arduino.cc/en/software/)

- [Tera Term](https://teratermproject.github.io/index-en.html)

- [Hercules](https://www.hw-group.com/software/hercules-setup-utility)

## Step 2: Prepare hardware

1. Connect GPIO13 according to the selected UART/SPI mode of the W55RP20 EVB Pico, as illustrated below.

| GPIO13 Pin | Desc |
| --- | --- |
| LOW(GND) | UART mode (default) |
| HIGH(3.3V) | SPI mode |

2. Connect the Raspberry Pi Pico and the W55RP20 EVB Pico using jumper wires as shown below, depending on the selected UART/SPI mode.

If UART mode :

| Raspberry Pi Pico | W55RP20 EVB Pico |
| --- | --- |
| GPIO4 (UART_TX) | GPIO5 (UART_RX) |
| GPIO5 (UART_RX) | GPIO4 (UART_TX) |
| GND | GND |

If SPI mode :

| Raspberry Pi Pico | W55RP20 EVB Pico |
| --- | --- |
| GPIO2 (SPI_CLK) | GPIO2 (SPI_CLK) |
| GPIO3 (SPI_TX) | GPIO4 (SPI_RX) |
| GPIO4 (SPI_RX) | GPIO3 (SPI_TX) |
| GPIO5 (SPI_CS) | GPIO5 (SPI_CS) |
| GPIO26 (SPI_INT) | GPIO26 (SPI_INT) |
| GND | GND |

3. Connect the Raspberry Pi Pico to your PC (desktop or laptop) using a 5-pin Micro USB cable.

4. Connect the W55RP20 EVB Pico to your PC (desktop or laptop) using a USB Type-C cable.

### Step 3: Arduino IDE Setup

#### **Install Board Support Package**

1. Open Arduino IDE

2. Go to **File → Preferences**

3. Add the following to "Additional Boards Manager URLs": https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json

4. Go to **Tools → Board → Boards Manager**

5. Search for **"Raspberry Pi Pico"** and install **Raspberry Pi Pico/RP2040 by Earle F. Philhower, III**

6. Select **Tools → Board → Raspberry Pi RP2040 Boards → Raspberry Pi Pico**

### Step 4: Code Examples

Each example provides a .ino file to upload to the Pico.

1. [**SPI Communication**](https://github.com/WIZnet-ioNIC/WoW-io-Design-Contest/tree/main/Arduino/http/http_client_spi)

2. [**UART Communication**](https://github.com/WIZnet-ioNIC/WoW-io-Design-Contest/tree/main/Arduino/http/http_client_uart)

### Step 5: Upload and Test

#### 5.1 Select Raspberry Pi Pico

1. Go to **Tools → Board → Raspberry Pi RP2040 Boards → Raspberry Pi Pico**

2. Select **Tools → Port** → Choose your COM port

#### 5.2 Upload Code

1. Open the desired example .ino file

2. Modify **IP addresses and port numbers** as needed

```plaintext
// Network config
static const char *REMOTE_HOST = "INPUT_YOUR_HOST_IP";
static const char *REMOTE_PORT = "8080";
static const char *HTTP_PATH = "/";
```

```plaintext
void setup() {
...
  at_set("LI192.168.11.2");    // Local IP
  at_set("SM255.255.255.0");   // Subnet mask
  at_set("GW192.168.11.1");    // Gateway
  at_set("DS8.8.8.8");         // DNS
  at_set("LP5000");            // Local port
  ...
}
```

1. Click **Upload** button or press **Ctrl+U**

2. Wait for upload to complete

#### 5.3 Open Serial Monitor

1. Go to **Tools → Serial Monitor**

2. Set baud rate to **115200**

3. Verify network information and connection status

## Step 6: Run

#### Step 6.1:**PC(HTTP Server)**

To test the HTTP Client example, you need to run an HTTP server on your PC.
Enter the following commands in a terminal window to start the HTTP server.

```c
## Windows cmd.exe

> mkdir http_test_dir
> cd http_test_dir
> echo Hello W55RP20-S2E> index.html						# make html file for test

> npm install -g http-server    										# install http server
> http-server . -p 8080														# run http server
```

#### Step 6.2: UART/SPI mode

---

Source: https://maker.wiznet.io/Grace_Koo/projects/ionic-http-client-arduino-example-1/
