Mechaduino

01_and_02

Check out the Mechaduino Manual!

imgp1300

As seen on Kickstarter!

 

 

Mechaduino is an affordable open-source servo motor for DIY and professional mechatronics under development at Tropical Labs.  Mechaduino is Arduino-compatible for ease of use.

About:

Engineers use servo motors to achieve the precision motion required in applications such as robotics, automation, and CNC manufacturing.  Like RC servos, industrial servos actively correct for external disturbances.  Unlike RC servos, industrial servos can provide very accurate motion, and often support advanced motion control modes.  Unfortunately the cost of industrial servos is prohibitive to the individual maker.

Tropical Labs engineers have been developing an affordable open-source servo motor, opening the door to sophisticated mechatronics applications.  Our design leverages the low cost of mass produced stepper motors.  We are able to achieve very high resolution via 14b encoder feedback (after calibration routine!).

Goals: (in no particular order)

  • Position,Velocity,Torque loops
  • step,dir inputs for drop-in compatibility with stepper motors / step stick
  • customizable/open source with access to internal variables
  • Customizable and transparent control algorithms (commercial servos often lack this)
  • arduino compatible with easy to use interface
  • high resolution pointing
  • low cost (should not be a huge leap from stepper+stepstick cost)
  • serial interfaces for inter-motor communication
  • able to stand alone for simple applications
  • Adjustable commutation profiles
  • Anti-cogging capable
  • Open to customization. Outside of our firmware, we see mechaduino as a very useful hardware package.  If you would like to use the stepper motor in open loop mode w/ encoder to verify location, you can do that.

Application Examples:

  • Fine, closed loop positioning for 3d printers
  • Fine pointing for optics (laser, telescope, camera gimbal)
  • Velocity loop for a record player
  • Force feedback/impedance control for robotics
  • Adjustable mechanical impedance: virtual spring,mass,damper
  • Electrical gearing between two axis
  • Haptics
  • Tele-operation
  • Gravity-cancellation
  • Load detection and characterization (simple case: use as a scale!)
  • Paper towel/tp dispenser
  • Variable load (brake…)
  • Variable load (generator)
  • After market valve control

Other Advantages:

  • Finer resolution than steppers
  • True closed loop for disturbance rejection
  • Lower power consumption: only uses power to fight disturbances.  This in turn means higher peak torque
  • Absolute position control (not incremental)

 

https://www.youtube.com/watch?v=uq9ZJWuTsds&feature=youtu.be

 

 

Board Diagram: Mechaduino 0.1

Block Diagram: Mechaduino 0.1

Current Pin Diagram: Mechaduino 0.1

 

Next Gen Schematic: Mechaduino 0.1

IMGP1414

Mechaduino PCB Mounting

step_dir

Step/Dir Wiring Diagram

All Mechaduino related materials are released under the

Creative Commons Attribution Share-Alike 4.0 License

https://creativecommons.org/licenses/by-sa/4.0/

35 thoughts on “Mechaduino

  1. do you have a signup for information when you start the Kickstarter?

    1. You can follow our project on hackaday.io for the latest updates:

      https://hackaday.io/project/11224-mechaduino

  2. Hi! Super development! Please inform me when you begin Kickstarter, otherwise I will need to make pcb myself…

  3. Eagerly looking forward to playing with these on several of my projects. Hurry, Faster

  4. Hi, this is totally fascinating, can’t wait to start hacking on it.

    Big question though: how are you able to sense force/torque in applications (like the scale and haptics) where there is no change in position? If I understand correctly you only have a sensor for position, not force. In order to sense force do you need to constantly allow tiny motions and then do some kind of delta-sigma on the tiny motions required to fight back? I ask because this would cause vibrations that are inappropriate for many applications.

    Or do you have some means for sensing the current delivered through the motor coils? I only skimmed the datasheet but I’m pretty sure that H-bridge doesn’t offer that (indeed, I’ve been learning more expensive driver chips like the L6470 in order to get this feature).

    Lastly, that chip is a dual H-bridge for driving two motors with four coils… isn’t that overkill for the (very very slick) back-of-the-motor-mounted scenario? Or is the second H-bridge being used for something (I haven’t been able to view the schematics yet, Eagle hates me and I return the favor).

    1. Torque sensing is accomplished by knowing how much current is running through the coils. The H bridges are closed loop. They have current sense resistors and are constantly sensing the current in the coils and forcing it to the commanded value. In position mode, we adjust the commanded current to force the position error to zero. This doesn’t mean that you’re constantly allowing tiny motions: If you are using the motor in position mode, it will force the current and thus the torque to the level needed to maintain the correct position. Does that make sense? A torque disturbance may cause a tiny initial position disturbance, but it is quickly forced to zero and we can take the commanded current as a torque measurement. This is a fairly common technique, and it seems to work quite well… no vibrations as you describe.

      We are using bipolar stepper motors as high pole-count brushless dc motors (we commutate them like bldc’s, not steppers). There are two windings, so we need two H-bridges.

  5. Awesome work! I’m considering backing you on Kickstarter for PV panel project I’m working on but I’d like to know the power specifications when working with the NEMA 17 64oz-in and if you’ll be providing some sort of libraries/examples

    1. This is the NEMA 17 motor that we are using:
      http://www.omc-stepperonline.com/3d-printer-nema-17-stepper-motor-2a-45ncm64ozin-17hs162004s-p-16.html

      Yes, we will provide example code. All of the firmware is on our github. Right now there are a few examples written in, but we are still in the process of cleaning up and documenting the code.
      -Joe

  6. This project is really awesome, hand some follow up questions.

    1) What motors besides for the NEMA 17 is this going to be compatible with?
    2) Is there any easy way to use this with an RS 232 interface?

    Thanks!

    1. Hi Allan,

      Mechaduino will work with just about any bipolar stepper motor with an exposed rear shaft (for mounting the encoder magnet). Keep in mind that the on-board driver is limited to 2 Amps per phase.
      Mechaduino is compatible with the Arduino Zero. You can use the D1&D0 for Tx&Rx.
      -Joe

      1. At last! Someone who unddsrtanes! Thanks for posting!

  7. Hi realy nice project !!!

    Is this chip use dual full bridge ?
    TMC5130
    http://www.trinamic.com/products/integrated-circuits/integrated-motion-controller-stepper-driver/tmc5130

    If yes maybe in your 0.2 version 😛

  8. Wow! After all I got a website from where I know how to in fact get helpful
    information concerning my study and knowledge.

  9. Very cool motor controller. I’m so sorry I missed the Kickstarter. Please email if you’re going to sell boards through other venues?¿

    – Noel

  10. This looks really great! I just missed your Kickstarter. Is there any way to get in an order of initial builds?

Comments are closed.