Arduino-controlled robot solves Rubik’s Cubes in a couple seconds
Rubik’s Cubes have been sold in stores for more than 40 years now, but most of us still can’t solve them. Others take the puzzles very seriously, competing in many speed-solving competitions around the world. The world record for the fastest Rubik’s Cube solution is a mere 3.47 seconds, set by China’s Yusheng Du. But this robot created by Redditor iBoot32 puts that record to shame by solving the 3D puzzle in less than two seconds.
It may not seem like it, but the central square on each side of a Rubik’s Cube remains stationary. By spinning those squares, one can rotate the entire side of the cube. iBoot32’s robot design takes advantage of that fact and has six steppers motors that attach to the central squares on each of the Cube’s six sides. This arrangement gives the robot full manipulation of the Rubik’s cube.
An Arduino Mega 2560 board controls those six motors through a CNC shield with DRV8825 drivers. The shield only has four motor drivers, so the Arduino has to switch between the motors it can control at any given moment. A nearby PC runs Kociemba’s Optimal Solver software to generate solutions, which then output to the Arduino as a series of rotation commands. iBoot32 can either manually input the Rubik’s Cube’s initial state or use computer vision to automatically input the state into the solver software.
The exact amount of time it takes to solve a cube depends on its initial state, but iBoot32 says that it usually takes around 1.5 to 2 seconds.