---
title: "How to Measure Arduino Network Performance"
url: "https://maker.wiznet.io/mayuri/projects/how-to-measure-arduino-network-performance/"
markdown_url: "https://maker.wiznet.io/mayuri/projects/how-to-measure-arduino-network-performance/md"
type: "UCC: User Created Content"
author: "instructable"
author_url: "https://www.instructables.com/How-to-measure-Arduino-network-performance/"
editor: "WIZnet"
editor_url: "https://maker.wiznet.io/"
original_author: "instructable"
original_url: "https://www.instructables.com/How-to-measure-Arduino-network-performance/"
published: "2022-11-29"
language: "en"
hardware: ["WIZnet WIZ550io"]
likes: 2
views: 795
comments: 0
source: "WIZnet Makers (https://maker.wiznet.io/)"
---

# How to Measure Arduino Network Performance

> To know a network performance data of Aruidno to check a bandwidth budget for new IoT Project.

Original author: instructable (source: https://www.instructables.com/How-to-measure-Arduino-network-performance/)

## Components

- **WIZnet WIZ550io** x 1 ([docs](https://docs.wiznet.io/Product/ioModule/wiz550io))

## Article

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

**1. Arduino & Ethernet shield**

* Arduino Uno & WIZ550io (available [direct from WIZnet](http://www.shopwiznet.com/wiz550io))

> It will be a Iperf Server.

-----

**2. Computer**
* My PC (which is installed any Windows)

> It will be a a Iperf Client and check network performance.

-----

**3. Network switch**

* 3Com Gigabit Switch

> It connects Computer and Arduino together on a network.

-----
**Picture show the meterials and environment for network performance test.**

Add TipAsk QuestionCommentDownload

## **Step 2: Update Arduino Ethernet Shield for Wiz550io**

[![Update Arduino Ethernet Shield for Wiz550io](https://content.instructables.com/FIQ/J8YM/I5DS65C4/FIQJ8YMI5DS65C4.jpg?auto=webp&frame=1&width=945&fit=bounds&md=7caaf338e6ffe678928d11df8fa7a0cf)](https://content.instructables.com/FIQ/J8YM/I5DS65C4/FIQJ8YMI5DS65C4.jpg?auto=webp&frame=1&width=1024&fit=bounds&md=7caaf338e6ffe678928d11df8fa7a0cf)

We will use a Arduino and ethernet shield as a "Iperf server"

```
There are many arduino eithernet shield and I have several ethernet shield. 
I decide to use a wiz550io as a Arduino ethernet shield 
because it is a newest ethernet shield of Wiznet and have a more good network performance than original one.
```

Most of all, we have to update Ethernet Library to use a wiz550io for Arduino ethernet shield.

**1. Download the WIZnet Ethernet Library**

<https://github.com/Wiznet/WIZ_Ethernet_Library>

There is a "Download ZIP" which downloads everything in one neat little file.

-----

**2. Copy the Ethernet folder into the Arduino Libraries folder.** (Override built-in ethernet library)

[note] There are two versions of the Ethernet folder, depending on the version of your Arduino IDE.

-----

**3. Verify Code**

In the **libraries/Ethernet/utility** folder, open w5100.h and verify that only the 1 correct #define line is uncommented. For Wiz550io it looks like below and as a picture.

```
//#define W5100_ETHERNET_SHIELD // Arduino Ethernet Shield and Compatibles ...
//#define W5200_ETHERNET_SHIELD // WIZ820io, W5200 Ethernet Shield
#define W5500_ETHERNET_SHIELD   // WIZ550io, ioShield series of WIZnet
```

Add TipAsk QuestionCommentDownload

## **Step 3: Setup Arduino As a Iperf Server**

[![Setup Arduino As a Iperf Server](https://content.instructables.com/FC1/G2XK/I5DS6EHJ/FC1G2XKI5DS6EHJ.jpg?auto=webp&frame=1&width=563&fit=bounds&md=387e68ed7ace0d1ef0bedb8551e1e52b)](https://content.instructables.com/FC1/G2XK/I5DS6EHJ/FC1G2XKI5DS6EHJ.jpg?auto=webp&frame=1&fit=bounds&md=387e68ed7ace0d1ef0bedb8551e1e52b)

Most of all, we have to setup Arduino as a iperf server.

Then we need to prepare Arduino sketch code.

As you see the picture. it is very simple.

Arduino will just read data from buffer of ethernet shield.

That's all. Then arduino can be a iperf server for performance test.

(Refer bottom of this step reference arduino sketch code)

-----

And there are something need to explain.

Refer picture and below text.

> [1] Setup for arduino ethernet shield information for network.

> For iperf, use 5001 port which is a default port for iperf client.

> [2] Ethernet begin like this. It is differ from original ethernet library.

> [3] To increase SPI clock for performance (default : SPI_CLOCK_DIV4)

> [4] Ethernet shield have 2048 buffer, so we can read 2048 buffer at once.

> But Arduino will be abnormal if we allocation 2048 buffer , so use 1024 buffer.

> (If we can use 2048 buffer, it will be more good for performance.)

### **Attachments**

- [![download {{ file.name }}](https://content.instructables.com/static/image/file.default.gif)**IperfServer.ino**](https://content.instructables.com/F80/1G2E/I5DS6AWQ/F801G2EI5DS6AWQ.ino)

[Download](https://content.instructables.com/F80/1G2E/I5DS6AWQ/F801G2EI5DS6AWQ.ino)

## **Step 4: Setup Computer As a Iperf Client and RUN**

[![Setup Computer As a Iperf Client and RUN](https://content.instructables.com/FZN/J0VL/I5DS6HTX/FZNJ0VLI5DS6HTX.jpg?auto=webp&frame=1&fit=bounds&md=b11286e8f2e69fb11a3565af8efff0ac)](https://content.instructables.com/FZN/J0VL/I5DS6HTX/FZNJ0VLI5DS6HTX.jpg?auto=webp&frame=1&fit=bounds&md=b11286e8f2e69fb11a3565af8efff0ac)

Next we will set a PC as a client mode.

-----

It is very simple

Just open "Command prompt window" and

go to "iperf" installed directory using "cd", "dir" command as a first picture of this step.

```
Refer below link to know about "Iperf"
<https://www.instructables.com/id/How-to-measure-network-performance-1/>
```

-----

And Type "**iperf -c 192.168.1.177 -w 300k -t 100 -i 10**" and Enter on command line as a picture.

Then you can see the result of network performance between Arduino and Computer.

> In my case, network performance is 3.34Mbps.

Now, I/we can measure network performance.

Here is a demo video which test network performance.

Please enjoy it.

-----

---

Source: https://maker.wiznet.io/mayuri/projects/how-to-measure-arduino-network-performance/
