What it is

NeuroMouse V2.0 is a micromouse: a small autonomous robot that has to find its own way from a corner of a 16×16 maze to the four centre cells, with no map given in advance. It runs on an ESP32-S3, sees walls with four infrared sensors, holds heading with an MPU-6500 gyro, and measures distance with magnetic encoders on two N20 gear motors. I built it with Yu Hong (Elijah) Chen. Our SJSU team, registered as "Neuromouse", placed 3rd overall at the 2026 All American Micromouse Competition (AAMC), held by IEEE at UCLA on May 24, 2026.

NeuroMouse V2.0 from above in a maze cell.

NeuroMouse V2.0 from above in a maze cell.

Why

Most open-source micromice run on STM32; the ESP32 is still fairly new in this contest. NeuroMouse is an ESP32-S3 stack that placed on a full-size 16×16 maze, and two months after AAMC the firmware went open source.

We built two mice. V1.0 was a custom PCB, and every mistake (a wrong resistor, a noisy power rail, a sensor too close to a wheel) meant another board spin of about a week. V2.0, the one that placed, is point-to-point wiring on protoboard. Moving a sensor and re-testing took about fifteen minutes.

V2.0 (hand-wired protoboard) next to V1.0 (custom PCB).

V2.0 (hand-wired protoboard) next to V1.0 (custom PCB).

How it works

Hardware

Top of the V2.0 protoboard stack: ESP32-S3 dev board, OLED, keyswitch.

Top of the V2.0 protoboard stack: ESP32-S3 dev board, OLED, keyswitch.

The motors run 10-bit PWM at 200 Hz. It whines, but on this DRV8833 + N20 combination 200 Hz gave the most breakaway torque; 10–20 kHz gave weaker low-PWM response. The repo has no V2.0 schematic, so include/PinConfig.h is the wiring reference.

Close-up of the hand-wired protoboard and OLED.

Close-up of the hand-wired protoboard and OLED.

Firmware

The OLED IR Test screen with live LF/L/R/RF counts and front distance.

The OLED IR Test screen with live LF/L/R/RF counts and front distance.

Bench debugging with the laptop next to the mouse.

Bench debugging with the laptop next to the mouse.

The web-debugger screenshots below come from an earlier firmware sketch that has since been removed from the repo. The repo marks the HTTP debug server in include/WifiDebug.h dormant. It isn't part of the main build, and its page looks different.

Web debugger (earlier sketch, since removed): run state.

Web debugger (earlier sketch, since removed): run state.

Web debugger (earlier sketch, since removed): turn PID.

Web debugger (earlier sketch, since removed): turn PID.

Web debugger (earlier sketch, since removed): full telemetry and live PID.

Web debugger (earlier sketch, since removed): full telemetry and live PID.

Results

On the organizers' results sheet, Neuromouse is ranked 3rd Overall: maze complete, 54 cells visited, 59.715 s. Three teams completed the maze; ours was the third. The UCLA IEEE livestream's results panel shows the same numbers, plus our other two runs: 86 cells in 180.856 s (complete) and 7 cells in 8.166 s (incomplete). My own video labels the 59.7 s run as our third attempt.

My competition run video.

Explore run on the AAMC 2026 maze, from my run video.

Explore run on the AAMC 2026 maze, from my run video.

Fast run with straight-chain acceleration, from my run video.

Fast run with straight-chain acceleration, from my run video.

Reaching the goal, then the celebration spin.

Reaching the goal, then the celebration spin.

UCLA IEEE AAMC 2026 livestream, starting just before our run ends.

What I learned

Wiring taped down during the overnight fixes before the contest.

Wiring taped down during the overnight fixes before the contest.

Links