Wiznet makers

Hannah

Published March 04, 2026 ©

72 UCC

15 WCC

1 VAR

0 Contests

0 Followers

0 Following

Original Link

Freezy-Estops

About
ESP32 controlled collection of Estops and Astops for Freezy Arena

COMPONENTS
PROJECT DESCRIPTION

Freezy Estops — ESP32-S3 + W5500 기반 비상정지 통합 관리 시스템

 

PROJECT DESCRIPTION — 배경 & 동기

경쟁 로보틱스 대회(FRC 스타일)의 경기장은 다수의 팀, 심판, 운영진이 동시에 경기장을 제어해야 하는 복잡한 환경입니다. 기존에는 단순한 물리적 비상정지 버튼에 의존하거나, Wi-Fi 기반의 통신을 사용했지만, 경기 중 무선 간섭, 지연, 연결 불안정 문제가 반복적으로 발생했습니다.

Freezy Arena는 이 문제를 근본적으로 해결하기 위해 WIZnet W5500 유선 이더넷을 채택했습니다. W5500은 하드웨어 TCP/IP 스택을 내장하여 MCU의 연산 부담 없이 안정적인 네트워크 통신을 보장합니다. 또한, 경기장 내 수백 개의 LED 제어, 7개의 비상정지 버튼 모니터링, 초음파 근접 감지까지 단일 ESP32-S3 보드로 통합 관리함으로써 배선을 단순화하고 운영 안정성을 높였습니다.

 

Freezy Estops는 경기장 환경에서 사용하는 비상정지(E-stop) 및 정지(A-stop) 관리 시스템입니다.
이 프로젝트는 ESP32-S3를 기반으로 여러 개의 정지 버튼 상태를 모니터링하고, W5500 유선 이더넷을 통해 경기장 서버와 통신하며, WS2812B LED 스트립으로 장치 상태와 경기 상태를 시각적으로 표시합니다. 또한 HC-SR04 초음파 센서를 사용해 근접 상태를 감지하고, 웹 기반 설정 페이지를 통해 장치 역할과 네트워크 정보를 손쉽게 변경할 수 있도록 구성되어 있습니다.

PROJECT DESCRIPTION — 시스템 구조 & 동작 원리

Freezy Estops는 **4가지 디바이스 역할(Role)**로 구분되어 각자의 임무를 수행합니다.

Role역할
RED_ALLIANCE레드팀 비상정지 버튼 + 초음파 센서 모니터링
BLUE_ALLIANCE블루팀 비상정지 버튼 + 초음파 센서 모니터링
FMS_TABLE경기장 스택 조명 제어 + 경기 시작 버튼
BARGE_LIGHTSWebSocket 수신으로 경기 상태에 따른 바지 LED 제어

통신 구조는 이중 프로토콜 방식입니다. REST API (HTTP POST/GET)는 비상정지 상태, 소나 알림, 경기 시작 신호를 아레나 서버(10.0.100.5:8080)에 전달하고, WebSocket은 경기 상태 변화(matchState 0~8)와 LED Coil 데이터를 실시간으로 수신합니다. WebSocket 연결이 끊길 경우 5초 주기 자동 재연결이 작동합니다.

LED 상태 표시는 750개 WS2812B를 FastLED로 제어하며, 첫 번째 LED는 하트비트 상태(정상: 흰색 / HTTP 오류: 주황 / 네트워크 오류: 빨강), 두 번째 LED는 디바이스 역할 표시로 사용됩니다. BARGE_LIGHTS 역할에서는 124개 단위의 LED 섹션 6개로 레드/블루 알리언스의 경기 상태를 시각화합니다.

결과 & 마무리

Freezy Estops는 경기장 내 비상정지 버튼 7개, LED 750개, 초음파 센서, 아레나 서버 통신을 하나의 ESP32-S3 보드로 완전히 통합 관리합니다. REST API와 WebSocket의 이중 통신 구조 덕분에 명령 전달과 상태 수신이 분리되어 응답 지연 없이 경기 안전 시스템이 작동합니다. 브라우저 기반 설정 UI와 Preferences 영속 저장으로 현장 운영자가 코드 수정 없이 설정을 변경하고 재부팅 후에도 유지할 수 있는 실용적인 운영 환경을 제공합니다.

🔗 Original Link: https://github.com/cpapplefamily/Freezy-Estops


WIZnet Maker 커뮤니티에 대한 가치

이 프로젝트는 단순히 하나의 경기장 시스템을 넘어, WIZnet W5500을 활용하는 모든 Maker에게 실질적인 레퍼런스가 됩니다. 특히 주목할 점은 Wi-Fi 없이 유선 이더넷만으로 REST API + WebSocket 이중 통신을 구현했다는 점입니다. 이 패턴은 공장 자동화, 물류 창고, 스마트 빌딩 등 무선 간섭이 허용되지 않는 산업 환경에서 즉시 응용 가능한 검증된 아키텍처입니다. FastLED + W5500 + Preferences의 조합은 실시간 시각 피드백과 네트워크 제어가 동시에 필요한 임베디드 프로젝트에서 재사용성이 매우 높습니다. 또한 4가지 역할 분리 설계는 동일 펌웨어 하나로 다수의 디바이스를 역할별로 운영하는 확장형 IoT 시스템 설계 방법을 구체적으로 보여주어, WIZnet 칩을 처음 도입하는 Maker들에게도 진입 장벽을 낮추는 훌륭한 오픈소스 사례가 됩니다.

FAQ

왜 이 프로젝트에서 W5500을 쓰는가?
이 프로젝트는 정지 상태와 제어 정보를 아레나 컨트롤러와 주고받는 구조이므로, 더 예측 가능한 유선 경로가 적합하다. 저장소가 Wi-Fi용 보드와 Ethernet용 보드를 분리해 두었다는 점도 설계자가 유선과 무선을 서로 다른 운용 모드로 보고 있음을 보여 준다. 아레나 측 제어 노드에서는 W5500이 RF 환경에 대한 의존도를 낮추고, 고정된 Ethernet 연결을 제공한다.

이 프로젝트에서 W5500은 ESP32-S3와 어떻게 연결되는가?
SPI로 연결된다. 펌웨어는 SPI2_HOST와 함께 SCK, MISO, MOSI, 칩 셀렉트, 인터럽트, 리셋 핀을 모두 정의한다. 이는 MCU가 외부 Ethernet 컨트롤러를 SPI로 제어하는 전형적인 W5500 통합 방식이다.

이 프로젝트 안에서 W5500의 구체적인 역할은 무엇인가?
유선 ESP32-S3 구성의 네트워크 전송 경로다. 애플리케이션은 정지 버튼을 읽고, LED를 업데이트하고, 설정 페이지를 제공하며, 아레나 컨트롤러와 REST/WebSocket 기반으로 통신한다. W5500은 이 유선 통신이 가능하도록 만드는 하드웨어 인터페이스다.

초보자도 따라 할 수 있는 프로젝트인가?
완전 초보자에게는 첫 프로젝트로 적합하지 않다. ESP32 개발, GPIO 입력 처리, SPI 주변장치, 네트워크 주소 설정, 웹/API 개념 정도는 이해하고 있어야 한다. 이 저장소는 단계별 학습용 예제라기보다는 여러 기능이 결합된 실제 운용형 펌웨어에 가깝다.

 

Freezy Estops — Integrated Arena Emergency Stop Management System with ESP32-S3 + W5500

Freezy Estops is an open-source arena safety controller built on the ESP32-S3 and WIZnet W5500, managing emergency stop buttons, LED indicators, sonar proximity detection, and real-time arena communication via REST API & WebSocket.

 

PROJECT DESCRIPTION — Background & Motivation

Competitive robotics arenas (FRC-style) require multiple teams, referees, and operators to control the field simultaneously, creating a highly demanding environment for safety systems. Previous approaches relied on simple physical e-stop buttons or Wi-Fi-based communication, but wireless interference, latency, and connection instability were recurring problems during matches.

Freezy Arena addressed this fundamentally by adopting WIZnet W5500 wired Ethernet. The W5500's hardware TCP/IP stack offloads all network processing from the MCU, ensuring stable communication without adding computational overhead to the ESP32-S3. By consolidating control of hundreds of LEDs, 7 stop buttons, and ultrasonic proximity detection onto a single ESP32-S3 board, the system dramatically simplifies wiring and improves operational reliability.

 

PROJECT DESCRIPTION — Architecture & How It Works

Freezy Estops separates responsibilities across four device roles, each running the same firmware with different behavior:

RoleResponsibility
RED_ALLIANCEMonitors red team stop buttons + sonar sensor
BLUE_ALLIANCEMonitors blue team stop buttons + sonar sensor
FMS_TABLEControls field stack lights + start match button
BARGE_LIGHTSReceives WebSocket data to drive barge LED sections by match state

Communication uses a dual-protocol architecture. REST API (HTTP POST/GET) transmits e-stop states, sonar alerts, and match start signals to the arena server (10.0.100.5:8080), while WebSocket receives real-time match state changes (matchState 0–8) and LED coil data. If the WebSocket connection drops, automatic reconnection triggers every 5 seconds.

LED status visualization is handled via FastLED across 750 WS2812B LEDs. The first LED acts as a heartbeat indicator (white: OK / orange: HTTP error / red: network error), and the second LED displays the current device role. In BARGE_LIGHTS mode, six sections of 124 LEDs each visualize red/blue alliance match states in real time.

 

FAQ

Why use W5500 here instead of just Wi-Fi?
Because this project is exchanging stop-state and control information with an arena controller, a wired path is the more predictable choice. The repository even keeps a separate Wi-Fi-oriented board option, which implies the author sees wired and wireless as distinct deployment modes. For an arena-side control node, W5500 reduces dependence on RF conditions and gives a fixed Ethernet interface on the ESP32-S3 build.

How does W5500 connect to the ESP32-S3 in this project?
Over SPI. The firmware defines SPI2_HOST plus explicit SCK, MISO, MOSI, chip-select, interrupt, and reset pins for the W5500 interface. That is the standard embedded integration pattern for W5500 with an MCU that does not have native Ethernet MAC/PHY on the chosen board path.

What role does W5500 play in this specific system?
It is the network transport for the wired ESP32-S3 variant. The application reads stop buttons, updates LEDs, serves configuration pages, and communicates with the arena controller over Ethernet using REST and WebSocket flows. W5500 is the hardware path that makes that wired communication possible.

Can a beginner follow this project?
A careful beginner can follow it, but not as a first embedded project. You need to be comfortable with ESP32 development, GPIO input handling, SPI-based peripherals, network addressing, and some web/API concepts. The repository is more of an integrated field application than a step-by-step W5500 tutorial.

 

 

Documents
Comments Write