Mecanum Wheel Rover 2

Mecanum Wheel Rover 2 (or 1.1)... mmm floating switching regulator looks funny
Rather than calling it a reprint of the original, I would like to think of this as a ‘MkII’ improvement.  Slight modifications to the 3D models to make it easier to print as well as use more common parts.  A servo frame has been added to the Thingiverse ‘Thing’ collection as well as frames for the batteries and Chumby/Insignia Infocast.
This is not really a refined product but an idea to be shared and improved upon by others.  e.g. the Chumby/Infocast frame might be useful to others.

The parts list

A sample of the little bits and pieces

Assembly Instructions

    1. For each wheel, attach the circular servo horn that comes with the servo with the hub using 4 M2x4 self tapping screws.  Take care to hold the servo horn tightly to the hub while screwing.
    2. For each wheel, insert 7 bearings into the ‘flanges’ of the wheel.
      • Depending on your printer, this should be a tight fit.  If it doesn’t fit, gently file the inside of the hole or using a M6 drill bit to clear.  I recommend using the file to keep the tight fit.
    3. Attach the rollers onto each wheel with a M3 bolt and nut combination.
      • Again depending on your printer, the bolts should fit through (maybe a bit tight).  If they don’t fit use a M3 drill bit to clear the roller holes.
    4. Attach each assembled wheel onto the servo.  Remember to install the horn screw!
    5. Calibrate the centre position of the servos using the small adjustment pot at the rear of the servo.
      • Send a centre 1.5ms signal to each servo and adjust the pot until the servo doesn’t move.
    6. Attach each servo onto a frame using the mounting screws that come with the servo.  Note the orientation of the wheels!  An extract out of MWRover.js shows not only my horrible ASCII art skills but how you should attach the wheels.
MWRover Axes
   [\]|2   1|[/]
L     |     |      R

  1. Connect each servo to the USB Servo controller as per the numbering above.  e.g. Wheel ‘1’ goes to channel 1.
  2. Mount the battery holder frame and chumby holder frame to the servo frame using M2x8 self tapping screws.
    • Note : The servo frame has numerous mounting points for you to mount to, and you could mount other components if you wish.  Use a 1.6mm diameter hole, and an optional 4mm diameter x 2mm deep recess for the mating component.
  3. Connect the electronics and load the software! [Hope you can figure it out, if not ask away!]
    • Its slightly different depending on the electronics you use.  For the C1 I connected a second USB Connector on the empty footprint, for the Infocast you see above I soldered a Mini-USB cable directly to the breakouts, for the Chumby Hacker Board I suspect you can do the same.  WiFi Dongle pointing up for max range!


Full source code is available for download from :-

Android accelerometer/magnetometer control might be coming soon…

Edit : Typed this up for someone else so might as well paste it here :-

  • Copy the MWRover directory onto the /mnt/storage partition of the Chumby/Infocast.  If copying directly to the SD card, this is probably the largest partition on the card.
  • Power on the Chumby/Infocast, and run the shell script  You can run the command via serial terminal or SSH.  Power cycle the Chumby/Infocast.
  • Once it boots up, it should start up a WiFi access point called MWRover.  Connect to it using your Android Phone or even your PC.
  • Once you’re connected, open your browser and point it to [Sorry about this long address…forgot to make it something sensible… so bookmark it if you need].
  • You should get a page where there’s a blue top bar, and a blue bottom bar.
    • Touch and drag anywhere in the middle black area moves the rover.  Let go to stop the movement.
    • Touch and drag in the top blue bar left/right to rotate the rover.
  • No software install required on Android/PC/iPhone, its all browser based.


Test video of the new Rover…first 135 seconds is me figuring out what was wrong…

Video of the first rover…software is the same except a ‘-‘ sign moved 🙂

50 thoughts on “Mecanum Wheel Rover 2”

    1. Yup all parts were printed with it, there’s an Australasian distributor now for it as well.

      Ooo you’re the RFM12/22 guy 😉 I need to find those and use them…

  1. Great project. I printed the parts using my UP printer, installed the servos, software etc. I can see the MWRover.html screen but the servos don’t move when I click anywhere on the page. The Debug Line portion shows STOPPED, o, null. Any ideas for troubleshooting ?

    1. Hi 😉

      You have to click, drag, but do not release until you want to stop.

      When you’re in the ‘drag’ state, the debug line should show the Servo (microsecond) values.

  2. I did drag and the numbers do change, but no movement from the servos. The Pololu servo controller is recognized by the Infocast board (I see the ttyACM0 and ttyACM1 ports in /dev), servo power is on and the servos do move if I control them via the Windows-based Maestro Control Centre.

    The contraption is a mess of wires right now, but I promise take photos once I get things working.

  3. The green LED on the servo controller doesn’t blink at all, so that must be it. I tried all 4 options (USB dual port, chained, UART fixed rate, UART autodetect). Which do I use ?

    1. I have to confess, I don’t remember 🙂

      You know you have to boot the Chumby fresh after you’ve changed the setting right?

      Best way to test/debug is to run the python script on your PC first! If you have Windows, just change the ttyACM0 reference.

  4. Got it – the serial mode has to be set to USB dual port, followed by a reboot of the Chumby. The servos move now ! Photos coming soon…

      1. No, just someone with access to an UP printer, an EE background and some interest in robotics. My plan is to add a camera to the rover to see what my dogs are doing when I’m out of the house 🙂 Any tips on getting a webcam interfaced to the Chumby and having the video streamed out ?

        1. I’m currently got an ‘808 #3’, planning to compile gpsca drivers and then just set up a motion JPEG stream to the phone again… camera mounted on a ‘normal’ servo. You noticed the bottom bar? 🙂

          Depends what webcam you want to use. Shouldn’t be too hard to get it done yourself. PS What phone/device are you using as the controller at the moment?

          1. Yes, I knew something was up when I saw the camera bar that did nothing 🙂 I am using a HTC HD2 phone running Froyo as the controller. I have a 808 keychain camera, probably a #6 and would be very, very interested if you get that working.

            BTW, I keep getting brownouts on the Chumby everytime the servos move. It looks like I have to add some filtering on the supply to the Chumby.

          2. I was always weary of brownouts and typically choose to use separate power supplies for motors and controllers were possible. The Chumby isn’t a light consumer, from memory taking 0.3-0.4A @ 5V. That’s almost all 4 servos moving at full speed loaded.

            Will try get the webcams working after I’m over jetlag 😉

      1. The USB Boost is probably struggling to supply the Chumby. I’m using 6AA with a step-down.

        Permission to repost pic? Got a better quality one or even a video? 🙂

        1. Sure. I’ll take some more photos and a video. Can you PM me your email address?
          BTW, the USB boost converter seems to be holding well (measured 5.1v output @ 600mA)

  5. Any luck with getting the 808 #3 connected ? My 808 #3 (VID:PID of 04fc:1528) in webcam mode is not recognized by the Chumby. In MSC mode, it enumerates and mounts ok.

    I see gspca drivers in /lib/modules and other users seem to think they are compiled in already.

    1. Finally got around to powering on an infocast 🙂

      Looks like an old ‘gspca’ on my Infocast at least, it does not contain the gspca_spca1528 module which is used by the 808 (as you point out the PID is 1528). I’ll compile and load that on later.

      1. I downloaded the latest version of gspca, tried to compile but failed (don’t remember the error but something wasn’t defined in one of the source files). I did manage to get mjpeg_streamer streaming using a different webcam. I used IP Cam Viewer on my Android phone to view the video stream. It would be great if we could control and view the webcam from one app.

  6. Hi Maddox,

    Got most of the way through the instructions, and managed to get the chumby up and running (getting it onto the network was a mission as it seems to keep losing the link). and managed to get the MWRover folder copied across to mnt/storage using WinSCP.

    The last bit I am now struggling with (having never used linux before) is in getting the to run. Have got sshd running on the Chumby. Have got ssh on my laptop (using PuTTY), and have logged onto the Chumby sucessfully. From here I can cd to the MWRover folder and see all the files, but cant get the to execute. Have tried a variety of ssh commands, including ssh root@, and various flavors of that.
    Any help you can give on the normal commands you use to run the sh file?

    PS. I have the CAD files for a big macanum robot we built at my previous university (too big for the Up, though) and another medium sized one that should be fully Up printable (wheels are 125mm diameter) with a few minor mods. Let me know if you are interested and I’ll throw them up on Thingiverse.

    Greetings from across the ditch…


    1. Hello neighbour across the Tasman 🙂

      chmod +x
      c)Just read the commands and type them out,only 3 lines 🙂

      1. Yep. Had eventually managed to get it seemingly installed with the sh command, but had to first create the rfs1 folder in the psp directory that the script was looking for.
        When I then reboot I (occasionaly) get the MWRover access point appear for a few seconds on my laptop before it disappears and the regular chumby software boots up, so I suspect that the didnt fully install.

        Suspect that all my difficulties are being caused by a dodgy Chumby, which just doesnt seem to be behaving the way it should… Incredibly difficult to get it to log onto the network whcih, according to some of the forums, is an occasional problem.
        Has also now decided to, for some reason, no longer allow sshd sessions, so I just cant seem to log into it from my laptop at all anymore. 🙁

        Might need to order another chumby to see if its just the one I have causing problems.


        1. May I suggest an USB to 3.3v serial converter? Works wonders for debugging the chumby via the serial console 🙂

          1. Hi again Maddox,

            Sorry to keep asking dumb newbie linux questions but 2 last little questions (I hope)

            Took the chumby out of the infocast frame, and it seems to be a bit more reliable, so frame may have been stressing one of the solder joints, or something.

            Recopied the MWRover folder to, then ran the
            Linux Newby question: Should I be receiving some confirmation message after running the file? Currently I get nothing. Just goes back to the command prompt.

            After rebooting the Chumby, should I still be booting into the Chumby normal system?
            Currently, on reboot, I get the MWRover access point appear briefly on the network, and then disappear as the chumby continues booting into its system.


          2. I think I know what the problem is 😉 Bad instructions on my part.

            You need to download :-

            Upload it to the Chumby /mnt/storage and then unpack.
            You can copy it when it is booted into the normal system, turn on SSHD and use SCP (WinSCP or SCP) to copy it.
            Once copied, you have to unpack it
            cd /mnt/storage
            tar xvjf python_chumby_2.7.1.tar.bz2
            Then….reboot 😉

            Explanation of what you saw : The WiFi access point appears for a bit, then it tries to run the python which isn’t there, hence it fails and continues to boot the normal Chumby 😉

  7. Praise Madox! We are not worthy, we are not worthy!!!

    Finally got it working! As you suspected my power supply was the final hurdle, and seperating it into a separate power supply for the chumby fixed it.

    Have started printing out the components for my bigger version (the mecanum wheel has eight rollers rather than 7 to reduce the width a tad). Will post pictures once its assembled.

    Thanks again for all the help. Much appreciated. Now that I vaguely know whats going on, I can start to hack it. 🙂


  8. hey i am a student from India.. Can you please tell me whether mecanum wheels are available in India..? And can i build this robot using Arduino boards..? if yes then which one.. your reply will really help me.. thank you in advance..

  9. Are you sure that the screws for the rollers are M3, and not M2? The hole thru the rollers appears to be sized at ~2.5 mm.

    1. Well, it may be fine. My test print has the hole sized way too small, but a close inspection of the stl indicates its 3mm. So my print job was likely not using the best parameters.

      1. Ah good you found the reason, I probably designed it to be 3 or 3.1mm for a M3 screw. M2 screws are too hard to come by whereas M3 are a dime a dozen. Even if it turns out too small, you should be able to just ‘screw through’ the 2.5mm hole you mentioned and it shouldn’t impact it much.

  10. Thanks for the response. I just found another issue though. The 25mm M3 screws for the rollers do not appear to be sufficient. It doesn’t even reach thru when the two hub parts are back to back. Are you sure you didn’t use 30 or 32mm? I’m not even certain that 30mm will reach enough to get the nut on. I’m going to buy 32mm.

    1. Hi – I just checked the STLs and it looks like ~9.5mm on each roller from the hex face out. 9.5mm * 2 + 2.5mm (bearing thickness) should still give 3.5mm of engagement with a M3x25. If your print is exceeding 12.5mm just from the hex face out, then you might have some odd scaling in your printer?

  11. I’ve just confirmed that a print job submitted to iMaterialise with a series of rollers that are 15mm x17mm x 15mm, and the 25mm screw is too short. It only comes up flush with the nut hole. a size M3 x30mm works perfect – with 1~2mm to spare. Now, what I can’t prove is that it wasn’t modified from the original STL. I don’t know how to look inside a part.

    You even lowered the length from v1 to v2…. are you sure that wasn’t a mistake?

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.