MobBob - Smart-phone controlled desktop robot

by cevinius, published

MobBob - Smart-phone controlled desktop robot by cevinius Mar 9, 2015


Remixed From

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

21622Views 2724Downloads Found in Robotics


[Update 2015-10-06: The app has been updated on Google Play. It can now connect to most Bluetooth modules. This enables you to use almost any Arduino and Bluetooth boards for your build!]

MobBob is a bipedal, walking robot controlled by your smart phone. He's controlled by an Arduino-compatible Bluno Nano microcontroller, and interfaces with the phone using Bluetooth LE.

His app now also has OpenCV and Android speech recognition integrated, so he is able to see and hear! In the most recent update, he can track and walk towards colored ball. (Check out the latest video.)

Here are some videos of MobBob in action:

The app shown was written using the Unity game engine. The app in the video is a demo app to show how the phone communicates with the robot. The plan is to develop apps to turn MobBob into a smart, autonomous, desktop companion. :D

I'll continue to update the app over time. You can download the latest version of the Android app from Google Play (it is free, ad-free, and without IAP):

(Now tested on Nexus and Samsung devices, and includes computer vision features. The app now also has a "Skip Connection" option that enables you to get into the main app without connecting to a Bluno board. This lets you have a play with the buttons and the computer vision features.)

The app works with the arduino code found here: https://github.com/cevinius/MobBob

I'll be putting more detailed assembly and wiring instructions on my web page soon! (www.cevinius.com)

UPDATE 2015-08-10: New app with computer vision, voice recognition and ball following/tracking has been posted! You can skip "connecting", so you can try the app out even if you don't have the robot yet. :)

UPDATE 2015-08-11: Minor update on the app. As the behaviours are getting more complex, I'm starting to rely on 2 way comms between the phone and the body to determine when the body has finished moving. This was added in the 10th Aug update. I've had feedback that some phones are having problems with Bluetooth and are not receiving the response messages reliably... leaving the app in a "stuck" state where MobBob won't accept new commands because he's still waiting for the last command to finish. This update adds a new option to NOT use the responses. If this is selected, I use a timer instead of waiting for responses. This is less accurate and not as good as using the responses... So you should use the responses if your phone is correctly receiving the response messages. (Testing on the Nexus 5, responses seem to be coming through reliably. The issues were on a Samsung phone.)


Besides the 3D printed parts, this also used:

  • 4 metal gear micro servos from Arcbotics
  • DFRobot's Bluno Nano
  • Eneloop Mobile Booster Battery
  • Nexus 5 (or another smart phone - Android/iOS)
  • Micro breadboard, and various wires/cables

You need print two of the LegPart, and then 1 of each of the others.

I used hot glue to mount the phone holder and battery rack onto the servo brace. I tweaked the positions to get the battery and phone positions to balance the robot out. So, depending on what battery you use, you may need to reposition things.

More from Robotics

view more

All Apps

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

With 3D Slash, you can edit 3d models like a stonecutter. A unique interface: as fun as a building game! The perfect tool for non-designers and children to create in 3D.

App Info Launch App

Quickly Scale, Mirror or Cut your 3D Models

App Info Launch App

I re-designed these models using OnShape if anyone finds them useful. You can find them publicly available here: https://cad.onshape.com/documents/8446aef0c54d88216ae34940/w/64f7bef3a370dc5507346c9d/e/df218e2e91ae7c65a15eda91

Changes made from the original design:

  • widen hips/base to accept a 'lipstick' battery that I found more commonly available
  • add aesthetic fillets in several places
  • split the phone holder into a sleeve and a base to make it easier to 3D print. I use double-stick tape to attach them later.

This is being used in an after school STEM Robotics class for 5th and 6th graders. See https://robotstem.wordpress.com/

My computer was messing up I didnt see your comments about it working with most bluetooth boards sorry. What is the best way to print the phone holder what is the best orientation Thanks Tom

I usually print it with the holder vertical, and use support for the bits that stick out at the back.

All the best for your build!

Can I use another bluetooth modual like the hc-06 with your app if so could you please post some instructions how to wire it with arduino uno
Thank you Tom

Can I use another bluetooth modual like the hc-06 with your app if so could you please post some instructions how to wire it with arduino uno
Thank you Tom

how do we connect the phone to the bluetooth module? we have problems pairing the 2 together

How you do it may depend on what Bluetooth module you are using. If you are using a regular Bluetooth board, pairing is needed. Check the docs on the bluetooth board.

If you're using the Bluno/HM-10, that uses Bluetooth LE, and there is no need to pair. The phone should just be able to find it. That being said, Bluetooth LE is a relatively new feature (but not that new), so some older phones may not support it. (Do a google search on Bluetooth LE and your phone model to check.)

Let me know how you go.

Comments deleted.

hey by any chance do you have a videos or instructions of how to wire the blunonano to the breadboard?

This is a wiring diagram I made for the Bluno Beetle. The Bluno Nano has pins with the same labels as these pins, so you can wire it up in the same way. Let me know if you need more details about how to do this on a breadboard. If so, I can write something up on the weekend.

Hi, I have an iPhone and I would like to install MobBob app. How can I do? Thank you. I tried on a BQ phone and works really good.

Hi Nachinwer, I haven't released an iOS app yet. On iOS, I don't have the voice recognition working at the moment. I wanted to add that feature before releasing the iOS version. I've been busy at work recently so it'll take some time. Apologies.

Very interesting job.
I need to edit the draws of the different parts of MobBob, i use with my young students Sketchup (free), is-it possible to have them in this format (.skp) ?
Or other editable usefull format ?
Do you use 3dwarehouse.sketchup.com-banks for this sort of files ?
Thanks a lot.

Hi there. I think it's possible to import STL files into Sketchup. (I'm not very familiar with Sketchup, but I just checked on google and there seems to be plugins available for doing that.) The models were made in Blender originally, but I think the source files are too confusing to share... They have lot so objects/hidden objects with versions that are merged and versions that aren't etc. It's a way that works well for me, but I think it would be confusing to others. Also, I suggest starting from the V2 files. That is a cleaner design.

In sketchup, menu bar : Windows > Extension warehouse
search stl (or 3D print group)
you can search what you need

another plugin must install :
Solid Inspector
Solid Inspector²
FixIt 101
LibFredo6, RoundCorner

and remind you that... sketchup is unfriendly in model design, especially curved surface, any where can appear ragged.....

Thanks, dTom!!!
I haven't forgotten I need to make you an app that will work with regular Bluetooth!! It's on my Todo list! :D

Looking forward to that day will come very soon ^.^/

Hi everyone, i have problem with the app, I'm using nexus 5 with 5.1.1 and can't install the app Can samebody help me Thanks!


is there a way to add/edit the voice "Language" from english to other ??

Not at the moment. But I'll add that onto the todo list. I will need to break out the parsing+keywords and the dialogue lines into data files.

Just try your Ver 1.02.1, that so cool !!

I found several improvements :

1) Close program button

2) Can you add a pin at menu ? the moving up & down makes me very dizzy @[email protected]

3) If you can add the number of movements it is perfect !

Hi dTom,

Thanks for checking it out! And thanks for the comments.

1) I personally don't like "Close program" buttons as most current Android apps don't have that. (But I know this point can sometimes be a topic of debate though...)

2) Do you mean the keeping the menu open after selecting a move? If so, there is already a button for that! If you click the "Auto Close: On" button, it will change to "Auto Close: Off" and will keep the menu open. :D

3) Definitely!! I will add more movements soon! :D

Thank you again for checking it out and for your feedback!


Hi Kevin,

1) For me ... I know how to kill app, that is fine the app don't have "Close program" buttons, but not all user know that ^.^"

2) Oh the action buttons too appealing to me, and did not pay attention to the "Auto Close: On" button ... XD

Thanks for reply so quickly.

Frist.. sorry for my englisn... >_<

Hi cevinius, can I ask you something?
I try to change you arduino code that I can use on my android pro mini, it was success that I can use USB send command to control MobBob

But I cannot use your app to connect MobBob via bluetooth, so I want use my app to send command to control it.
I try send text or ascii code but still not work, can you tell me what your android app send the command format please?

Hi dTom,

The app currently only connects to Bluno boards. Bluno uses Bluetooth LE, so I currently connect to the services offered by the Bluno and communicate using that. If there is a Bluetooth configuration that is popular with people I can try to replicate that and update the app to also support it. :)

In terms of connecting with your own app and bluetooth board, that should be no problems. The commands that I send are what you used. My app just sends to make MobBob walk forward. So I think you are sending the right data.

How is your bluetooth card connected to the Pro Mini? On the Bluno, the bluetooth module is connected to the main hardware serial port (so I can send commands via a plugged in USB or via Bluetooth). If you have connected the bluetooth to a different serial port (for boards that have more than one) or to other pins (for a software serial port), you may need to change the code to receive commands using the other serial port or via a software serial port. Also, check that the bluetooth communication speeds match.

Let me know how you go. I'm happy to help where I can.

Thanks cevinius!

My bluetooth module is HC-05 (and I also test HC-06 OK), use 9600 to communication with my phone.
arduino pin 10,11 for RX,TX to connect BT module

I'm trying in sending command now,
if you want to try, you can download it here.

last change MobBobRemix_Control.ino : http://www.thingiverse.com/download:1480052

ai2 web page : http://ai2.appinventor.mit.edu
use google account to login

my ai2 source file : http://www.thingiverse.com/download:1480035
you can import to ai2 by [Projects] > [Import porject (.aia) from my computer...]

2 screen is using,
Screen 1 is main screen,
TestServo is test servo movement
AI2 cannot pass bluetooth connect to another screen
so switch screen need connect bluetooth again

easy with these four videos that show you how to use ai2

Those changes look good. Let me know if that made it work! I have my fingers crossed, and hope to see a video of your build walking around soon! :D

Hi Kelvin,

I'm very happy to tell you that I succeed!

change some code in loop_Parser() :
if (BTSerial.available() > 0 || Serial.available() > 0)
if (BTSerial.available() > 0)

  if (Serial.available() > 0)

now I can use my android to connect MobBob via bluetooth module HC-06 !!

Cheers :) https://www.youtube.com/watch?v=89FMlRcnAwc
Please note that the video at 35-40 seconds
LY and LZ command reversed?
I change my remix sketch, please check yours.

Fantastic news, dTom!!! I'm really happy that you were able to get it to work! :D :D

Thank you for posting the video!

And thanks for the tip about LY and LZ, I'll have a look at the code!

Very happy,

Can you share arduino sketch file pls?

I've added a link in the description. I didn't realise I didn't post that here! Apologies.

Oh... sorry about that... dyslexia again +.+

The Leg STL seems to mess up with slic3r,
but easily fixed by loading it into a CAD program and adding a face
(I used tinkercad).

Thanks for that info. I didn't realise that. I will open the files up on the weekend and do a clean-up and update! (And also create a new toy while I'm at it!)

(Sorry for the earlier reply. For some reason I thought this was regarding another model! :P)

The guys at 3DPrint.com wrote an article on MobBob! Thank you! :D http://3dprint.com/53034/mobbob-3d-printed-robot/

Where does one get the app?

The test app with the buttons is on LMR. The one with the face isn't on there yet, but I'll put it there soon.

Great! I already grabbed the button one. I'm looking forward to the face one! :)

There is still a lot to do on this, but here is the current version. http://bit.ly/1HCKTAB

Thank you! :)