Project tutorial

Otto DIY+ Arduino Bluetooth Robot Easy to 3D Print © CC BY-SA

"Otto DIY with steroids" + Bluetooth + APP + switch + touch sensors + strength + sound detection...

  • 172 respects

Components and supplies

Necessary tools and machines

3D Printer (generic)
09507 01
Soldering iron (generic)
if you buy from NO need
Phillips Cross screwdriver
Hy gluegun
Hot glue gun (generic)

Apps and online services

About this project


Otto DIY + would be the improved and advanced version of original #OttoDIY, the idea is to have the same base features DIY robot + Bluetooth control and programming + metal gear servo motors + optional rechargeable + changing modes by touch sensors + sound sensor + RGB light + other outputs +...?

The exciting part is that we are doing open development with makers and hackers around the world so we are open to ideas, not only from expert,s you can join us with , feedback, social share, testing or any other contribution that you might think of.

some main moves

in the following pictures you can have a reference of how to build Otto DIY+

or follow @Alex Glow Live build video!

During the Arm Innovator Asia Tour we give a full Otto DIY+ kit to Alex She've printed up a Hacksterified "Space Cat" head...


ready to start to play with the APP!

Baud-rate for programming module is 9600 or 19200 or 38400, depends on a module. and the code you are using

The BT code for our APP has 9600 baud-rate so BT module must match that speed to be able to communicate with Arduino Nano via serial interface(UART) .

Main Code:

Upload this code with the Bluetooth module disconnected

After successful upload connect the Bluetooth module and it will be ready for pairing

Android APP:

Download the latest .APK for Android smartphones or tablets here.

For Apple here

Otto DIY using Juan Felix Mateos APP

using app inventor by MIT use our template to modify and create your own mobile application

If the APP didn't work is probably because the Bluetooth module came with a baud rate different to 9600bpm so you need to setup

For HC-06: Generally comes with 38400bpm so no need to setup (mostly)

For HC-06 BT module things are a little simpler because module is always in AT command mode when not connected to anything. But the downside is that HC-06 module cannot be used to upload sketches to Arduino because it doesn't have reset. For configuring the module

1. upload this sketch HC06_BT_config.ino to your Nano

2. disconnect USB

3. connect BT module to Nano like this:

4. Power on your Nano and after about 10-15 seconds everything should be finished and your BT should be configured (LED13 should start blinking).

If any problem check this instructables:

For HC-05: Generally comes with 38400bpm

1. Upload the sketch HC05_BT_config.ino to your Nano first, then disconnect Nano from USB.

2. Now connect BT to Nano as shown in diagram but do not connect VCC.

3. Plug in the USB to Nano and then connect VCC so BT enters AT mode. LED on BT should start to blink slower, about once every 2 seconds. (If this doesn't work, try holding the button on BT module while connecting VCC).

Open serial monitor in IDE, set baud-rate to 9600 and line ending to Both NL & CR.

Type AT then press enter; (if everything is right, BT should respond with OK and then enter following commands:

AT+NAME=Zowi "setting the name"

AT+PSWD=1234 "pairing password"

AT+UART=115200,1,0 "baud rate"

AT+POLAR=1,0 "enabling STATE pin to be used as reset for programming arduino over BT"

If any problem check this instructable of how to Modify the HC-05 Bluetooth Module Defaults Using AT Commands


The easiest to code your own Otto is by using one of our Scratch based software extension or Arduino Blocks; graphical programming interface in Arduino mode.

watch these simple tutorial to learn how to install the OttoDIY extension blocks

programming Otto with scratch language

So at this point you should have an Otto DIY+ 3D printed and completely assembled

Now some basic programming with Arduino:

Post your remix and modifications in the Otto builder community .


Function that reads voltage of batteryArduino
//Function that reads voltage of battery

#define BAT_MAX  600 //max battery voltage in mV/10
#define BAT_MIN 400 // min battery voltage in mV/10
#define SLOPE 100/(BAT_MAX - BAT_MIN)
#define OFFSET  (100*BAT_MIN)/(BAT_MAX - BAT_MIN)

this you add in shetch where zowi reads batt voltage:

    batt = ((readVcc() / 10) * SLOPE) - OFFSET;
    if(batt>100){batt = 100;}
long readVcc() {
  // Read 1.1V reference against AVcc
  // set the reference to Vcc and the measurement to the internal 1.1V reference
  ADMUX = _BV(REFS0) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1);
  delay(2); // Wait for Vref to settle
  ADCSRA |= _BV(ADSC); // Start conversion
  while (bit_is_set(ADCSRA, ADSC)); // measuring

  uint8_t low  = ADCL; // must read ADCL first - it then locks ADCH
  uint8_t high = ADCH; // unlocks both

  long result = (high << 8) | low;

  result = 1125300L / result; // Calculate Vcc (in mV); 1125300 = 1.1*1023*1000
  return result; // Vcc in millivolts
Avoid obstacles
Basic code to avoid obstacles, also include all libraries and is easy to modify for custom moves

Custom parts and enclosures


Basic parts schematic
Please note that was made in Autodesk Circuit the ultrasound lack of one cable,


Similar projects you might like

OttoDIY Build Your Own Robot in One Hour!

Project tutorial by Camilo Parra Palacio

  • 297 respects

Tito - Arduino UNO 3D-printed robot

Project tutorial by Camilo Parra Palacio

  • 40 respects

WALTER - The Arduino Photovore Insect

Project tutorial by Martedi

  • 99 respects

Make your first Arduino robot - The best beginners guide!

Project tutorial by Muhammed Azhar

  • 110 respects


Project in progress by Team Petoi

  • 1,568 respects

How to Make a Remote Controlled Robotic Hand with Arduino

Project showcase by Gabry295

  • 115 respects
Add projectSign up / Login