

Mm3.0
A fully autonomous micro mouse built from scratch
- Size
- 100 × 80 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 57
- Nets
- 85
- Pads
- 259
- Tracks, vias
- 429, 84
- Pours
- 26
- Routed
- Yes
- KiCad
- KiCad 9.0 (file 20241229)
- Created
- 19 Aug 2026
- Updated
- 19 Aug 2026
Overview
Mm3.0 is an open-source printed circuit board by USI-27, from the USI-27/microMouse repository on GitHub. It is a 2-layer board of 100 × 80 mm with 57 parts on 85 nets, routed with 429 tracks and 84 vias.
It is built around the AMS1117-5.0, MPU-6050 and TEFT4300, with the B6B-ZR and 1N4148WS among its other parts. Its parts include 18 capacitors, 13 resistors, 8 transistors, 6 diodes and 4 ICs. It belongs with the RP2040 boards of this library.
Main components
5AMS1117-5.0
SOT-223-40℃~+125℃ 1 1.3V 15V 1A 5V 60dB Fixed Positive Short Circuit Protection、Thermal shutdown SOT-223 Voltage Regulators - Linear, Low Drop Out (LDO) Regulators ROHSAdvanced Monolithic SystemsVoltage Regulators - Linear, Low Drop Out (LDO) RegulatorsMPU-6050
QFN-24-EP(4x4)-40℃~+85℃ 16bit 1KB 2.375V~3.46V 5uA Accelerometer Gyroscope I2C X,Y,Z X,Y,Z ±16g ±2000dps QFN-24-EP(4x4) Accelerometers ROHSTDK InvenSenseAccelerometersTEFT4300
插件,D=3mm-40℃~+100℃ 0.3V@0.1mA 100mW 1nA 50mA 70V 925nm NPN ±30° 插件,D=3mm Phototransistors ROHSVishay IntertechnologyPhototransistorsB6B-ZR
插件,P=1.5mm-25℃~+85℃ 1 1.5mm 10.5mm 1A 1x6P 3.5mm 4.5mm 50V 6 6P Brass Glass fiber reinforced PA66 Through Hole Tin UL94V-0 White ZH 插件,P=1.5mm Wire To Board Connector ROHSJSTWire To Board Connector1N4148WS
SOD-3231.25V@150mA 100V 150mA 1uA@75V 200mW 2A 4ns Independent SOD-323 Switching Diodes ROHSJiangsu Changjing Electronics Technology (CJ)Switching Diodes
README
README.mdMicroMouse Project
This project implements a micromouse robot using a Raspberry Pi Pico W microcontroller. The robot is designed to solve a maze using the flood fill algorithm, with advanced motion control, wall detection, and a custom-designed PCB.
Repository Structure
MicroMouse/
├── MicroMouse Software/ # Firmware source code
│ ├── Headers/ # Header files (.h)
│ ├── images/ # README images
│ ├── Cell.cpp
│ ├── IR_Sensors.cpp
│ ├── Int_Vector.cpp
│ ├── Maze_Algorithm.cpp
│ ├── Motion_Planner.cpp
│ ├── Profile.cpp
│ ├── Queue.cpp
│ └── Simple_Run_Micromouse_V1.ino
└── MicroMouse Design Files/ # Hardware design files
├── mm3.0/ # KiCad project (schematic + PCB)
├── manufacturing/ # Gerbers, drill files, BOM, pick-and-place
├── images/ # PCB and assembly renders
├── schematic.pdf
└── HARDWARE.md # Detailed hardware documentationHardware Implementation

The image above shows the actual hardware implementation of the micromouse robot, featuring:
- Raspberry Pi Pico W at the center
- Dual motor setup with encoders
- IR sensors for wall detection
- Custom PCB design for component integration
- Compact and efficient layout
Full PCB schematics, KiCad source files, manufacturing (Gerber/BOM) files, and design writeups are available in MicroMouse Design Files/ — see HARDWARE.md for a detailed breakdown of the sensor placement and board layout.
Achievements 🏆
- 🥇 1st Place at IIT Roorkee's Annual Tech Fest - Cognizance '25, Micromouse Competition (Prize: ₹1,00,000)
- 🥇 1st Place at Delhi Technological University's Annual Tech Fest - Invictus '25, Micromouse Competition
- 🥇 1st Place at BITS Pilani's Annual Tech Fest - Apogee '25, Micromouse Competition
- 🥉 3rd Place at IIT Jodhpur's Annual Tech Fest - Prometeo '25, Micromouse Competition
- 🥉 3rd Place at RGIPT's Annual Tech Fest - Urjotsav '24
Video Demonstration
Check out the micromouse robot in action: Watch on YouTube
Hardware Components
- Microcontroller: Raspberry Pi Pico W
- Motors: 2 DC motors with encoders
- Sensors:
- IR sensors for wall detection (Left, Right, Front)
- MPU6050 gyroscope for orientation
- Encoders for distance measurement
- Motor Driver: TB6612FNG dual motor driver
Project Structure (Software)
The firmware is organized into several key components:
- Cell.h/cpp — Defines the maze cell structure and properties
- Int_Vector.h/cpp — Custom vector implementation for sensor data
- IR_Sensors.h/cpp — Wall detection and sensor reading functionality
- Maze_Algorithm.h/cpp — Flood fill algorithm and maze solving logic
- Motion_Planner.h/cpp — Movement control and motor functions
- Profile.h/cpp — Global configuration and pin definitions
- Queue.h/cpp — Queue implementation for flood fill algorithm
How It Works
1. Initialization (setup())
- Configures serial communication
- Initializes MPU6050 gyroscope
- Sets up encoder pins and interrupts
- Configures motor driver pins
- Sets initial maze walls for the starting position
2. Maze Exploration Flow
The robot explores the maze in multiple rounds:
for (int round = 1; round <= Exploration_Rounds; round++) {
searchMode = FIND_CENTRE; // First find the center
findGoal();
searchMode = FIND_START; // Then return to start
findGoal();
}3. Flood Fill Algorithm
The flood fill algorithm works as follows:
- Initializes all cells with -1 cost
- Sets goal cells (center or start) with cost 0
- Propagates costs to neighboring cells
- Robot moves to the neighboring cell with lowest cost
4. Wall Detection
- Uses IR sensors to detect walls
- Updates maze wall information in real-time
- Maintains wall consistency between adjacent cells
5. Movement Control
The robot uses several movement functions:
moveForward(): Move one cell forwardturnLeft(): Turn 90 degrees leftturnRight(): Turn 90 degrees right- Uses PD (Proportional-Derivative) control for smooth motion
- Gyroscope feedback for accurate turns
- Encoder feedback for distance measurement
6. Navigation Logic
Wall Update:
updateWalls(); // Detect and update wall informationPath Planning:
floodOpenNeighbours(); // Update cell costs
getMinDistanceDirection(); // Choose best directionMovement:
moveInDirection(); // Execute movementKey Features
Adaptive Movement:
- PD control for straight line motion
- Gyroscope-based rotation control
- Wall following capability
Intelligent Maze Solving:
- Flood fill algorithm for path planning
- Multiple exploration rounds
- Efficient center finding and return to start
Robust Sensor Integration:
- IR sensor filtering
- Encoder-based distance measurement
- Gyroscope-based orientation tracking
Configuration
Key parameters can be adjusted in Profile.h:
MAZE_SIZE: Size of the maze (default: 8x8)Exploration_Rounds: Number of exploration rounds- Sensor thresholds
- Motor control parameters
Usage
- Upload the code (
Simple_Run_Micromouse_V1.ino) to the Raspberry Pi Pico W - Place the robot at the start position (0,0)
- The robot will automatically:
- Find the path to the center
- Return to start
- Repeat for the specified number of rounds
- Make a final run to the center
Debugging
- LED indicators for status
- Serial output for debugging
- Button to clear maze walls
Authors
Built by USI-27 and paramveer5404 .
Parts
57| Qty | Value | Footprint | References |
|---|---|---|---|
| 5 | 100nF | Capacitor_SMD:C_0402_1005Metric_Pad0.74x0.62mm_HandSolder | C2, C4, C10, C12, C14 |
| 4 | 2K | Resistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolder | R2, R3, R4, R5 |
| 4 | 51k | Resistor_SMD:R_2010_5025Metric_Pad1.40x2.65mm_HandSolder | R7, R8, R9, R13 |
| 4 | 5MM Emitter | LED_THT:LED_D5.0mm_IRBlack | D2, D3, D4, D5 |
| 4 | DMN1019USN-7 | SPX3819M5-L-5-0:SOT95P285X140-3N | Q2, Q4, Q5, Q8 |
| 4 | TEFT4300 | LED_THT:LED_D3.0mm_Clear | Q1, Q3, Q6, Q7 |
| 3 | 4u7 | Capacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolder | C9, C11, C13 |
| 2 | 10 ohm | Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder | R6, R12 |
| 2 | 100nF | Capacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolder | C6, C7 |
| 2 | 10uF | Capacitor_Tantalum_SMD:CP_EIA-3216-10_Kemet-I_Pad1.58x1.35mm_HandSolder | C1, C3 |
| 2 | 10uF | Capacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolder | C5, C8 |
| 2 | 5.6ohm | Resistor_SMD:R_0402_1005Metric_Pad0.72x0.64mm_HandSolder | R10, R11 |
| 2 | B6B-ZR | B6B-ZR:B6B-ZR | X1, X2 |
| 2 | N20 | myTools:N20MotorWithMount | N20, N20 |
| 1 | 100n | Capacitor_SMD:C_0402_1005Metric_Pad0.74x0.62mm_HandSolder | C15 |
| 1 | 100n | Capacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolder | C16 |
| 1 | 10n | Capacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolder | C17 |
| 1 | 1K | Resistor_SMD:R_0402_1005Metric_Pad0.72x0.64mm_HandSolder | R1 |
| 1 | 1N4148WS | Diode_SMD:D_SOD-323_HandSoldering | D1 |
| 1 | 2n2 | Capacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolder | C18 |
| 1 | AMS1117-5.0 | Package_TO_SOT_SMD:SOT-223-3_TabPin2 | U4 |
| 1 | B2B | Connector_JST:JST_XH_B2B-XH-AM_1x02_P2.50mm_Vertical | J1 |
| 1 | Buzzer | Buzzer_Beeper:Buzzer_12x9.5RM7.6 | BZ1 |
| 1 | LED_GREEN | LED_SMD:LED_0805_2012Metric_Pad1.15x1.40mm_HandSolder | D6 |
| 1 | LOGO | LOGO | logo |
| 1 | MPU-6050 | Sensor_Motion:InvenSense_QFN-24_4x4mm_P0.5mm | U3 |
| 1 | Pico | MCU_RaspberryPi_and_Boards:RPi_Pico_SMD_TH | U1 |
| 1 | TB6612FNG | Package_SO:SSOP-24_5.3x8.2mm_P0.65mm | U2 |
| 1 | ~ | TL2230EEF140:SW_TL2230EEF140 | S1 |
Questions
How big is the Mm3.0 PCB?
It measures 100 × 80 mm and has 2 copper layers, 1.6 mm thick.
What parts does the Mm3.0 use?
57 parts, built around the AMS1117-5.0, MPU-6050, TEFT4300 and B6B-ZR. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
Where can I download the Mm3.0 KiCad files?
From the USI-27/microMouse repository on GitHub, at the commit this page was made from: the board is MicroMouse Design Files/mm3.0/mm3.0.kicad_pcb and its schematic MicroMouse Design Files/mm3.0/mm3.0.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the Mm3.0 design in my own project?
Its repository states no licence, so its author keeps all rights: ask USI-27 before reusing the design.
Similar boards
- 2 layers39 × 31 mm

- 2 layers46 × 84 mm

- 4 layers

- 2 layers100 × 74 mm

- 4 layers70 × 99.9 mm

Micromouse
UBIEEE/FrankenMouse
FrankenMouse is a MicroMouse robot that was designed, built, and programmed from scratch by members of the University at Buffalo's IEEE Student Branch.
100 parts6MIT - 2 layers100.1 × 84.5 mm

- 4 layers80 × 87.6 mm

AratMicro
vorlaxen-labs/AratMicro
High-performance, open-source micromouse robot platform built for Robosam and MEB Robot (Ministry of National Education Robotics Competition, Turkey).
110 parts1MIT - 4 layers82 × 100 mm

PCB Kicad
ChristopherAwomolo/Nova-Micromouse
Newer version based off the Futura Micromouse
121 partsMIT