---
title: "ETH_CANable Firmware"
url: "https://maker.wiznet.io/matthew/projects/eth-canable-firmware---can--iris-its------robot/"
markdown_url: "https://maker.wiznet.io/matthew/projects/eth-canable-firmware---can--iris-its------robot/md"
type: "UCC: User Created Content"
author: "AriRangga (IRIS-ITS)"
author_url: "https://github.com/IRIS-ITS/ETH_CANable_Firmware"
editor: "WIZnet"
editor_url: "https://maker.wiznet.io/"
original_author: "AriRangga (IRIS-ITS)"
original_url: "https://github.com/IRIS-ITS/ETH_CANable_Firmware"
published: "2026-08-18"
language: "en"
likes: 0
views: 143
comments: 0
source: "WIZnet Makers (https://maker.wiznet.io/)"
---

# ETH_CANable Firmware

> ETH_CANable is an open-source robotics networking tool from IRIS-ITS that uses an STM32G474 and W5500 to expose 2 CAN buses over Ethernet using UDP-based SLCAN.

Original author: AriRangga (IRIS-ITS) (source: https://github.com/IRIS-ITS/ETH_CANable_Firmware)

## Article

### ETH_CANable: IRIS-ITS’s W5500-Based Dual CAN-to-Ethernet Bridge

---

### Overview

CAN is widely used inside robots for communication between motor controllers, actuators, sensors, and embedded control boards. Development PCs and higher-level control systems, however, are often connected through Ethernet.

ETH_CANable bridges these two environments.

Instead of connecting a USB-to-CAN adapter directly beside a PC, ETH_CANable uses the W5500 to make two CAN buses accessible as an Ethernet endpoint. A host computer can configure CAN bitrates, transmit frames, and receive bus traffic over UDP.

```plaintext
Development PC / Robot Computer
              │
              │ UDP + SLCAN
              ▼
        WIZnet W5500
              │ SPI
              ▼
       STM32G474CBT6
         ┌────┴────┐
         ▼         ▼
      CAN 0      CAN 1
```

ETH_CANable is not an application gateway that interprets motor commands or sensor values. Its main purpose is to act as a **transparent bridge that moves raw CAN frames between Ethernet and two CAN buses**.

---

### About IRIS-ITS

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

Source: IRIS-ITS <https://iris.its.ac.id/>

**IRIS — ITS Robot with Intelligent System** is a student robotics team representing Institut Teknologi Sepuluh Nopember (ITS) in Surabaya, Indonesia.

Founded in 2017, IRIS develops autonomous wheeled soccer robots and has participated in competitions including the RoboCup Middle Size League, FIRA RoboWorld Cup, and Kontes Robot Indonesia. The team is organized into four main divisions: Programming, Electrical, Mechanical, and Non-Technical. ([iris.its.ac.id](https://iris.its.ac.id/about/))

| Division | Main Role |
| --- | --- |
| Programming | AI, computer vision, navigation, motion planning, and strategy |
| Electrical | Power systems, sensors, motor controllers, and communication networks |
| Mechanical | Chassis, drivetrain, and kicking mechanisms |
| Non-Technical | Sponsorship, media, events, and public relations |

The Electrical Division is particularly relevant to ETH_CANable because it works on motor controllers and communication networks. The current IRIS team page also lists **Ari Rangga Prasetio**, whose name corresponds to the author of the repository’s initial commit, as a member of the Electrical Division. The repository itself, however, is published as an `IRIS-ITS` organization project rather than as an individual project.

IRIS’s GitHub organization also reflects its broader system-level development. Public repositories cover ROS development environments, robot base stations, referee-box integration, STM32 utilities, neural-network experiments, UDP communication libraries, and embedded firmware such as ETH_CANable.

---

### IRIS-ITS on Social Media

IRIS-ITS is notable not only for its engineering work but also for its **organized public communication and social-media activity**.

The team has a dedicated Non-Technical Division responsible for sponsorship, media, event management, and public relations, showing that outreach is an intentional part of team operations. ([iris.its.ac.id](https://iris.its.ac.id/about/))

#### Instagram — Competition and Team Storytelling

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

source: <https://www.instagram.com/iris.itsrobotic/>

**Instagram:** [@iris.itsrobotic](https://www.instagram.com/iris.itsrobotic/)

IRIS uses Instagram to document international competitions, robot development, and team activities through a consistent visual style.

During RoboCup 2026, for example, the team published a continuing series covering match days, robot preparation, field activities, the final result, and post-event reflections. Rather than showing only finished robots, the feed also includes the students working on, testing, and maintaining them.

This gives Instagram the role of a more polished public record of IRIS’s **competition journey, engineering process, and official team achievements**.

### TikTok — Workshop Culture and Informal Engineering Content

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

source: <https://www.tiktok.com/@iris.itsrobotic>

#### **TikTok:** [@iris.itsrobotic](https://www.tiktok.com/@iris.itsrobotic)

TikTok presents a more casual side of the same robotics team.

Reviewed posts include soldering, programming challenges, robot assembly, workshop activities, competition scenes, and team-life moments. The videos often use Indonesian-language humor and short-form storytelling to make engineering work more approachable.

While Instagram presents competitions and achievements in a more structured format, TikTok gives viewers a closer look at **how the students actually work, solve problems, and spend time in the robotics workshop**.

#### LinkedIn — Research, Education, and Industry Collaboration Collaboration

**LinkedIn:** [IRIS ITS](https://www.linkedin.com/company/iris-its/)

IRIS uses LinkedIn for more professional and institutional activities, including robotics education, school visits, research exhibitions, technical events, sponsor activities, and industry collaboration.

This channel presents IRIS not only as a competition team, but also as a university robotics group involved in **education, research, and external partnerships**.

#### YouTube — Team Profile and Qualification Content

IRIS also publishes longer-form video content through YouTube.

IRIS’s official website highlights:

- [IRIS ITS Team Profile 2026](https://www.youtube.com/watch?v=bUpcBt012G4)

- [RoboCup 2026 Qualification Video](https://www.youtube.com/watch?v=lxeCMfvK6Pc)

The RoboCup Qualification Video is also linked from the official Research & Publications page alongside Team Description Papers and engineering documentation. ([iris.its.ac.id](https://iris.its.ac.id/publications/))

YouTube therefore provides a longer-form view of the team, its robots, and its competition preparation.

#### GitHub and Publications — Technical Evidence

**GitHub:** [github.com/IRIS-ITS](https://github.com/IRIS-ITS)
**Publications:** [iris.its.ac.id/publications](https://iris.its.ac.id/publications/)

Behind its public-facing social media, IRIS also publishes firmware, robotics software, Team Description Papers, qualification materials, and engineering documentation.

The channels serve different but complementary roles:

| Channel | Main Role |
| --- | --- |
| Instagram | Competitions, engineering process, official achievements |
| TikTok | Workshop culture, informal engineering, team life |
| LinkedIn | Research, education, sponsors, industry collaboration |
| YouTube | Team profiles and qualification videos |
| GitHub | Firmware and software source |
| Website | Team, achievements, activities, and sponsors |
| Publications | Technical papers and engineering documentation |

Rather than posting the same material everywhere, IRIS appears to adapt its communication to each platform: **Instagram for competition storytelling, TikTok for workshop and team culture, LinkedIn for professional outreach, and YouTube for longer-form team and technical content**.

This broader public activity is relevant to ETH_CANable because it shows that the repository is part of the engineering ecosystem of an active autonomous-robotics team, rather than an isolated personal prototype.

---

### What Is ETH_CANable?

ETH_CANable is a **dual-channel CAN-to-Ethernet bridge firmware** that extends the concept of the open-source CANable adapter.

| Original CANable Concept | ETH_CANable |
| --- | --- |
| USB connection | W5500 Ethernet |
| Single CAN interface | Dual CAN interfaces |
| Serial SLCAN | SLCAN over UDP |
| Local PC adapter | Network-accessible CAN endpoint |

Each SLCAN command is prefixed with `0` or `1` to select one of the two CAN channels.

```plaintext
0S6\r  → Set CAN 0 to 500 Kbit/s
0O\r   → Open CAN 0
1O\r   → Open CAN 1
```

The repository documents bitrates from 10 Kbit/s to 1 Mbit/s, as well as normal, silent-monitoring, and internal-loopback modes.

---

### How It Works

```plaintext
PC Application
      │
      │ UDP / SLCAN
      ▼
 WIZnet W5500
      │ SPI
      ▼
 STM32G474
      │
  SLCAN Parser
    ┌─┴─┐
    ▼   ▼
 CAN 0 CAN 1
```

A host PC sends SLCAN commands to UDP port `5001`. The STM32 then parses the command and its channel prefix.

When a CAN frame is received, the firmware converts it back into SLCAN ASCII format and sends it to the UDP client over Ethernet.

Standard and extended CAN identifiers, data frames, and remote frames are supported.

---

### Role of the WIZnet W5500

W5500 use can be verified not only in the README but also **directly in the firmware source code**.

[`Core/Src/eth.c`](https://github.com/IRIS-ITS/ETH_CANable_Firmware/blob/main/Core/Src/eth.c) includes WIZnet ioLibrary and directly calls its hardware-socket APIs:

- `socket()`

- `recvfrom()`

- `sendto()`

The firmware opens a W5500 UDP socket, receives SLCAN commands, and sends CAN responses back through the same Ethernet path.

[`w5500_stm32_hal.c`](https://github.com/IRIS-ITS/ETH_CANable_Firmware/blob/main/Core/Src/w5500_stm32_hal.c) connects WIZnet ioLibrary to STM32 SPI1 and implements chip-select, reset, byte transfer, and burst transfer callbacks.

```plaintext
WIZnet ioLibrary
      │
      │ UDP Hardware Socket
      ▼
    W5500
      │ SPI1
      ▼
 STM32G474
      │
      ▼
 Dual CAN
```

The responsibilities are divided clearly:

| Responsibility | Main Component |
| --- | --- |
| Ethernet MAC / PHY | W5500 |
| Hardware UDP socket | W5500 |
| SPI and network configuration | STM32 firmware |
| SLCAN parsing | STM32 firmware |
| CAN TX/RX | STM32 FDCAN |
| Application-specific CAN meaning | Host / Robot software |

> **W5500 turns the two CAN buses into a standalone network-accessible endpoint and carries SLCAN data through ioLibrary hardware UDP sockets.**

---

### Why This Project Matters

#### From USB-to-CAN to Network CAN

A conventional USB-to-CAN adapter must normally remain physically close to its host computer.

ETH_CANable moves the CAN interface onto Ethernet, creating an architecture that can be useful for:

- Robot development benches

- Remote diagnostics

- Motor-controller testing

- CAN logging

- Distributed test equipment

- Autonomous-system laboratories

#### Two CAN Buses, One Ethernet Connection

One STM32 and one W5500 expose two independent CAN buses through a single Ethernet interface.

This can be useful in robots that separate drive motors, actuators, sensors, or other embedded subsystems across different CAN segments.

#### Direct WIZnet ioLibrary Integration

ETH_CANable does more than simply list W5500 in its hardware description.

The application source directly uses WIZnet ioLibrary hardware-socket APIs, making the project a useful reference for:

- STM32 + W5500

- CAN-to-Ethernet gateways

- UDP embedded gateways

- Robotics diagnostics

- Distributed test equipment

#### Built Inside a Complete Robotics Ecosystem

IRIS-ITS develops AI, vision, motion planning, embedded electronics, mechanical systems, and competition operations as part of one autonomous-robot platform.

ETH_CANable therefore illustrates how W5500 can fit into the actual development workflow of a competitive robotics team, rather than serving only as a standalone Ethernet demonstration.

---

### Testing and Current Status

The repository includes working firmware and test code rather than only a concept description.

Publicly available material includes:

- STM32CubeIDE project

- Dual FDCAN firmware

- W5500 ioLibrary integration

- SLCAN parser

- UDP transport

- Error tracking

- Basic connectivity tests

- Internal and physical loopback tests

- Robot motor-control frame tests

`test_loopback.py` documents a physical CAN1-to-CAN2 test using 120-ohm termination at both ends and verifies frame transfer in both directions.

The README also describes an application-level loopback test using CAN frame formats from the Hitam robot motor-control system, including CANopen SYNC frames, motor commands, and simulated TPDO feedback frames.

---

### Current Limitations

Based on the currently available public material:

- The repository currently contains only the initial commit reviewed here.

- There is no tagged release.

- No completed ETH_CANable hardware photograph or schematic is included.

- The firmware uses a default static IP and MAC configuration.

- Responses are returned to the most recently active UDP client.

- UDP itself does not guarantee delivery or ordering.

- Authentication and encryption are not implemented.

- The STM32 uses FDCAN peripherals, but the published frame format is based on Classic CAN.

- No independent latency, throughput, or packet-loss benchmark is published.

- The README references `LICENSE.md`, but that license file was not found in the reviewed repository root.

ETH_CANable is therefore best understood as a **working firmware reference and robotics development tool**, rather than a finished commercial CAN-to-Ethernet appliance.

---

### Related WIZnet Maker Projects

#### 1. Osaka Univ. RoboHan Gaku-Robo 2025 Circuit Board & Motor Driver

[View on WIZnet Maker](https://maker.wiznet.io/Benjamin/projects/osaka-univ-robohan-gaku-robo-2025-circuit-board-motor-driver/)

Osaka University’s RoboHan 2025 robot main board also combines **STM32 + W5500 + dual FDCAN**.

The difference is architectural: ETH_CANable is a dedicated bridge for raw CAN access, while the RoboHan board integrates Ethernet, CAN, encoders, and robot I/O into a main robot controller.

```plaintext
ETH_CANable
Ethernet ↔ CAN diagnostic bridge

RoboHan Board
Ethernet + CAN + Robot Main Control
```

#### 2. Controlling Xiaomi CyberGear via CAN with M5Stack

[View on WIZnet Maker](https://maker.wiznet.io/matthew/projects/controlling-xiaomi-cybergear-via-can-with-m5stack--a-practical-robotics-control-reference/)

This project uses an ESP32-based M5Stack system to control Xiaomi CyberGear actuators over CAN, with a W5500 + PoE LAN module available for network integration.

ETH_CANable differs by remaining application-neutral: it transports raw CAN frames instead of interpreting a specific motor protocol.

#### 3. W5500Ethernet for STM32

[View on WIZnet Maker](https://maker.wiznet.io/Lihan__/projects/w5500ethernet/)

W5500Ethernet is a general STM32 networking reference for W5500.

ETH_CANable goes one step further at the application level by using WIZnet ioLibrary UDP sockets in a complete dual-channel CAN gateway.

| Project | W5500 Role | Main Difference |
| --- | --- | --- |
| ETH_CANable | Connects dual CAN to Ethernet over UDP | Transparent CAN gateway |
| RoboHan Main Board | Robot main-controller networking | Full robot controller |
| CyberGear CAN Control | Network integration for CAN actuator control | Application-specific motor control |
| W5500Ethernet | STM32 Ethernet connectivity | General networking reference |

---

### Conclusion

ETH_CANable extends the familiar USB-to-CAN adapter concept into a **dual-channel Ethernet CAN interface**.

Its architecture combines:

```plaintext
UDP / SLCAN
     │
   W5500
     │
 STM32G474
   ┌─┴─┐
 CAN0 CAN1
```

The role of W5500 is particularly clear because WIZnet ioLibrary’s `socket()`, `recvfrom()`, and `sendto()` APIs are directly used in the firmware data path.

IRIS-ITS is also an important part of the story. The team uses Instagram to share competitions and development activities, LinkedIn for research, education, and industry collaboration, YouTube for team profiles and qualification videos, and GitHub and its Publications page for source code and deeper technical documentation.

> **ETH_CANable is both a W5500-based CAN-to-Ethernet bridge and a useful example of how an active university robotics team integrates open-source engineering, competition, and public technical communication.**

---

### FAQ

**Q. What is ETH_CANable?A.** It is firmware that uses an STM32G474 and W5500 to expose two CAN buses over Ethernet using UDP-based SLCAN.

**Q. How is it different from the original CANable?A.** It replaces the USB serial connection with Ethernet/UDP and expands the design from one CAN interface to two independent CAN channels.

**Q. Is W5500 actually used in the firmware source?A.** Yes. `eth.c` directly uses WIZnet ioLibrary functions such as `socket()`, `recvfrom()`, and `sendto()`, while a separate STM32 HAL layer controls W5500 over SPI.

**Q. Does it support CAN FD?A.** The STM32 uses FDCAN peripherals, but the currently documented SLCAN protocol and frame formats are based on Classic CAN with payloads of up to eight bytes.

**Q. Is it ready to use as a commercial CAN-to-Ethernet gateway?A.** It is currently closer to an open development reference. A tagged release, complete hardware package, independent network benchmarks, and a clearly available project license would still need to be confirmed.

---

### Key Links

- **Project:** [ETH_CANable Firmware](https://github.com/IRIS-ITS/ETH_CANable_Firmware)

- **IRIS GitHub:** [github.com/IRIS-ITS](https://github.com/IRIS-ITS)

- **Official Website:** [iris.its.ac.id](https://iris.its.ac.id/)

- **Instagram:** [@iris.itsrobotic](https://www.instagram.com/iris.itsrobotic/)

- **LinkedIn:** [IRIS ITS](https://www.linkedin.com/company/iris-its/)

- **Research & Publications:** [iris.its.ac.id/publications](https://iris.its.ac.id/publications/)

- **YouTube – Team Profile 2026:** [Watch](https://www.youtube.com/watch?v=bUpcBt012G4)

- **YouTube – RoboCup 2026 Qualification:** [Watch](https://www.youtube.com/watch?v=lxeCMfvK6Pc)

---

### Source Snapshot

| Item | Details |
| --- | --- |
| Project | [IRIS-ITS/ETH_CANable_Firmware](https://github.com/IRIS-ITS/ETH_CANable_Firmware) |
| Developer | IRIS ITS Robotics Team |
| Main MCU | STM32G474CBT6 |
| WIZnet product | W5500 |
| CAN interfaces | FDCAN1 + FDCAN2 |
| CAN mode | Classic CAN |
| Network transport | UDP |
| Application protocol | Channel-extended SLCAN |
| Default IP | `192.168.3.100` |
| Default UDP port | `5001` |
| Development environment | STM32CubeIDE |
| Reviewed revision | `3d623df94f0d6ab2f45a6ad9679ae1e9eb76782b` |
| Current source status | Firmware and test scripts published; no tagged release |
| Review date | August 18, 2026 |

The repository defines ETH_CANable as a **transparent dual-channel CAN-to-Ethernet bridge based on STM32G474CBT6 + W5500**. It moves the SLCAN concept of the original USB-based CANable onto Ethernet and extends the interface from one CAN channel to two independent FDCAN channels.

#### Key Sources

- [ETH_CANable GitHub Repository](https://github.com/IRIS-ITS/ETH_CANable_Firmware)

- [README — Hardware, Protocol, and Architecture](https://github.com/IRIS-ITS/ETH_CANable_Firmware/blob/main/README.md)

- [`eth.c` — WIZnet ioLibrary UDP implementation](https://github.com/IRIS-ITS/ETH_CANable_Firmware/blob/main/Core/Src/eth.c)

- [`w5500_stm32_hal.c` — STM32/W5500 SPI interface](https://github.com/IRIS-ITS/ETH_CANable_Firmware/blob/main/Core/Src/w5500_stm32_hal.c)

- [IRIS-ITS Official Website](https://iris.its.ac.id/)

- [IRIS-ITS GitHub](https://github.com/IRIS-ITS)

### ETH_CANable: IRIS-ITS의 W5500 기반 Dual CAN-to-Ethernet Bridge

### Summary

ETH_CANable은 STM32G474와 W5500을 이용해 두 개의 CAN 버스를 UDP 기반 SLCAN으로 Ethernet에 연결하는 IRIS-ITS의 오픈소스 로봇 네트워크 도구입니다.

---

### Source Snapshot

| 항목 | 확인 내용 |
| --- | --- |
| Project | [IRIS-ITS/ETH_CANable_Firmware](https://github.com/IRIS-ITS/ETH_CANable_Firmware) |
| Developer | IRIS ITS Robotics Team |
| Main MCU | STM32G474CBT6 |
| WIZnet product | W5500 |
| CAN interfaces | FDCAN1 + FDCAN2 |
| CAN mode | Classic CAN |
| Network transport | UDP |
| Application protocol | Channel-extended SLCAN |
| Default IP | `192.168.3.100` |
| Default UDP port | `5001` |
| Development environment | STM32CubeIDE |
| Reviewed revision | `3d623df94f0d6ab2f45a6ad9679ae1e9eb76782b` |
| Current source status | Firmware와 test scripts 공개, tagged release 없음 |
| Review date | August 18, 2026 |

Repository는 ETH_CANable을 **STM32G474CBT6 + W5500 기반 transparent dual-channel CAN-to-Ethernet bridge**로 정의합니다. 기존 USB CANable의 SLCAN 개념을 Ethernet으로 옮기고, 하나의 CAN interface를 두 개의 독립 FDCAN channel로 확장했습니다.

#### Key Sources

[ETH_CANable GitHub Repository](https://github.com/IRIS-ITS/ETH_CANable_Firmware)

[README — Hardware, Protocol and Architecture](https://github.com/IRIS-ITS/ETH_CANable_Firmware/blob/main/README.md)

[`eth.c` — WIZnet ioLibrary UDP implementation](https://github.com/IRIS-ITS/ETH_CANable_Firmware/blob/main/Core/Src/eth.c)

[`w5500_stm32_hal.c` — STM32/W5500 SPI interface](https://github.com/IRIS-ITS/ETH_CANable_Firmware/blob/main/Core/Src/w5500_stm32_hal.c)

[IRIS-ITS Official Website](https://iris.its.ac.id/)

[IRIS-ITS GitHub](https://github.com/IRIS-ITS)

---

### Overview

Robot 내부에서는 motor controller, actuator, sensor와 embedded board 사이의 통신에 CAN이 널리 사용됩니다. 반면 개발 PC나 상위 제어시스템은 Ethernet을 사용하는 경우가 많습니다.

ETH_CANable은 이 두 영역을 연결합니다.

기존 USB-to-CAN adapter처럼 PC에 직접 연결하는 대신 W5500을 이용해 두 개의 CAN bus를 Ethernet endpoint로 만들고, PC에서는 UDP를 통해 CAN bitrate 설정, frame 전송 및 bus traffic 수신을 수행합니다.

```plaintext
Development PC / Robot Computer
              │
              │ UDP + SLCAN
              ▼
        WIZnet W5500
              │ SPI
              ▼
       STM32G474CBT6
         ┌────┴────┐
         ▼         ▼
      CAN 0      CAN 1
```

ETH_CANable은 motor command나 sensor value 자체를 해석하는 application gateway가 아닙니다. **Raw CAN frame을 Ethernet과 두 CAN bus 사이에서 전달하는 transparent bridge**라는 점이 핵심입니다.

---

## About IRIS-ITS

**IRIS — ITS Robot with Intelligent System**은 인도네시아 수라바야의 Institut Teknologi Sepuluh Nopember(ITS)를 대표하는 학생 robotics team입니다.

2017년부터 autonomous soccer robot을 개발하며 RoboCup Middle Size League, FIRA RoboWorld Cup, Kontes Robot Indonesia 등의 대회에서 활동해 왔습니다. 팀은 Programming, Electrical, Mechanical, Non-Technical의 네 division으로 구성됩니다.

| Division | 주요 역할 |
| --- | --- |
| Programming | AI, computer vision, navigation, motion planning, strategy |
| Electrical | Power, sensors, motor controllers, communication networks |
| Mechanical | Chassis, drivetrain, kicking mechanism |
| Non-Technical | Sponsorship, media, events, public relations |

특히 ETH_CANable과 직접적으로 연결되는 Electrical Division은 motor controller와 communication network를 개발합니다. IRIS 공식 팀 페이지에는 현재 ETH_CANable repository의 initial commit author와 이름이 대응되는 **Ari Rangga Prasetio**도 Electrical Division 구성원으로 소개돼 있습니다. 다만 repository 자체는 프로젝트를 개인 소유가 아니라 `IRIS-ITS` organization project로 공개하고 있습니다.

IRIS GitHub에는 ETH_CANable 외에도 ROS 개발환경, robot base station, referee-box integration, STM32 utility, neural-network 관련 프로젝트 등이 공개돼 있어 하나의 robot을 mechanical·electrical·software layer 전체에서 개발하는 팀이라는 점을 확인할 수 있습니다.

---

### IRIS-ITS on Social Media

IRIS-ITS는 기술개발뿐 아니라 **SNS와 대외 커뮤니케이션도 조직적으로 운영하는 팀**입니다.

공식 조직에 별도의 Non-Technical Division을 두고 sponsorship, media, event management와 public relations를 담당하게 하고 있다는 점이 특징입니다.

#### Instagram — Competition, Lab and Team Story

**Instagram:** [@iris.itsrobotic](https://www.instagram.com/iris.itsrobotic/)

Instagram은 IRIS가 team activity와 robotics journey를 대중에게 보여주는 대표적인 community channel입니다. 공식 website도 신규 멤버 모집 CTA로 Instagram follow를 직접 연결하고 있습니다.

IRIS의 공개 visual content는 다음 네 범주를 중심으로 구성됩니다.

Competitions

Lab Work

Workshops

Team Life

Robot match만 보여주는 것이 아니라 assembly, soldering, workshop, competition과 team celebration을 함께 보여줍니다.

즉 콘텐츠 흐름은 다음과 같습니다.

```plaintext
Design → Build → Test → Competition → Achievement → Team
```

완성된 robot만 홍보하기보다 **로봇을 만드는 사람과 과정까지 하나의 story로 보여주는 방식**입니다.

#### LinkedIn — Research, Education and Industry Collaboration

**LinkedIn:** [IRIS ITS](https://www.linkedin.com/company/iris-its/)

LinkedIn은 보다 professional한 communication channel로 활용됩니다.

공개 게시물에서는 다음과 같은 활동을 확인할 수 있습니다.

Student and school visits

Robotics education

Research exhibitions

Robotics Open House

Technical talks

Alumni engagement

Sponsor guest lectures

예를 들어 sponsor인 PT Igus Indonesia와의 guest lecture에서는 sponsor logo만 노출한 것이 아니라 Energy Chain System이라는 실제 산업기술을 교육 콘텐츠와 연결했습니다.

따라서 LinkedIn은 IRIS를 **university robotics research와 industry collaboration을 연결하는 팀**으로 보여주는 역할을 합니다.

#### YouTube — Team Profile and Technical Proof

YouTube는 Instagram처럼 일상적인 short-form communication보다는 team profile과 competition qualification을 보여주는 long-form channel에 가깝습니다.

IRIS 공식 사이트에서는 다음 영상을 별도의 media asset으로 소개합니다.

[IRIS ITS Team Profile 2026](https://www.youtube.com/watch?v=bUpcBt012G4)

[RoboCup 2026 Qualification Video](https://www.youtube.com/watch?v=lxeCMfvK6Pc)

RoboCup Qualification Video는 일반 promotional video와 달리 Team Description Paper, Software Flowchart, Mechanical/Electrical documentation과 함께 공식 Research & Publications page에 배치돼 있습니다.

#### GitHub and Publications — Technical Evidence

**GitHub:** [github.com/IRIS-ITS](https://github.com/IRIS-ITS)
**Publications:** [iris.its.ac.id/publications](https://iris.its.ac.id/publications/)

IRIS는 SNS에서 활동 모습을 보여주는 것에 그치지 않고 qualification video, Team Description Paper, software architecture, mechanical/electrical documentation과 academic publications까지 별도로 공개합니다.

채널별 역할을 정리하면 다음과 같습니다.

| Channel | 주요 역할 |
| --- | --- |
| Instagram | Competition, lab, team culture, community |
| LinkedIn | Research, education, sponsor and industry relations |
| YouTube | Team profile, qualification, long-form evidence |
| GitHub | Firmware and software source |
| Website | Team, achievements, activities and sponsors |
| Publications | Technical papers and engineering documentation |

ETH_CANable이 단순한 개인 prototype이 아니라 **실제 autonomous-robot team의 engineering ecosystem에서 나온 프로젝트**라는 점을 이해하는 데 이 활동들이 중요한 배경이 됩니다.

---

## What Is ETH_CANable?

ETH_CANable은 기존 open-source CANable adapter의 개념을 Ethernet으로 확장한 **dual-channel CAN-to-Ethernet bridge firmware**입니다.

| Original CANable concept | ETH_CANable |
| --- | --- |
| USB connection | W5500 Ethernet |
| Single CAN interface | Dual CAN interfaces |
| Serial SLCAN | SLCAN over UDP |
| Local PC adapter | Network-accessible CAN endpoint |

각 SLCAN command 앞에는 `0` 또는 `1`을 붙여 두 CAN channel 중 하나를 선택합니다.

```plaintext
0S6\r  → CAN 0을 500 Kbit/s로 설정
0O\r   → CAN 0 Open
1O\r   → CAN 1 Open
```

Repository는 10 Kbit/s부터 1 Mbit/s까지의 bitrate와 normal, silent monitoring, internal loopback mode 등을 문서화하고 있습니다.

---

### How It Works

```plaintext
PC Application
      │
      │ UDP / SLCAN
      ▼
 WIZnet W5500
      │ SPI
      ▼
 STM32G474
      │
  SLCAN Parser
    ┌─┴─┐
    ▼   ▼
 CAN 0 CAN 1
```

Host PC가 UDP port `5001`로 SLCAN command를 보내면 STM32가 command와 channel prefix를 해석합니다.

CAN에서 frame이 수신되면 반대로 SLCAN ASCII 형식으로 변환한 뒤 Ethernet을 통해 client에게 전달합니다.

Standard CAN ID와 extended CAN ID, data frame과 remote frame을 지원합니다.

---

## Role of the WIZnet W5500

이 프로젝트에서는 W5500 사용을 README뿐 아니라 **실제 firmware source에서 직접 확인할 수 있습니다.**

[`Core/Src/eth.c`](https://github.com/IRIS-ITS/ETH_CANable_Firmware/blob/main/Core/Src/eth.c)는 WIZnet ioLibrary를 포함하고 다음 hardware-socket API를 직접 호출합니다.

`socket()`

`recvfrom()`

`sendto()`

Firmware는 W5500 UDP socket을 열고 SLCAN command를 수신한 뒤, CAN에서 돌아온 데이터를 동일한 Ethernet path로 전송합니다.

[`w5500_stm32_hal.c`](https://github.com/IRIS-ITS/ETH_CANable_Firmware/blob/main/Core/Src/w5500_stm32_hal.c)에서는 SPI1 read/write, chip-select, reset callback을 WIZnet ioLibrary와 연결합니다.

```plaintext
WIZnet ioLibrary
      │
      │ UDP Hardware Socket
      ▼
    W5500
      │ SPI1
      ▼
 STM32G474
      │
      ▼
 Dual CAN
```

역할을 구분하면 다음과 같습니다.

| 역할 | 담당 |
| --- | --- |
| Ethernet MAC / PHY | W5500 |
| Hardware UDP socket | W5500 |
| SPI 및 network configuration | STM32 firmware |
| SLCAN parsing | STM32 firmware |
| CAN TX/RX | STM32 FDCAN |
| CAN message의 실제 application 의미 | Host / Robot software |

> **W5500은 두 개의 CAN bus를 Ethernet에서 접근 가능한 standalone network endpoint로 만들고, ioLibrary hardware UDP socket을 통해 SLCAN 데이터를 전달합니다.**

---

## Why This Project Matters

#### From USB-to-CAN to Network CAN

일반 USB-to-CAN adapter는 host computer와 물리적으로 가까운 곳에 연결해야 합니다.

ETH_CANable은 CAN interface를 Ethernet endpoint로 만들어 robot development bench, remote diagnostics, motor-controller testing, CAN logging과 distributed test equipment 같은 환경으로 사용범위를 확장할 수 있는 구조를 제공합니다.

#### Two CAN Buses, One Ethernet Connection

하나의 STM32와 하나의 W5500을 통해 두 개의 독립 CAN bus를 관리할 수 있다는 점도 특징입니다.

Drive motors, actuator network 또는 별도의 embedded subsystem처럼 여러 CAN segment를 가진 robot에서 하나의 Ethernet endpoint를 진단창구로 활용할 수 있습니다.

#### Direct WIZnet ioLibrary Integration

ETH_CANable은 W5500을 단순히 hardware list에 올린 프로젝트가 아닙니다.

실제 application source에서 WIZnet ioLibrary의 socket API를 직접 사용하기 때문에 다음 분야에서 명확한 reference가 됩니다.

STM32 + W5500

CAN-to-Ethernet gateway

UDP embedded gateway

Robotics diagnostics

Distributed test equipment

#### Built Inside a Complete Robotics Ecosystem

IRIS-ITS는 CAN firmware만 개발하는 팀이 아니라 AI, vision, motion planning, embedded electronics, mechanical design과 competition operation을 함께 수행합니다.

따라서 ETH_CANable은 **W5500이 실제 autonomous-robot development workflow의 network tool로 적용된 사례**라는 점에서 의미가 있습니다.

---

## Testing and Current Status

Repository에는 concept 설명뿐 아니라 실제 firmware와 test code가 포함돼 있습니다.

공개된 주요 자료는 다음과 같습니다.

STM32CubeIDE project

Dual FDCAN firmware

W5500 ioLibrary integration

SLCAN parser

UDP transport

Error tracking

Basic connectivity test

Internal/physical loopback tests

Robot motor-control frame test

`test_loopback.py`는 CAN1과 CAN2를 연결하고 양쪽에 120Ω termination을 구성한 뒤 CAN 0 → CAN 1, CAN 1 → CAN 0 양방향 frame 전달을 확인하도록 작성돼 있습니다.

README에는 실제 Hitam robot motor-control format을 이용하는 application-level loopback test도 설명되어 있습니다. CANopen SYNC, motor command, simulated TPDO feedback frame 등을 시험 대상으로 사용합니다.

---

## Current Limitations

현재 공개자료 기준으로 다음 사항은 고려해야 합니다.

Repository에는 현재 initial commit 한 개만 확인됨

Tagged release 없음

완성된 ETH_CANable hardware 사진과 schematic 없음

Default static IP와 MAC configuration 사용

마지막으로 통신한 UDP client를 대상으로 response 전송

UDP 자체에는 delivery와 ordering 보장이 없음

Authentication과 encryption 없음

STM32 FDCAN peripheral을 사용하지만 공개 frame format은 Classic CAN 기준

Independent latency, throughput 또는 packet-loss benchmark 없음

README는 `LICENSE.md`를 언급하지만 검토한 repository root에서는 해당 license file을 확인하지 못함

따라서 현재 ETH_CANable은 finished commercial appliance라기보다 **실제 robotics 환경을 위해 구현되고 test code까지 공개된 firmware reference / development tool**로 보는 것이 적절합니다.

---

## Related WIZnet Maker Projects

### 1. Osaka Univ. RoboHan Gaku-Robo 2025 Circuit Board & Motor Driver

[View on WIZnet Maker](https://maker.wiznet.io/Benjamin/projects/osaka-univ-robohan-gaku-robo-2025-circuit-board-motor-driver/)

Osaka University RoboHan의 2025 robot main board 역시 **STM32 + W5500 + dual FDCAN**이라는 유사한 hardware 구성을 사용합니다. 하지만 ETH_CANable이 raw CAN access를 위한 dedicated bridge인 데 비해 RoboHan board는 encoder와 robot I/O까지 통합한 main controller입니다.

```plaintext
ETH_CANable
Ethernet ↔ CAN diagnostic bridge

RoboHan Board
Ethernet + CAN + Robot Main Control
```

### 2. Controlling Xiaomi CyberGear via CAN with M5Stack

[View on WIZnet Maker](https://maker.wiznet.io/matthew/projects/controlling-xiaomi-cybergear-via-can-with-m5stack--a-practical-robotics-control-reference/)

이 프로젝트는 ESP32 기반 M5Stack으로 Xiaomi CyberGear actuator를 CAN으로 제어하고, W5500 + PoE LAN module을 network integration option으로 활용합니다.

ETH_CANable은 특정 motor를 제어하지 않고 raw CAN frame을 전달한다는 차이가 있습니다.

### 3. W5500Ethernet for STM32

[View on WIZnet Maker](https://maker.wiznet.io/Lihan__/projects/w5500ethernet/)

W5500Ethernet은 STM32 환경에서 W5500을 사용하기 위한 범용 Ethernet software reference입니다. ETH_CANable은 그보다 application layer가 구체적이며 WIZnet ioLibrary UDP socket을 dual-CAN gateway에 직접 적용합니다.

| Project | W5500 역할 | 주요 차이 |
| --- | --- | --- |
| ETH_CANable | Dual CAN을 UDP로 Ethernet에 연결 | Transparent CAN gateway |
| RoboHan Main Board | Robot main-controller networking | Full robot controller |
| CyberGear CAN Control | CAN actuator의 network integration | Application-specific motor control |
| W5500Ethernet | STM32 Ethernet connectivity | General networking reference |

---

## Conclusion

ETH_CANable은 기존 USB-to-CAN adapter의 개념을 **dual-channel Ethernet CAN interface**로 확장한 IRIS-ITS의 robotics project입니다.

구성은 명확합니다.

```plaintext
UDP / SLCAN
     │
   W5500
     │
 STM32G474
   ┌─┴─┐
 CAN0 CAN1
```

특히 WIZnet ioLibrary의 `socket()`, `recvfrom()`, `sendto()`가 실제 data path에서 사용되기 때문에 W5500의 역할을 source 수준에서 직접 확인할 수 있습니다.

프로젝트를 만든 IRIS-ITS 역시 중요한 부분입니다. IRIS는 autonomous soccer robot을 개발하는 student robotics team으로, Instagram에서는 competition과 team development를 보여주고, LinkedIn에서는 research·education·industry collaboration을 소개하며, YouTube에서는 qualification과 team-profile 영상을 제공하고, GitHub와 Publications에서는 source code와 technical documentation을 공개합니다.

> **ETH_CANable은 W5500을 이용한 CAN-to-Ethernet bridge인 동시에, 연구·대회·오픈소스·대외 커뮤니케이션을 함께 운영하는 IRIS-ITS의 robotics development ecosystem을 보여주는 좋은 UCC 사례입니다.**

---

## FAQ

**Q. ETH_CANable은 무엇인가요?A.** STM32G474와 W5500을 이용해 두 개의 CAN bus를 UDP 기반 SLCAN으로 Ethernet에 연결하는 firmware입니다.

**Q. 기존 CANable과 무엇이 다른가요?A.** 기존 USB serial connection을 Ethernet/UDP로 바꾸고, 하나의 CAN interface를 두 개의 독립 CAN channel로 확장했습니다.

**Q. W5500이 실제 firmware에서 사용되나요?A.** 네. `eth.c`에서 WIZnet ioLibrary의 `socket()`, `recvfrom()`, `sendto()`를 직접 사용하고 있으며, 별도의 STM32 HAL layer에서 W5500 SPI와 reset을 제어합니다.

**Q. CAN FD를 지원하나요?A.** STM32의 FDCAN peripheral을 사용하지만 현재 공개된 SLCAN protocol과 frame 형식은 최대 8-byte payload의 Classic CAN을 기준으로 합니다.

**Q. 상용 CAN-Ethernet gateway로 바로 사용할 수 있나요?A.** 현재는 firmware와 test scripts가 공개된 development reference에 가깝습니다. Tagged release, hardware package, independent network benchmark와 명확한 license file은 추가 확인이 필요합니다.

---

## Key Links

**Project:** [ETH_CANable Firmware](https://github.com/IRIS-ITS/ETH_CANable_Firmware)

**IRIS GitHub:** [github.com/IRIS-ITS](https://github.com/IRIS-ITS)

**Official Website:** [iris.its.ac.id](https://iris.its.ac.id/)

**Instagram:** [@iris.itsrobotic](https://www.instagram.com/iris.itsrobotic/)

**LinkedIn:** [IRIS ITS](https://www.linkedin.com/company/iris-its/)

**Research & Publications:** [iris.its.ac.id/publications](https://iris.its.ac.id/publications/)

**YouTube – Team Profile 2026:** [Watch](https://www.youtube.com/watch?v=bUpcBt012G4)

**YouTube – RoboCup 2026 Qualification:** [Watch](https://www.youtube.com/watch?v=lxeCMfvK6Pc)

---

Source: https://maker.wiznet.io/matthew/projects/eth-canable-firmware---can--iris-its------robot/
