Skip to the content
PCBKitNew board
2 layers46 × 50 mmUMOUSE-85 placement, the printed circuit board in 3D

UMOUSE-85 placement

teamatomicbee/MOUSITO

MOUSITO: micromouse ATtiny85. Documentación, electrónica y mecánica. Antes MICROTINY-85.

Size
46 × 50 mm
Copper layers
2
Thickness
1 mm
Parts
32
Nets
17
Pads
83
Tracks, vias
176, 29
Pours
1
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
22 Sep 2026
Updated
22 Sep 2026

Overview

UMOUSE-85 placement is an open-source printed circuit board by teamatomicbee, from the teamatomicbee/MOUSITO repository on GitHub. It is a 2-layer board of 46 × 50 mm with 32 parts on 17 nets, routed with 176 tracks and 29 vias.

It is built around the ATTINY85-20SU, AO4806 and MCP1700-3302E/TT. Its parts include 10 resistors, 6 capacitors, 5 diodes, 3 ICs and 3 transistors. It belongs with the AVR (ATmega, ATtiny) boards of this library.

Main components

3

README

historico/README.md

MICROTINY-85 / µMOUSE-85

Micromouse minimalista basado en ATtiny85, con 2 motores N20, 2 micro-ESC bidireccionales y 3 sensores IR analógicos formados por SFH4550 + fototransistor.

Vista frontal

Prototipo montado

1. Objetivo

El proyecto busca un micromouse compacto con muy poco hardware: ATtiny85, tres sensores IR, dos motores y control bidireccional. El prototipo actual incorpora arranque tapando el sensor frontal, corrección lateral y giros sobre el eje.

2. Arquitectura

mermaid
flowchart LR
 BAT[Batería] --> REG[Regulación]
 REG --> MCU[ATtiny85]
 REG --> S[3 sensores IR]
 REG --> E1[ESC izquierdo]
 REG --> E2[ESC derecho]
 MCU -->|PB1| E1
 MCU -->|PB0| E2
 MCU <-->|PB2 / ADC1| L[IR izquierdo]
 MCU <-->|PB3 / ADC3| F[IR frontal]
 MCU <-->|PB4 / ADC2| R[IR derecho]
 E1 --> M1[N20 izquierdo]
 E2 --> M2[N20 derecho]

Mapeo confirmado: PB1 = motor izquierdo, PB0 = motor derecho.

3. Materiales

Cant.ComponenteNota
1ATtiny85DIP-8 prototipo / SOIC-8 PCB final
2Motor N20Tracción
2Micro-ESC bidireccionalPara motor DC brushed
3SFH4550Emisor IR
3Fototransistor IRReceptor analógico
3150 ΩSerie con SFH4550
32.2 kΩCarga del fototransistor
1100 nFDesacoplo ATtiny85
1470–1000 µFReserva cerca de ESC
2100 nFEn bornes de los N20
1ISP 2x3Programación
1AVRISP mkIIProgramador
1Batería + regulaciónSegún montaje

4. Pinout ATtiny85

Pin físicoPuertoUso
1PB5 / RESETRESET / ISP
2PB3 / ADC3IR frontal
3PB4 / ADC2IR derecho
4GNDMasa
5PB0 / MOSIESC / motor derecho
6PB1 / MISOESC / motor izquierdo
7PB2 / SCK / ADC1IR izquierdo
8VCC+5 V

ISP 2x3

SeñalATtiny85
MISOPB1 / pin 6
VCCpin 8
SCKPB2 / pin 7
MOSIPB0 / pin 5
RESETPB5 / pin 1
GNDpin 4

PB0, PB1 y PB2 comparten funciones con el robot. Durante programación conviene dejar la potencia de los motores en neutro o desconectada.

5. Montaje mecánico

  1. Montar los N20 simétricos y comprobar que las ruedas queden paralelas.
  2. Colocar la PCB con el morro redondeado hacia delante.
  3. Centrar la batería para evitar desequilibrio entre lados.
  4. Mantener libre el acceso al conector ISP.
  5. Comprobar que nada roce con el suelo.

El firmware actual usa:

cpp
#define ESC_IZQ 1   // PB1
#define ESC_DER 0   // PB0

6. Sensores IR

Cada canal usa un SFH4550 y un fototransistor.

Emisor

text
+5 V
 |
150 Ω
 |
SFH4550
 |
GND

Receptor

text
+5 V
 |
C
Fototransistor
E
 |
 +------> ADC ATtiny85
 |
2.2 kΩ
 |
GND

Comprobar siempre colector y emisor. Durante el desarrollo un montaje invertido produjo lecturas erráticas.

Orientación:

  • izquierdo hacia la pared izquierda;
  • frontal hacia delante;
  • derecho hacia la pared derecha.

El SFH4550 tiene haz estrecho: antes de fijar los sensores, mover emisor/receptor hasta encontrar la lectura ADC más alta y estable.

7. Calibración actual con SFH4550

SituaciónIzquierdoFrontalDerecho
Sin pared484087
Centrado en pasillo36866588
Pared lateral a 2 cm636—893
Pared lateral a 1 cm871—921
Pared frontal a 4 cm—912—
Pared frontal a 2 cm—949—
Pared frontal a 1 cm—939—

Referencias actuales:

cpp
const int CENTRO_IZQ = 368;
const int CENTRO_DER = 588;

Recalibrar si cambia la geometría, el sensor, las resistencias, la tensión o la PCB.

8. Micro-ESC y motores

La entrada de cada ESC usa una señal tipo RC:

text
~1500 µs = neutro
>1500 µs = un sentido
<1500 µs = sentido contrario

Esto permite:

text
GIRO DERECHA:
izquierdo -> adelante
derecho   -> atrás

GIRO IZQUIERDA:
izquierdo -> atrás
derecho   -> adelante

9. Alimentación

Todos los módulos comparten masa.

text
BATERÍA
  |
  +----> regulación lógica/sensores
  |
  +----> alimentación ESC
             |
             +--> N20 izquierdo
             +--> N20 derecho

Recomendado:

  • 100 nF junto al ATtiny85;
  • 470–1000 µF cerca de las ESC;
  • 100 nF directamente entre bornes de cada N20;
  • separar retornos de motor de las entradas ADC;
  • no superar la tensión nominal de las ESC.

10. Programación

Configuración utilizada:

  • Arduino IDE 2.x;
  • ATTinyCore;
  • ATtiny85;
  • reloj interno a 8 MHz;
  • AVRISP mkII;
  • sin bootloader.

Procedimiento:

  1. ATtiny25/45/85 (No bootloader).
  2. Chip: ATtiny85.
  3. Clock: 8 MHz internal.
  4. Programmer: AVRISP mkII.
  5. Ejecutar Burn Bootloader una vez para configurar fuses.
  6. Cargar con Upload Using Programmer.

Firma correcta:

text
0x1e930b

11. Puesta en marcha

  1. Levantar las ruedas.
  2. Alimentar el robot.
  3. Verificar neutro de ambas ESC.
  4. Probar motor izquierdo y derecho.
  5. Probar avance y retroceso.
  6. Probar pivote a ambos lados.
  7. Leer los tres sensores.
  8. Comprobar calibración con el robot centrado.
  9. Probar un pasillo recto.
  10. Probar una sola esquina.
  11. Solo después probar el laberinto completo.

12. Arranque por sensor frontal

  1. Encender el robot.
  2. Tapar el sensor frontal.
  3. Mantenerlo cubierto brevemente.
  4. Destaparlo.
  5. El firmware espera y comienza la marcha.

13. Parámetros de ajuste

cpp
VEL_BASE
VEL_GIRO
CORRECCION_MAX
CENTRO_IZQ
CENTRO_DER
KP_IZQ
KP_DER
IZQ_ON
DER_ON
FRONT_ON
GIRO_IZQ_90
GIRO_DER_90
GIRO_180

Modificar un solo parámetro cada vez.

14. Problemas encontrados

Fototransistores invertidos

Provocaron lecturas anómalas. Verificar C/E.

Emisor IR derecho averiado

La lectura derecha quedó artificialmente baja. Se sustituyó antes de recalibrar.

Mapeo de motores invertido

El montaje real es:

text
PB1 -> izquierdo
PB0 -> derecho

Con el orden contrario el robot corregía hacia la pared.

Giro abierto con MOSFET

Con un MOSFET por motor la rueda interior quedaba libre. La solución fue usar micro-ESC bidireccionales.

15. Estructura del repositorio

text
MICROTINY-85/
├── README.md
├── BOM.csv
├── assets/
│   ├── microtiny85_front.jpg
│   └── microtiny85_assembled.jpg
├── docs/
│   └── PINOUT.md
├── firmware/
├── hardware/
│   ├── kicad/
│   └── gerbers/
└── mechanical/
    └── stl/

16. Estado actual

  • ATtiny85 programable por AVRISP mkII
  • 8 MHz interno
  • Tres sensores IR analógicos
  • SFH4550
  • Dos N20
  • Micro-ESC bidireccionales
  • Avance y retroceso
  • Giro sobre el eje
  • Arranque por sensor frontal
  • Corrección básica de pasillo
  • PCB definitiva
  • Calibración final sobre PCB definitiva
  • Optimización de velocidad
  • Navegación avanzada / mapeo

MICROTINY-85 / µMOUSE-85 — micromouse minimalista con ATtiny85.

Parts

32
QtyValueFootprintReferences
310kResistor_SMD:R_0603_1608MetricR8, R9, R10
3150RResistor_SMD:R_0603_1608MetricR5, R6, R7
34.7nF DNPCapacitor_SMD:C_0603_1608MetricC4, C5, C6
2100RResistor_SMD:R_0603_1608MetricR1, R2
2100kResistor_SMD:R_0603_1608MetricR3, R4
24.7uFCapacitor_SMD:C_0805_2012MetricC1, C2
2B5819W/SS14FDiode_SMD:D_SOD-123D1, D2
2N20 1812 90degCustom:Motor_Wire_Pads_SMDM1, M2
1100nFCapacitor_SMD:C_0603_1608MetricC3
1AO4806Custom:SOIC-8_3.9x4.9mm_P1.27mmU2
1ATtiny85-20SUCustom:SOIC-8_5.3x5.3mm_P1.27mmU1
1AVR ISP POGOCustom:AVR_ISP_POGO_2x3_P1.27mmJ2
1IR 940nm 5mm FRONTLED_THT:LED_D5.0mmD4
1IR 940nm 5mm LEFTLED_THT:LED_D5.0mmD3
1IR 940nm 5mm RIGHTLED_THT:LED_D5.0mmD5
1LiPo 1S JST-PHConnector_JST:JST_PH_B2B-PH-SM4-TB_1x02-1MP_P2.00mm_VerticalJ1
1MCP1700-3302E/TTPackage_TO_SOT_SMD:SOT-23U3
1ON/OFFCustom:SW_SPST_SMD_6.4x3.4mmSW1
1Phototransistor IR 5mm FRONTOptoDevice:PhotoTransistor_D5.0mm_P2.54mmQ2
1Phototransistor IR 5mm LEFTOptoDevice:PhotoTransistor_D5.0mm_P2.54mmQ1
1Phototransistor IR 5mm RIGHTOptoDevice:PhotoTransistor_D5.0mm_P2.54mmQ3

Questions

How big is the UMOUSE-85 placement PCB?

It measures 46 × 50 mm and has 2 copper layers, 1 mm thick.

What parts does the UMOUSE-85 placement use?

32 parts, built around the ATTINY85-20SU, AO4806 and MCP1700-3302E/TT. 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 UMOUSE-85 placement KiCad files?

From the teamatomicbee/MOUSITO repository on GitHub, at the commit this page was made from: the board is historico/uMOUSE-85_placement.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the UMOUSE-85 placement design in my own project?

Its repository states no licence, so its author keeps all rights: ask teamatomicbee before reusing the design.

Similar boards

  • 2 layers15 × 31 mmPocketAdmin, the printed circuit board in 3D

    PocketAdmin

    krakrukra/PocketAdmin

    oshw keystroke injection device ( badusb )

    25 parts241MIT
  • 2 layers73 × 94 mmSportiduino base, the printed circuit board in 3D

    Sportiduino base

    sportiduino/sportiduino

    Electronic timing system for orienteering and similar outdoor sports events on Arduino

    119 parts78GPL-3.0
  • 2 layers50 × 75 mmLocalTrack, the printed circuit board in 3D

    LocalTrack

    krakrukra/LocalTrack

    OSHW GPS Tracker (Logger)

    63 parts18MIT
  • 2 layers97.2 × 55.9 mmMjs pcb, the printed circuit board in 3D

    Mjs pcb

    meetjestad/mjs_pcb

    This repository contains various versions of the sensor station PCB used by Meetjestad.

    83 parts6
  • 2 layers100 × 100 mmKijaniCarrier, the printed circuit board in 3D

    KijaniCarrier

    Waziup/WaziDev

    WaziDev official repository

    75 parts5Apache-2.0
  • 4 layers70 × 40 mmUHoubolt PCB ECU, the printed circuit board in 3D

    UHoubolt PCB ECU

    SpaceTeam/uHoubolt_PCB_ECU

    µHoubolt Engine Control Unit KiCad project

    216 parts2CERN-OHL-W-2.0
  • 2 layers37.8 × 50 mmXilwatch2, the printed circuit board in 3D

    Xilwatch2

    xil-se/xilwatch_hw

    68 parts2
  • 2 layers60 × 40 mmCargofy IoT Node, the printed circuit board in 3D

    Cargofy IoT Node

    Afuu-coder/Cargofy

    🚚 Cargofy — AI-Powered Cold Chain Intelligence Platform | Autonomous Rerouting Agent | Google ADK | ULIP Integration | FAR AWAY 2026 Hackathon

    41 parts