Now 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!).
If you like what we’re doing, please let us know in the comments!
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.
- 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
- Load detection and characterization (simple case: use as a scale!)
- Paper towel/tp dispenser
- Variable load (brake…)
- Variable load (generator)
- After market valve control
- 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)
We are developing our third prototype (Mechaduino 0.1). With this design, we aim to run a kickstarter and get Mechaduino into the hands of designers.
Mechaduino 0.0 is a fully functioning prototype. We have demonstrated position, speed and torque modes of closed loop operation with reasonable performance. Yes, this means true closed loop disturbance rejection in all cases.
We are finalizing pin assignments, power management, and interfaces for the final design. Preliminary pin assignments and schematic can be found below, but the latest designs will be maintained on github (firmware, hardware).
We welcome any input you may have! Please let us know if you have any suggestions in the comments or at firstname.lastname@example.org.
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