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

by AndreaFavero in Circuits > Robots

11472 Views, 121 Favorites, 0 Comments

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

World's smallest Rubik's cube solver robot, DIY, 3D printed, fully autonomous
IMG_20230311_155037.jpg

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

Supplies_01.PNG
Supplies_02.PNG

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.

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.

Read First (embedded Pdf Instructions File)

Wow_to_first_page.PNG

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.

Preparation

Time_to_prepare.PNG

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.

Make the Connections_Board & Wiring

Connection_board_pro_01.PNG
Connections_board_01.PNG
Connections_board_02.PNG

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.

Setting Up Raspberri Pi

Rpi_setup.PNG

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.

Print the Parts

Printed_parts_01.PNG

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.

Assemble the Robot

All.PNG
All_2.PNG
Electrical_parts.PNG
Printed_parts_01.PNG
IMG_20230506_195134.jpg
IMG_20230506_195056.jpg

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).

Tune the Robot

Tuning_01.PNG
Tuning_02.PNG

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.

Double Tape It

IMG_20230305_134125.jpg
IMG_20230305_134359.jpg

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

Extensible Base

IMG_20230506_194437.jpg
IMG_20230506_194508.jpg
IMG_20230506_194522.jpg

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 :-)

Have Fun

Cubotino micro full cycle, without editing (also scrambling)
DIY Word's smallest Rubik's cube solver robot

A couple of movies:

YOU MADE IT

Cubotino_micro_YouMadeIt_20240810.PNG

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

Provide Feedback

FI3KN19L3OGH83L.png

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