Wiznet makers

scott

Published August 12, 2026 ©

143 UCC

20 WCC

51 VAR

0 Contests

0 Followers

0 Following

Original Link

NEXTuino BASE — RP2040 Entry-Level Industrial Arduino PLC

Why Doesn't the Arduino Opta Use WIZnet? — The Fork in Industrial PLC Ethernet Design

COMPONENTS Hardware components

WIZnet - W5500

x 1


PROJECT DESCRIPTION

요약

Arduino 호환 산업용 PLC를 만드는 벤더들은 MCU를 ATmega2560, SAMD21, RP2040, ESP32로 제각각 고르면서도, 이더넷만큼은 WIZnet W5100·W5500으로 일제히 수렴했습니다. 반면 Arduino 본가의 Opta는 이 흐름을 따르지 않았습니다. 이 글은 5개 벤더의 설계를 교차 분석해, 그 갈림길이 브랜드가 아니라 MCU 체급에 있음을 밝힙니다.

개요

지난 10여 년 사이 "Arduino 호환 산업용 PLC" 라는 제품 카테고리가 자리를 잡았습니다. 12~24 V DC 입력, DIN 레일 하우징, 보호 회로가 적용된 I/O를 갖추면서도, 프로그래밍은 Arduino IDE와 표준 라이브러리를 그대로 쓰는 컨트롤러들입니다.

이 카테고리의 매력은 명확합니다. 전용 IDE 라이선스와 벤더 종속 없이, 이미 확보된 Arduino 개발 인력으로 소형 설비를 자동화할 수 있습니다. 대상 독자는 소형 머신을 설계하는 OEM 빌더, 시스템 인테그레이터, 그리고 상용 PLC의 진입 비용이 부담스러운 설비팀입니다.

흥미로운 것은 이들 제품의 부품 선택 패턴입니다. MCU는 벤더마다 다르고 세대마다 바뀌는데, 이더넷 컨트롤러만은 놀라울 만큼 일치합니다. 우연이 아니라 구조적 제약의 결과이며, 그 제약이 무엇인지가 이 글의 주제입니다.

한 카탈로그 안의 사다리 — 모델 11종이 말해 주는 것

이 패턴은 벤더를 여러 곳 비교하기 전에, 한 회사의 제품 카탈로그 안에서 이미 드러납니다. NEXTuino 제품군은 등급 4종에 변형을 더해 모델 11종으로 구성되어 있습니다.

등급모델 수MCUSRAM이더넷대표 I/O
RISE2ATmega3282 KB없음8 DI / 8 DO / 6 릴레이
BASE1RP2040264 KBW55006×24-bit AI / 8 DO
PEAK 계열6ATmega25608 KBW510012~18 DI / 5~10 릴레이
CREST 계열2ATmega25608 KBW510021 DI / 24 DO / 16 릴레이

변형은 세 가지 축으로만 파생됩니다.

  • CORE — Arduino 핀 헤더를 제거한 헤더리스 버전. 실드 확장이 필요 없는 OEM 양산용 원가 최적화입니다
  • FLEX — 디지털 입력을 18개로 늘리고 0~10 V 아날로그 입출력을 추가하는 대신, RS-485를 포기하고 24 V 전용이 됩니다
  • PLUS — 10 A 릴레이 10개를 16 A 파워 릴레이 5개로 교체합니다. 개수 대신 용량을 택한 구성입니다

주목할 것은 이 세 축이 건드리지 않는 영역입니다. 입력 개수, 릴레이 용량, 아날로그 유무, 헤더 유무, 전원 범위가 전부 바뀌는 동안 MCU와 이더넷 계층은 한 번도 재설계되지 않았습니다. ADVANCED 등급 8개 모델은 예외 없이 ATmega2560 + W5100 조합입니다.

그리고 세로로 보면 다른 선이 하나 더 보입니다. SRAM 2 KB의 RISE에는 이더넷이 아예 없습니다. 통신은 UART·SPI·I²C·USB뿐입니다. 8 KB에서는 W5100이 붙고, 264 KB에서는 W5500으로 올라갑니다.

같은 회사, 같은 설계팀, 같은 인증 절차입니다. 그런데 이더넷만 세 갈래로 갈립니다. 다른 벤더들은 어떨까요.

→ 제품군 페이지: https://www.nextuino.com/products/

도입 배경 — 왜 지금 이 카테고리인가

이 패턴이 한 회사만의 사정인지 확인하려면 카테고리 전체를 봐야 합니다. 그전에 이 카테고리가 왜 형성되었는지부터 짚겠습니다.

산업적 필요성은 확인된 사실입니다. 오픈소스 PLC 런타임인 OpenPLC는 IEC 61131-3 준수 여부가 학술 논문으로 검증되었고, Modbus TCP는 SCADA 연동의 사실상 공용어로 정착했습니다. 라이선스 비용 없이 표준 PLC 프로그래밍이 가능해지면서, 소형 자동화의 진입 장벽이 실질적으로 내려갔습니다.

→ OpenPLC 논문: https://www.sciencedirect.com/science/article/am/pii/S0167404818305388

실제 도입 사례도 존재합니다. 페루에서 개발된 JWPLC Basic은 대학 강의실과 세탁 공장에 실제로 투입되었고, Industruino의 IND.I/O는 살균등 제어 설비에서 Modbus TCP로 운용되고 있습니다. DIY 수준에 머문 실험이 아니라는 뜻입니다.

산업 트렌드도 같은 방향입니다. Qualcomm은 2025년 10월 Arduino 인수를 발표하며 자동화·로보틱스 시장 진출을 명시했고, Raspberry Pi Holdings 역시 상장 이후 RP2040·RP2350 계열로 산업 임베디드 영역을 넓히고 있습니다. 주목할 점은 커뮤니티와 서드파티 벤더가 훨씬 먼저 움직였다는 것입니다. CONTROLLINO와 Industruino가 산업용 Arduino 컨트롤러를 내놓은 시점은 Arduino 본가가 Opta를 발표한 2022년보다 여러 해 앞섭니다.

→ Qualcomm 인수 발표: https://www.qualcomm.com/news/releases/2025/10/qualcomm-to-acquire-arduino-accelerating-developers--access-to-i

카테고리 지도 — 무엇이 다르고 무엇이 같은가

벤더 / 제품MCUSRAM이더넷필드버스
CONTROLLINO MAXIATmega25608 KBW5100RS-485
CONTROLLINO MICRORP2040264 KBW5500RS-485 또는 CAN
Industrial Shields M-DuinoATmega25608 KBW5500RS-485
Industruino (확장 모듈)SAMD21 계열32 KBW5500RS-485
JWPLC BasicESP32약 520 KBW5500RS-485
Arduino OptaSTM32H747약 1 MBMCU 내장 MAC + 외부 PHYRS-485

MCU는 4종으로 갈라졌지만 이더넷은 한 곳으로 모였습니다. 그리고 유일한 예외가 표의 맨 아랫줄입니다.

분기점 — Opta는 왜 다른 길을 갔나

Arduino AFX00002

Arduino 본가의 Opta는 STM32H747XI를 씁니다. Cortex-M7 480 MHz와 Cortex-M4 240 MHz의 듀얼 코어약 1 MB급 SRAM, 그리고 이더넷 MAC이 MCU에 내장된 상위 체급 부품입니다.

이 체급에서는 lwIP 같은 소프트웨어 TCP/IP 스택을 얹는 것이 합리적 선택입니다. MAC이 이미 칩 안에 있으니 외부 PHY만 붙이면 되고, 스택이 차지하는 수십 KB의 코드와 소켓 버퍼도 1 MB SRAM에서는 부담이 되지 않습니다.

문제는 나머지 체급입니다.

  • ATmega2560의 SRAM은 8 KB입니다. TCP 재조립 버퍼 하나조차 여유롭게 잡기 어렵습니다.
  • RP2040은 264 KB로 나아졌지만, 24-bit ADC 샘플 버퍼와 IEC 61131-3 스캔 사이클을 동시에 돌려야 합니다.
  • 두 MCU 모두 이더넷 MAC이 내장되어 있지 않습니다.

즉 갈림길은 브랜드나 취향이 아니라 MCU 체급입니다. 내장 MAC과 대용량 SRAM을 가진 상위 MCU는 소프트웨어 스택을 감당할 수 있지만, 산업용 PLC 시장의 대다수를 차지하는 중저가 체급에서는 감당이 불가능합니다. 그 체급 전체가 하드와이어드 TCP/IP 칩으로 수렴한 이유입니다.

[추정] Opta의 정확한 PHY 부품번호는 공식 자료에서 확인되지 않아, 여기서는 아키텍처 수준까지만 서술합니다.

→ Arduino Opta 공식 문서: https://docs.arduino.cc/hardware/opta/

공통 아키텍처

체급이 달라도 카테고리 전체가 공유하는 3계층 구조는 동일합니다.

MCU가 어떤 것이든 이더넷 컨트롤러는 SPI 한 가닥으로 붙습니다. 이 인터페이스의 단순함이 벤더가 MCU를 교체해도 네트워크 계층을 그대로 유지하게 만드는 실질적 이유입니다.

기술 배경

Modbus TCP

Modbus TCP는 1979년의 시리얼 프로토콜 Modbus를 TCP/IP 위로 옮긴 산업 표준입니다. 기존 Modbus 요청 프레임에서 시리얼용 오류 검사를 제거하고, 트랜잭션 ID·프로토콜 ID·길이·유닛 ID로 구성된 MBAP 헤더를 앞에 붙여 TCP 502번 포트로 주고받습니다.

핵심은 오류 검출과 재전송을 TCP에 위임했다는 점입니다. 프로토콜 자체는 극도로 단순해졌고, 대신 신뢰성 있는 TCP 연결을 유지하는 부담이 기기 쪽으로 넘어왔습니다. 이 카테고리의 모든 제품이 SCADA 연동에 Modbus TCP를 쓰는 만큼, 이 부담을 누가 지느냐가 설계의 핵심 변수가 됩니다.

IEC 61131-3와 OpenPLC

IEC 61131-3는 PLC 프로그래밍 언어의 국제 표준으로, 래더 다이어그램(LD), 구조화 텍스트(ST), 명령어 목록(IL), 기능 블록도(FBD), 순차 기능 차트(SFC) 다섯 가지를 규정합니다. 동작 모델은 입력 읽기 → 로직 실행 → 출력 쓰기를 주기적으로 반복하는 스캔 사이클입니다.

OpenPLC는 이 표준을 구현한 오픈소스 런타임으로, Arduino 계열 보드에 IEC 61131-3 프로그램을 올릴 수 있게 해 줍니다. 이 카테고리가 "취미용 보드"가 아니라 "PLC"로 불릴 수 있는 소프트웨어적 근거이며, OpenPLC가 W5100과 W5500을 네이티브 지원한다는 점은 뒤에서 다룰 수렴 현상을 고착화한 요인이기도 합니다.

RS-485와 CAN

RS-485는 차동 신호 기반의 멀티드롭 반이중 버스로, 한 쌍의 꼬임선에 다수 노드를 연결하고 마스터가 폴링하는 방식으로 충돌을 회피합니다. Modbus RTU의 물리 계층으로 널리 쓰입니다.

CAN은 메시지 ID 기반의 비파괴 중재를 사용해, 여러 노드가 동시에 송신해도 우선순위가 높은 메시지가 손상 없이 살아남습니다. 이벤트 구동형 분산 제어에 유리합니다.

두 버스는 요구하는 트랜시버와 프로토콜 처리가 완전히 달라, 다수 벤더가 "택일" 구조로 설계합니다. 필드 장비 구성이 제품 선택을 결정하는 지점입니다.

기술 특징

  • 12~24 V DC 입력과 보호 I/O — 제어반 배전 규격을 그대로 수용하고, 역전압·서지 보호를 기본 탑재합니다
  • DIN 레일 하우징(EN 60715) — 기존 제어반에 물리적으로 그대로 들어갑니다
  • Arduino 생태계 호환 — 개발 인력 재교육 비용이 사실상 0에 수렴합니다
  • 세대 간 코드 자산 유지 — MCU가 ATmega2560에서 RP2040으로 바뀌어도, 이더넷 라이브러리 API가 동일하면 통신 코드는 그대로 이식됩니다

마지막 항목이 특히 중요합니다. 부품 교체 비용을 결정하는 것은 부품 가격이 아니라 소프트웨어 재작성 비용이기 때문입니다.

왜 네트워크 계층만 수렴하는가 — WIZnet의 자리

W5500은 TCP/IP 스택, 10/100 이더넷 MAC, PHY를 하나의 실리콘에 담은 하드와이어드 컨트롤러입니다. 8개의 하드웨어 소켓과 32 KB 내부 패킷 버퍼를 갖추고 SPI로 MCU에 연결됩니다.

SCADA가 Modbus TCP로 레지스터를 읽어 갈 때 실제로 일어나는 일을 단계별로 보면 역할 분담이 분명해집니다.

  1. SCADA가 502번 포트로 TCP 연결을 요청합니다. W5500이 3-way 핸드셰이크를 자체 처리하고, MCU는 아직 개입하지 않습니다.
  2. Modbus 요청 패킷이 도착합니다. W5500이 이더넷 프레임 해석, IP 헤더 검증, TCP 체크섬 확인, 순서 재조립을 마칩니다.
  3. MCU는 SPI로 소켓 버퍼를 읽습니다. 손에 들어오는 것은 MBAP 헤더와 함수 코드, 레지스터 주소뿐입니다.
  4. MCU가 해당 레지스터 값을 채워 응답을 씁니다. 이것이 MCU가 하는 일의 거의 전부입니다.
  5. W5500이 TCP 세그먼트를 구성하고 체크섬을 계산해 전송합니다. 패킷 유실 시 재전송도 칩이 알아서 처리합니다.

비유하자면 W5500은 통관 대행 창구입니다. MCU는 컨테이너 안의 물건, 즉 레지스터 값만 확인하면 됩니다. 통관 서류 작성, 검역 절차, 반송 시 재신청 같은 일은 창구가 전담합니다. MCU가 하지 않는 일과 하는 일의 경계가 SPI 버스 위에 물리적으로 그어져 있습니다.

만약 이 칩이 없었다면 MCU는 lwIP 같은 소프트웨어 스택을 직접 안고 가야 합니다. 스택 코드가 플래시를 수십 KB 점유하고, 소켓마다 송수신 버퍼를 SRAM에 잡아야 하며, 재전송 타이머가 스캔 사이클과 CPU 시간을 다투게 됩니다. SRAM 8 KB의 ATmega2560에서는 사실상 성립하지 않고, 264 KB의 RP2040에서도 24-bit ADC 버퍼와 정면으로 충돌합니다.

세대 전환의 흔적이 이를 뒷받침합니다. ATmega2560 세대 제품들은 W5100을, RP2040·ESP32 세대는 W5500을 씁니다. 벤더들은 MCU를 갈아탈 때조차 WIZnet 안에서 업그레이드했을 뿐, 네트워크 계층 자체를 다른 방식으로 재설계하지 않았습니다.

WIZnet Makers의 검증된 패턴

How to Implement OpenPLC on STM32 with W5500 Ethernet and Modbus TCP — 본문에서 다룬 소프트웨어 측 근거를 실제 구현으로 보여 주는 사례입니다. OpenPLC가 W5100과 W5500을 네이티브 지원하므로 별도 포팅 없이 Modbus TCP가 동작합니다. 
→ 프로젝트 링크: https://maker.wiznet.io/jakelee/projects/how-to-implement-openplc-on-stm32-with-w5500-ethernet-and-modbus-tcp/

platform-jwplc / JWPLC Basic — 페루에서 개발된 ESP32 + W5500 산업용 PLC로, Arduino 계열이 아닌 MCU 진영에서도 동일한 선택이 반복됨을 보여 줍니다. 대학 강의실과 세탁 공장에 실제 도입된 DIY-상용화 사례이기도 합니다. 
→ 프로젝트 링크: https://maker.wiznet.io/scott/projects/platform-jwplc/

Modbus TCP between 2 IndustruinosIndustruino의 W5500 확장 모듈로 두 컨트롤러 간 I/O를 이더넷 확장한 사례입니다. 세 번째 독립 벤더에서도 같은 패턴이 나타납니다. 
→ 프로젝트 링크: https://maker.wiznet.io/mason/projects/modbus-tcp-between-2-industruinos/

세 사례는 MCU도 국적도 용도도 다르지만, 이더넷 계층의 설계 판단은 동일합니다. 이 카테고리에서 하드와이어드 TCP/IP는 선택지가 아니라 기본값에 가깝습니다.

항목OpenPLC on STM32JWPLC BasicIndustruino IND.I/O
MCUSTM32ESP32SAMD21 계열
이더넷W5500W5500W5500
상위 프로토콜Modbus TCPModbus TCPModbus TCP
프로그래밍OpenPLCPlatformIO 보드 패키지Arduino IDE
실도입교육·튜토리얼대학 · 세탁 공장살균등 제어 설비

**공통 설계 철학은 "제어 로직에 MCU를 전부 쓰고, 통신은 위임한다"**입니다. 차이는 MCU 체급과 적용 산업일 뿐, 네트워크 경계선의 위치는 세 사례가 같습니다.

비즈니스 가치

외부 관점 — 고객과 시장

  • 소형 설비 자동화의 총소유비용 절감 — 라이선스 비용 없는 IEC 61131-3 환경과 기존 Arduino 인력을 그대로 활용합니다
  • 정밀 계측 설비의 BOM 축소 — 고분해능 ADC를 내장한 제품군은 외부 시그널 컨디셔너를 제거할 수 있습니다
  • PoE 기반 분산 I/O 노드 — 이더넷 한 가닥으로 전원과 통신을 함께 공급하면, 제어반에서 멀리 떨어진 측정점에 별도 배전 없이 노드를 둘 수 있습니다
  • PLC 교육·훈련 시장 — 상용 PLC 트레이너 대비 훨씬 낮은 비용으로 실습 랙을 구성할 수 있으며, 이 수요는 Qualcomm과 Raspberry Pi의 산업 진출로 카테고리 자체가 커지면서 구조적으로 성장할 여지가 있습니다

내부 관점 — WIZnet

이 카테고리에서 확인되는 것은 픽스 앤 셔블 포지셔닝입니다. Arduino가 이기든 Raspberry Pi가 이기든, MCU가 8-bit에서 32-bit로 바뀌든, 중저가 체급이 존재하는 한 하드와이어드 TCP/IP 수요는 남습니다.

여기에 하나를 더 짚을 수 있습니다. 오픈소스 하드웨어 시장에서는 브랜드와 파트너십이 바뀌는 일이 드물지 않습니다. 그러나 브랜드가 교체되어도 설계 안의 실리콘 선택은 그대로 남습니다. 이 카테고리에서 WIZnet은 특정 브랜드의 부품이 아니라 카테고리의 기본값으로 자리 잡았습니다.

한계 및 개선 방향

이 카테고리가 상용 PLC를 대체하는 데는 아직 분명한 제약이 있습니다.

  • 연산 성능 — Cortex-M0+ 급 MCU에는 FPU와 DSP가 없어, 다채널 PID나 부동소수 필터링을 소프트웨어로 처리하면 스캔 타임 병목이 생깁니다
  • SPI 버스 경합 — 고분해능 ADC와 이더넷 컨트롤러가 같은 SPI를 공유하면 샘플링 지터가 발생할 수 있습니다. 버스 분리나 DMA 설계가 필요합니다
  • 보안 요소 — 산업 네트워크에 직결되는 기기임에도 시큐어 부트나 키 저장 대책이 명시되지 않은 제품이 있습니다
  • 동작 온도 — 다수 제품이 -10~+55 ℃ 범위로, 옥외나 비공조 제어반 적용에는 제약이 따릅니다

개선 방향은 이미 부품 차원에서 준비되어 있습니다. RP2040과 W5500을 하나의 패키지에 담은 W55RP20 같은 SiP를 쓰면 SPI 배선과 부품 수를 함께 줄일 수 있습니다. 이 카테고리의 무게중심이 RP2040 계열로 이동하고 있는 만큼, 다음 세대의 자연스러운 착지점이 될 수 있습니다. W5500의 하드웨어 소켓 8개를 SCADA·HMI·로깅 세션에 나누어 배정하는 설계도 다중 접속 안정성을 높이는 실용적인 접근입니다.

FAQ

W5100과 W5500 중 무엇을 골라야 하나요?

신규 설계라면 W5500입니다. 소켓 수와 내부 버퍼, SPI 대역폭 모두 앞서고, 산업용 온도 범위를 지원합니다. W5100은 기존 ATmega2560 세대 제품과의 호환 유지 목적에 한정하는 편이 좋습니다.

소프트웨어 TCP/IP 스택 대비 실제로 무엇이 줄어드나요?

스택 코드가 차지하던 플래시, 소켓 버퍼가 차지하던 SRAM, 재전송 타이머가 소모하던 CPU 시간이 함께 줄어듭니다. 구체적 절감폭은 MCU와 스택 구성에 따라 달라지므로, 대상 보드에서 직접 측정하시기를 권합니다.

SCADA가 여러 대 붙어도 괜찮은가요?

W5500은 하드웨어 소켓 8개를 독립적으로 관리합니다. SCADA, HMI, 로깅 서버에 소켓을 미리 배정해 두면 세션이 서로 간섭하지 않습니다. 다만 8개는 상한이므로 접속 수가 더 필요하면 게이트웨이 계층을 두는 설계가 필요합니다.

OpenPLC에서 별도 포팅이 필요한가요?

OpenPLC는 W5100과 W5500을 네이티브 지원합니다. Arduino Ethernet API를 그대로 사용하므로 별도 드라이버 작업 없이 Modbus TCP를 올릴 수 있습니다.

MCU 선택 기준은 무엇인가요?

필요한 아날로그 분해능과 제어 주기가 1차 기준입니다. 단순 시퀀스 제어라면 ATmega2560 계열로 충분하고, 고분해능 계측이나 다축 제어가 필요하면 RP2040·ESP32 이상을 권합니다. 어느 쪽을 고르든 이더넷 계층의 설계는 바뀌지 않는다는 점이 이 카테고리의 특징입니다.



Summary

Vendors building Arduino-compatible industrial PLCs pick their MCUs all over the map — ATmega2560, SAMD21, RP2040, ESP32. Yet for Ethernet, they converge on WIZnet W5100 and W5500. Arduino's own Opta does not follow this pattern. This article cross-analyzes five vendors and shows that the fork lies in MCU class, not brand preference.

Overview

Over the past decade, "Arduino-compatible industrial PLC" has become a real product category. These controllers accept 12–24 V DC input, mount in DIN-rail housings, and carry protected I/O — while you program them with the Arduino IDE and standard libraries, unchanged.

The appeal is clear. You automate small machines using the Arduino talent you already have, with no proprietary IDE license and no vendor lock-in. The audience is OEM machine builders, system integrators, and equipment teams for whom commercial PLC entry costs are hard to justify.

What makes these products interesting is their component selection pattern. MCUs differ by vendor and change by generation, but the Ethernet controller stays remarkably consistent. That is not coincidence. It is the result of a structural constraint, and identifying that constraint is the subject of this article.

The Ladder Inside a Single Catalog — What 11 Models Reveal

This pattern shows up before you compare vendors at all. It is already visible inside one company's catalog. The NEXTuino range consists of four tiers plus variants, for a total of 11 models.

TierModelsMCUSRAMEthernetRepresentative I/O
RISE2ATmega3282 KBNone8 DI / 8 DO / 6 relays
BASE1RP2040264 KBW55006× 24-bit AI / 8 DO
PEAK family6ATmega25608 KBW510012–18 DI / 5–10 relays
CREST family2ATmega25608 KBW510021 DI / 24 DO / 16 relays

Variants branch along three axes only.

  • CORE — a headerless version with the Arduino pin headers removed. This is cost optimization for OEM volume builds that never attach a shield
  • FLEX — raises digital inputs to 18 and adds 0–10 V analog input and output, but gives up RS-485 and runs on 24 V only
  • PLUS — swaps ten 10 A relays for five 16 A power relays. Capacity instead of channel count

What matters is what these three axes never touch. Input count, relay rating, analog capability, header presence, and supply range all change — yet the MCU and the Ethernet layer are never redesigned. All eight ADVANCED-tier models use the same ATmega2560 + W5100 pairing, without exception.

Read the table vertically and a second line appears. The RISE, with 2 KB of SRAM, has no Ethernet at all. Its interfaces are UART, SPI, I²C, and USB. At 8 KB, a W5100 appears. At 264 KB, it steps up to W5500.

Same company. Same design team. Same certification process. Yet Ethernet splits three ways. So what about other vendors?

→ Product range: https://www.nextuino.com/products/

Background — Why This Category, Why Now

To find out whether this pattern reflects one company's circumstances, we need to look at the whole category. First, though, consider why the category formed at all.

The industrial need is documented. OpenPLC, the open-source PLC runtime, has had its IEC 61131-3 compliance verified in peer-reviewed research, and Modbus TCP has settled in as the common language of SCADA integration. Standard PLC programming became available without license fees, which measurably lowered the barrier to small-scale automation.

→ OpenPLC paper: https://www.sciencedirect.com/science/article/am/pii/S0167404818305388

Real deployments exist as well. JWPLC Basic, developed in Peru, runs in a university classroom and a laundry plant. Industruino's IND.I/O controls disinfection lighting over Modbus TCP. These are not DIY experiments that stopped at the bench.

Industry trends point the same way. Qualcomm announced its acquisition of Arduino in October 2025, explicitly citing automation and robotics. Raspberry Pi Holdings has expanded into industrial embedded work with the RP2040 and RP2350 families since going public. What stands out is that the community and third-party vendors moved first. CONTROLLINO and Industruino shipped industrial Arduino controllers years before Arduino itself announced the Opta in 2022.

→ Qualcomm acquisition announcement: https://www.qualcomm.com/news/releases/2025/10/qualcomm-to-acquire-arduino-accelerating-developers--access-to-i

Category Map — What Differs and What Doesn't

Vendor / ProductMCUSRAMEthernetFieldbus
CONTROLLINO MAXIATmega25608 KBW5100RS-485
CONTROLLINO MICRORP2040264 KBW5500RS-485 or CAN
Industrial Shields M-DuinoATmega25608 KBW5500RS-485
Industruino (expansion module)SAMD21 family32 KBW5500RS-485
JWPLC BasicESP32~520 KBW5500RS-485
Arduino OptaSTM32H747~1 MBMCU-integrated MAC + external PHYRS-485

The MCU column splits four ways. The Ethernet column collapses into one. And the sole exception sits on the bottom row.

The Fork — Why Opta Took a Different Path

Arduino AFX00002

Arduino's own Opta runs on the STM32H747XI. That is an upper-class part: dual-core Cortex-M7 at 480 MHz plus Cortex-M4 at 240 MHz, roughly 1 MB of SRAM, and an Ethernet MAC built into the MCU itself.

At this class, running a software TCP/IP stack like lwIP is the sensible choice. The MAC already sits on the die, so the design only needs an external PHY. The tens of kilobytes the stack consumes, plus socket buffers, cost little against 1 MB of SRAM.

The problem lies with every other class.

  • The ATmega2560 has 8 KB of SRAM. Even a single TCP reassembly buffer is a tight fit.
  • The RP2040 improves this to 264 KB, but it must run 24-bit ADC sample buffers and an IEC 61131-3 scan cycle at the same time.
  • Neither MCU includes an Ethernet MAC.

So the fork is MCU class, not brand or taste. Upper-class MCUs with an integrated MAC and generous SRAM can absorb a software stack. The mid- and low-cost classes that make up most of the industrial PLC market cannot. That is why the entire class converged on hardwired TCP/IP silicon.

The three-way split we saw in the catalog follows the same line. At 2 KB of SRAM the vendor drops Ethernet entirely. At 8 KB it attaches a W5100. At 264 KB it moves up to W5500. Nobody picked these arbitrarily — the MCU class decided.

[Inferred] Official sources do not confirm the Opta's exact PHY part number, so this article describes the architecture only.

→ Arduino Opta documentation: https://docs.arduino.cc/hardware/opta/

Common Architecture

Whatever the class, the whole category shares the same three-layer structure.

Whatever the MCU, the Ethernet controller attaches over a single SPI link. That interface simplicity is the practical reason vendors keep the network layer intact even when they swap the MCU.

Technology Background

Modbus TCP

Modbus TCP is the industrial standard that moved the 1979 serial Modbus protocol onto TCP/IP. It strips the serial error check from the original request frame, prepends an MBAP header carrying transaction ID, protocol ID, length, and unit ID, and exchanges frames over TCP port 502.

The key point is that it delegates error detection and retransmission to TCP. The protocol itself became extremely simple, but the burden of maintaining a reliable TCP connection shifted onto the device. Every product in this category uses Modbus TCP for SCADA integration, so who carries that burden becomes the central design variable.

IEC 61131-3 and OpenPLC

IEC 61131-3 is the international standard for PLC programming languages. It defines five: Ladder Diagram (LD), Structured Text (ST), Instruction List (IL), Function Block Diagram (FBD), and Sequential Function Chart (SFC). Its execution model is a scan cycle that repeatedly reads inputs, runs logic, and writes outputs.

OpenPLC is an open-source runtime implementing that standard, letting Arduino-family boards execute IEC 61131-3 programs. It is the software reason this category earns the name "PLC" rather than "hobby board." And the fact that OpenPLC natively supports W5100 and W5500 helped lock in the convergence discussed below.

RS-485 and CAN

RS-485 is a differential multidrop half-duplex bus. It connects many nodes on a single twisted pair and avoids collisions through master polling. It serves widely as the physical layer for Modbus RTU.

CAN uses non-destructive arbitration based on message ID. When several nodes transmit at once, the higher-priority message survives intact. This suits event-driven distributed control.

The two buses need different transceivers and different protocol handling, so many vendors design them as an either-or choice. Your field device mix decides which product you buy.

Technical Highlights

  • 12–24 V DC input with protected I/O — accepts standard control-panel power directly, with reverse-polarity and surge protection built in
  • DIN-rail housing (EN 60715) — drops into existing control panels without mechanical rework
  • Arduino ecosystem compatibility — retraining cost for the development team approaches zero
  • Code assets survive generations — when the MCU moves from ATmega2560 to RP2040, communication code ports directly if the Ethernet library API stays the same

That last point carries the most weight. What determines the cost of changing a component is not the component price — it is the cost of rewriting software.

Why Only the Network Layer Converges — Where WIZnet Fits

The W5500 is a hardwired controller that puts the TCP/IP stack, a 10/100 Ethernet MAC, and the PHY on one piece of silicon. It provides eight hardware sockets and a 32 KB internal packet buffer, and connects to the MCU over SPI.

Walk through what actually happens when SCADA reads a register over Modbus TCP, and the division of labor becomes obvious.

  1. SCADA opens a TCP connection on port 502. The W5500 completes the three-way handshake on its own. The MCU is not involved yet.
  2. The Modbus request packet arrives. The W5500 handles Ethernet frame parsing, IP header validation, TCP checksum verification, and out-of-order reassembly.
  3. The MCU reads the socket buffer over SPI. What reaches it is only the MBAP header, the function code, and the register address.
  4. The MCU fills in the register values and writes the response. That is essentially the entire job.
  5. The W5500 assembles the TCP segment, calculates the checksum, and transmits. If a packet is lost, the chip retransmits on its own.

Think of the W5500 as a customs brokerage desk. The MCU only inspects what is inside the container — the register values. Paperwork, inspection procedures, and refiling after a rejection all belong to the desk. The boundary between what the MCU does and does not do is drawn physically along the SPI bus.

Without this chip, the MCU would carry a software stack like lwIP itself. Stack code would occupy tens of kilobytes of flash, every socket would claim send and receive buffers in SRAM, and retransmission timers would compete with the scan cycle for CPU time. On an ATmega2560 with 8 KB of SRAM this is effectively impossible, and even on a 264 KB RP2040 it collides head-on with the 24-bit ADC buffers.

The generational record supports this. ATmega2560-era products use the W5100; RP2040 and ESP32-era products use the W5500. Even when vendors changed MCU, they upgraded within WIZnet rather than rebuilding the network layer a different way.

📷 [Image needed: five-step flow showing a SCADA request passing through the W5500 to the MCU, with the W5500's processing zone and the MCU's zone separated by color] → Original image URL: no official image confirmed

A Proven Pattern on WIZnet Makers

How to Implement OpenPLC on STM32 with W5500 Ethernet and Modbus TCP — a working implementation of the software-side argument made above. Because OpenPLC natively supports W5100 and W5500, Modbus TCP runs with no porting work. 
→ Project link: https://maker.wiznet.io/jakelee/projects/how-to-implement-openplc-on-stm32-with-w5500-ethernet-and-modbus-tcp/

platform-jwplc / JWPLC Basic — an ESP32 + W5500 industrial PLC developed in Peru, showing the same choice repeating outside the Arduino MCU camp. It is also a DIY-to-commercial story, deployed in a university classroom and a laundry plant. 
→ Project link: https://maker.wiznet.io/scott/projects/platform-jwplc/

Modbus TCP between 2 Industruinos — I/O expanded over Ethernet between two controllers using Industruino's W5500 expansion module. The same pattern appears at a third independent vendor. 
→ Project link: https://maker.wiznet.io/mason/projects/modbus-tcp-between-2-industruinos/

These three differ in MCU, country, and application — but their Ethernet-layer decision is identical. In this category, hardwired TCP/IP is closer to a default than to an option.

ItemOpenPLC on STM32JWPLC BasicIndustruino IND.I/O
MCUSTM32ESP32SAMD21 family
EthernetW5500W5500W5500
Upper protocolModbus TCPModbus TCPModbus TCP
ProgrammingOpenPLCPlatformIO board packageArduino IDE
DeploymentEducation / tutorialUniversity · laundry plantDisinfection lighting control

The shared design philosophy is simple: spend the entire MCU on control logic, and delegate communication. They differ in MCU class and target industry, but all three draw the network boundary in the same place.

Business Value

External view — customers and market

  • Lower total cost of ownership for small-machine automation — a license-free IEC 61131-3 environment plus the Arduino talent already on staff
  • Reduced BOM in precision measurement — products with high-resolution ADCs onboard can eliminate external signal conditioners
  • PoE-based distributed I/O nodes — one Ethernet run carries both power and data, so nodes can sit at measurement points far from the panel with no separate power distribution
  • PLC education and training — training racks cost far less than commercial PLC trainers, and this demand has room for structural growth as the category itself expands with Qualcomm's and Raspberry Pi's move into industry

Internal view — WIZnet

What this category demonstrates is a picks-and-shovels position. Whether Arduino wins or Raspberry Pi wins, whether MCUs move from 8-bit to 32-bit, demand for hardwired TCP/IP persists as long as the mid- and low-cost class exists.

Adoption also happens at the platform level, not the product level. The eight ADVANCED-tier models discussed earlier differ entirely in I/O, yet share one Ethernet layer. Validate the circuit once, and CE certification, firmware, libraries, documentation, and support carry across every model. Replacing the Ethernet controller would mean revalidating all eight. Once designed in, it spreads across the whole derivative range — and is extremely hard to displace.

One more point deserves mention. In open-source hardware, brands and partnerships change more often than people expect. But when a brand changes, the silicon choice inside the design stays. In this category, WIZnet has become not one brand's component but the category default.

Limitations and Future Improvements

Clear constraints still separate this category from commercial PLCs.

  • Compute performance — Cortex-M0+ class MCUs lack an FPU and DSP, so handling multi-channel PID or floating-point filtering in software creates a scan-time bottleneck
  • SPI bus contention — when a high-resolution ADC and the Ethernet controller share one SPI bus, sampling jitter can appear. Separate buses or DMA design help
  • Security elements — some products connect directly to industrial networks without stating any secure boot or key storage provision
  • Operating temperature — many products span only −10 to +55 °C, which limits outdoor and non-climate-controlled panel installations

Improvements are already available at the component level. A SiP such as the W55RP20, which packages the RP2040 and W5500 together, cuts both SPI routing and component count. As this category's center of gravity shifts toward the RP2040 family, that becomes a natural landing point for the next generation. Allocating the W5500's eight hardware sockets across SCADA, HMI, and logging sessions is another practical way to improve multi-connection stability.

FAQ

Should I choose the W5100 or the W5500?

For a new design, choose the W5500. It leads on socket count, internal buffer, and SPI bandwidth, and it supports the industrial temperature range. Reserve the W5100 for maintaining compatibility with existing ATmega2560-era products.

What actually shrinks compared with a software TCP/IP stack?

You recover the flash the stack occupied, the SRAM the socket buffers claimed, and the CPU time the retransmission timers consumed. The exact savings depend on your MCU and stack configuration, so measure on your target board.

Can several SCADA clients connect at once?

The W5500 manages eight hardware sockets independently. Pre-assign sockets to SCADA, HMI, and your logging server, and the sessions will not interfere. Eight is a hard ceiling, though, so plan a gateway layer if you need more connections.

Does OpenPLC require porting work?

OpenPLC supports the W5100 and W5500 natively. It uses the Arduino Ethernet API directly, so Modbus TCP runs without any driver work.

How should I choose an MCU?

Start with the analog resolution and control cycle you need. For simple sequence control, the ATmega2560 family is enough. For high-resolution measurement or multi-axis control, move to RP2040 or ESP32 and above. Whichever you choose, the Ethernet layer design does not change — and that is what defines this category.

Documents
Comments Write