Introduction: DIY the World's Smallest Rubik's Cube Solver Robot

About: I born in Italy in 1971, and since few years I live with my family in The Netherlands. On free time I like to build "useless devices", a pretest to learn coding and control theory

This is CUBOTtino Micro, the smallest Rubik's cube robot solver in the World, and it can be made at home.

The dimensions are ca 7cm x 9cm x 9cm (WxDxH).

Main characteristics of Cubotino micro are:

  • The robot is fully autonomous.
  • It works with the 30mm Rubik's cube keychain (GAN 330).
  • PiCamera and Raspberry Pi Zero2W (or ZeroW) for the computer vision part and controls.
  • Kociemba solver, to get an almost optimal solution.
  • All coded in Python.
  • Display to feedback on the robot action and solving progress.
  • Solving time is tipically less than 70 seconds; 20 seconds are needed for the cube status detection, and 50 to solve the cube. This timing with the Zero2W and once the robot is optimized, as per posted movies
  • 10 parts to be 3D printed
  • 2 small servos
  • Scrambling function


CUBOTino is a Rubik's cube solver robots series, designed as platform; For the moment are made two versions: Base and Top (the medium version still lags behind).

This "micro" version is essentially a scale down from CUBOTino Autonomous (https://www.instructables.com/CUBOTino-Autonomous-Small-3D-Printed-Rubiks-Cube-R/) and it deviates from the platform concept, because of the smaller cube size.

Cubotino micro reuses the mechanical concept and large part of the code, making it part of the CUBOTino family 😀

CUBOTino name: Apart from the obvious CUbe+roBOT, "ino" is the italian suffix standing for small..... a "small" touch recalling my origins and the very small robot dimensions.

Tip: At Step2 of these Instructables it is embedded a pdf file "How_to_build_ ..._yyyymmdd.pdf", of about 150 pages, containing all the needed details to build, program, tune, troubbleshoot, learn ,etc.


Credits to:

  • Mr. Kociemba, for his solver, and the python version he has made available to the comunity.
  • PCBWay that has voluntarily sponsored the board for this project: This means I got triggered to learn how to draw the board (cool) and you can benefit from ordering the PCB instead of doing it yourself.
  • All of you who have provided feedback, making possible to improve the project.

Supplies

The material cost has been about 100 Euro for me.

The more expensive parts are of the project are:

  • Raspberry Pi Zero2WH, or Raspberry Pi ZeroWH (the ZeroWH takes some more computation time)
  • microSD card 16Gb Class10
  • Picamera (V1.3)
  • Flex cable (PiCamera - Raspberry Pi Zero)
  • Two servos (Adeept Micro Servo Motor AD002 9G Metal Geared)
  • Display (Mini PiTFT - 135x240 TFT 1.14inches display)
  • ca 130 grams of filament
  • Micro-usb breakout boards
  • Optionally a power bank
  • and of course you need the proper cube: GAN 330 keychain

Some little electronic components (prototype board, connectors, etc), and screws.

For the power supply it is needed a phone chargers (al least 1x2A), and related cable with microUSB connector.

On the annex Cubotino_micro_supplies_*.pdf file the detailed list, included the link to the shops I've used ... and related cost.

Note: The robot is based on a Raspberry Pi Zero2 with WiFi connection; The Zero2 board can also be used, by accepting a longer booting time and a slightly slower robot.

Step 1: Info and Advise

Building THE WORLD'S SMALLEST RUBIK'S CUBE SOLVER ROBOT implies small parts and large patience :-)

Despite this little robot looks simple, and for some aspects it really is, there still is some complexity.

Be prepared the robot won't magically work right after assembling it: Tuning is expected !

If you haven't built other "robots" before, i'd reccomend you to start with the Base version, that has lower complexity.

The "CUBOTino Autonomous" version (https://www.instructables.com/CUBOTino-Autonomous-Small-3D-Printed-Rubiks-Cube-R/) has similar complexity, but the construction is less packed :-)


In Step 2 of this Instructables, it is embedded a pdf file "How_to_make_ .... .pdf" with all the needed info.

Step 2: Read First (embedded Pdf Instructions File)

The below annex "How_to_make_ .... .pdf" provides detailed info on how to build the robot, further than many other aspects.

The document has about 150 pages, providing detailed guidance to build the robot, and side informations (a bit of knowledge sharing).

I advise to read the document, in case you're interested to make this project.

My second advise is to read the document a second time :-)

This document will be periodically updated (filename ends with yyyymmdd), in particular during the first weeks; Please report eventual errors, unclear parts, tips, etc.

Step 3: Preparation

Before start assembling the robot, it is necessary to:

  1. Make the connections board.
  2. Solder the power supply cables to the Raspberry Pi board and microUSB board.
  3. Setup the Raspberry Pi.
  4. Modify the LED, by making its tip flat.
  5. Test the Connections_board, LED, servos, display
  6. Adjust the PiCamera focus, and test it
  7. Enlarge the holes at servos flange with a Ø2.5mm (max Ø3.0mm) drill bit. This allows using bigger/better screws than those supplied with the servo, for which the 3D part is designed for.
  8. Check the servo rotation range and set them to their middle position.
  9. Determine which SOC (Servo Offset Compensator) is needed in your robot.
  10. Print the parts.
  11. On the printed parts, form the thread by using a screw; If the torque is high, rub the screw with candle wax.


Some of these steps are explained on the next Instructables part

All these steps are extensively explained at "How_to_make_ .... .pdf" document, embedded in Step 2 of this Instructables.

Step 4: Make the Connections_Board & Wiring

The connections board connects the servos and the Top_cover led to the Raspberry Pi.

PCBWay has sponsored the board for this project:

Despite the board is rather simple, I got the trigger to learn how to design a (simple) board.

The designed board also includes a led, to make the Raspberry Pi ACT led visible.

The tests of the first samples went ok.

Gerber files are available at the GitHub repository.

Info on how to order the PCB are in the embedded Connections_board_yyyymmdd.pdf file


Anyhow, the board is very simple and it can also be made with a perfboard (one or two sides).

Additional info at "How_to_make_ .... .pdf" document, embedded in Step 2 of this Instructables.

Step 5: Setting Up Raspberri Pi

All the files and the Raspberry Pi setup is available at: https://github.com/AndreaFavero71/CUBOTino_micro

Just follow the instructions available at the GitHub, or the more detailed guide at "How_to_make_ .... .pdf" document embedded in Step 2 of this Instructables.

Step 6: Print the Parts

There are a total of 10 parts to be 3D printed, for about 130 grams (when PETG is used).

All parts have been designed to be printed:

  • without supporting the overhangs
  • on printers with at least 100x100mm printing plate LoL


The stl files are stored at GitHub: https://github.com/AndreaFavero71/CUBOTino_micro/tree/main/stl

In case you'd like to modify your parts, the step files are also provided, at GitHub: https://github.com/AndreaFavero71/CUBOTino_micro/tree/main/stp


Additional info at "How_to_make_ .... .pdf" document, embedded in Step 2 of this Instructables.

Step 7: Assemble the Robot

In the annex "How_to_make_ .... .pdf", embedded in Step 2 of this Instructables, the assembly steps and details are provided.

All parts are connected by screws (type of screws are listed at supplies).

Step 8: Tune the Robot

After assembly the robot it's necessary to set the servos angles for the different positions: This is necessary, as there are differences between each servo and between each assembly.

A graphic user interface (GUI) makes more intuitive this process.

Image cropping and warping can be tuned by same GUI.

Additional info at "How_to_make_ .... .pdf" document, embedded in Step 2 of this Instructables.

Step 9: Double Tape It

The assembled robot is very light, about 150g: While solving a cube, despite rubber feet, it will slide around the table.

This can be easily solved by sticking the robot to a heavier base.

My choice went for a 10000mAh power bank, connected by a double side tape: The powerbank provides both stability and power supply, a win-win solution in my view.

Alternative solution on next Step

Step 10: Extensible Base

Alternatively to previous Step, you can print 3 more parts (Baseplate_addition, Baseplate_L_leg and Baseplate_R_leg) to have an extensible robot base.

This solution increases the stability of the robot; By adding some rubber pad underneath it won't walk around the house.

The legs can be folded under the robot when it isn't working :-)

Step 11: Have Fun

A couple of movies:

Step 12: YOU MADE IT

If you have built your own Cubotino micro, please add it to the "I MADE IT !" section: Search for the yellow button "I MADE IT!" below

Step 13: Provide Feedback

If you've enjoyed the project and/or you've suggestions, please feedback

Big and Small Contest

First Prize in the
Big and Small Contest