Who is Otto?

An interactive robot that anyone can make!

What can Otto do?

Otto walks, dances, makes sounds and avoids obstacles.

Why Is Otto special?

Otto is completely open source, Arduino compatible, 3D printable, and with a social impact mission to create an inclusive environment for all kids.

Otto was inspired by another robot instructable BoB the BiPed and programmed using code from another open source biped robot called Zowi.


Otto's differences are in the assembled size (11cm x 7cm x12cm), cleaner integration of components and expressions. Using off the shelf and 3D printed parts, simple electronics connections (almost no welding required), and basic coding skills, you will be able to build your own cute Otto friend in as little as two hours!

Otto is design using Autodesk 123D Design software you can modify it for customization or further improvements!

This instructable focuses on how to build the Otto DIY version - yes, more Ottos are coming and you can stay tuned for updates by subscribing here

Step 1: First Gather All Parts and Tools

Gather all the off the shelf parts that you'll need for this assembly. Here's the list:

1. Arduino or Genuino Nano V3.0 ATmega328

2. Arduino NANO Shield I/O Extension Board Expansion XD-212

3. Mini usb cable. (most Arduino dealers provide the cable)

4. HC-SR04 Ultrasound sensor.

5. Mini servo SG90 9g x4 (each one should come with 2 pointed screws and one small screw).

6. 5V Buzzer.

7. Female to Female breadboard connectors cable 10cmx6.

8. 4 AA Battery case

9. 1.5V AA batteries x4.

10. Mini cross screwdriver. important magnetized

And then you only need to 3D print 6 parts in total:

11. 3D printed head.

12. 3D printed body.

13. 3D printed leg x2.

14. 3D printed right foot.

15. 3D printed left foot.

Optional: cutter for post cleaning the 3d parts (if the 3d print quality is good enough no need) and a soldering iron (if you want it battery power otherwise can still connect it through usb to energize)

That's all simple!; Download all .stl files, If you do not have a 3d printer you can always use services like 3dhubs.com or local maker spaces.

The total cost of this materials could be no more than 49 $US!

Step 2: 3D Print Settings

Otto is very well designed for 3D printing, the files that you had downloaded are property oriented and centered, so wont give you trouble if you follow this common parameters:

  • Recommended to use a FDM 3D printer with PLA material.
  • No need supports or rafts at all.
  • Resolution: 0.15mm
  • Fill density 20%

You can print individually piece by piece to match the colors of the original design or optionally print all at the same time in an area of 14cm x 14cm.

For slicing and generating the g code for the machine free slicer software like Cura or in our case FlashPrint that comes with the FlashForge Finder 3D printer that we are using (If you are outsourcing the printing no need to worry about it)

After printing you will need to clean a little bit the legs and feet areas that fix the motors.

Step 3: Reorganize & Check Your Parts From Bottom to Top.

As mention in step 2, Micro servo motors come with 3 screws in the picture are now included and rearranged the parts number for easy reading.

Remember to have ready your magnetized mini screwdriver.

Print the attached .pdf instructions manual for convenience.

Step 4: Foot Servos Assembly

Put the micro servo inside feet and then push it inside, if is to hard maybe need to clean more the area with a cutter.

Is very important to check that the servo is able to rotate at least 90 degrees to each side.

After checking the movement use only the small screw to fix it.

Same process for the other foot.

Step 5: Fix Servos to Body

Take the other 2 micro servos put them in the defined locations in the 3D printed body and fix them only with the pointed screws.

Step 6: Fix Legs to Body

Connect the legs to the hub of the micro servo, important like the foot servos you must check the legs are able to rotate 90 degrees each side respect to the body.

After verifying the alignment fix them using the small screws to the hole inside the leg.

Step 7: Fix Foot to Legs

Taking care of the cables as showed in the illustration you should put the cables inside the slots of the body passing thought the hole of the legs.

Once they are in right position use the pointed screws to fix them from the back.

Step 8: Head Assembly

Start from the ultrasound sensor is important to pull out the eyes to the limit.

After putting the Arduino nano in the shield, optionally you can weld the battery holder positive cable to Vin in the board and negative to any GND.

Insert diagonally the both boards together facing the USB conector to the hole in the 3D printed head, then use the last 2 pointed screws to fix it.

Step 9: Electric Connection

Prepare the breadboard cables and buzzer.

Then follow the diagram pins numbers and make sure to put them in the right position.

Step 10: Snap the Head and Upload the Code

The Head have snap feature, take care of the cables and close it.

For the coding part you will need to:

1. Download & install Arduino software IDE: https://www.arduino.cc/en/Main/Software

2. Copy Oscillator libraries that is inside OTTO_smooth_criminal.zip to C:\Users\user\Documents\Arduino\libraries (or wherever your library folder is installed):

3. Connect your Otto through USB (your computer should install the drivers)

4. Finally open & upload OTTO_smooth_criminal.ino code to your Arduino Nano and Otto ready to dance!

You can always try different codes from the same Github repository to use the ultrasound to avoid obstacles or detect objects and the buzzer to make sounds. Include all main moves very easy to adjust speed, number of times and direction.`

Stay tuned for the coming Otto DIY kit and Otto PLUS version that will enhance education with more possibilities using Bluetooth, more sensors and interactions. ottodiy.com

Share photos and videos on facebook or twitter!

<p>hi cparrapa,</p><p>I just came back home with the 3D print of the Otto parts I ordered. Then I decided to check if all the parts are ok. There seems to be something wrong, as the openings (on the right and the left feet as well as on the top of both legs) to adjust the micro servo are bigger than the connector (the white plastic part of the micro servo). They are supposed to be tight, not loose, right?</p><p>Thanks in advance for the reply.</p>
<p>Hi This is the latest version of the feet and legs they use the white &quot;keys&quot; that come with servos</p>
<p>My son and I tried with the servo 'horns' (the one armed one). It keeps falling out of the slot in the foot/leg. I did print a foot that I scaled 95% of the latest version and that seemed to work but there wasn't any room for the servo wires to be routed as the pictures shows. Is there a trick? or do I have to keep playing with the print (maybe 97% will work?)? The pictures are using the latest version of the feet (at 100%).</p>
<p>Hi thanks for the feedback</p><p>the hron space is wider since is intended to use some strong glue to fix it there forever. </p><p>But we just made a new model for OttoDIY+ that have a tighter fit <a href="https://gallery.autodesk.com/fusion360/projects/otto-diyplus">https://gallery.autodesk.com/fusion360/projects/ot...</a> you can easily change the tolerances using Autodesk fusion 360, . DO NOT SCALE (fix something but damage something...) stl files here <a href="https://hackaday.io/project/18905-otto-diy">https://hackaday.io/project/18905-otto-diy</a></p>
<p>Thanks! The latest version of the foot did the trick. Now we can't get Otto to walk straight. His left foot seems to get stuck or jumps to a new position compared to this right foot. It seems that when it starts off or when it sees something in its path, it doesn't reset to being straight. I tried to load in the calibration program but I couldn't get it to compile. Any suggestions?</p>
<p>In the code you can manually calibrate the servos changing the &quot;TRIM&quot; values. It can be also a hardware problem many servos even from the same vendor come with different tolerances</p>
<p>I still have to finish connecting battery and make some final fixes, but I have Otto working off USB. Pretty cool. My kids at school are amazed. One asked me if I woke up one day and knew how to do this, yeah right :) Great Project!!</p>
<p>a happy Otto over there Theresa , glad to know is working and make more people amazed</p>
<p>Hi cparrapa,</p><p>I mistakenly deleted by last comment, sorry for that. As you told me rx and tx are associated with the same rx and tx of the nano which is digital pin 0 and 1, i was connecting the pins at these same pins. I have been trying for last 12 days to control otto with bluetooth but its not responding. I was able to configured the bluetooth module and i'm able to connect zowi app to the module too, but i am not able to move robot using app.</p><p>I had uploaded otto todo.ino but robot is not responding to apps command.</p><p>I followed your mentioned link too..( <a href="https://www.hackster.io/ottoplus/otto-diy-33406c?team=30287" rel="nofollow">https://www.hackster.io/ottoplus/otto-diy-33406c?t...</a> )but nothing seems to work. </p><p>I tried to upload zowi firmware too but that one is also not responding.</p><p><a href="https://github.com/bq/zowi/tree/master/Zowi_mold/scr/code" rel="nofollow">https://github.com/bq/zowi/tree/master/Zowi_mold/s...</a></p><p>After doing all this possible cases which causing thing not to work are either arduino or bluetooth module,</p><p>So i tried with mega2560 but still robot not working, whereas bluetooth module problem is concern i'm able to run servos using bluetooth using bluetooth terminal from my mobile(using another program), so this eliminates the bluetooth module issue too.. where else i can be wrong please help.</p>
<p>Yes we have that problem too and that is why we haven't officially launched Otto DIY + the bluetooth version, now somehow i the comments in hackster you can see some Ottobuilders did it, it seems BT modules from different suppliers can work in different baudrates so they are tricky</p>
Ahh.... Thanks a lot for your comment and i was thinking that i was doing something wrong. I'll also work on this problem and I'll let you know if I come up with some solution. Thanks again :D
<p>Building an Army Of Ottos for my students. Just started and tried the examples. Now I willl prepare an easy code of functions so the students can program the robots using those. If not they will get lost into Otto&acute;s code.. great work. Following you on github and hackter</p>
<p>hahaha cool want to see that army!, looking forward for those codes too</p>
<p>I'm making progress; have &quot;avoid&quot; &amp; &quot;smooth criminal&quot; working. When I try to add otto's sounds to &quot;smooth criminal&quot; I can't get any sound to play. It seems no matter where I put the code (ie:Otto.sing(S_surprise);) nothing happens. I found that I could modify &quot;avoid&quot; for different sounds, but not &quot;smooth&quot;. How can sounds be added? </p>
<p>Oh yes that is because smooth criminal only use the oscillator library that is for dance. Yes better use &quot;avoid&quot; moves which can make same dances and even more thing like sounds and gestures, list here: https://github.com/OttoDIY/OttoDIY/blob/master/Moves, better try to copy the smooth dance to avoid which use Otto libraries</p>
<p>Where can I find a discussion forum or program explanation for otto? How do I get the servos to be in a startup orientation; is that the calibration program? I liked building otto for my grandson, but can't ge t the legs &amp; feet straight.</p>
<p>Here: https://github.com/OttoDIY/</p>
Thanks, it's working now. Great project!
<p>Good to know thanks looking forward to see your Otto :)</p>
<p>Hi <a href="https://www.instructables.com/member/cparrapa" rel="nofollow">cparrapa</a>. thanks for such a great project!!</p><p>I've managed to print and assemble Otto ( which was easier than I thought it would be). I've even managed to load up the code for smooth criminal and its been dancing all over my desk!! However, I'm a complete novice when it comes to code/ programming (especially Arduino). How do I change modes/ upload new code?? I've tried uploading the avoid code, but I get error messages and Otto just keeps on dancing!!</p><p>Please forgive my ignorance, but any advice would be greatly appreciated!!</p><p>Ian</p>
<p>Hi Ian </p><p>For the avoidance make sure you have install all other libraries from <a href="https://github.com/OttoDIY/OttoDIY" rel="nofollow">https://github.com/OttoDIY/OttoDIY </a> there also an updated version of the instruction manual there.</p><p>Congratulations for your Otto looks great in grey!</p>
<p>Thanks for the project. We built it for a class project and it came out great, and got an A! We actually designed a very basic Android app that uses a Bluno Arduino Mini (Built-in Bluetooth) to control Otto like a remote control. </p><p>The biggest issue we had was getting the legs to fit the servos correctly. Eventually I actually just designed a new leg that would use the plastic servo horns to move so that we didn't need to fit it perfectly onto the servo head! Also, I found out by printing the foot at 105% I was able to get it to fit perfectly on a SG90 Micro Servo.</p><p>Feel free to use the 123D design, STL, or the Arduino App. Its all located on my GitHub <a href="https://github.com/DryWaters/OttoRemote." rel="nofollow">https://github.com/DryWaters/OttoRemote.</a></p><p>Thanks again!!</p><p>Th</p>
<p>Wow! Daniel wonderful job, thanks for sharing we will incorporate this option to the main code. We also designed new legs have you tried them?</p><p>So cool please share some photos or videos in socail media</p>
<p>Nice! The version we were using was Version 3 of the legs, not sure if there is a newer one since then. Thanks for the plans though!</p>
<p>Yes we have version 4 now in thingiverse</p>
<p>Camilo,</p><p>Just finishing my otto atm. But as soon as I power him up (plug in usb or connect batteries) he starts to move. Is there a way to add a electret microphone and start/stop him with a clap? I am a complete novice when it comes to programming though. I'm looking to do this as a class project in my electronics class this year. Any advice or information greatly appreciated.</p>
<p>Yes you can add a mic or use the current ultrasound to activate him, also the latest version have a micro switch to turn it on</p>
<p>I just finished my first Otto! My expansion board it's a bit bigger than the recomended so i can't fit it inside the body :( I also purchased an hc-06 bluetooth module and I'd love to use it and download zowi app and make it walk, but i'm really new to arduino and programming and I don't know how to do it. I've been looking for info but i can't find how to wire the bluetooth module to the expansion board i just found info about how to wire it directly to the nano board. I hope to learn how to modify my robot soon. Thanks for this project!</p>
<p>If your provider have bigger shield you can always trim it in the borders or make Otto bigger in 123D, for the bluetooth we are developing with the community a new instructable here: https://www.hackster.io/ottoplus/otto-diy-33406c?team=30287, the board have an area for TX and RX you can use</p>
<p>Be careful when ordering the buzzer/speaker you want to be sure to order one that is 12mm in diameter! It should be rated 5Vdc. </p>
<p>So I finally made it too :) </p><p>Only thing my Otto is still missing are his Eyes (which haven&acute;t been delivered yet). So I have Terminator version instead :) </p>
<p>Never is late! cool the terminator look. Have you post it on thingiverse as a made?</p>
<p>not yet, I will check it tomorrow :) </p>
<p>I made with 3D print pieces from a friend, I made some changes to legs for use additional pieces from servo, I put some changes in sketch to detash the servo for standby and add ultrasonic sensor for activate dance... (sketch is at https://github.com/tehniq3/Otto_robot/blob/master/Otto_smooth_criminal_ultrasonic.ino</p>
<p>Can we take out the power supply on the circuit board because ours doesn't fit in the head and we're using the micro-USB for charging?</p>
<p>You mean the black plug for the extra power supply? yes you can take it out, is not really useful unless you want to use an external 9v adapter.<br>USB is only for programming and power not charging unfortunatelly.</p>
What software did you use to design body for 3d print?
<p>Autodesk 123D Design</p>
<p>Excuse me , I have two question .</p><p>1.What's function about 5V Buzzer and HC-SR04 sensor in Otto</p><p>2.when i provide battery to my otto, he always dance can't stop</p><p> it's normal,or not?</p>
<p>1. Buzzer makes sounds and HC-SR04 sensor is to avoid obstacles like in the video using this code <a href="https://github.com/OttoDIY/OttoDIY/tree/master/OTTO_avoid" rel="nofollow">https://github.com/OttoDIY/OttoDIY/tree/master/OTT...</a></p><p>2. Is normal with the smooth criminal dance code</p>
<p>Just a little update: My Otto runs on arduino pro mini on custom board, it has bluetooth and is controlled by zowi app (which I edited so i have more sensitive mic and correct voltage measurement), added microphone, LED so i know when it's on, power switch, bypassed voltage regulator on Pro mini and it runs on 4xAA rechargable batteries. It also has two buttons in the back so i can change modes and it can be programmed via bluetooth from computer or mobile.</p><p>Here is the video of it dancing:</p><p><a href="https://youtu.be/nX2EZhJKNBE" rel="nofollow">https://youtu.be/nX2EZhJKNBE</a></p>
<p> I have it printed and mostly assembled. I am trying to use an Arduino Pro Mini and I'm having one problem. From the code it looks like it is using:</p><p>Pin PD5 Servo (0)<br>Pin PD4 Servo (1)<br>Pin PD3 Servo (2)<br>Pin PD2 Servo (3)</p><p>On the Arduino Pro mini, pin 4 is not capable of PWM and therefor one of the legs doesn't work. I tried to reassign it to another PWM pin, but can't get it to work. The only other PWM pins are on PB1, PB2, PB3. From the Pro Mini documentation it looks like PB1 is seen as pin 9 in IDE. I tried assigning 10 to the fourth servo, but still can't get it to work. Is there something I need to do to change the setup so it will recognize Port B? I've tried a bunch of different mods, but just can't get the 4 servo to work.</p><p>Can you tell e which pins you use to control the servo's</p>
<p>So cool! the servos are perfectly align, did you edited the app from the sketch or your phone? how do you programmed via bluetooth?</p>
<p>I edited sketches on my computer and then replaced original .hex files in Zowi android app (Zowi.apk) with modified ones. Programming via bluetooth is easy, i connected RX, TX and DTR to Pro mini and i can program it via Arduino IDE or upload already compiled sketches from Zowi for android.</p><p>Bluetooth module has to be HC-05 because HC-06 doesn't have reset for programming arduino (i bought HC-06 by mistake and had to reflash the firmware of HC-05) and I think that Arduino Nano doesn't have DTR pin so a 0.1 uF capacitor should be added between reset pin and bluetooth module.</p>
<p>Hi Davor</p><p>Nice job, i did it once with the HC-06 and worked without the capacitor actually now using HC-05 as you, change the name to Zowi they are paired but somehow cannot control, which baudrate you use?, any sketch and diagram for that? thanks</p>
<p>Cool do you think is possible to modify Zowi UI? the .hex hack is impressive did not know that was possible. Yes i also use HC-05.</p>
<p>I'm not sure, but I think it should be, I just don't know how. HEX file is easy, just open .apk file with WinRAR and replace the hex files inside, you need to sign apk after, i did that by using some certificat for development.</p>
<p>i see just looked there are some .xml files maybe they can be modified too but i donot know how thanks</p>
<p>For xml files you need to properly unpack apk first, won't work with just winrar.</p>
<p>I have a question. Just printed the two feet and tried to put the first servos: the screw goes into the moving part of the servo, but the extruded pin on the other side of the internal part of the foot doesn't have a real &quot;hole&quot; to go into the servo, right? How will the servo not misalign in time?</p>

About This Instructable




Bio: Nestworks is a social enterprise based in Shanghai. We are a platform to facilitate the development of new technologies, such as smart hardware, software, or ... More »
More by Nestworks:Otto - Build You Own Robot in Two Hours! Toy Hacking 
Add instructable to: