IntelliDrive — ESP32 + W5500 Gate Controller Suite (MQTT, BLE, OTA, Fingerprint)
ESP32 + W5500 gate automation suite by Reisinger GmbH. PlatformIO, -DWITH_ETHERNET flag, AsyncWebServer_ESP32_W5500, MQTT, OTA, BLE, fingerprint. 16MB flash.
📌 Overview
IntelliDrive는 독일 Reisinger GmbH가 개발한 상업용 게이트·차고문 자동화 컨트롤러 펌웨어 모음(Reisinger.Access – IntelliDrive Firmware Suite)입니다. AZ-Delivery DevKit V4(ESP32, 16MB 플래시) 보드를 공통 타겟으로 하며, 하나의 레포지토리에 5개의 PlatformIO 프로젝트가 포함되어 있습니다. 핵심은 IntelliDrive_PlatformIO로, 컴파일 타임 플래그 -DWITH_ETHERNET=true/false로 W5500 유선 Ethernet 지원 여부를 결정합니다. 모든 프로젝트는 사내 라이브러리 lib/Reisinger.Embedded.Library를 공유하며, git clone 한 번으로 전체 빌드 환경이 구성됩니다.
📌 Build Environments (platformio.ini 기반)
📌 Repository Structure — 5 Projects
IntelliDrive는 ESP32 기반 게이트 자동화 펌웨어 모음입니다.
구조를 보면, 하나의 GitHub 레포지토리 안에 총 5개의 PlatformIO 프로젝트가 있습니다.
- IntelliDrive_PlatformIO — 핵심 게이트 컨트롤러
- BluetoothReceiver_PlatformIO — BLE 비콘 수신기
- BeaconReceiverSlaveDevice_PlatformIO — 분산 비콘 슬레이브
- ChargingDock_PlatformIO — 충전 도크 제어
- Fingerprint_PlatformIO — 지문 인식 접근 제어
이 5개 프로젝트가 하나의 공유 라이브러리 Reisinger.Embedded.Library를 함께 사용하는 구조입니다. git clone 한 번으로 전체 빌드 환경이 구성됩니다.
핵심 컨트롤러인 IntelliDrive_PlatformIO는 두 가지 빌드 환경을 지원합니다. W5500 유선 Ethernet을 사용하는 intellidrive-ethernet과 WiFi만 사용하는 intellidrive-no-ethernet입니다.
📌 Features
🔌 W5500 Ethernet — -DWITH_ETHERNET=true
intellidrive-ethernet 빌드 환경에서 -DWITH_ETHERNET=true 플래그가 활성화됩니다. AsyncWebServer_ESP32_W5500 와 arduino-libraries/Ethernet 가 WIZnet W5500 SPI Ethernet을 통해 HTTP/WebSocket UI 서빙, MQTT 연결, OTA 다운로드를 처리합니다. 실외 게이트 환경에서 WiFi 불안정 문제를 완전히 해소합니다.
📡 MQTT 브로커 연결
knolleary/PubSubClient 로 MQTT 브로커와 연결합니다. Home Assistant, Node-RED 등 홈 자동화 플랫폼과 게이트 상태 publish 및 명령 subscribe를 지원합니다. 두 빌드 환경 모두에 포함됩니다.
🖥 HTTP/WebSocket 실시간 UI
내장 웹 서버가 실시간 게이트 제어 인터페이스를 제공합니다. 기본 OTA/WebUI 인증은 admin / admin이며, SECURITY.md에 따라 첫 배포 즉시 변경이 필요합니다.
🔄 OTA 펌웨어 업데이트
업로드 속도 921600 baud, 파티션 default_16MB.csv 기반 OTA를 지원합니다. 현장 컨트롤러를 물리적 접근 없이 네트워크로 업데이트합니다. 하드코딩된 내부 LAN IP는 팩토리 테스트 기본값이며, 기기 런타임 설정으로 재정의됩니다.
🖨 OLED 상태 표시
adafruit/Adafruit SSD1306 + Adafruit GFX Library 로 게이트 상태를 실시간 표시합니다.
🔐 지문 인식 + 충전 도크 제어
별도 프로젝트 Fingerprint_PlatformIO와 ChargingDock_PlatformIO로 독립 관리됩니다. 동일한 공유 라이브러리를 사용합니다.
⚙ 공유 임베디드 라이브러리
모든 프로젝트가 lib/Reisinger.Embedded.Library를 공유합니다. 환경변수 REISINGER_EMBEDDED_LIB로 외부 경로 지정 가능. robtillaart/CRC , UUID 등 공통 유틸리티도 포함됩니다.
📌 System Architecture (W5500 중심)
📌 Hardware & Build Configuration
- 보드: AZ-Delivery DevKit V4 (ESP32, 16MB 플래시)
- 파티션: default_16MB.csv
- 업로드 속도: 921600 baud
- 시리얼 모니터: 115200 baud
- 툴체인: espressif/toolchain-xtensa-esp32 @ 8.4.0+2021r2-patch5
- 빌드 환경 선택:
pio run -e intellidrive-ethernet또는pio run -e intellidrive-no-ethernet - 드라이버: CP210x USB-to-UART 필요
- W5500 연결: SPI 버스 (빌드 플래그 -DWITH_ETHERNET=true로 활성화)
📌 완전한 라이브러리 목록 (platformio.ini 기준)
- bblanchon/ArduinoJson — JSON 직렬화·파싱
- adafruit/Adafruit GFX Library — 그래픽 기반 라이브러리
- knolleary/PubSubClient — MQTT 클라이언트
- robtillaart/CRC— CRC 체크섬 유틸리티
- robtillaart/UUID — UUID 생성
- adafruit/Adafruit SSD1306 — OLED 디스플레이 드라이버
- khoih-prog/AsyncWebServer_ESP32_W5500— W5500 기반 비동기 웹서버
- me-no-dev/AsyncTCP— 비동기 TCP 기반 라이브러리
- arduino-libraries/Ethernet — Ethernet/W5500 드라이버
- lib/Reisinger.Embedded.Library — 사내 공유 라이브러리 (레포 내 벤더링)
📌 Role and Application of the WIZnet's Chip
사용 칩 모델명: W5500
IntelliDrive에서 W5500은 컴파일 타임 플래그 -DWITH_ETHERNET=true로 활성화됩니다. AsyncWebServer_ESP32_W5500와 arduino-libraries/Ethernet W5500 하드웨어 TCP/IP 스택 위에서 동작합니다. 실외·반실외 환경에서 WiFi 신호가 불안정한 게이트 컨트롤러에 안정적인 유선 Ethernet 연결을 제공합니다. MQTT 브로커 연결(PubSubClient), HTTP/WebSocket UI 서빙(AsyncWebServer), OTA 펌웨어 다운로드가 모두 W5500 스택에서 처리되며, BLE 비콘 수신과 드라이브 제어가 동시에 실행되는 ESP32 CPU 부하를 하드웨어 TCP/IP 오프로드로 줄여줍니다.
이더넷 빌드에서 W5500은 모든 TCP/IP 통신을 전담합니다.
첫째, HTTP/WebSocket UI 서빙입니다. 관리자가 브라우저를 열면 게이트 상태와 제어 패널이 실시간으로 표시됩니다. 이 UI가 W5500 위에서 동작합니다.
둘째, MQTT 브로커 연결입니다. Home Assistant나 Node-RED 같은 홈 자동화 시스템과 통신하는 MQTT 연결도 W5500 TCP 스택을 사용합니다.
셋째, OTA 펌웨어 업데이트입니다. 현장에 설치된 컨트롤러에 새 펌웨어를 올릴 때, 물리적으로 장비에 접근하지 않아도 됩니다. 네트워크로 업데이트합니다. 이것도 W5500입니다.
그리고 중요한 포인트가 하나 더 있습니다. 이 시스템은 BLE도 동시에 사용합니다. WiFi와 BLE가 이미 바쁜 ESP32에서 유선 네트워크까지 처리하려면 W5500 하드웨어 TCP/IP 오프로드가 필수입니다. CPU 부하를 W5500이 분담해주기 때문에 BLE 비콘 수신, 드라이브 제어, 지문 인식이 동시에 안정적으로 동작할 수 있습니다.
📌 Market & Application Value
주거용 게이트·차고문 자동화, 산업용 출입 제어, 주차장 자동화, 스마트 홈 통합이 핵심 시장입니다. Reisinger GmbH의 실제 상업 제품에 사용되는 코드베이스로, 지문 인식·BLE 비콘·충전 도크를 포함한 완전한 출입 제어 에코시스템을 구현합니다. GitHub Actions CI와 Conventional Commits 기반의 전문적인 개발 프로세스를 갖추고 있습니다.
📌 WIZnet Strategic Value
IntelliDrive는 W5500이 독일 상업용 IoT 제품의 핵심 부품으로 채택된 실제 사례입니다. 특히 AsyncWebServer_ESP32_W5500이라는 W5500 전용 라이브러리를 실제 상업 프로젝트에서 사용함으로써, WIZnet 칩과 Arduino/ESP32 생태계의 긴밀한 통합 가능성을 입증합니다. W5500의 산업·상업 분야 신뢰성을 보여주는 강력한 레퍼런스입니다.
📌 Summary
IntelliDrive는 -DWITH_ETHERNET=true/false 컴파일 플래그로 W5500 유선 Ethernet을 선택적으로 활성화하는 ESP32 기반 상업용 게이트 자동화 펌웨어입니다. AsyncWebServer_ESP32_W5500, PubSubClient, ArduinoJson 등 검증된 라이브러리를 조합하고, 5개 PlatformIO 프로젝트가 하나의 공유 라이브러리로 통합 관리됩니다. W5500이 실외 산업 환경에서 WiFi를 대체하는 신뢰할 수 있는 네트워크 솔루션임을 실증합니다.
📌 FAQ
Q1. -DWITH_ETHERNET 플래그는 어떻게 작동하나요?
platformio.ini의 build_flags에 -DWITH_ETHERNET=true 또는 false를 지정합니다. 소스 코드에서 이 플래그를 조건부 컴파일로 확인해 W5500 관련 코드를 활성화·비활성화합니다.
Q2. 두 빌드 환경의 lib_deps가 동일한 이유는?
AsyncWebServer_ESP32_W5500과 Ethernet 라이브러리는 두 빌드 모두에 포함되어 있습니다. -DWITH_ETHERNET 플래그만으로 런타임 동작을 분기하므로, 라이브러리 목록은 동일하게 유지합니다.
Q3. 공유 라이브러리는 어떻게 사용하나요?
git clone 후 lib/Reisinger.Embedded.Library가 자동 포함됩니다. 외부 경로는 REISINGER_EMBEDDED_LIB 환경변수로 지정합니다. CI에서도 in-tree 라이브러리가 자동 사용됩니다.
Q4. 기본 WebUI/OTA 인증 정보는?admin / admin입니다. SECURITY.md에 따라 첫 배포 즉시 변경해야 합니다. 자격증명·API 토큰은 절대 커밋하지 마십시오.
Q5. 업로드 속도가 921600인 이유는?
AZ-Delivery DevKit V4와 16MB 플래시 기준으로 안정적인 최고 속도입니다. pio run -t upload로 자동 적용됩니다.
Q6. CI/CD는 어떻게 구성되어 있나요?.github/workflows/platformio-ci.yml이 push와 PR 시 5개 프로젝트를 모두 자동 빌드합니다. in-tree 라이브러리가 자동 사용되므로 별도 설정이 불필요합니다.
Q7. 하드코딩된 LAN IP는 어떻게 처리하나요?
소스 내 192.168.x.x 형태의 IP는 팩토리 테스트 기본값입니다. 배포 후 기기 런타임 설정에서 재정의됩니다.
Q8. 이 펌웨어는 외부에서 사용할 수 있나요?
Proprietary 라이선스 — Reisinger GmbH 내부 및 승인된 협력사 전용입니다. 외부 배포나 공개 사용은 허용되지 않습니다.
Q9. xtensa-esp32 8.4.0+2021r2-patch5 툴체인이 고정된 이유는?
상업 제품의 재현 가능한 빌드를 보장하기 위해 툴체인 버전을 고정합니다. platform_packages에 명시되어 있습니다.
Q10. 보안 이슈는 어떻게 보고하나요?
공개 이슈를 열지 말고 SECURITY.md의 비공개 공개 프로세스를 따르십시오.
📌 Overview
IntelliDrive is a commercial gate and drive automation firmware suite (Reisinger.Access – IntelliDrive Firmware Suite) developed by Reisinger GmbH (Germany). The common target board is the AZ-Delivery DevKit V4 (ESP32, 16 MB flash). The repository contains 5 PlatformIO projects. The core project, IntelliDrive_PlatformIO, uses the compile-time flag -DWITH_ETHERNET=true/false to enable or disable W5500 wired Ethernet support. All projects share the in-house lib/Reisinger.Embedded.Library, vendored directly in the repository — a single git clone is all that is needed to build.
📌 Build Environments (platformio.ini 기반)
📌 Repository Structure — 5 Projects
IntelliDrive is an ESP32-based gate automation firmware suite.
Looking at its structure, a single GitHub repository contains 5 PlatformIO projects:
- IntelliDrive_PlatformIO — Core gate controller
- BluetoothReceiver_PlatformIO — BLE beacon receiver
- BeaconReceiverSlaveDevice_PlatformIO — Distributed beacon slave
- ChargingDock_PlatformIO — Charging dock controller
- Fingerprint_PlatformIO — Fingerprint access control
All 5 projects share a single library, Reisinger.Embedded.Library. A single git clone sets up the entire build environment.
The core controller, IntelliDrive_PlatformIO, supports two build environments: intellidrive-ethernet using W5500 wired Ethernet, and intellidrive-no-ethernet using WiFi only.
📌 Features
🔌 W5500 Ethernet — -DWITH_ETHERNET=true
The intellidrive-ethernet build environment activates the -DWITH_ETHERNET=true flag. AsyncWebServer_ESP32_W5500 and arduino-libraries/Ethernet handle HTTP/WebSocket UI serving, MQTT connections, and OTA downloads over the WIZnet W5500 SPI Ethernet interface. This completely eliminates WiFi instability in outdoor gate environments.
📡 MQTT Broker Connection
knolleary/PubSubClient handles MQTT broker communication. Integrates with Home Assistant, Node-RED, and other automation platforms. Included in both build environments.
🖥 HTTP/WebSocket Real-time UI
The built-in web server provides a real-time gate control interface. Default OTA/WebUI credentials are admin / admin — change immediately on first deployment per SECURITY.md.
🔄 OTA Firmware Update
OTA at 921600 baud upload speed with default_16MB.csv partitioning. Update deployed controllers over the network without physical access. Hard-coded LAN IPs are factory test defaults, overridden by runtime configuration.
🖨 OLED Status Display
adafruit/Adafruit SSD1306 + Adafruit GFX Library for real-time gate status on an OLED display.
🔐 Fingerprint + Charging Dock
Managed as separate projects: Fingerprint_PlatformIO and ChargingDock_PlatformIO, sharing the same embedded library.
⚙ Shared Embedded Library
All projects share lib/Reisinger.Embedded.Library. Set REISINGER_EMBEDDED_LIB to use an external path. robtillaart/CRC and UUID are common utilities included in all builds.
📌 Hardware & Build Configuration
- Board: AZ-Delivery DevKit V4 (ESP32, 16 MB flash)
- Partition: default_16MB.csv
- Upload speed: 921600 baud
- Serial monitor: 115200 baud
- Toolchain: espressif/toolchain-xtensa-esp32 @ 8.4.0+2021r2-patch5
- Select environment:
pio run -e intellidrive-ethernetorpio run -e intellidrive-no-ethernet - Driver: CP210x USB-to-UART
- W5500: Enabled via SPI with
-DWITH_ETHERNET=truebuild flag
📌 Complete Library List (from platformio.ini)
- bblanchon/ArduinoJson — JSON serialization and parsing
- adafruit/Adafruit GFX Library — Graphics base library
- knolleary/PubSubClient — MQTT client
- robtillaart/CRC — CRC checksum utility
- robtillaart/UUID — UUID generation
- adafruit/Adafruit SSD1306 — OLED display driver
- khoih-prog/AsyncWebServer_ESP32_W5500 — Async web server for W5500
- me-no-dev/AsyncTCP — Async TCP base library
- arduino-libraries/Ethernet — Ethernet/W5500 driver
- lib/Reisinger.Embedded.Library — In-house shared library (vendored)
📌 Role and Application of the WIZnet's Chip
Chip model: W5500
In IntelliDrive, the W5500 is activated by the compile-time flag -DWITH_ETHERNET=true. AsyncWebServer_ESP32_W5500and arduino-libraries/Ethernet run over the W5500 hardware TCP/IP stack. This provides stable wired Ethernet connectivity for gate controllers installed in outdoor or semi-outdoor environments where WiFi is unreliable. MQTT broker connections (PubSubClient), HTTP/WebSocket UI serving (AsyncWebServer), and OTA firmware downloads all run over the W5500 stack — while the hardware TCP/IP offload reduces ESP32 CPU load as BLE beacon reception and drive control run simultaneously.
In the Ethernet build, the W5500 handles all TCP/IP communication.
First, HTTP/WebSocket UI serving. When an administrator opens a browser, the gate status and control panel appear in real time. This UI runs on top of the W5500.
Second, MQTT broker connection. The MQTT connection communicating with home automation systems like Home Assistant or Node-RED also uses the W5500 TCP stack.
Third, OTA firmware updates. When uploading new firmware to a controller installed in the field, there is no need for physical access to the device. Updates happen over the network — through W5500.
There is one more important point. This system uses BLE simultaneously. When an ESP32 is already busy with WiFi and BLE, handling wired networking on top requires W5500 hardware TCP/IP offload. Because W5500 shares the CPU load, BLE beacon reception, drive control, and fingerprint processing can all run stably at the same time.
📌 Market & Application Value
Core markets: residential gate/garage automation, industrial access control, parking management, smart home integration. Production firmware from Reisinger GmbH implementing a complete access control ecosystem — gate drives, BLE beacons, fingerprint readers, and charging docks — managed through a unified codebase with GitHub Actions CI and Conventional Commits.
📌 WIZnet Strategic Value
IntelliDrive demonstrates W5500 adoption in a German commercial IoT product. Notably, it uses AsyncWebServer_ESP32_W5500 — a W5500-specific library — in a real production system, validating tight integration between WIZnet chips and the Arduino/ESP32 ecosystem. The -DWITH_ETHERNET compile flag pattern is a clean, reusable design for making W5500 support optional without code duplication.
📌 Summary
IntelliDrive uses -DWITH_ETHERNET=true/false compile flags to selectively activate W5500 wired Ethernet on ESP32. AsyncWebServer_ESP32_W5500, PubSubClient, and ArduinoJson combine into a production-grade gate automation system. Five PlatformIO projects share a single library, managed with CI. A strong real-world reference for W5500 in outdoor industrial IoT.
📌 FAQ
Q1. How does the -DWITH_ETHERNET flag work?
Set in platformio.ini build_flags as -DWITH_ETHERNET=true or false. Source code uses conditional compilation to enable or disable W5500-related code paths.
Q2. Why do both build environments have the same lib_deps?
AsyncWebServer_ESP32_W5500 and Ethernet are included in both builds. Only the -DWITH_ETHERNET flag controls runtime behavior — keeping lib_deps identical simplifies maintenance.
Q3. How is the shared library used?
After cloning, lib/Reisinger.Embedded.Library is already included. Set REISINGER_EMBEDDED_LIB for an external path. CI uses the in-tree library automatically.
Q4. What are the default WebUI/OTA credentials?admin / admin. Change immediately on first deployment per SECURITY.md. Never commit credentials or API tokens.
Q5. Why is the upload speed 921600?
Optimal stable speed for the AZ-Delivery DevKit V4 with 16 MB flash. Applied automatically by pio run -t upload.
Q6. How is CI/CD configured?.github/workflows/platformio-ci.yml builds all 5 projects on push and PR. The in-tree library is used automatically — no extra setup required.
Q7. How are hard-coded LAN IPs handled?
192.168.x.x addresses in source are factory test bench defaults. They are overridden by the device's runtime configuration after deployment.
Q8. Can this firmware be used externally?
Proprietary license — internal Reisinger GmbH and authorized contractors only. Redistribution or use outside official Reisinger products is not permitted.
Q9. Why is the xtensa-esp32 toolchain version pinned?
Pinning ensures reproducible builds for a commercial product. Specified in platform_packages as espressif/toolchain-xtensa-esp32@8.4.0+2021r2-patch5.
Q10. How should security issues be reported?
Do not open a public issue. Follow the private disclosure process in SECURITY.md.
📌 Reference Link
https://github.com/ReisingerDriveSystems/ReisingerPlatformIOProjects

