Skip to the content
PCBKitNew board
2 layers102 × 90.8 mmKicad project, the printed circuit board in 3D

Siguelíneas de tipo Robotracer para competir en la All Japan Robotracer 2027

Size
102 × 90.8 mm
Copper layers
2
Thickness
0.19 mm
Parts
252
Nets
212
Pads
1,207
Tracks, vias
3,339, 623
Pours
1,106
Routed
Yes
KiCad
KiCad 8.0 (file 20240108)
Created
26 Nov 2025
Updated
18 Oct 2026

Overview

Kicad project is an open-source printed circuit board by OPRobots, from the OPRobots/DragonBot2 repository on GitHub. It is a 2-layer board of 102 × 90.8 mm with 252 parts on 212 nets, routed with 3,339 tracks and 623 vias.

It is built around the STM32F405RGT6, CD4051BE and SS34FA, with the AON7423 among its other parts. Its parts include 69 resistors, 44 capacitors, 24 switches, 18 diodes and 4 connectors. It belongs with the STM32 boards of this library.

Main components

4

README

README.md

DragonBot2

Robot siguelíneas tipo Robotracer de alto rendimiento para competir en la All Japan Robotracer 2027. Basado en un STM32F405 @168 MHz, con 24 sensores de línea multiplexados, tracción tetra con 4 motores coreless, encoders magnéticos de alta resolución, succión y un EKF de odometría de 6 estados, todo con registro de datos a bordo y herramientas de análisis offline.

DragonBot2

🎯 Objetivo

Desarrollar un robotracer competitivo para la All Japan Robotracer 2027. El firmware contempla tres modos de competición:

  • Linefollower
  • Robotracer
  • Drag race

🏆 Palmarés

Todavía en desarrollo — sin resultados de competición por el momento.

🥇🥈🥉
000

Resultados por Evento

EventoCategoríaPosiciónAño
Pendiente———

⚙️ Hardware

  • Microcontrolador: STM32F405RGT6 @168 MHz (LQFP-64)
  • Driver de motores: 2× MP6615 (puente H con sensado de corriente bidireccional integrado)
  • IMU: LSM6DSR (giroscopio, 1000/2000/4000 dps)
  • Encoders: 2× AS5145B-HSST magnéticos de 12 bits (leídos en cuadratura ×4 por hardware → 4096 cuentas/vuelta)
  • Sensores de línea: 24× ITR8307 (reflectivos) leídos a través de 3× multiplexores CD4051B
  • Sensores de marca: 4× ITR8307 (laterales, para landmarks del robotracer)
  • Sensor de presión: BMP280
  • Memoria externa: SRAM SPI 23AA04M-I/ST de 512 KB + EEPROM en la flash interna del MCU
  • Receptor infrarrojo: TSSP77038TR (38 kHz, mando RC5)
  • Regulador: DC-DC conmutado CN3903 + LDO
  • Mosfet de succión: BUK9Q20-40H
  • LEDs: 1× LED RGB 5050, 10 LEDs de información, 1 LED de estado
  • Batería: LiPo 3S (11,1–12,6 V), fabricada a partir de 3 celdas 1S de 300 mAh; conector JST-XH de 4 pines
  • Conectores de motores: Hirose DF13 a 1,25 mm
  • Interfaz: USB-C (ST-Link + USART3)

Tracción

  • Tracción tetra: 2 ruedas por lado, con 4 motores coreless de 7.4v (2 por lado)
  • Reducción: piñón de 8 dientes → engranaje de 40 dientes (5:1)
  • Ruedas: Ø≈23 mm, con llanta impresa en PLA, una capa de espuma gruesa y una lámina de silicona exterior de gran adherencia
  • Succión: doble ventilador centrífugo para aumentar el agarre a alta velocidad, usando 2 motores coreless de 7.4v

PCBs

El repositorio incluye dos placas diseñadas en KiCad (proyecto, gerbers y BOM):

  • Main: MCU, drivers, sensores, encoders, memoria y regulación.
  • Chasis: placa de chasis con pads de interconexión y switch de alimentación.

Pinout (resumen)

FunciónPeriférico / Pin
PWM motoresTIM1 CH1–CH4 (PA8–PA11)
EncodersTIM3 (PB4/PB5), TIM4 (PB6/PB7)
Succión / RGBTIM8 CH1–CH4 (PC6–PC9)
Sensores de líneaADC1 IN10–IN12 (PC0–PC2) + selección de mux (PC13–PC15)
Sensores de marca / corriente de motorADC2 IN0–IN5 (PA0–PA5)
Tensión de bateríaADC2 IN13 (PC3)
IMU / BMP280 / SRAMSPI3 (PC10–PC12)
Mando IR 38 kHzEXTI12 (PA12)
Serie / ST-LinkUSART3 (PB10/PB11)

DragonBot2 - 3D Model

💻 Software

  • Programado en VSCode + PlatformIO con libopencm3. Flasheo y depuración por ST-Link.
  • Scheduler con SysTick a 8 kHz repartido en 8 slots → cada tarea corre a 1 kHz.
  • Todas las señales analógicas se leen por DMA (ADC1 y ADC2).
  • Los sensores de línea se leen a través de los 3 multiplexores; la posición sobre la línea (rango ±1000) se calcula por media ponderada, con filtro de ventana Bigger Filtro y detección automática del color de la línea (blanca/negra).
  • Los encoders se leen en cuadratura por hardware (TIM3/TIM4), con resolución de overflow por máxima verosimilitud.
  • La IMU se lee por SPI con data-ready; el LSM6DSR se configura a ODR 833 Hz sin filtro hardware (medida cruda para el estimador).
  • Odometría con EKF de 6 estados [x, y, θ, v, ω, bias_gyro], con dt real medido por DWT, ZUPT y detección de derrape.
  • Lazo de control a 1 kHz con PID de velocidad lineal y PID de posición de línea (angular) que reparte la tensión entre las ruedas, con compensación de la tensión de batería.
  • Estrategias de velocidad: SPEED_TEST, SPEED_NORMAL, SPEED_MEDIUM, SPEED_FAST, SPEED_SUPER y SPEED_HAKI (2000–4000 mm/s), con ganancias escaladas ∝ 1/v.
  • Menú de configuración y de run por LEDs, manejable con botones y con mando RC5; los parámetros se persisten en EEPROM.
  • Calibraciones: offset del giroscopio, sensores, separación de ruedas (girando 2π con el gyro), escala de rueda (distancia patrón) y escalón de rotación (test T1).
  • Registro a bordo: log en la SRAM SPI de 512 KB (ring en RAM + volcado diferido en los slots del SysTick), volcado por serie para análisis offline.

Herramientas de análisis (source_code/tools/)

  • line_control_tuner.py — métricas y predicción de ganancias del lazo de línea.
  • linear_speed_analyzer.py — análisis del lazo de velocidad lineal y feedforward.
  • parse_odometry_log.py — parseo y gráficas del log de odometría.

Documentación técnica interna (.features/)

  • odometry/ROADMAP.md — odometría y EKF.
  • pid_tuning/ROADMAP.md — tuning del control de velocidad y de línea.
  • linear_speed/linear_speed_analysis_and_plan.md — análisis del lazo lineal.

🎥 Vídeos

https://github.com/user-attachments/assets/3e48b05f-021b-4ee5-92f5-90e260f31eb7

📄 Licencia

Distribuido bajo la PolyForm Noncommercial License 1.0.0. Ver LICENSE.

Parts

252
QtyValueFootprintReferences
2810kResistor_SMD:R_0402_1005Metric_Pad0.72x0.64mm_HandSolderR19, R24, R27, R29, R31, R32, R34, R35, R37, R38, R40, R41, R43, R44, R46, R47 +12
240.1uFCapacitor_SMD:C_0402_1005Metric_Pad0.74x0.62mm_HandSolderC2, C3, C7, C10, C11, CB1, CB2, CEN2, CEN4, CG1, CG2, CIR2, CM2, CM4, CM10, CM12 +8
24~custom_footprints:DragonBot2_QRE1113S1, S2, S10, S11, S12, S13, S14, S15, S16, S17, S18, S19, S20, S21, S22, S23 +8
2210uFCapacitor_SMD:C_0402_1005Metric_Pad0.74x0.62mm_HandSolderCA4, CA5, CA6, CA7, CA8, CA11, CA12, CA13, CA14, CDM3, CDM4, CDM5, CDM8, CDM9, CDM10, CIR1 +6
16330Resistor_SMD:R_0402_1005Metric_Pad0.72x0.64mm_HandSolderR2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R14, R15, R16, R17, RPH1, RPH2
14, , , , , , , , , , , , ,
1445Resistor_SMD:R_0402_1005Metric_Pad0.72x0.64mm_HandSolderR26, R28, R30, R33, R36, R39, R42, R45, R48, R51, R54, R57, R60, R63
10LEDLED_SMD:LED_0805_2012MetricD1, D2, D3, D4, D5, D6, D7, D8, D9, D10
81uFCapacitor_SMD:C_0402_1005Metric_Pad0.74x0.62mm_HandSolderC8, C12, CA2, CA3, CEN1, CEN3, CPH2, CPH5
6Conn_01x02_Socketcustom_footprints:Connector_motor_1.25_Hirose_DF13-02P-1.25DSA_1x02_P1.25mm_VerticalMot_L1, Mot_L2, Mot_R1, Mot_R2, Mot_S1, Mot_S2
547uFCapacitor_SMD:C_0805_2012MetricCA10, CDM1, CDM2, CDM6, CDM7
5LEDLED_SMD:LED_0402_1005Metric_Pad0.77x0.64mm_HandSolderD13, D14, D15, DPH1, DPH2
44.7uFCapacitor_SMD:C_0402_1005Metric_Pad0.74x0.62mm_HandSolderC1, CA1, CPH3, CPH6
4Conn_01x04_Socketcustom_footprints:DragonBot2_Encoder_mainCONN_ENC_L1, CONN_ENC_R1, ENC_L1, ENC_R1
4Conn_01x04_Socketcustom_footprints:DragonBot_pad_marcasSEN_MARK_CONN_L1, SEN_MARK_CONN_R1, SEN_MARK_L1, SEN_MARK_R1
4~custom_footprints:FujitoraBot2_QRE1113SML1, SML2, SMR1, SMR2
31KResistor_SMD:R_0402_1005Metric_Pad0.72x0.64mm_HandSolderR18, R23, R25
3CD4051Bcustom_footprints:MUX_CD4051BMUX1, MUX2, MUX3
3SolderJumper_2_OpenJumper:SolderJumper-2_P1.3mm_Open_RoundedPad1.0x1.5mmJP1, JP2, JP99
20.1uFCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC15, C18
2100nFCapacitor_SMD:C_0402_1005Metric_Pad0.74x0.62mm_HandSolderCPH1, CPH4
210KResistor_SMD:R_0402_1005Metric_Pad0.72x0.64mm_HandSolderR22, RRAM1
210uFCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC13, C17
22.2uFCapacitor_SMD:C_0402_1005Metric_Pad0.74x0.62mm_HandSolderC4, C9
220pFCapacitor_SMD:C_0402_1005Metric_Pad0.74x0.62mm_HandSolderC5, C6
227KResistor_SMD:R_0402_1005Metric_Pad0.72x0.64mm_HandSolderRBC1, RBC3
247KResistor_SMD:R_0402_1005Metric_Pad0.72x0.64mm_HandSolderR1, R13
247kResistor_SMD:R_0402_1005Metric_Pad0.72x0.64mm_HandSolderR12, RBC4
2AS5145B-HSSTcustom_footprints:Encoder_AS5145BIC1, IC2
2Conn_01x02_Socketcustom_footprints:ZoroBot3_Power_MPUJ1, POWER_MPU1
2Conn_01x04_Socketcustom_footprints:ZoroBot3_Data_MPUJ2, LOGIC_MPU1
2SS34FADiode_SMD:D_SOD-123D11, D12
2~custom_footprints:MP6615MP1, MP2
1100KResistor_SMD:R_0402_1005Metric_Pad0.72x0.64mm_HandSolderR20
1100kResistor_SMD:R_0402_1005Metric_Pad0.72x0.64mm_HandSolderRBC2
123AA04M-I/STPackage_SO:TSSOP-8_4.4x3mm_P0.65mmSRAM1
133KResistor_SMD:R_0402_1005Metric_Pad0.72x0.64mm_HandSolderR21
147uFCapacitor_SMD:C_1206_3216MetricCA9
1AON7423custom_footprints:AON7423Q1
1Conn_01x04_SocketConnector_JST:JST_XH_B4B-XH-AM_1x04_P2.50mm_VerticalBATT1
1Conn_01x08_Pincustom_footprints:DragonBot_pads_morroCONN_MORRO1
1Conn_01x08_Socketcustom_footprints:DragonBot_pads_mainARRAY_MORRO1
1Crystal_GND24Crystal:Crystal_SMD_TXC_7M-4Pin_3.2x2.5mmY1
1DDiode_SMD:D_0805_2012Metric_Pad1.15x1.40mm_HandSolderD16
1LInductor_SMD:L_Wuerth_HCM-7050L1
1LED_RGBLED_SMD:LED_RGB_5050-6RGB1
1NMOScustom_footprints:Mosfet_succion_BUK9Q20BUK9Q20-40H1
1STM32F405RGT6Package_QFP:LQFP-64_10x10mm_P0.5mmDEIXAME_QUE_PENSE_1
1SW_DPDT_x2custom_footprints:Generic_Swich_ONOFFPOWER_SWITCH1
1~Package_DFN_QFN:DFN-6-1EP_3x3mm_P0.95mm_EP1.7x2.6mmLDO1
1~Package_LGA:LGA-14_3x2.5mm_P0.5mm_LayoutBorder3x4yLSM6DSR1
1~Package_SO:Texas_HTSOP-8-1EP_3.9x4.9mm_P1.27mm_EP2.95x4.9mm_Mask2.4x3.1mm_ThermalViasDC-DC1
1~Package_LGA:Bosch_LGA-8_2.5x2.5mm_P0.65mm_ClockwisePinNumberingBMP1
1~custom_footprints:IR_SENSOR_SMD_TSSP77038ETRIR_RECIVER1
1~custom_footprints:USB-C ST-Link USARTUSB1
1~custom_footprints:Generic_SmallButton_6x3BTN_RST1

Questions

How big is the Kicad project PCB?

It measures 102 × 90.8 mm and has 2 copper layers, 0.19 mm thick.

What parts does the Kicad project use?

252 parts, built around the STM32F405RGT6, CD4051BE, SS34FA and AON7423. 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 Kicad project KiCad files?

From the OPRobots/DragonBot2 repository on GitHub, at the commit this page was made from: the board is pcb_files/kicad_project/main/main.kicad_pcb and its schematic pcb_files/kicad_project/chasis/chasis.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Kicad project design in my own project?

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

More from OPRobots/DragonBot2

1
  • 2 layers172.8 × 166.8 mmChasis, the printed circuit board in 3D

    Chasis

    OPRobots/DragonBot2

    Siguelíneas de tipo Robotracer para competir en la All Japan Robotracer 2027

    16 parts5

Similar boards

  • 2 layers86.5 × 91.9 mmZoroBot3, the printed circuit board in 3D

    ZoroBot3

    OPRobots/ZoroBot3

    Tercera versión de nuestro primer robot. Un robot micromouse de alto rendimiento con STM32F4, encoders magneticos de alta resolución, succión y muchos leds molones.

    205 parts43GPL-3.0
  • 4 layers338.8 × 170.4 mmSlack, the printed circuit board in 3D

    Slack

    Dreamy-Jy/slack

    An ergonomic relaxing keyboard.

    392 parts
  • 4 layers40.8 × 40.8 mmACwing ESC1S A, the printed circuit board in 3D

    ACwing ESC1S A

    ACwing-UAV/ACwing_HW

    ACwing is a modular set of PCBs for small multirotors.

    51 parts
  • 4 layers90.3 × 26.6 mmC12, the printed circuit board in 3D

    C12

    git4dcc/RTB_C12

    DCC Railcom booster

    95 parts1Apache-2.0
  • 4 layers40 × 36 mmDrone v0-00, the printed circuit board in 3D

    Drone v0-00

    Haruki-Ayukawa/Full_Scratch_Drone

    ESP32搭載基板、プリンタで造形したフレーム、ショップで購入したモータ・プロペラ・LiPoバッテリを用いてフルスクラッチのドローンを製作しました。

    55 parts1MIT
  • 4 layers282 × 129 mmTracker Panel, the printed circuit board in 3D

    Tracker Panel

    SomaticVR/Eros-Hardware

    860 parts1