ClusterController — W5500 Ethernet in Janelia's Honeycomb Maze
RP2040/W5500 controls seven-prism clusters in Janelia's honeycomb maze. Uses MACRAW + lwIP, not TOE; real TCP bench tests are reported for one cluster.
0
Components
Hardware components
WIZnet - W5500-EVB-Pico
Status record identifies pico-w5500-evb for single-cluster bench validation.

platformio - PlatformIO Core
Repository firmware environment; follow project README for the current build setup.
Project description
ClusterController — W5500 Ethernet in Janelia's Honeycomb Maze
Project curation | Original repositories: ClusterController firmware · cluster-pcb hardware
The cover is a graphic built around the repository’s original PCB design render. It is not a photograph of assembled laboratory hardware.
English
01 — Research context: from spatial behavior to a maze apparatus
Janelia’s Voigts Lab studies how rodents navigate and reason about space, and how neural circuits support those behaviors. The ClusterController repository documents firmware for the prism clusters in the lab’s honeycomb maze. That puts this project in a neuroscience research setting, but the controller itself is an apparatus-control system: the public code shows prism motion, homing, power, status and Ethernet commands. It does not show EEG or neural-signal acquisition.
Research context: Voigts Lab overview. Project scope: ClusterController README.
02 — What one cluster controls
The firmware protocol defines seven prisms per cluster. A host can request positions, home an individual prism or the cluster, pause and resume motion, read position and health information, and control cluster power, LEDs and buzzer. Positions are expressed in millimetres. The protocol is version 0x06 and is designed for host-to-controller commands over a network.
This describes the controller’s intended cluster-level interface. The current hardware-status note identifies the connected bench hardware more narrowly as one W5500-EVB-Pico-class controller and one TMC5130 prism board; that bench configuration should not be mistaken for a completed seven-prism or full-maze installation.
03 — System architecture
Host computer → TCP command protocol → RP2040/W5500 Ethernet controller → prism-control electronics.
The rewrite firmware assigns the controller a static cluster address, brings up the W5500 network interface and listens for TCP connections on port 7777. Commands carry a protocol version, message length, command number and command-specific parameters. The source also configures the W5500 over SPI and connects incoming network commands to the prism and cluster-control routines.

The PCB repository describes a board for each prism cluster and references the W5500-EVB-Pico. Its bill of materials lists seven isolated SPI channels and seven USB-C prism-board connections. The network bring-up record separately names a single TMC5130 prism board on the bench. The design files and the reported bench configuration are related, but they are not evidence that a complete seven-prism cluster has finished validation.
04 — W5500 mode: MACRAW with lwIP; TOE is not used
The firmware includes W5500lwIP, instantiates Wiznet5500lwIP, and uses the Arduino WiFiServer/WiFiClient API for its TCP server. In this driver path, the W5500 supplies the Ethernet interface in MACRAW mode while lwIP on the RP2040 handles the IP/TCP stack. The W5500’s hardware TCP/IP sockets are not used here, so this project is TOE = No.
This distinction matters: the W5500 chip can offload TCP/IP in other designs, but the presence of a W5500 alone does not mean its TOE is active. Implementation: rewrite_network.cpp. Driver note: W5500lwIP documents that the W5x00 TCP/IP block is unused in this lwIP/MACRAW path.
05 — What the current status says was tested
The project’s status document calls the rewrite a hardware-validated single-cluster checkpoint. It reports real-board W5500/lwIP bring-up, a static IP and TCP server on port 7777, host-side verification, prism homing and movement checks, pause/resume, and recovery after reset or power cycling. The same note identifies the connected hardware as a pico-w5500-evb and a single TMC5130 prism board.
These are author-reported hardware results; this curation has not independently rerun them. Read the full checkpoint: current_status.md.
06 — Build and reproduce
The repository documents a PlatformIO Core workflow for the active pico-rewrite firmware, including host setup and USB flashing. A useful reproduction path is to follow that README setup, build and flash the rewrite, then run the repository’s host verification and hardware acceptance checks with the appropriate bench hardware attached. The status document records successful host checks for the current single-cluster checkpoint.
Start with the host setup and PlatformIO instructions, then compare the test commands and expected scope in current_status.md.
07 — Validation boundary and design terms
The public status explicitly leaves broader validation ahead: repeated soak testing, repeated seven-prism checks after further firmware changes, and validation of the complete seven-cluster / 49-prism rig. The evidence supports a real W5500 Ethernet path and a useful single-cluster development milestone. It does not establish full-rig qualification, long-term operation, field deployment, or neural-data acquisition.
Licenses are different across the two repositories. The firmware is under a three-clause BSD license. The PCB repository uses HHMI’s open-source hardware terms, which permit non-commercial research or educational use under stated conditions and describe the designs as experimental. Check each repository’s license before reuse.
Curator’s take
The interesting WIZnet detail is the implementation choice: a real W5500 Ethernet interface feeding lwIP on an RP2040 in MACRAW mode, rather than using the chip’s hardware TCP/IP offload. Paired with a documented prism-control protocol and author-reported bench tests, it is a useful example of networked instrumentation for behavioral neuroscience. Its scope is best represented as one validated bench cluster, with the complete maze still awaiting staged validation.
Quick answers
- Does this project measure brain waves? The public controller code does not show EEG or neural-signal measurement; it controls the maze’s prism apparatus.
- Does it use W5500 TOE? No. The documented W5500lwIP/MACRAW path uses lwIP on the RP2040.
- Has the entire maze been validated? Not according to the current status note; full seven-cluster / 49-prism validation remains pending.
한국어
01 — 연구 맥락: 공간 행동 연구와 미로 장비
Janelia의 Voigts Lab은 설치류가 공간을 탐색하고 추론하는 방식, 그리고 이러한 행동을 뒷받침하는 신경 회로를 연구합니다. ClusterController 저장소에는 연구실의 벌집형 미로에 쓰이는 프리즘 클러스터 제어 펌웨어가 공개되어 있습니다. 따라서 신경과학 연구 환경에서 쓰이는 장비 제어 프로젝트이지만, 공개 코드가 직접 다루는 것은 프리즘 이동·원점 복귀·전원·상태 확인·이더넷 명령입니다. 뇌파(EEG)나 신경 신호를 측정하는 코드는 확인되지 않습니다.
연구 맥락: Voigts Lab 소개. 프로젝트 범위: ClusterController README.
02 — 클러스터가 제어하는 것
펌웨어 프로토콜은 클러스터 하나를 프리즘 7개로 정의합니다. 호스트는 개별 프리즘 또는 클러스터 전체의 위치 지정, 원점 복귀, 일시정지·재개, 위치·상태 읽기, 클러스터 전원·LED·부저 제어 명령을 보낼 수 있습니다. 위치 단위는 mm이며, 프로토콜 버전은 0x06입니다.
이는 펌웨어가 제공하도록 설계된 클러스터 단위 인터페이스에 대한 설명입니다. 현재 하드웨어 상태 기록은 연결된 벤치 구성을 W5500-EVB-Pico 계열 컨트롤러 1대와 TMC5130 프리즘 보드 1개로 더 좁게 적고 있습니다. 이 벤치 구성을 프리즘 7개 전체 또는 전체 미로의 검증 완료로 해석하면 안 됩니다.
03 — 시스템 구성
호스트 컴퓨터 → TCP 명령 프로토콜 → RP2040/W5500 이더넷 컨트롤러 → 프리즘 제어 회로.
재작성 펌웨어는 클러스터 고정 주소를 설정하고 W5500 네트워크 인터페이스를 초기화한 뒤 TCP 포트 7777에서 접속을 받습니다. 명령은 프로토콜 버전, 메시지 길이, 명령 번호와 명령별 매개변수로 구성됩니다. 공개 코드에는 SPI를 통한 W5500 설정과 네트워크 명령을 프리즘·클러스터 제어 함수에 연결하는 부분이 포함되어 있습니다.

PCB 저장소는 각 프리즘 클러스터용 보드를 설명하며 W5500-EVB-Pico를 참고 자료로 연결합니다. 부품 목록에는 절연 SPI 채널 7개와 프리즘 보드용 USB-C 연결 7개가 기재되어 있습니다. 네트워크 bring-up 기록은 별도로 벤치에 연결한 TMC5130 프리즘 보드 1개를 명시합니다. 설계 자료와 벤치 시험은 서로 관련 있지만, 이것만으로 프리즘 7개를 갖춘 완성 클러스터의 검증까지 끝났다고 볼 수는 없습니다.
04 — W5500 동작 방식: MACRAW + lwIP, TOE 미사용
펌웨어는 W5500lwIP를 포함하고 Wiznet5500lwIP 객체를 만들며, TCP 서버에는 Arduino의 WiFiServer/WiFiClient API를 씁니다. 이 드라이버 경로에서는 W5500이 MACRAW 모드의 이더넷 인터페이스를 제공하고, IP/TCP 처리는 RP2040에서 실행되는 lwIP가 맡습니다. W5500의 하드웨어 TCP/IP 소켓은 사용하지 않으므로 이 사례의 분류는 TOE = N입니다.
W5500 칩이 다른 설계에서 TOE를 지원한다는 사실과 이 펌웨어가 TOE를 사용하는지는 별개입니다. 구현 코드: rewrite_network.cpp. 드라이버 설명: W5500lwIP는 이 lwIP/MACRAW 경로에서 W5x00 TCP/IP 블록을 쓰지 않는다고 설명합니다.
05 — 현재 상태 문서에 기록된 테스트
프로젝트 상태 문서는 재작성 펌웨어를 단일 클러스터 하드웨어 검증 단계라고 설명합니다. 실제 보드에서 W5500/lwIP 초기화, 고정 IP와 TCP 7777 서버, 호스트 측 검증, 프리즘 원점 복귀·이동 확인, 일시정지·재개, 리셋 또는 전원 재인가 후 복구를 수행했다고 기록합니다. 같은 문서는 연결된 하드웨어를 pico-w5500-evb와 TMC5130 프리즘 보드 1개로 명시합니다.
이는 제작자가 공개한 하드웨어 시험 결과이며, 이번 큐레이션에서 별도로 재현한 시험은 아닙니다. 전체 기록: current_status.md.
06 — 빌드와 재현
저장소는 현재 개발 경로인 pico-rewrite 펌웨어에 대해 PlatformIO Core 기반의 호스트 설정과 USB 플래시 절차를 설명합니다. 재현하려면 README의 환경 설정을 따라 펌웨어를 빌드·플래시하고, 해당 벤치 하드웨어를 연결한 뒤 저장소의 호스트 검증 및 하드웨어 승인 시험을 실행하는 흐름이 적절합니다. 상태 문서에는 현재 단일 클러스터 체크포인트에서 호스트 검증이 성공했다고 기록되어 있습니다.
호스트 설정 및 PlatformIO 안내부터 확인하고, 시험 명령과 범위는 current_status.md에서 확인할 수 있습니다.
07 — 검증 범위와 설계 이용 조건
공개 상태 문서는 추가 검증 항목으로 장시간 반복 시험, 펌웨어 변경 후 프리즘 7개 단위 시험, 전체 7개 클러스터·49개 프리즘 장비 검증을 남겨 두고 있습니다. 따라서 현재 근거가 뒷받침하는 것은 실제 W5500 이더넷 경로와 단일 벤치 클러스터의 개발 진척입니다. 전체 장비 인증, 장기 현장 운용, 현장 배포 또는 신경 데이터 수집을 입증하는 자료는 아닙니다.
두 저장소의 라이선스도 구분해야 합니다. 펌웨어에는 3-Clause BSD 라이선스가 적용됩니다. PCB 저장소는 HHMI의 별도 오픈소스 하드웨어 조건을 사용하며, 명시된 조건 아래 비상업 연구·교육 목적 사용을 허용하고 설계를 실험적이라고 설명합니다. 재사용 전에 각 저장소의 조건을 따로 확인하세요.
큐레이터 평가
이 사례의 WIZnet 측 핵심은 칩 이름이 아니라 실제 네트워크 경로입니다. RP2040에서 lwIP를 실행하고 W5500은 MACRAW 이더넷 인터페이스로 쓰므로 TOE 사례가 아닙니다. 프리즘 제어 프로토콜과 제작자 측 실물 벤치 시험이 공개되어 있어 행동 신경과학 연구용 계측 장비의 네트워크 통합 사례로 참고할 만합니다. 다만 소개 범위는 단일 벤치 클러스터까지로 제한하고, 전체 미로 검증은 남은 단계로 표시해야 합니다.
자주 묻는 점
- 뇌파를 측정하나요? 공개된 컨트롤러 코드에서 EEG나 신경 신호 측정은 확인되지 않습니다. 미로의 프리즘 장치를 제어합니다.
- W5500 TOE를 쓰나요? 아닙니다. 공개된 W5500lwIP/MACRAW 경로에서는 RP2040의 lwIP가 TCP/IP를 처리합니다.
- 전체 미로 시험까지 끝났나요? 현재 상태 문서에 따르면 아닙니다. 7개 클러스터·49개 프리즘의 전체 장비 검증은 남아 있습니다.
Documents
-
ClusterController firmware and protocol
PlatformIO Core setup; protocol v0x06; seven prisms per cluster.
-
W5500 network implementation
W5500lwIP interface, static cluster address and TCP server on port 7777.
-
Cluster PCB design and schematics
KiCad 9 board renders, assembly schematics and BOM. Design render, not a photo of assembled hardware.
-
Current hardware validation status
Author-reported W5500 TCP/7777 bench checks; full seven-cluster rig validation is pending.
-
W5500lwIP MACRAW driver notes
Driver documents lwIP over MACRAW; W5x00 hardware TCP/IP sockets are not used.