simpleipmi
Open-source, low-cost KVM-over-IP solution. Remotely control physical machines
[English Version]
SimpleIPMI — Open-Source KVM-over-IP with ESP32-S3 and W5500
#ESP32-S3 #W5500 #KVM #IPMI #BMC #RemoteControl #HID #DataCenter #OpenSource
01 — What is this project?
Every server in a data center has a dirty secret: what happens when it crashes, freezes, or won't boot? You can't SSH into a machine that's hung at the BIOS. You need someone physically at the keyboard — or you need IPMI.
IPMI (Intelligent Platform Management Interface) is a standard built into enterprise server motherboards. It gives you remote keyboard, mouse, video, and power control over the network — as if you were physically sitting in front of the machine. Enterprise implementations (called BMC — Baseboard Management Controller) cost hundreds to thousands of dollars per server.
SimpleIPMI is an open-source, low-cost alternative. Built on ESP32-S3 and optionally extended with W5500 Ethernet, it provides the same remote control capability through a web browser — at a fraction of the cost of commercial IPMI systems.
This is an RCOS (Rensselaer Center for Open Source) project from Rensselaer Polytechnic Institute.
02 — What can you do with it?
SimpleIPMI gives you four core capabilities over a web browser, with no client software installed:
Remote Video — Stream the target machine's display as MJPEG via HDMI capture. See exactly what's on screen, including BIOS, boot messages, and OS console.
Remote Keyboard & Mouse — Send keystrokes and mouse movements to the target machine via USB HID emulation. The target machine sees a real USB keyboard and mouse.
Power Control — Press power, reset, and force-off buttons via optocoupler/relay-isolated GPIO. Reboot a hung machine remotely without touching it physically.
Web Dashboard — A browser-based control panel. Zero client installation. Works from any device on the network.
03 — System architecture — three host options
SimpleIPMI supports three distinct deployment architectures:
MCU Host — ESP32-S3 (main focus)
User (Browser)
├─ WiFi AP (192.168.4.1) ────────────────────┐
└─ W5500 Ethernet (LAN, DHCP) ───────────────┤
↓
[ESP32-S3]
├─ AsyncWebServer + WebSocket (SPIFFS)
├─ GPIO → Optocoupler → PWR / RST buttons
└─ USB OTG → Keyboard + Mouse HID
↓
[Target Machine]The ESP32-S3 handles everything in a single chip: web server, HID emulation, GPIO power control, and networking. No Linux, no capture card. Minimal BOM.
W5500 is optional in this architecture. Without it, the ESP32-S3 acts as a WiFi AP at 192.168.4.1 — connect directly to it from a laptop. With W5500, it joins the existing LAN via DHCP and becomes accessible from anywhere on the network.
ARM Linux Host — CM4 / OrangePi
Full-featured KVM with USB video capture (MS2109), Python FastAPI server, and OpenCV-based video streaming. The ESP32-S3 acts as a HID bridge (serial protocol from the ARM host). Higher cost, more features.
Composite Host (WIP)
Central management server for controlling multiple KVM hosts simultaneously from a unified web panel.
04 — Why W5500?
🔷 WiFi AP mode has a fundamental limitation
Without W5500, the ESP32-S3 runs as a WiFi AP. The user connects their laptop directly to the ESP32's WiFi network (192.168.4.1). This works, but has a critical problem:
You can't reach the target machine's LAN from the AP network. If the target machine is on 192.168.1.x and you connect to the ESP32's AP (192.168.4.x), you lose access to the rest of the network — file servers, monitoring tools, everything.
W5500 Ethernet solves this. The ESP32-S3 joins the existing LAN via DHCP. You stay on your normal network, and the KVM interface is just another IP address on the LAN.
🔷 Stability for remote management
KVM-over-IP is a management tool used precisely when something is wrong. A server that's hanging, a machine that won't boot. This is the worst time for the management interface itself to become unreliable.
WiFi AP mode is subject to interference and distance limitations. For a device permanently installed in a server rack or equipment cabinet, W5500 wired Ethernet provides the stable, always-on connection that remote management requires.
🔷 Minimal footprint — no Linux required
The W5500 + ESP32-S3 combination delivers LAN connectivity without adding a Linux SBC to the BOM. The entire solution — web server, HID, power control, and Ethernet — runs on a single ESP32-S3 chip. This keeps cost and complexity at the MCU level while gaining proper LAN integration.
| Mode | Networking | LAN access | Stability |
|---|---|---|---|
| WiFi AP only | Direct connect | ❌ Isolated | Subject to RF |
| W5500 Ethernet | DHCP on LAN | ✅ Full LAN | Wired, stable |
05 — Key components
🧠 ESP32-S3 — the single-chip KVM core
Handles the web server (AsyncWebServer + WebSocket, served from SPIFFS), native USB OTG for keyboard/mouse HID, GPIO control for power/reset buttons, and SPI interface to W5500. All on one chip.
🌐 WIZnet W5500 — LAN integration
Optional SPI Ethernet module. When present, the ESP32-S3 joins the existing LAN via DHCP instead of running as an isolated WiFi AP. Enables remote access from anywhere on the network without disrupting the user's existing network connectivity.
⌨️ USB HID emulation
The ESP32-S3's USB OTG port presents itself to the target machine as a USB keyboard and mouse. The target machine requires no drivers — it sees standard HID devices.
🔌 Optocoupler / relay power control
GPIO-driven optocouplers simulate physical button presses on the target machine's motherboard power and reset pins. Galvanic isolation protects the ESP32-S3 from the motherboard's power rails.
📹 Video capture (ARM host only)
USB capture card (MS2109) captures HDMI output from the target machine. OpenCV on the ARM host streams it as MJPEG to the browser. Not available in the ESP32-S3 MCU host configuration.
06 — Application scenarios
01. Home lab server management — headless server control
For home servers running without a monitor, SimpleIPMI provides full BIOS-level access from any browser. Reinstall an OS, fix a bootloader, change BIOS settings — all remotely. #HomeLab #ServerManagement #Headless
02. Small business / co-location — low-cost IPMI alternative
Commercial IPMI licenses cost hundreds per server. SimpleIPMI provides equivalent remote management capability on a hardware budget that fits DIY server builds and refurbished enterprise hardware without built-in IPMI. #CoLocation #DIYServer #CostReduction
03. Edge computing — remote management at unmanned sites
For servers deployed at remote locations (edge compute nodes, retail back-office, industrial sites) where physical access is expensive, SimpleIPMI provides out-of-band management without requiring enterprise-grade server hardware. #EdgeComputing #OutOfBand #RemoteSite
04. Embedded development — target machine debugging
For embedded developers who need to remotely observe and interact with a development board's console output, SimpleIPMI provides KVM access to a target machine running the development environment. #EmbeddedDev #RemoteDebug #Lab
05. AI agent integration — automated server management
The cortex/ subsystem adds an AI agent layer on top of the KVM interface — screen analysis via local or LLM API, automated remediation via HID/SSH action drivers, and a YAML+Python skill system. Autonomous server management without human intervention. #AIAgent #Automation #LLM
Conclusion
Commercial IPMI costs hundreds per server. SimpleIPMI costs the price of an ESP32-S3 and a W5500 module.
Remote server management has always been split between expensive enterprise (IPMI/BMC, iDRAC, iLO) and DIY workarounds that don't give you BIOS-level access. SimpleIPMI closes that gap with an open-source, single-chip solution.
W5500 is the key upgrade from WiFi-AP-only mode. It moves the device from an isolated direct-connect solution to a proper LAN-integrated remote management system — stable, always-on, and accessible from anywhere on the network.
The cortex/ AI agent layer makes this more than a KVM tool — it's the foundation for autonomous server management.
- ✅ Remote keyboard, mouse, video, and power control
- ✅ Browser-based — zero client installation
- ✅ W5500 Ethernet for stable LAN integration
- ✅ WiFi AP fallback when Ethernet unavailable
- ✅ USB HID emulation — no target driver needed
- ✅ Optocoupler-isolated power/reset control
- ✅ Three host architectures: ESP32-S3, ARM Linux, Composite
- ✅ AI agent layer (cortex) for autonomous management
- ✅ MIT licensed, RCOS project
Q&A
Q. What is IPMI? IPMI (Intelligent Platform Management Interface) is a standard for remote server management. It provides out-of-band access to a server's keyboard, video, mouse, and power controls — independent of the operating system. Normally implemented as a dedicated BMC (Baseboard Management Controller) chip on enterprise server motherboards, it allows administrators to manage servers even when they are powered off or the OS has crashed.
Q. What is KVM-over-IP? KVM stands for Keyboard, Video, Mouse. KVM-over-IP extends this concept over a network, letting administrators control a remote machine's keyboard, display, and mouse through a web browser or dedicated client. SimpleIPMI implements KVM-over-IP using ESP32-S3 for HID and power control, with optional W5500 Ethernet for network connectivity.
Q. Why does W5500 matter more than just using WiFi? In WiFi AP mode, the ESP32-S3 creates its own isolated network (192.168.4.1). Users must disconnect from their main LAN to connect to the KVM — losing access to everything else. W5500 Ethernet lets the ESP32-S3 join the existing LAN as a normal DHCP client, so the KVM is just another device on the network with no disruption to other connectivity.
Q. Does it support video on the ESP32-S3? No. The ESP32-S3 MCU host handles keyboard, mouse, and power control, but does not capture video. Video capture requires the ARM Linux host (CM4 or OrangePi) with a USB HDMI capture card (MS2109). The ESP32-S3 host is suitable for headless server management where BIOS-level keyboard/power access is needed but video is not critical.
Q. What is the cortex AI agent? An optional subsystem that adds AI-driven automation on top of the KVM interface. It can analyze the target machine's screen (locally or via LLM API), execute HID or SSH actions, and run automated remediation skills defined in YAML+Python. Think of it as an AI sysadmin that can see the server screen and take action.
[한글 버전]
SimpleIPMI — ESP32-S3와 W5500으로 구현하는 오픈소스 KVM-over-IP
#ESP32-S3 #W5500 #KVM #IPMI #BMC #원격제어 #HID #데이터센터 #오픈소스
01 — 이 프로젝트는 무엇인가?
데이터센터의 모든 서버에는 불편한 현실이 있습니다. 서버가 먹통이 되거나, BIOS에서 멈추거나, 부팅이 안 되면? SSH로는 접근할 수 없습니다. 누군가가 직접 키보드 앞에 앉아야 합니다 — 아니면 IPMI가 필요합니다.
IPMI(Intelligent Platform Management Interface)는 기업용 서버 메인보드에 내장된 원격 관리 표준입니다. 네트워크를 통해 키보드, 마우스, 화면, 전원을 원격으로 제어할 수 있습니다 — 마치 서버 앞에 직접 앉아있는 것처럼. 기업용 구현체(BMC — Baseboard Management Controller)는 서버당 수백~수천 달러에 달합니다.
SimpleIPMI는 오픈소스 저비용 대안입니다. ESP32-S3 기반에 W5500 이더넷을 선택적으로 추가해, 상용 IPMI 시스템과 동일한 원격 제어 기능을 웹 브라우저에서 제공합니다.
렌셀러 공과대학교(RPI)의 오픈소스 지원 프로그램 RCOS 프로젝트입니다.
02 — 무엇을 할 수 있나?
SimpleIPMI는 클라이언트 소프트웨어 설치 없이 웹 브라우저에서 네 가지 핵심 기능을 제공합니다:
원격 화면 — HDMI 캡처로 대상 기기의 화면을 MJPEG 스트림으로 봅니다. BIOS, 부팅 메시지, OS 콘솔까지 모두 볼 수 있습니다.
원격 키보드 & 마우스 — USB HID 에뮬레이션으로 키 입력과 마우스 움직임을 전송합니다. 대상 기기는 실제 USB 키보드/마우스로 인식합니다.
전원 제어 — 옵토커플러/릴레이로 격리된 GPIO를 통해 전원, 리셋, 강제 종료 버튼을 원격으로 누릅니다. 먹통이 된 서버를 물리적으로 건드리지 않고 재부팅합니다.
웹 대시보드 — 브라우저 기반 제어 패널. 클라이언트 설치 없음. 네트워크의 모든 기기에서 접속 가능합니다.
03 — 시스템 구조 — 세 가지 호스트 옵션
SimpleIPMI는 세 가지 배포 아키텍처를 지원합니다:
MCU 호스트 — ESP32-S3 (핵심)
사용자 (브라우저)
├─ WiFi AP (192.168.4.1) ──────────────────┐
└─ W5500 이더넷 (LAN, DHCP) ──────────────┤
↓
[ESP32-S3]
├─ AsyncWebServer + WebSocket (SPIFFS)
├─ GPIO → 옵토커플러 → 전원/리셋 버튼
└─ USB OTG → 키보드 + 마우스 HID
↓
[대상 기기]ESP32-S3 하나로 웹 서버, HID 에뮬레이션, GPIO 전원 제어, 네트워킹을 모두 처리합니다. Linux 불필요, 캡처 카드 불필요. 최소한의 부품 구성.
W5500은 이 아키텍처에서 선택 사항입니다. 없으면 ESP32-S3가 WiFi AP(192.168.4.1)로 동작합니다. 있으면 DHCP로 기존 LAN에 참여해 네트워크 어디서든 접근 가능합니다.
ARM Linux 호스트 — CM4 / OrangePi
USB 영상 캡처(MS2109), Python FastAPI 서버, OpenCV 기반 영상 스트리밍을 갖춘 풀 기능 KVM. ESP32-S3가 HID 브릿지로 동작합니다. 비용이 높지만 기능이 더 많습니다.
복합 호스트 (개발 중)
여러 KVM 호스트를 동시에 관리하는 중앙 관리 서버. 통합 웹 패널에서 다수의 대상 기기를 제어합니다.
04 — 왜 W5500인가?
🔷 WiFi AP 모드의 근본적인 한계
W5500 없이 ESP32-S3는 WiFi AP로 동작합니다. 사용자가 노트북을 ESP32의 WiFi 네트워크(192.168.4.1)에 직접 연결합니다. 동작하긴 하지만 치명적인 문제가 있습니다:
AP 네트워크에서 대상 기기의 LAN에 접근할 수 없습니다. 대상 기기가 192.168.1.x에 있고 ESP32 AP(192.168.4.x)에 연결하면 — 파일 서버, 모니터링 도구, 나머지 네트워크 전체에서 단절됩니다.
W5500 이더넷이 이 문제를 해결합니다. ESP32-S3가 DHCP로 기존 LAN에 참여합니다. 사용자는 자신의 네트워크에 그대로 있고, KVM 인터페이스는 그냥 LAN의 또 다른 IP 주소가 됩니다.
🔷 원격 관리에 필요한 안정성
KVM-over-IP는 문제가 생겼을 때 쓰는 관리 도구입니다. 서버가 먹통이 됐을 때, 부팅이 안 될 때. 바로 이 순간에 관리 인터페이스 자체가 불안정하면 안 됩니다.
WiFi AP 모드는 간섭과 거리 제한에 취약합니다. 서버 랙이나 장비함에 영구 설치되는 기기라면 W5500 유선 이더넷이 원격 관리에 필요한 안정적이고 항상 켜져 있는 연결을 제공합니다.
🔷 Linux 없이 최소 구성으로 LAN 연결
W5500 + ESP32-S3 조합은 Linux SBC를 BOM에 추가하지 않고 LAN 연결을 제공합니다. 웹 서버, HID, 전원 제어, 이더넷 — 전부 ESP32-S3 하나에서 실행됩니다. MCU 수준의 비용과 복잡성을 유지하면서 LAN 통합이 가능합니다.
| 모드 | 네트워킹 | LAN 접근 | 안정성 |
|---|---|---|---|
| WiFi AP만 | 직접 연결 | ❌ 격리됨 | RF 간섭 영향 |
| W5500 이더넷 | LAN DHCP | ✅ 전체 LAN | 유선, 안정적 |
05 — 핵심 구성 요소
🧠 ESP32-S3 — 단일 칩 KVM 코어
웹 서버(AsyncWebServer + WebSocket, SPIFFS 서빙), 네이티브 USB OTG 키보드/마우스 HID, GPIO 전원/리셋 제어, W5500 SPI 인터페이스를 모두 하나의 칩에서 처리합니다.
🌐 WIZnet W5500 — LAN 통합
선택적 SPI 이더넷 모듈. 있으면 ESP32-S3가 격리된 WiFi AP 대신 DHCP로 기존 LAN에 참여합니다. 기존 네트워크 연결을 방해하지 않고 네트워크 어디서든 원격 접근이 가능해집니다.
⌨️ USB HID 에뮬레이션
ESP32-S3의 USB OTG 포트가 대상 기기에 USB 키보드와 마우스로 자신을 표시합니다. 대상 기기에 드라이버 설치가 불필요합니다 — 표준 HID 장치로 인식됩니다.
🔌 옵토커플러/릴레이 전원 제어
GPIO 구동 옵토커플러가 대상 기기 메인보드의 전원/리셋 핀에서 물리적 버튼 누름을 시뮬레이션합니다. 갈바닉 절연으로 ESP32-S3를 메인보드 전원 라인으로부터 보호합니다.
📹 영상 캡처 (ARM 호스트 전용)
USB 캡처 카드(MS2109)가 대상 기기의 HDMI 출력을 캡처합니다. ARM 호스트의 OpenCV가 MJPEG으로 브라우저에 스트리밍합니다. ESP32-S3 MCU 호스트 구성에서는 지원하지 않습니다.
06 — 응용 시나리오
01. 홈랩 서버 관리 — 헤드리스 서버 제어
모니터 없이 운영하는 홈 서버에 브라우저에서 BIOS 수준 접근을 제공합니다. OS 재설치, 부트로더 복구, BIOS 설정 변경 — 모두 원격으로. #홈랩 #서버관리 #헤드리스
02. 중소기업 / 코로케이션 — 저비용 IPMI 대안
상용 IPMI 라이선스는 서버당 수백 달러입니다. SimpleIPMI는 내장 IPMI가 없는 DIY 서버나 중고 기업용 서버에 동등한 원격 관리 기능을 하드웨어 예산 안에서 제공합니다. #코로케이션 #DIY서버 #비용절감
03. 엣지 컴퓨팅 — 무인 사이트 원격 관리
물리적 접근이 비싼 원격 위치(엣지 컴퓨팅 노드, 소매점 백오피스, 산업 현장)에 배포된 서버에 기업급 하드웨어 없이 대역 외 관리를 제공합니다. #엣지컴퓨팅 #대역외관리 #원격사이트
04. 임베디드 개발 — 대상 기기 디버깅
개발 보드의 콘솔 출력을 원격으로 보고 상호작용해야 하는 임베디드 개발자에게 개발 환경을 실행하는 대상 기기에 KVM 접근을 제공합니다. #임베디드개발 #원격디버그 #랩
05. AI 에이전트 통합 — 자율 서버 관리
cortex/ 서브시스템이 KVM 인터페이스 위에 AI 에이전트 레이어를 추가합니다 — 로컬 또는 LLM API를 통한 화면 분석, HID/SSH 액션 드라이버를 통한 자동 복구, YAML+Python 스킬 시스템. 인간 개입 없는 자율 서버 관리. #AI에이전트 #자동화 #LLM
결론
상용 IPMI는 서버당 수백 달러. SimpleIPMI는 ESP32-S3와 W5500 모듈 가격이면 된다.
원격 서버 관리는 항상 고가 기업용(IPMI/BMC, iDRAC, iLO)과 BIOS 수준 접근이 안 되는 DIY 우회책 사이에 끼어 있었습니다. SimpleIPMI는 오픈소스 단일 칩 솔루션으로 그 간극을 좁힙니다.
W5500이 WiFi-AP 전용 모드에서의 핵심 업그레이드입니다. 기기를 격리된 직접 연결 솔루션에서 LAN에 통합된 안정적인 원격 관리 시스템으로 변환합니다.
cortex/ AI 에이전트 레이어는 이것을 단순한 KVM 도구 이상으로 만듭니다 — 자율 서버 관리의 기반입니다.
- ✅ 원격 키보드, 마우스, 화면, 전원 제어
- ✅ 브라우저 기반 — 클라이언트 설치 없음
- ✅ W5500 이더넷으로 안정적인 LAN 통합
- ✅ 이더넷 없을 때 WiFi AP 폴백
- ✅ USB HID 에뮬레이션 — 대상 드라이버 불필요
- ✅ 옵토커플러 격리 전원/리셋 제어
- ✅ 세 가지 호스트 아키텍처: ESP32-S3, ARM Linux, 복합
- ✅ 자율 관리를 위한 AI 에이전트 레이어 (cortex)
- ✅ MIT 라이선스, RCOS 프로젝트
Q&A
Q. IPMI란 무엇인가요? IPMI(Intelligent Platform Management Interface)는 원격 서버 관리 표준입니다. 운영체제와 독립적으로 서버의 키보드, 화면, 마우스, 전원을 대역 외로 접근할 수 있습니다. 보통 기업용 서버 메인보드의 전용 BMC(Baseboard Management Controller) 칩으로 구현되어 서버가 꺼져 있거나 OS가 다운된 상태에서도 관리할 수 있습니다.
Q. KVM-over-IP란 무엇인가요? KVM은 Keyboard, Video, Mouse의 약자입니다. KVM-over-IP는 이 개념을 네트워크로 확장해 웹 브라우저나 전용 클라이언트를 통해 원격 기기의 키보드, 화면, 마우스를 제어할 수 있게 합니다. SimpleIPMI는 HID와 전원 제어에 ESP32-S3를, 네트워크 연결에 선택적으로 W5500 이더넷을 사용해 KVM-over-IP를 구현합니다.
Q. WiFi 대신 W5500이 왜 중요한가요? WiFi AP 모드에서 ESP32-S3는 자체 격리 네트워크(192.168.4.1)를 만듭니다. 사용자는 KVM에 연결하기 위해 메인 LAN에서 연결을 끊어야 합니다 — 나머지 모든 것에 대한 접근을 잃습니다. W5500 이더넷을 사용하면 ESP32-S3가 일반 DHCP 클라이언트로 기존 LAN에 참여해 다른 연결을 방해하지 않고 네트워크 어디서든 KVM에 접근할 수 있습니다.
Q. ESP32-S3에서 영상을 지원하나요? 아닙니다. ESP32-S3 MCU 호스트는 키보드, 마우스, 전원 제어를 처리하지만 영상은 캡처하지 않습니다. 영상 캡처는 USB HDMI 캡처 카드(MS2109)를 장착한 ARM Linux 호스트(CM4 또는 OrangePi)가 필요합니다. ESP32-S3 호스트는 영상이 중요하지 않은 헤드리스 서버 관리에 적합합니다.
Q. cortex AI 에이전트란 무엇인가요? KVM 인터페이스 위에 AI 기반 자동화를 추가하는 선택적 서브시스템입니다. 대상 기기의 화면을 분석하고(로컬 또는 LLM API), HID나 SSH 액션을 실행하고, YAML+Python으로 정의된 자동 복구 스킬을 실행할 수 있습니다. 서버 화면을 보고 조치를 취할 수 있는 AI 시스템 관리자라고 생각하면 됩니다.
