Introduction: ARS - Arduino Rubik Solver

ARS is a complete system to solve Rubik's cube: yes, another robot to solve the cube!

ARS is a three years long school project made with 3D printed parts and laser cut structures: an Arduino receives the correct sequence generated by an home made software, ARS Studio, through USB port, then moves forward and backward six stepper motors till the end.

ARS is based on great mr. Kociemba algorithm: as told on his website, Herbert Kociemba is a German cuber from Darmstadt, Germany who invented this algorithm in 1992 in order to find near optimal solutions to 3x3 cube, improving on the Thistlethwaite Algorithm.

In this Instructable instructions will be explained about building robot structure, and using the open source software developed to generate the proper sequence needed to solve the cube using Kociemba's algorithm.

More infos on Kociemba and his work:

Following steps will deal on mechanical structure and software use.


You will need:

Step 1: ARS - Arduino Rubik Solver: Resources

Materials, drawings and software are here:

Step 2: Assembling the Structure: Overall View

ARS robot is made of some parts and components, assembled together in order make it possible to slide forwardand backward two carriages with four stepper motors.

Step 3: Assembling the Structure: Arduino and Stepper Drivers Box

First part is the simplest: an Arduino box where you will position Arduino UNO, the breadboard and A4988 Pololu drivers

Step 4: Assembling the Structure: Upper Motor Box

Upper motor box contain the carriage slider motor. Carriage is moved with a GT2 timing belt.

Each carriage and his connected motor is independent from other motors.

Step 5: Assembling the Structure: Lower Motor Box

Lower motor box contain the lower carriage slider motor. Also this carriage is moved with a GT2 timing belt.
Two level sliding carriages permit a simpler structure than others seen in Maker Faires.

Step 6: Assembling the Structure: Upper and Lower Carriages Supports

Upper and lower carriages supports bring the motors connected to claws moving forward and backward the cube.

These support are similar, differencing only on overall height in order to have two slider levels.

Step 7: Assembling the Structure: Roof Tower

A roof tower has been added to be able to mount a simple webcam for future improvements.

Step 8: ARS Studio Software: Generating the Sequence

ARS Studio is an Open Souce Software able generate the correct sequence to solve your Rubik Cube with Kociemba's algorithm in less than 25 moves (better, in God's number max moves!).

An english version is on the go!

Step 9: ARS Studio Software: Cube Setting Up

Clone the repository, the go to: ARS Studio\ARS Studio\bin\Debug and launch Ars Studio.exe

Cube need to be filled by colors, as they appear in reality: an automated version is under construction, it will be totally autonomous. By now you have to describe the cube to the software.

So follow these 3 steps:

  1. choose one color from the palett
  2. fill the cube
  3. click on "Risolvi" (italian for "Solve")

Your sequence is ready!

Step 10: ARS Studio Software: Start Solving

Now click on "Stringi pinze" (italian for "Close claws"), then "INVIA" ( = "GO").

The sequence will be sent to Arduino which will move steppers according to sequence.

Step 11: ARS: Arduino Sketch

Arduino sketch is as long as simple.

Arduino receive the sequence from USB computer port and read it from the serial monitor.
The steppers require 12v to works, it need a power supply. It requires two magnetic sensor to works well. They are under the motor supports, one for each disections. When connecting the stepper motors to A4988 drivers and Arduino UNO pins pay attention to direction.

Sequence commands are:

a = stepper 1 rotate for 90°

b = stepper 1 rotate for -90°

c = stepper 2 rotate for 90°

d = stepper 2 rotate for -90°

e = stepper 3 rotate for 90°

f = stepper 3 rotate for -90°

g = stepper 4 rotate for 90°

h = stepper 4 rotate for -90°

i = stepper 5 open steppers 1 and 3

j = stepper 5 close steppers 1 and 3

k = stepper 6 open steppers 2 and 4

l = stepper 6 close steppers 2 and 4

m = steppers 1 and 3 rotate to 90° together in the same way

n = steppers 1 and 3 rotate to -90° together in the same way

o = steppers 2 and 4 rotate to 90° together in the same way

p = steppers 2 and 4 rotate to -90° together in the same way

Step 12: ARS: Prizes!

ARS Arduino Rubik Solver won 1st prize in italian Olympics Problem Solving Games in 2018.

ARS Arduino Rubik Solver won a Maker of Merit at Maker Faire Rome in 2017.

Many thanks to my students Paolo Grosso and Alberto Vignolo who tenaciously this project, to Mihai Canea and Giorgio Spinoni who improved software, to Josef Costamagna who started an incoming web version, to Alberto Bertola and Edgard Kazimirowicz who perfected mechanics.

Step 13: ARS Arduino Rubik Solver: Next Steps

Next step: controlling ARS from wherever in the world, so that everyone can play with it.

We need to improve colors recognition while web server is on the go, as you can see in the video.

Stay tuned!

Arduino Contest 2019

Participated in the
Arduino Contest 2019