---
title: "Modbus/TCP firmware for Cytron IRIV IO using Rust"
url: "https://maker.wiznet.io/viktor/projects/modbus-tcp-firmware-for-cytron-iriv-io-using-rust/"
markdown_url: "https://maker.wiznet.io/viktor/projects/modbus-tcp-firmware-for-cytron-iriv-io-using-rust/md"
type: "UCC: User Created Content"
author: "andergisomon"
author_url: "https://github.com/andergisomon/iriv-io-modbus-tcp"
editor: "WIZnet"
editor_url: "https://maker.wiznet.io/"
original_author: "andergisomon"
original_url: "https://github.com/andergisomon/iriv-io-modbus-tcp"
published: "2025-12-30"
language: "en"
hardware: ["WIZnet W5500"]
likes: 0
views: 394
comments: 0
source: "WIZnet Makers (https://maker.wiznet.io/)"
---

# Modbus/TCP firmware for Cytron IRIV IO using Rust

> Modbus/TCP firmware for Cytron IRIV IO using Rust

Original author: andergisomon (source: https://github.com/andergisomon/iriv-io-modbus-tcp)

## Components

- **WIZnet W5500** x 1 ([docs](https://docs.wiznet.io/Product/Chip/Ethernet/W5500))

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

[![Cytron IRIV IO Controller - IR4.0 Industrial I/O Controller — DMX Pro Sales](https://dmxprosales.com/cdn/shop/files/IRIVIOC_c_700x700.png?v=1740031441)](https://www.cytron.io/p-iriv-io-controller)

**iriv-io-modbus-tcp** is an open-source firmware project that aims to run a **Modbus/TCP server** on the **Cytron IRIV IO Controller**—a compact industrial I/O device with isolated inputs/outputs and Ethernet. The project is written in **Rust** using **Embassy** (async embedded framework) and is currently described as “partial feature parity, in development.”

> Note: This is a community project and **not created by WIZnet**.

### Author introduction

The repository is maintained by **andergisomon (Ander)**. From their GitHub profile, they’re an Electrical & Electronics Engineering undergrad (Universiti Teknologi PETRONAS) with interests spanning embedded systems and related areas.

### Project description (what it does)

At a high level, this project is targeting:

- **Modbus/TCP over Ethernet** on IRIV IO (typical Modbus TCP port is 502).

- A **Rust + Embassy** architecture (good fit for responsive, non-blocking networking + I/O).

- Active development status: there’s an open issue to “debug and complete all current modbus request impls,” which suggests ongoing work to finish/validate function handling.

- Licensing: the repo is published under **GPL-3.0**.

Repository also includes helper/test artifacts (for example, a Python client script filename appears in the repo root)

### About **IRIV IO** (hardware context)

[![IRIV IO-Controller Interface - Electronics-Lab](https://www.electronics-lab.com/wp-content/uploads/2024/09/IRIV-IO-Controller-Interface-718x850.jpg)](https://www.cytron.io/p-iriv-io-controller)

**Cytron IRIV IO Controller** is an Industry 4.0–style I/O controller built around the **Raspberry Pi RP2350** and includes a **10/100 Ethernet port implemented via the WIZnet W5500**. It’s designed for lightweight automation and “I/O expander / data gatherer / gateway” style roles.

Common industrial-facing capabilities include:

- **11× isolated digital inputs** (up to 50V) and **4× isolated digital outputs** (up to 50V)

- **2× analog inputs** (voltage or current selectable)

- Industrial-friendly packaging like a **DIN-rail mountable metal enclosure** (per product ecosystem descriptions)

### Why WIZnet is used (in this stack)

[![IRIV IO Controller - IR4.0 Industrial I/O Controller](https://docs.google.com/drawings/d/e/2PACX-1vQ_fifyHz5aXZfWUkoRYEzZJZ4EzQ5RKECS5gSWeRQiyphJ7i16cxqOh7BKxJeNjDlxiAO65AT8ArLM/pub?h=1217&w=1206)](https://www.cytron.io/p-iriv-io-controller)

IRIV IO’s Ethernet is based on the **WIZnet W5500**, which provides a **hardwired TCP/IP stack** plus integrated MAC+PHY—so the MCU/firmware can focus on application logic (Modbus register mapping, I/O control, scheduling) rather than running a full software TCP/IP stack.

This is especially relevant for Modbus/TCP devices where you want:

- stable socket behavior,

- predictable memory use,

- and simpler embedded networking integration

### How it can benefit

- **Real industrial use case visibility:** Modbus/TCP I/O modules are a classic industrial Ethernet workload, and this project is explicitly positioned in that space on W5500-based hardware.

- **Rust ecosystem pull:** A Rust/Embassy-based networking firmware on W5500 hardware is a nice “modern embedded” story and can attract developers who don’t want to start from C examples.

---

Source: https://maker.wiznet.io/viktor/projects/modbus-tcp-firmware-for-cytron-iriv-io-using-rust/
