Check out the Mechaduino Manual!


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.


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)



Board Diagram: Mechaduino 0.1

Block Diagram: Mechaduino 0.1

Current Pin Diagram: Mechaduino 0.1


Next Gen Schematic: Mechaduino 0.1


Mechaduino PCB Mounting


Step/Dir Wiring Diagram

All Mechaduino related materials are released under the

Creative Commons Attribution Share-Alike 4.0 License

35 thoughts on “Mechaduino

  1. Hello there,

    I am very interesting in the possibility of ensuring against skipped steps on xyz 3D printers which are known for skipping.

    Can this simply be placed in between the phase wires, with the magnet on the rotor. So now any skipped step will immediately be corrected, and do can get a reasonable assurance that the printer follows the gcode commands exactly?

  2. Hi am am starting to build a few of your Mechaduino boards but I am having problems finding some of the parts in the bom is there a updated bom with all the full part numbers ?


  3. Hi Tropical Labs!

    I got a couple questions.
    1. How sensitive/accurate is the torque detection?
    2. As far as I understand you’re not really using microsteps. I’m looking for a very quiet motor and have been using a driver with 1/128 microstepping. Can you compare it to that at all?
    3. How does Mechaduino interface with other microcontrollers? Serial?


    1. Hi Phil,
      Here you go:
      1)Qualitatively this features seems to work well, but I don’t have any hard measurements to share at the moment. We’re still developing this feature and need to do more testing.
      2)That’s correct, we’re not really microstepping. We’re using sinusoidal commutation based on encoder angle. I don’t really have a good way of comparing the noise to a 128 microstep driver. I think this will depend heavily on the PID tuning.
      3)the Mechaduino is Arduino zero compatible: you can interface using SPI,I2C,Serial,Digital I/O, etc.
      Hope that helps,

  4. I just got my board today and I’m so excited… However, I can’t seem to figure out the mounting hardware. I have a standard Nema 17 motor I’m going to attach it to but it looks in the pictures you are using some custom hex head bolts. How can I go about obtaining something?


    1. Hi Ben,

      This will vary from motor to motor. We made custom hardware for our servos using m3 threaded rod and standard m3 hex standoffs. We’ve posted some more info on this on our page:

  5. Hi,

    If your page doesn’t get funded is there still a way to purchase a prototype?


    1. I’m not tropical labs, I am a customer but I will answer for them. Not only were they fully funded, I have already received mine and it is great. I backed a competitor about 6 months previously also and far prefer the Mechaduino. I will be buying more

  6. I like what you guys have done.
    I am looking to have a stepper motor know how much force it needs to hit its goal instead of a set position.
    The position would change over time as there is a rubber seal involved which overtime will wear/compress.
    The amount of torque would stay the same as the gasket wears.
    Does the Mechduino do this?

  7. what should be the distance between magnet and encoder?

    1. Hi Andre,
      The magnet should be about 1-2mm from the encoder. You can verify that the magnet is placed correctly by checking the encoder’s error register (Mechaduino command ‘e’). Please see the encoder’s datasheet for more details.

  8. Hey Tropical Labs,
    I am interested in this product for a custom delta style printer I am designing,
    Just have a few questions
    1) Does the encoder work so even in the event of power failure it can find its way back to the exact position in the print? Or could the firmware be changed to work like this?
    2) Are these compatible with a different mother board chip say, a board running 32 bit ARM protocols, if not is there any way to modify it to do this?
    That’s all I can think of right now.

    Thank you for your time!!

    1. Nevermind the question about the 32 bit arm protocols, I had a brainfart that just cleared up, this should theoretically work with the smoothieboard correct?

      1. Hi Dylan,

        In response to your first question: Yes, you could probably implement this. The encoder is absolute if that is what your are wondering. If you are going through more than 360 degrees you may have to remember what rotation you are on (could be written to non-volatile memory). I think the trickier part is that you may lose step commands unless you can figure out the last command sent before the power failure.


  9. I’ve ordered the PCB (on backlog) wondering if you have any tips on how I can make this work with a quadrature encoder on a non-captive hybrid linear actuator with the lead screw going THROUGH the stepper motor using the hardware/OSS. Also I’d have to say a board that interfaced a quad encoder and stepper motor and did embedded closed loop control would make a great product.

  10. When should these be available for General order again?

Comments are closed.