Introduction: Bits4Bots Arduino Omni Wheel Robot Rover - MAKE Course

About: I enjoy designing 3D models and printed circuit boards. I am an Electrical Engineer. I will share some cool projects & try out a few! #innovator

This Instructable was created in fulfillment of the project requirement of the Makecourse at the University of South Florida (

Like robot rovers? Are you a DIY guru? I'm Larsha Johnson an electrical engineering student at the University of South Florida and this is the Iota Omni Holonomic System Rover. This rover uses the Arduino Uno to control three 12V Nexus (48mm omni wheels* DC motors encode) via infrared remote.

Omni wheels allow 2 degrees of freedom which can rotate and slide laterally simultaneously. The body of the rover is uniquely hexagon dome shaped. The current model is equipped with a mini spy camera and proximity sensor for autonomous collision prevention. This is an all around fun and education project for makers of all ages!

This project is entered in the Make It Move, Sensors, and 3D Printing contest.

Please vote for the Robot Rover!

Also see

Step 1: Before You Get Started:

Hello makers,

Here are some things you should know before getting started.

  1. How to 3D print or obtain 3D prints
  2. How to use the Arduino IR remote code. Nice tutorials are available on Instructables.
  3. How to solder

You'll need the 3D prints to reproduce this awesome rover. Also, any IR remote can be used. I hacked a tv remote control for this project, a separate Instructable will show you how it was made.

I hope you attempt my rover and leave feedback. Good luck!

Step 2: Parts List

  • 3mm leds
  • 5mm Led chrome holders
  • 680 Ohm resistors
  • Mini craft hinge
  • Zip ties
  • Tape
  • IR remote *See my Instructable on repurposing TV remote here.
  • IR receiver
  • Jumper wires
  • Soldering iron
  • Solder
  • Shaft coupler (if needed)
  • On/Off switch
  • Screwdriver set


  • Smartphone
  • Avin WIFI app (download)
  • Mini Camera (1 inch diameter lens)
  • WIFI transmitter
  • Box enclosure (RoverTV)

Step 3: Control System & 3D Print

The idea flow chart of the rover goes as follows:

  1. The IR sends and hexidecimal code to the receiver connect to pin 11 of the Arduino.
  2. The receiver decodes and performs a function. (ex. stop wheels, flash lights, move right wheel & rear wheel)
  3. An on board switch turns the rover on or off.
  4. Proximity sensor echos and triggers a function if a condition is met. (i.e stop all wheels if obstacle is near)

3D prints.

This unique print has the base of a hexagon with a dome shaped top. Dome face has three holes, two 1 inches holes for mounting a proximity sensors, one 1 1/2 inch hole for optional camera mounting. Hexagon measures 3 inch sides with 2 extending sides (left & right). The height of the dome is 4 1/2 tp 5 inches.


Bumper extends 1 inch down. Three motor/wheel supports extend downward 2 cm. The support hole is 1 inch in diameter with four 1.5mm screw holes surrounding it. There are approximately ten circular shaped holes about the chassis for convenience.

*Chassis and dome are hinged together.

Step 4: Assembly

The 3D chassis and dome should be printed and in hand.

  1. Start by fitting omni wheel to the rover chassis. Unscrew the four supporting screws for the motors. Fix the front facing motor to the 1 inch circle on either side of the three empty hole slots. Affix motor by replacing the four removed screws.
  2. Repeat step one for two remaining motors. *Chassis has an L marked for left motor and R for right motor.
  3. Pull wires (red & black) of the motors through the bottom of the chassis to the top. (use holes of chassis)
  4. Next connect the motors wires to the H-Bridge motor modules. *One block bracket will remain empty on one of the H Bridge module as the design only uses three wheels. (There are many blogs on how to connect motors to H bridge modules so I will not elaborate) *Note please connect ALL common grounds to battery and Arduino ground) *Solder two wires at the tips (black) to allow one wire for Arduino ground connection and the other wire for connection to the 9V snap connector.
  5. Right motor will connect H-Bridge motor module to Arduino. ENA, IN1, IN2 ------>pin 5, pin 2, pin 3

  6. Left motor will connect H-Bridge motor module to Arduino. ENB, IN3, IN4------>pin 6 , pin 4 , pin 7

  7. Rear motor will connect the 2nd H-Bridge motor module to ENA*on 2nd module I used ENC, IN5, IN6 ------> pin 8, pin 9, pin 10 See code pic or .ino file *Note-Instead of naming the second H-Bridge motor module ENA2 I name it ENC.

  8. 2x 3mm leds and chrome holders are placed snugly into the front bumper of the rover.
  9. These will be attached to female-to-male jumpers and then into A3 and digital pin 13 of the Arduino. Since both leds share the same code (see code) A3/13 can be switched around without problems. A5, A4 are used as ground for the 3mm leds.
  10. At this point the basics to run the rover are now complete. See extra features for camera connections.
  11. For the proximity sensor, use a 4 wire connector as pictured. An alternative is four female jumpers. Ground & VCC are labeled. Connect trigger pin to A1, and Echo pin to A0.
  12. Inserting a switch. Use roughly 4 inches of wire. Strip about 1cm of wire on both ends. The mini toggle switch serves as an open circuit. To connect it, solder a red (+V) jumper or small gauged wire on one leg of the switch. Repeat the process for the remaining leg of the switch.
  13. One exposed end of the wire will be soldered to the 9V snap circuit. The remaining exposed red wire will connect to both H-Bridge 12V module. I soldered two wires together to achieve this. Wrap the exposed wire around one leg of the 9V snap connector and the other exposed wire around the leg of the toggle switch. Secure the wires and switch by soldering.
  14. At last, connect power. A LiPo battery can be connected to the motor module 12V and grounded accordingly. A 9V should be used to power the Arduino. I DO NOT recommend using a LiPo to power Arduino, this could damage your board!
  15. See troubleshooting if needed.

Step 5: Troubleshoot

My car runs for less than a minute then stops. Sounds like the battery is drained.

  • Check to make sure ground pin from H bridge has two wires coming from it, one to battery ground and one to and Arduino pin ground. All grounds need to be common.

My leds don't work.

  • Please be sure anode (longest leg) is to power and cathode (short leg flat side) is connected to ground. Add a 680 Ohm resistor to prevent blowing the bulb.

Wheels are not moving correctly.

  • Check to see if there is a possible shortage. All wires should be well insulated. Do not let exposed wire touch, this can create a short circuit.

Step 6: Extra Features

Camera: Connect a mini camera to wireless WIFI transmitter. Simply place the camera into the 1 1/2 inch "mouth" of the rover. Download the Avin app and follow their instructions to connect to a smartphone.

Proximity sensor: See or blogs

Custom remote: See my How to hack your TV remote Instructable.

Step 7: The Code - 3D STL Files

Here are four files:

  1. Rover code
  2. Proximity header
  3. Proximity C++
  4. IRremote header

You'll need to include all header files in order to run the rover code without error.

Please follow me and checkout

Things to try:

  1. Add a fan for bubble blower.
  2. Modify size of omni wheels for off road racing.
  3. Add a horn.
  4. Add speakers & music.

*Additional hardware for DIY makers parts.

Make it Move Contest 2016

Participated in the
Make it Move Contest 2016

3D Printing Contest 2016

Participated in the
3D Printing Contest 2016

Sensors Contest 2016

Participated in the
Sensors Contest 2016