Skip to the content
PCBKitNew board
4 layers176.8 × 89.4 mmRobotRubi, the printed circuit board in 3D

A complete Rubik's Cube solving robot designed from scratch

Size
176.8 × 89.4 mm
Copper layers
4
Thickness
1.6 mm
Parts
149
Nets
141
Pads
487
Tracks, vias
878, 256
Pours
23
Routed
Yes
KiCad
KiCad 7 (file 20221018)
Created
13 Apr 2023
Updated
28 Aug 2025

Overview

RobotRubi is an open-source printed circuit board by hoffy98, from the hoffy98/RobotRubi repository on GitHub. It is a 4-layer board of 176.8 × 89.4 mm with 149 parts on 141 nets, routed with 878 tracks and 256 vias.

It is built around the AMS1117-3.3, S8050 and S8550, with the SS34 and B140-E3 among its other parts. Its parts include 43 connectors, 39 resistors, 22 capacitors, 18 diodes and 15 transistors. It belongs with the robots and motor control boards and the STM32 boards of this library.

Main components

5

README

README.md

Headline

A complete Rubik's Cube solving robot designed from scratch

Robot Final

Robot-Rubi is a fully autonomous Rubik's cube solving robot that combines mechanical engineering, electronics design, computer vision, and advanced algorithms. The entire system was designed and built from the ground up, featuring custom 3D-printed mechanics, a purpose-built PCB, and an optimized solving algorithm.

🎯 Key Features

  • Complete end-to-end solution: From cube recognition to mechanical solving
  • Custom mechanical design: 3D-printed chassis with 6 stepper motors for cube manipulation
  • Purpose-built electronics: Custom PCB with STM32 microcontroller and stepper drivers
  • Advanced solving algorithm: Implementation of IDA* with pattern databases for optimal solutions
  • Computer vision: Dual camera setup for accurate cube state detection
  • Desktop application: User-friendly interface for robot control and monitoring

Project Overview

Project Overview

🔧 System Components

Mechanical Design

  • 6-axis manipulation system with NEMA 17 stepper motors
  • Linear actuator mechanism for cube insertion/removal
  • 3D-printed components designed for precision and durability
  • Custom gripper system with spring-loaded cube interfaces

CAD Explosion View

Electronics & Hardware

  • Custom 4-layer PCB with integrated stepper drivers
  • STM32F401CCU6 microcontroller (ARM Cortex-M4, 84 MHz)
  • 6x DRV8825 stepper motor drivers for precise motor control
  • USB-C connectivity for power and communication
  • 2x Webcam for cube state recognition
  • LED ring illumination for optimal computer vision performance

Electronics Block Diagram

Electronics Schematic

Software & Algorithms

  • IDA solving algorithm* with pattern databases for optimal solutions
  • Two cube models: Array model for testing, Index model for performance
  • Real-time computer vision for cube state recognition
  • Desktop application built with modern UI framework
  • Microcontroller firmware with state machine architecture
Software Frontend

Videos

📁 Project Structure

text
RobotRubi
├───algorithm/          # Solving algorithms and pattern databases
│   ├───src/           # C++ implementation of IDA* solver
│   ├───docs/          # Algorithm documentation and research papers
│   └───performance/   # Performance analysis and benchmarks
├───docs/              # Complete project documentation
│   ├───chapters/      # Detailed technical documentation
│   ├───images/        # Project images and diagrams
│   └───main.pdf       # Full project report (German)
├───embedded/          # Hardware design and microcontroller firmware
│   ├───Hardware/      # PCB schematics and design files
│   └───Software/      # STM32 firmware implementation
├───frontend/          # Desktop application
│   ├───electron/      # Cross-platform desktop app
│   └───sandbox/       # Development and testing
└───mechanical/        # CAD files and 3D models
    ├───parts/         # Individual component designs
    ├───subassembly/   # Assembly drawings
    └───testPrintParts/ # Prototype iterations

🚀 Performance

  • Optimal solutions: Guaranteed shortest path using IDA* algorithm
  • Fast solving: Mechanical execution in under 10 seconds
  • High accuracy: Computer vision system with LED-enhanced recognition
  • Reliable operation: Robust mechanical design with spring-loaded tolerance compensation

🎓 Technical Highlights

This project demonstrates expertise across multiple engineering disciplines:

  • Mechanical Engineering: CAD design, 3D printing, linear actuators, precision mechanics
  • Electronics Design: PCB layout, power management, motor control, embedded systems
  • Computer Science: Algorithm optimization, graph search, pattern databases, computer vision
  • Software Engineering: Real-time systems, user interfaces, serial communication protocols

📖 Documentation

Comprehensive documentation is available in the docs/ folder, including:

  • Complete technical report (docs/main.pdf)
  • Algorithm analysis and performance benchmarks
  • Mechanical design drawings and CAD files
  • Electronics schematics and PCB layouts
  • Software architecture and implementation details

🛠️ Getting Started

  1. Hardware Setup: Assemble the mechanical components and connect the electronics
  2. Firmware: Flash the STM32 microcontroller with the provided firmware
  3. Software: Install and run the desktop application
  4. Calibration: Configure camera settings and motor parameters
  5. Solving: Insert a scrambled cube and let Robot-Rubi solve it!

This project was developed as a comprehensive engineering challenge, combining the fascination of the Guinness World Record for fastest Rubik's cube solving (0.38 seconds by MIT, 2018) with the educational goal of understanding every aspect of such a system from first principles.

Parts

149
QtyValueFootprintReferences
16Conn_01x02_PinConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ28, J29, J30, J31, J32, J33, J34, J35, J36, J37, J38, J39, J40, J41, J42, J43
154.7kΩResistor_SMD:R_0603_1608MetricR8, R10, R12, R14, R16, R18, R20, R22, R24, R26, R28, R30, R32, R34, R36
12Conn_01x08_SocketConnector_PinSocket_2.54mm:PinSocket_1x08_P2.54mm_VerticalJ10, J11, J13, J14, J16, J17, J19, J20, J22, J23, J25, J26
11200ΩResistor_SMD:R_0603_1608MetricR6, R7, R9, R11, R13, R17, R21, R25, R29, R33, R37
9S8050Package_TO_SOT_SMD:SOT-23Q1, Q2, Q3, Q5, Q7, Q9, Q11, Q13, Q15
7100ΩResistor_SMD:R_0603_1608MetricR1, R15, R19, R23, R27, R31, R35
6100uFCapacitor_THT:C_Radial_D5.0mm_H11.0mm_P2.00mmC17, C18, C19, C20, C21, C22
6Conn_01x04_SocketConnector_JST:JST_EH_B4B-EH-A_1x04_P2.50mm_VerticalJ12, J15, J18, J21, J24, J27
6GREENLED_SMD:LED_0805_2012MetricD6, D8, D10, D12, D14, D16
6S8550Package_TO_SOT_SMD:SOT-23Q4, Q6, Q8, Q10, Q12, Q14
6WHITELED_SMD:LED_0805_2012MetricD7, D9, D11, D13, D15, D17
5100nFCapacitor_SMD:C_0402_1005MetricC6, C7, C8, C9, C13
4MountingHoleMountingHole:MountingHole_4.3mm_M4H1, H2, H3, H4
3Conn_01x04_PinConnector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_HorizontalJ3, J4, J5
3YELLOWLED_SMD:LED_0805_2012MetricD3, D4, D5
210kΩResistor_SMD:R_0402_1005MetricR2, R5
210ΩResistor_SMD:R_0402_1005MetricR38, R39
212pFCapacitor_SMD:C_0402_1005MetricC15, C16
21k5ΩResistor_SMD:R_0402_1005MetricR3, R4
21uFCapacitor_SMD:C_0402_1005MetricC11, C12
222uFCapacitor_SMD:C_0805_2012MetricC3, C4
2330uF/50VCapacitor_SMD:CP_Elec_10x10.5C1, C2
2Conn_01x03_PinConnector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_HorizontalJ8, J9
1 SS34Diode_SMD:D_SMAD1
110nFCapacitor_SMD:C_0402_1005MetricC10
110uFCapacitor_SMD:C_0603_1608MetricC5
12.2uFCapacitor_SMD:C_0402_1005MetricC14
125MHz 9pFCrystal:Crystal_SMD_2520-4Pin_2.5x2.0mmY1
147uHInductor_SMD:L_12x12mm_H6mmL1
1600Ω@100MHzInductor_SMD:L_0603_1608MetricFB1
1AMS1117-3.3Package_TO_SOT_SMD:SOT-223-3_TabPin2U2
1B140-E3Diode_SMD:D_SMAD18
1Conn_01x03_PinConnector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJ7
1Conn_01x05_PinConnector_PinHeader_2.54mm:PinHeader_1x05_P2.54mm_HorizontalJ6
1LM2596SX-5.0/NOPBPackage_TO_SOT_SMD:TO-263-5_TabPin3U1
1LOGOHardware:cubeImageG***
1REDLED_SMD:LED_0805_2012MetricD2
1STM32F401CCUxPackage_DFN_QFN:QFN-48-1EP_7x7mm_P0.5mm_EP5.6x5.6mmU3
1Screw_Terminal_01x02TerminalBlock:TerminalBlock_bornier-2_P5.08mmJ1
1SwitchSamacSys_Parts:TS1187ABABS1
1USB_B_MicroSamacSys_Parts:MICROXNJJ2

Questions

How big is the RobotRubi PCB?

It measures 176.8 × 89.4 mm and has 4 copper layers, 1.6 mm thick.

What parts does the RobotRubi use?

149 parts, built around the AMS1117-3.3, S8050, S8550 and SS34. 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 RobotRubi KiCad files?

From the hoffy98/RobotRubi repository on GitHub, at the commit this page was made from: the board is embedded/Hardware/RobotRubi.kicad_pcb and its schematic embedded/Hardware/RobotRubi.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the RobotRubi design in my own project?

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

Similar boards

  • 2 layers99.1 × 99 mmXDuinoRail Debug, the printed circuit board in 3D

    XDuinoRail Debug

    chatelao/xDuinoRail-Decoder

    The friendly decoder development plattform for model railroad tinkers.

    170 partsAGPL-3.0
  • 2 layers121 × 75.5 mmJlctest, the printed circuit board in 3D

    Jlctest

    cjheath/jlcbasic

    JLC Basic parts library for Kicad fetched and converted from EasyEDA

    46 parts5
  • 4 layers70 × 157.5 mmController Tv Lift, the printed circuit board in 3D

    Controller Tv Lift

    vyrubaev/TV-Lift-Controller

    TVLift Controller is an intelligent controller for TV lift and lower mechanisms, based on the ESP32 microcontroller.

    103 parts
  • 2 layers85 × 56 mmHB RF ETH, the printed circuit board in 3D

    HB RF ETH

    alexreinert/PCB

    Some of my PCBs

    96 parts104
  • 2 layers50 × 145 mmSmartRemote, the printed circuit board in 3D

    SmartRemote

    Circuit-Digest/Smart-Universal-Remote-with-Learning-function-and-Google-Assistant-Support

    Smart Universal Remote with Learning function and Google Assistant Support

    75 parts3
  • 2 layers68.2 × 52.2 mmForward Ignition PCB, the printed circuit board in 3D

    Forward Ignition PCB

    aditgoyal5/Forward_Ignition_PCB

    This repository is about a printed circuit board I built for Team Sammard.

    135 parts
  • 4 layers65 × 73.9 mmBarn blinds controller, the printed circuit board in 3D

    Barn blinds controller

    irvintim/barn-blinds-controller

    Open barn-blinds-controller.kicadpro. Everything the project needs is under this folder: lib/NewLibrary.kicadsym (U1, J4, TMP235), lib/barnshadecontroller.pretty/, and lib/3dmodels/ (referenced as…

    118 parts