Tarocco: Open Source Closed Loop Motor Controller

By on December 17, 2016
Pin It

Useful project on CrowdSupply currently, 36 days running to fund it and get one of the early birds discounted price boards!

Desktop CNC machinery typically uses stepper motors, often because they result in lower system cost, since they don’t require a position feedback sensor. But there are some situations where having a position feedback sensor is desirable or necessary, and the power output of a stepper motor, specially at high speeds, becomes the bottleneck for those who want a better performing machine.

I wanted to build a desktop CNC mill that was as impressive as some big name industrial machines. I decided to use brushed motors, as good quality and performance, reasonably priced units are easy to find and come in a wide variety of mechanical and electrical configurations. Speeds in excess of 15 m/min or 600 inches per minute and pushing through metal are no problem for a brushed servomotor coupled to a ballscrew, and the position feedback lowers the risk of ruining a machine job.

Comparison with other brushed motor controllers

Tarocco Leadshine DCS303 CNCdrive DG4S-08020 Geckodrive G320X
Supply Voltage 36 V 30 V 80 V 80 V
Continuous current 10 A 3 A 20 A 20 A
Input frequency 200 kHz 200 kHz 400 kHz 200 kHz
Open Source Yes No No No
Price $41 USD $102 USD $110 USD $127 USD

Who Should Buy Tarocco?

You should consider buying this controller if you:

  • Need a low cost, step/direction compatible brushed motor controller
  • Want to improve the performance of an existing CNC machine
  • Are automating a manual machine like a mill or a lathe
  • Need a reliable brushed motor controller for mobile robotics
  • Have some brushed motors that you want to put to good use
  • Use linear actuators in a precise and controlled manner
  • Need a good quality, hackable H bridge
  • Want to support an open source project

Tarocco allows the use of brushed motors with CNC machine controllers that communicate using the popular step and direction signal interface. As the controller receives step pulses at certain frequency, it will try to spin the motor immediately while reading the encoder signal, ensuring the number and frequency of encoder pulses correspond to the step signal. It essentially allows to drive a brushed motor as a stepper motor of not just, 800, 1600, or even 3200 steps per revolution, but the resolution of the quadrature encoder you use, which can be any value you need. If the controller, for some reason, cannot make the motor reach the desired position, it will signal the other controllers in the system, allowing them to stop their respective motors in time to avoid messing up the printing or cutting job.

The controller can deliver up to 360 W (36 V 10 A) continuously to a motor, making it a good choice for machines that need to accelerate bigger loads or where high speed motion is required. It also features a current limiting function, useful for protecting the motor from overheating and for controlling the amount of torque exerted on the machine.

Features & Specifications


  • Compatible with the popular STEP/DIR interface
  • Supports linear or rotary quadrature encoders
  • 48 MHz PSoC4 microcontroller
  • Easy tuning via serial commands (USB to serial converter could be necessary)
  • 5 mΩ MOSFET H-bridge on a 2 oz copper board for cool and efficient operation
  • Shrouded and keyed headers and pluggable screw terminals for quick and clean cabling installation
  • Closed loop current regulation
  • Fault mode signaling via two onboard LEDs
  • Supports direct E stop or limit switch connection
  • 6 to 36 V motor voltage
  • 10 A continuous current output
  • 1.8 to 5 V logic input
  • 200 kHz encoder and step signal frequency


  • 5 A peak current at 24 V
  • 4000 rpm maximum angular speed
  • 3000 g·cm peak torque
  • 30 W peak power
  • 1440 counts per revolution optical encoder
  • 38mm diameter, 5 mm shaft

Source: Crowd Supply

About Luca Ruggeri

Leave a Reply

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