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 :)

Please Flattr me if you found this useful :)

50 Responses to “Mecanum Wheel Rover 2”
  1. […] there are a lot of things awesome about this.  First, sweet wheels.  Second, excellent documentation.  Third, controlled via smartphone, which is neat not only in that the maker got it working, but […]

  2. […] This post was mentioned on Twitter by FOSSwiki, System Free. System Free said: Fascinating open source robot #opensource #openhardware […]

  3. Sweet!! I’m impressed with the resolution of the Up! 3D printer. Were all the parts printed with it?

  4. shchua says:

    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 ?

  5. shchua says:

    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.

  6. shchua says:

    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 ?

    • Madox says:

      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.

  7. shchua says:

    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…

    • Madox says:

      Cheers :) Glad I could help. Actually a video would be better hehe, are you DrM…. on Thingiverse?

      • shchua says:

        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 ?

        • shchua says:

          Forgot to add.. Thanks a lot for your help !

        • Madox says:

          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?

          • shchua says:

            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.

          • Madox says:

            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 😉

    • shchua says:

      Photo as promised:

      As suggested, I used separate power sources for the servos and Chumby/Infocast. Unregulated 6V from 4xAA alkalines in the RHS battery holder. Regulated 5V from 4xAA NiCd in the LHS battery holder via a 5V/500 mA Li Ion to USB boost converter.

  8. shchua says:

    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.

    • Madox says:

      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.

      • shchua says:

        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.

  9. Olaf Diegel says:

    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…


    • Madox says:

      Hello neighbour across the Tasman :)

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

      • Olaf Diegel says:

        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.


        • Madox says:

          May I suggest an USB to 3.3v serial converter? Works wonders for debugging the chumby via the serial console :)

          • Olaf Diegel says:

            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.


          • Madox says:

            Might be an obvious one, did you copy/install/unpack the python package?

          • Madox says:

            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 😉

  10. Olaf Diegel says:

    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. :-)


  11. […] gutted an Insignia Infocast to use with this robot. Insignia is Best Buy’s house brand and they partnered with Chumby to make their Infocast […]

  12. […] Chumby Mecanum Wheel Rover via HaD. Filed under: chumby — by adafruit, posted August 30, 2011 at 12:47 am Comments (0) […]

  13. […] I got a freebie OddBot sent to me a couple of weeks ago, it basically is a derivative of my Mecanum Rover and Olaf was kind enough to sent it with almost everything attached less the Chumby.  Since […]

  14. […] ‘OddBot‘ is a Mecanum wheel base derived from Madox Rover. The design is similar but the OddBot has far superior documentation and more practical mounting […]

  15. […] rover itself is driven by 4 cheap continuous rotation servos like the original, interfaced with a cheap MSP430 Launchpad and controlled by a wireless Wii Nunchuk.  The webcam in […]

  16. Deep says:

    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..

  17. Mert says:

    This codes works on raspberry pi directly
    You can reply my message

  18. Scott says:

    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.

    • Scott says:

      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.

      • Madox says:

        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.

  19. Scott says:

    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.

    • Madox says:

      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?

  20. Scott says:

    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