Fully 3D-Printed Rubik's Cube Solving Robot

by otvinta3d, published

Fully 3D-Printed Rubik's Cube Solving Robot by otvinta3d Aug 17, 2017

Featured Thing!


Liked By

View All

Give a Shout Out

If you print this Thing and display it in public proudly give attribution by printing and displaying this tag.

Print Thing Tag

Thing Statistics

95395Views 4181Downloads Found in Robotics



This 3D-printed Raspberry Pi-powered Rubik’s Cube solving robot has everything any serious robot does -- arms, servos, gears, vision, artificial intelligence, and a task to complete. If you want to introduce robotics to your kids or your students, this is the perfect machine for it.

This one-eyed four-armed giant stands 35cm (14") tall. 70 hours of print time and an entire spool of filament are needed to print it, not to mention over $200 worth of hardware, but once fully operational, it will surely wow your friends and neighbors. Scramble your Rubik's cube, place it in the robot’s grippers, press a button, and then sit back and watch this amazingly smart and stunningly beautiful machine put it back together. Watch the video!

This robot is fully 3D-printable. Other that the servos, servo horns, camera, electronics and a few dozen bolts and nuts, it has no traditionally manufactured parts. Absolutely no soldering or breadboarding is required.

Printed Parts List:

ItemQtyPrint Time (min.)Total Time (min.)Filament (gr.)Total Filament(gr.)

Total Print Time: 4,028 min. (67 hours 8 min.)
Total Filament at 20% infill: 882 gr.

For the list of hardware component, detailed assembly instructions and other important information, please visit our web site at http://www.otvinta.com/download12.html.

Update (2017-09-19):
If your camera is wide-lens and the cube appears too far on the photos, we recommend using short rods to bring the camera closer to the cube. The new model is called rcr_rod_short.stl. You would need to print 4 of those and 4 of the regular rods rcr_rod.stl instead of printing 8 regular rods.

Update (2017-09-06):
We are happy to announce that the user Nomaxx has successfully implemented our robot and posted his photos, along with some very positive comments, under the Made section. Thank you, Chris! Also we have just released version of the application for the ARM, x64 and x86 platforms. Raspberry PI is no longer necessary, the app can be installed directly on your Windows 10 PC.

How I Designed This

The only gear mechanism this robot employs is a rack-n-pinion to provide linear motion to its arms. This tutorial, created by us, explains how to quickly design a rack-n-pinion mechanism is Blender.

More from Robotics

view more

File Name



All Apps

Upgrade this Thing with Thingiverse Apps

Tools and Utilities

Repair, slice, or enhance this Thing

Auto-magically prepare your 3D models for 3D printing. A cloud based 3D models Preparing and Healing solution for 3D Printing, MakePrintable provides features for model repairing, wall thickness...

App Info Launch App

Kiri:Moto is an integrated cloud-based slicer and tool-path generator for 3D Printing, CAM / CNC and Laser cutting. *** 3D printing mode provides model slicing and GCode output using built-in...

App Info Launch App
KiriMoto Thing App

Quickly Scale, Mirror or Cut your 3D Models

App Info Launch App

Would a Raspberry Pi 2 model B work as well?

If you can install Windows 10 IoT on it, then probably yes.

Hello otvinta...
I absolutely love this project. I have printed and built everything. And all I need now is the software verification key. I tried emailing threw your website but unfortunately I havnt got a response yet. I emailed yesterday and again. Today. So I just figured I would try to reach you here first to see if something was wrong. Please let me know. Thanks again for your hard work.....

Hi there,

We have replied to everyone requesting a key. Please email us again at help at otvinta dot com, we will be waiting for your email.

Can other servo controller board be used other than the Polulu board?

We hope so. We are investigating whether this one can be used:


We have ordered it and as soon as it arrives we will test it and post our findings.


I'm seriously considering to make one. One question, though: what was the reason to add the Pololu Servo controller when you can control them directly from the Pi ? A library bug, some kind of power requirements ???

Thanks !

Before switching to Pololu, we tried just that but got poor results. But it may still be doable.

Note that with Pololu there is no need for soldering or breadboarding, the wiring is easy and clean.

I had to reprint the bolts and rod at a higher infill.

Update 9/16/2017:
We have added a new part, rcr_camera_cover_noleds.stl, which is to be used instead of rcr_camera_cover.stl in case you prefer to cover the camera's LEDs. For some users, the LEDs cause bright flashes on the center cubies, which makes color identification difficult.

This may be a dumb question, but can't you just turn down the LED's with the knob on the usb cable? (my camera had this). Or does this just diffuse the light or something. I do have the problem of the LED's reflecting off the center cube, but without the LED's it is too dark under normal light to pick up the colors.

Thanks for pointing it out. You are absolutely correct, the LEDs can be turned off with a knob and there is no need for a special LED-covering part.

We have tested our robot in very poor lighting conditions but with the LEDs fully on, and color recognition worked OK. However we have received photographs from other users where flashes make color recognition extremely difficult. Our recommendation in this case is to switch the LEDs off and use brighter ambient light.

In my office with multiple overhead fluorescent lights I have been able to repeatedly have it work 100% with the LED's at full brightness, but if I set it on my kitchen table with just a normal overhead light I have the problem of the reflection with the LED's at 100%. If I turn the LED's down I can't get enough light for it to recognize the colors, I have even played with holding a flashlight at different angles and that works well to get really good pictures, but I can't get it to calibrate well enough for some reason to get past the analyzing portion.

We will need to look at your images and suggest a corrective configuration adjustment. Please contact us at http://www.otvinta.com/contact.html for further help.

Can the code for the be ported and changed to run on Arduino hardware?

Sorry but I doubt it as it seems to use USB cameras to pattern detect

No, I don't believe so. The device needs to have two UBS ports for the app to work.

What is the best place to buy this item at that quantity? Home Depot sells 3-4 per bag.

Metric M3-12 Phillips-head Countersunk Bolts

Do you think it works with Windows 7 ..??

Does not look that way, unfortunately.

Is adapter with 5 Volt / 3 A also correct......Thanks

Comments deleted.

Any chance you could do a little write up as to what the settings on the left side of the configuration page do? I have been able to get it to work on my office desk in very bright light repeatedly, but under normal light it never works (never gets past the analyzing phase that is).
Mechanically it works great however.

Sep 13, 2017 - Modified Sep 13, 2017
otvinta3d - in reply to scotthay

Currently we ask that the users send us the photographs taken by the robot for analysis. Please enable debugging in the Configuration Center, run the app, and if color recognition fails, email us the batch of .pix files in the \Data\Users\DefaultAccount\Pictures folder of the PI at help at otvinta dot com.

We will soon make this process more automatic, hopefully, but now you need to manually email us the pix files.

This is amazing! Does it work on all rubiks cubes? Like the ones that are 4x4x4?

No, 3x3 only.

This is seriously the coolest thing I have ever seen on Thingiverse.

Seriously great, great work on this. This exemplifies what makes the Internet and open source so powerful. Thanks for sharing this! All of my electronics to reproduce this are in and I'm about a third of the way through the 3D printing. I can't wait to get the assembled result running.

this Thing is amazing. Thank You for that great Job!!!
I will start printing in the evening....

But i have two Questions:

Is it hard to implement "Headless" Design? I mean with an RPi 3 and some Buttons connected to it, for Load/Unload/Start-/Stop- solving? I would care by my self for the wiring and "plastics". But how to implement in the Software?

Is there a chance, to use the RaspiCam (Version1 - 5MP)?

The software is not currently designed to support buttons or work in a headless mode -- the robot requires interactions and feedback, hence a need for the user interface.

The robot is designed with a particular kind of webcam, with a round housing and removable stand (see our web site for the specs,)

which servo DS3218 do i need to buy, the 180 degrees or the 270 degrees?

Comments deleted.
Sep 11, 2017 - Modified Sep 11, 2017

How do you insert the DS3218 servers into the sliders? The square is so tight that when you angle it to get the cord through, you can't fit it into the slot. Is there a trick to this?

A bit of filing and sanding and I got it to go in.

Comments deleted.

The tabs on the arm is too big for the slot in the corner pieces. It appears to be about one layer to small. Has anyone had the same issue?

They were designed for a tight fit. The areas of the tab that touched the heated platform need some light scraping (we use a scissor blade for that.)

I used S3D and scaled up to 101% and re-printed 2 so far. That made a difference. Not sure if I will have any downstream impact with full assembly or calibration.

Comments deleted.
Sep 7, 2017 - Modified Sep 7, 2017
otvinta3d - in reply to roboticshobbyist

Did you plug in your power source to the Maestro? Did you switch your Maestro to the USB Dual mode? You need to do both, or the servos won't move. For some screenshots see http://www.otvinta.com/download12.html, scroll down to section 8.

Comments deleted.
Sep 6, 2017 - Modified Sep 6, 2017

Why don't you take the photos with thh webcam, when only the upper on lower finger is in place and these two fingers are in the position which is out of sight? then you have to take only one photo an no further movement of the fingers is needed...

The grippers cover much of the square's surface and makes color recognition difficult, However the next version will hopefully only take a single picture with all 4 grippers engaged.

Maybe you do not understand me right. If the only the lower an upper fingers are engaged, but turned this way, that they are parallel to the case, so the camera will not see the fingers during the foto

Is it possible to get you sources to make own improvements?

I understand what you are saying but for this to happen, one servo would have to make a positive 90 deg. turn while the opposite one a negative 90 deg. turn. For the sake of precision, the gripper servos currently only make positive 90 deg turns.

In my opinion, this should also work, if both grippers make a positive turn... the upper and lower grippers could turn withouth the cube and get back to hold the cube when they are parallel to the case. Than the left and right go out of sight...

Question. the Mini Maestro 12-Channel USB Servo Controller, Can it be replaced with an adruino controller USB servo controller?
I can't find that Mini Maestro one in China where I Currently Live.

see link of product.

This is an excellent question. A few days ago we ordered this part to see if it can replace the Pololu Maestro. We hope it can. As soon as it arrives we will test it and make an announcement.

Thanks, Then I'll wait before I buy the rest :-)

I'm curious what settings to use to get the print times on the details screen without loosing quality. For example, I have loaded rcr_arm.stl in both Cura and Simplify3D with 0.2mm layer and 20% fill and Cura is telling me it's going to take around 5 hours and 28 minutes while Simplify3D is telling me 4 hours and 45 minutes. I'm more familiar with Simplify3D, so here are some of the basic settings I'm using:
Layer Height: 0.2 mm
Top and Bottom Solid Layers : 3
Side Layers: 2
Infill: 20%
Support Pillar Resolution: 4 mm
Support Infill Percentage: 20%
Default Printing Speed: 60 mm/s
I currently have "Adjust printing speed for layers below..." disabled.
Any suggestions would be great. I have a Wilson II Reprap printer.

The numbers in that table were produced by Simplify3D, they are not the actual time measurements, and therefore approximate. It has been my observation that the time estimates Simplify3D generates tend to be too optimistic. I don't know exactly how it computes print time, but possibly it takes the 3D printer's make and model into account. Since we use different printers, the times are also different..

If you wish, I can email you a copy of our Simplify3D profile. Contact us via our web site www.otvinta.com/contact.html.

Hello, i am a student from Belgium. I studying for Electronic Engineering, I am in my 6th year and have to make a thesis project. This looks like an awsome project to make during this schoolyear. I have downloaded all the files but i can't open some files and i don't know how to download or write the program by myself. Can someone help me out or give a few tips for the program?

Sure, we will be happy to help you. Please contact us via http://www.otvinta.com/contact.html and we will reply to you directly.

hello everyone. i just wanted to inform some of you that complained about the expired 30 day trial and then having to pay 30 dollars for this simple program. A few of my friends and myself are working on a program very similar to this one and we will upload at no charge. open source is what we are all about. i admit this is a wonderful design, but there is no reason to charge people for this simple program. i will let everyone know where they can download it from. we are testing the software now. working out some bugs and should be ready soon...

That would be really nice! Please keep us up to date about the progress...

For those of you that have printed this successfully, what slicer did you use?
what layer thickness / height did you use?

Comments deleted.


If one is going to use the optional Raspberry Pi for control, is there value from a demonstration purpose to have a touchscreen for the Pi? Consider this in the context of a public area, specifically a public library makerspace.

Sep 5, 2017 - Modified Sep 5, 2017
otvinta3d - in reply to freddotu

A touchscreen interface would work great with our app, I think, but you don't necessarily need a Raspberry PI for that. Microsoft Surface will work too, probably (we didn't test our app with the Surface.)

I suspect that a Raspberry Pi and touchscreen is likely to be less expensive than a MS Surface device. The library makerspace is fond of touting the Pi and Arduino as a couple of resources available to the public, although the implementation has been rather underwhelming. This amazing cube-solving robot falls at the other end of the scale, very much an overwhelmingly delightful implementation of the Pi.

Pi is easy to fix a touchscreen. But this program always need a internet connect due to the key valid check. so you need consider about this.

I have all the hardware lined up. Before I make the purchase....is there any change to the hardware list as of 9/4/17?

No change except Raspberry PI is now optional, a regular Windows 10 PC can be used instead. The x86 and x64 versions of the app will be available very shortly.

Almost done printing all the parts! It will be a while before getting all the hardware tho. Not so patiently waiting...

Comments deleted.

Super awesome. Really great to have you in our community!

Sep 3, 2017 - Modified Sep 3, 2017

2017-09-03 Update

Hello everyone, thank you for your overwhelmingly positive feedback and interest in our Rubik's Cube Solving Robot!

We have just updated our web site with some images and instructions on servo calibration:


Also we have successfully tested our application on a Windows 10 PC, without Raspberry PI, and it worked beautifully. So there is absolutely no need for a Raspberry PI board, just plug the camera and servo controller directly into your PC. The PC version of the application will be available for public testing shortly.

And finally: we have received complaints that the 5 MP camera has become difficult to get hold of. A very similar 12 MP camera is readily available but our software needs to be updated to accommodate larger photos. We have already ordered this new camera, and as soon as it arrives, we will update the software and make an announcement here and on our web site.

Please do not hesitate to contact us here and via our web site if you have questions or need help.

Sep 7, 2017 - Modified Sep 7, 2017
Printer3D_One - in reply to otvinta3d

Hello, Thank you for thsi great project. I ordering all parts for my 9 years son.

Can I ordering the 12 MP already? Do you think updating the software for 12 MP in 20 days ?

Go ahead. We should be able to update our software by then.

Comments deleted.

felicitaciones! son unos genios! wow! No se por donde empezar!

I am trying source parts in the UK. The camera is unavailable here unless someone knows of a source. Is there an alternative?

Good news, everyone. We have successfully completed our testing of the new gripper design compatible with the standard single-armed horn that comes with the DS3218 servo. The new gripper is now called rcr_gripper.stl, while the old gripper has been renamed to rcr_gripper_old.stl.

There is absolutely no need for the pink horn which used to be available on eBay, but has sold out. If you managed to purchase it while it was still available, then please print rcr_gripper_old.stl instead of rcr_gripper.stl.

Brilliant! I love seeing these kinds of projects on Thingiverse!

I have printed all parts, starting to assemble but the printed nuts do not fit well on the printed bolts. I have worked my fingers until they hurt trying to get the nuts on the bolts.

I will have to reprint. Do I reprint the nuts (a little it bigger) or reprint the bolts (a little it smaller)?

Has anyone else has this problem?

Comments deleted.

I have worked the bolts in to submission by constantly screwing and unscrewing them out of the camera holder.
My hands are tore up, need to recover.

The nuts are still tight on the bolts, they seem to get about half-way - three quarters through and bind up. Is this by design to hold the model tight?

Headed to the store to get M3 x 12 flat head philip screws.

No, nothing was designed to be tough, I am quite surprised to hear it, and will look into it.

It may be Eddiie's printer calibration. Close fitting parts can be an issue with FDM printing. Try printing a clearance test print, like the one developed by Angus at Maker's Muse. It prints a series of close clearance discs, and the smaller clearance you can move, the more accurate your printer. Here is an open source version based upon Angus's ideas.

Customizable 3D Tolerance Test
by zapta
Sep 4, 2017 - Modified Sep 4, 2017
Eddiie - in reply to jpickens

Guess I can't print this.
Waste of $200+ on parts, power, effort, plastic.
Bunch of pieces don't fit.

I use Cura, retesting with Slic3r.
I use 3 different printers

Anyone want to buy my parts? Raspberry Pi, servo controller, power supply, servo horns, camera, servos,,,

Tolerance test fails, no one says what to change to make it better.

Sorry you are having trouble with the printing of this robot. Please contact us directly via http://www.otvinta.com/contact.html, we will try to help you.

Ok I will. Thanks for offering to help fix my printers.

Sep 5, 2017 - Modified Sep 6, 2017
Eddiie - in reply to Eddiie

I bought Simplify3D last night.
Have not printed the parts yet but have taken the time to print the Tolerance thing linked above. I replicated the issue with SImplify3D, but was able to adjust the "Horizontal size compensation" setting (-0.50 for my test) on the "Other" tab (going from memory, might be wrong tab) values and over come the tolerance issue. Since it was late, I have not had time to go back and fine tune, but I think slicing this project with Simplify3D will help. Will work on it tonight. -0.30 or smaller

Update from me, I will be deleting my comments soon, I hope.
After reslicing with Simpify3D and printing some parts, the difference is night and day. The Arm and slider fit together so much better, the rack and slider fit together perfectly, that is as far as I have made it for now.

Granted, it takes 7.5 hours to print an arm (probably a tweak I need to make), but I am happy with the results thus far.

Slice this with SIMPLIFY3D!!!!!!!!!!!!!! Unless your printer is perfect, Cura will not be a good slicer for this.

Comments deleted.

That;s very unusual. Please contact us via our contact form and send some pictures for further help:


Just from previous experience with other 3D printed hardware, I've found that if you put your existing bolt in a vice, and then use a Crescent Wrench to work the nut down the bolt it'll sorta "self-tap" per se. Works pretty well on stuff that comes off my Taz. If it's really non-cooperative, I'd recommend enlarging the nut.

how do we get a permanent key once the 30 day one expires

Request it in the same way you got the 30-day free licence.

But it gonna be roughly $30 for the permenent one


2017-08-31: As it turned out, the vendor on eBay selling the double-sided servo horns for the grippers is out of them. In response to this development, we have redesigned the gripper to allow it to be used with the standard single-sided horn that comes with the DS3218 servo. The new model has just been added to the list under the name rcr_gripper2.stl. We will complete the stress-testing of this new design by tomorrow end-of-business, Sep 1, 2017. Also the eBay vendor has promised to restock the double-sided horn in 2 weeks or less. One way or another, please rest assured the horn problem will be resolved.

Great Part, was checking the parts , the horn is totaly sold out in the US , and Not existing in Europe delivery Costs to europe is high and sadly I have bad experiance with send over from the US ,

If you should think about a redesign to get other arms ( worldwide reachable) I´ll think again to built one


We have just uploaded a new gripper design, rcr_gripper2.stl which is compatible with the standard horn that comes with the DS3218 servo. The initial testing looks good but we will complete stress-testing by tomorrow end-of-business.


Siento de antemano no hablar en inglés, pero es increíble lo que habéis hecho, me ha encantado, como muchos que somos makers, nos encanta el cubo de Rubik y todos deseamos una máquina así, para competir

Very fantastic and inspiring project. Do you think MG996R Servos can be used?

Can't say for sure. If this servo has the exact same size as the servo you want to replace, and similar torque, then maybe.

Complex to make, complex to solve - but 0 made?

What happens after 30 days on your evaluation key?

"The 1st required step is to click the key button and enter your registration key in the form XXXXX-XXXXX. Please contact us to obtain your free 30-day evaluation key."

The permanent key won't be entirely free, but it won't be expensive either, a small fraction of the overall cost of the robot, essentially a nominal fee. The fee will include life-time maintenance.

So.....how much does it cost then?

I was wondering the same thing. Do they charge you to continue using it???

I asked and they think it will be roughly $30 and once payed your free activation key will be the permenent key

Do you recommend 15kg or 20kg servos for the DS3218

Our robot uses the 20kg ones. The 15kg servos may work too but I wouldn't risk it,

I can solve it faster by hand xD

i can do it under a minute, you?

hey me too!

Why does the robot need to readjust its arms after every turn? For example, when it does 2 clockwise turns on one side, it could just do the turns all at once and then readjust in one motion. Seems like it would be more efficient.

A -90 degree to +90 degree turn did not provide the necessary degree of precision so we decided to play it safe and use 0 to +90 degree turns only, for now.

Is that a limitation of the motors? Could higher quality motors be used to solve this problem?

We will keep working on it. Our robot uses the basic 180-deg DS3218 servos. The 270-deg variety of these servos may help with a negative 90-deg turn. If that turns out to be the case, we will issue a new version of the software written around these 270-deg servos.

Does the current setup work fine with 270 servos also? Then I can buy these and be ready if you make a change in the future.

Can't say for sure, we did not test the 270 servos, but probably yes.

I can't find that servo horn on e-bay, anyone have a link?

Comments deleted.
Aug 30, 2017 - Modified Aug 30, 2017
otvinta3d - in reply to akf_was_here

Looks like that vendor is out of them. We just contacted them to see if more horns are going to be available soon. Meanwhile, we are exploring other options, such as trying to mount the gripper directly onto the servo's shaft, without a horn. We will be posting updates, please stand by.

Ok, thanks much! I'm trying to gather the parts and that seems like the only one that's problematic.

Sounds like a really fun project to do with my kids!

This is all kinds of awesome. Now if only I could do it by hand too......I might have to read the code and program myself.

Hahahahha, just search for begginer's method and you'll be solving it in 3 minutes from your first go. Trust me

Thank you for this amazing Project!!! It have just downloaded the files and will start printing:-)

wait, i'm thinking to a new word... amazing is not enough XD

Aug 30, 2017 - Modified Aug 30, 2017

Hellllllz yaa I can't wait to bring this to life however a link to all parts purchased would be much appreciated pls for exemple the Ds3218 servo motor dose it have to be that exact model or any servo motor would work?

You may be able to use a different servo but it has to be the exact same size as the DS3218, and similar torque.

Now that beats a squishy turtle

F#%& the squishi turtle lol


I have a couple of questions:
Have you considered making the frame more robot-like?
If the grippers had split fingers, would that eliminate the need to two pictures per side?

Not sure what you mean by "robot-like". The frame was designed merely to hold the 4 arms of the robot and not require any metal assembly hardware.

About the grippers: we believe even with the current design we can get away with only taking a single photo per face, with some improvements in the zone detection code. Hopefully, the next version of the application will have that.

Aug 30, 2017 - Modified Aug 30, 2017
StormKat - in reply to otvinta3d

Robot-like, with a head, arms, and legs like a 50s or 60s style robot. Strictly cosmetic to be sure.
It's a fantastic thing. Very impressive.

Astonishing! Straight to the top of my 'to print' list.
Thank you so much for sharing.

Wow! Definitely on the to-do list

DS3218 Servo Motor 180° or 270°??

180° is sufficient. In fact, the robot only uses a 0 to 90° rotation.

Is the 270 ok to use or would it require extra work?

This looks awesome, but I hope someone can figure out how to reduce the hardware cost.

Raspberry PI can be eliminated completely. The Maestro and Webcam USB cables can be plugged to a PC. The application we developed is Universal Windows Platform (UWP), so it should run on a PC too (we will be conducting formals tests shortly.)

Also, the DS3218 servo is $20 on Amazon, but elsewhere it can be purchased for less. AliExpress lists it at $12.95.

We will also work on providing a cheaper alternative to the currently used custom servo horns.


start printing.. see you "soon"..

So cool!

Could it be run on a Orange Pi PC or other type SBC?

Yes, as long as it has two USB ports and proper software. Currently the software is written for Raspberry Pi running Windows 10 IoT.

The code could be greatly optimized. there's several occasions where an arm goes three turns forward, having to stop and retract and reset each time. it would be faster to have it go one turn backwards in these cases.

a 360 degree servo would help too! Much faster than having to reset...

Great! This is the kind of work I like to see here in Thingiverse :-)
Thank you very much for sharing.

Yeah, nice work :D