Omnibot Drive Base Modification
The factory drive for the Omnibot 5402 and Sr use two sets of wheels that are driven by two motors - one per side. This gives the Omnibot skid steering like a tank. It can turn in its own footprint and move forward and backward but not side to side (called strafing). For this project, I want to change out the original drive and wheels with 4 mecanum wheels each with its own drive motor. This will of course require new motor drivers since the original electronics aren't used.
One problem to overcome is the existing drive tray (bottom most part of the Omnibot body) does not have forward openings for wheels and the front spinner would need to be removed. Rather than making these significant permanent changes to the old plastic tray, I decided to start from scratch with a new drive tray so that I can modify the design as it matured. While the current design is not quite equal dimenstionally to the original, it is functional. The link to the current model is below in the components list. You are of course welcome to copy and modify it as you need.
Parts List for the new drive and tray
- 3D printed parts set - Print these parts with 3 shells and 50% infill for durability and strength
- The 8 original screws from the original motor base tray
- 4 mecanum wheels and 4 12v drive motors. (purchased this kit from Amazon that has the wheels, motors, and most of the screws and nuts)
- 8 M3x30 flat head screws (included in kit)
- 16 M3 nuts (included in kit)
- 8 M3x8 screws (NOT included in kit)
- 4 608 bearings
- 4 Lego Technic axles - 30mm minimum length
Tools Needed for new drive tray
- 3D FDM printer with a print bed of 300mm x 300mm minimum or access to one
- Appropriate screw driver for the screws listed above
- Precision knife or deburring tool for 3D parts cleanup
- Drill bits - 1/8in (3.18mm),
- Warning: Before we begin, you should know that this modification is not possible if you still want to use the original electronics. This build assumes that you will not be using the original electronics and tape drive.
- Note: You will want to retain and reuse the 8 original drive tray screws from the bottom of the Omnibot.
- Note: This build does describe a control circuit or remote. However, these motors can be controlled by all of the usual methods such as a hobby RC controller, microcontroller such as an Arduino, ESP32, Teensy, etc, or full blown PC GPIO control. What you use to control your system is up to you.
- Note: Go ahead and print your plastic parts from the kit linked above and clean up the prints before beginning. Each of the screw holes should be drilled out with the appropriate bit (M3 holes use the 1/8th in bit). Make sure that any stringing is removed and that burrs are also removed.
Step 1 - Prep Plastics
The link above to the 3D models of the tray and smaller parts is as follows:
- The new tray that will replace the original Omnibot motor tray.
- 4 motor mounts that will connect each of the yellow 12v DC motors to the tray body
- 4 bearing adapters to connect the mecanum wheels to the bearing that secures on the other side of each wheel via a Lego Technic axle
- 1 axle spacer
First clear any stringing or burs from the printed parts. Generally, if one of the smaller parts has a bur stuck to it then it will likely not fit well into bearings, bearing mounts, or axle slots,
As the printed base is large and uses the same style mounting posts as the original base, It is important that the access through the posts is clear and that the screws easily slide into the posts. I recommend pre-drilling the hole in the printed base and making sure that the screw can fully extend into the post from the bottom. Additionally there are a number of holes in the base that need to be pre-drilled.
Pre-drill the 4 M3 holes on each of the motor mounts so that the M3 screws can easily slide through them.
Step 2 - Connect motor mounting blocks to motors
Each of the 4 motors will be held in place by a motor mount. Each motor mount has an opening for 2 M3 nuts that will be press fit into the openings. Depending on how precise your printer is, you may be able to push them in with your fingers or, if you have one like mine, you may need to press them in with a pair of pliars.
Using the 8 M3x30 screws that are included in the kit mentioned above, push 2 screws through the motor body screw holes and then through the motor mounts. You will need to then attach the 2 M3 nuts on the motor mount side NOT the motor side. If the screws are mounted from the other side, the nuts and excess screw thread can rub against the mecanum wheel.
The wheel in the kit has a motor adapter that is held to the wheel with a long screw. You will need to remove the screws to take the adapter off of the mecanum wheel Next, push the motor adapter that was connected to the wheel onto the yellow motor's drive axle opposite the side with the motor mount.
NOTE: Each motor may have a short alignment pin sticking out of one side, place the motor mount on the opposite side of the motor body.
NOTE: While all 4 motors will need the mount attached, two motors will have the motor oriented toward the front of the body and two will be oriented with the motor pointing to the back of the tray.
NOTE: There is a raised arrow inside the tray that is pointing 'forward' or toward the robot's forward direction.
Step 3 - Assemble bearing axles
After removing the motor adapter screw as mentioned above, you'll see a 'plus' shaped hole through the center of each mecanum wheel. This exactly matches a Lego Technic grey axle which is what we'll use to connect the wheel through an adapter to the bearing.
First you will need to push the bearing adapters with the 'plus' opening in the middle of them into the bearings. These are designed to be friction fit and if your printer over extrudes at all, then you may need to use a hammer to lightly tap them in. If that doesn't work then you may need to sand or shave down the adapter.
After each one is inserted, you will need to push the Lego axle through the plus shaped slot until it is flush with the wide end of the adapter AND the length of the spacer. The spacer is the same length as the mecanum wheel depth.
If the Lego axle you had on hand was longer than 30mm then you should have excess axle sticking out from the bearing side of the assembly. You will need to use a pair of cutters to remove this excess. DO NOT cut the axle on the adapter side. This axle will connect the bearing and adapter to the mecanum wheel.
Step 4 - Attach motor wires
Each motor has two small tabs for power. Positive on one terminal and negative on the other will drive the motor axle in one direction and reversing them will drive the motor in the opposite direction.
You will want to wire each motor identically so that each motor will behave predictably. You can solder the wires to these tabs or if your chosen controller has push on connectors for these motors you can use them instead. You may want to wrap the motor body with electrical tape to prevent accidental short circuiting if the leads touch the conductive motor body.
From here, each motor will be driven by your chosen motor driver. If you wish to use the same system I developed, the controller and remote section is below.
Step 5 - Full Assembly
Now that each component has been put together, it is time to mount the wheels on the bot tray. However, before we do, there is an order to the way mecanum wheels are oriented to the tray. The simple method is to make sure that the 'little wheel' axles on the top of the larger mecanum wheels point toward the center of the robot as noted in the picture.
Each of the wheels with the attached bearing will need to be put in first. Place the wheel in the open wheel slot with the bearing above the bearing mount on the tray. Next, angle the wheel and lower into the slot until the bottom of the bearing sits on the bottom of the bearing mount. Next, angle the wheel up till the bearing slides into the bearing mount. The wheel should be able to roll on the axle freely.
With the wheel in place held by the bearing and axle, next put the motor adapter into the original hexagonal opening. This should align the motor mount bottom holes with the two corresponding holes in the bottom of tray.
That's it! Now your Omnibot is omnidirectional - and FAST!