by Citrus CNC

Open source closed loop motor controller for not-so-small machines

$19,112 raised

of $5,000 goal

382% Funded! Order Below

Product Choices



Includes one fully assembled Tarocco board, wire harness, and standoffs for easy installation.


Include servomotor

Get the 24 V, 4000 rpm servomotor for your Tarocco board(s). Includes 1440 count per revolution optical encoder.


Recent Updates

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.

But it was difficult to find a commercially available, low cost motor controller, as they often have features one does not really need, or they’re built to handle large motors. That’s why I decided to create what would become the Tarocco motor controller.

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

Project documentation: Visit hackaday.io or github for more information.


  • 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
  • 38 mm diameter, 5 mm shaft

##Comparison with other brushed motor controllers

TaroccoLeadshine DCS303CNCdrive DG4S-08020Geckodrive G320X
Supply Voltage36 V30 V80 V80 V
Continuous current10 A3 A20 A20 A
Input frequency200 kHz200 kHz400 kHz200 kHz
Open SourceYesNoNoNo
Price$41 USD$102 USD$110 USD$127 USD

With practically the same amount of money that gets you only one of the other controllers, you can buy enough Tarocco boards for a 3-axis machine!

Manufacturing Plan

As soon as the campaign ends, the electronic components will be purchased and sent to the PCB assembler. Six weeks from the end of the campaign, including non- working days we expect to have the complete batch of boards and motors ready for shipping.

Risks & Challenges

Several Barocco boards have been assembled and tested on machines that do real work. The main risk is that the parts get delayed in shipment.

Tarocco will be provided with the base firmware that allows it to perform its duties as a motor controller for CNC machines. However, firmware updates will be released in the future to increase the performance of the controller. New firmware images will be made available, to cover a broader range of use cases for the board, like making it compatible with RC gear, or to provide different ways to communicate with the board, thus taking advantage of the highly configurable architecture of the PSoC4 microcontroller.


Citrus CNC

I want to make digital manufacturing available for home use.

Gino Magarotto


Component provider

Mouser Electronics

Component Provider

Arrow Electronics

Component provider

Future Electronics

Component provider

See Also

Subscribe to the Crowd Supply newsletter, highlighting the latest creators and projects: