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.
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.
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
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)
| 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)
Instagram — Competition and Team Storytelling
source: https://www.instagram.com/iris.itsrobotic/
Instagram: @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
source: https://www.tiktok.com/@iris.itsrobotic
TikTok: @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
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:
The RoboCup Qualification Video is also linked from the official Research & Publications page alongside Team Description Papers and engineering documentation. (iris.its.ac.id)
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
Publications: 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 |
|---|---|
| Competitions, engineering process, official achievements | |
| TikTok | Workshop culture, informal engineering, team life |
| 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.
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
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 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 connects WIZnet ioLibrary to STM32 SPI1 and implements chip-select, reset, byte transfer, and burst transfer callbacks.
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
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.
ETH_CANable
Ethernet ↔ CAN diagnostic bridge
RoboHan Board
Ethernet + CAN + Robot Main Control
2. Controlling Xiaomi CyberGear via CAN with M5Stack
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
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:
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
- IRIS GitHub: github.com/IRIS-ITS
- Official Website: iris.its.ac.id
- Instagram: @iris.itsrobotic
- LinkedIn: IRIS ITS
- Research & Publications: iris.its.ac.id/publications
- YouTube – Team Profile 2026: Watch
- YouTube – RoboCup 2026 Qualification: Watch
Source Snapshot
| Item | Details |
|---|---|
| Project | 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
- README — Hardware, Protocol, and Architecture
eth.c— WIZnet ioLibrary UDP implementationw5500_stm32_hal.c— STM32/W5500 SPI interface- IRIS-ITS Official Website
- IRIS-ITS GitHub
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 |
| 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
README — Hardware, Protocol and Architecture
eth.c — WIZnet ioLibrary UDP implementation
w5500_stm32_hal.c — STM32/W5500 SPI interface
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 수신을 수행합니다.
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
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을 함께 보여줍니다.
즉 콘텐츠 흐름은 다음과 같습니다.
Design → Build → Test → Competition → Achievement → Team
완성된 robot만 홍보하기보다 로봇을 만드는 사람과 과정까지 하나의 story로 보여주는 방식입니다.
LinkedIn — Research, Education and Industry Collaboration
LinkedIn: 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으로 소개합니다.
RoboCup 2026 Qualification Video
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
Publications: iris.its.ac.id/publications
IRIS는 SNS에서 활동 모습을 보여주는 것에 그치지 않고 qualification video, Team Description Paper, software architecture, mechanical/electrical documentation과 academic publications까지 별도로 공개합니다.
채널별 역할을 정리하면 다음과 같습니다.
| Channel | 주요 역할 |
|---|---|
| Competition, lab, team culture, community | |
| 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 중 하나를 선택합니다.
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
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는 WIZnet ioLibrary를 포함하고 다음 hardware-socket API를 직접 호출합니다.
socket()
recvfrom()
sendto()
Firmware는 W5500 UDP socket을 열고 SLCAN command를 수신한 뒤, CAN에서 돌아온 데이터를 동일한 Ethernet path로 전송합니다.
w5500_stm32_hal.c에서는 SPI1 read/write, chip-select, reset callback을 WIZnet ioLibrary와 연결합니다.
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
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입니다.
ETH_CANable
Ethernet ↔ CAN diagnostic bridge
RoboHan Board
Ethernet + CAN + Robot Main Control
2. Controlling Xiaomi CyberGear via CAN with M5Stack
이 프로젝트는 ESP32 기반 M5Stack으로 Xiaomi CyberGear actuator를 CAN으로 제어하고, W5500 + PoE LAN module을 network integration option으로 활용합니다.
ETH_CANable은 특정 motor를 제어하지 않고 raw CAN frame을 전달한다는 차이가 있습니다.
3. W5500Ethernet for STM32
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입니다.
구성은 명확합니다.
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
IRIS GitHub: github.com/IRIS-ITS
Official Website: iris.its.ac.id
Instagram: @iris.itsrobotic
LinkedIn: IRIS ITS
Research & Publications: iris.its.ac.id/publications
YouTube – Team Profile 2026: Watch
YouTube – RoboCup 2026 Qualification: Watch
