• Small

21/09/2020 Updated: 24/09/2020

Awaiting multiple deliveries

David Kitschker


Over the last couple weeks I've been fighting with the PCB CNC to get some decent boards out of it, however the software keeps crashing and otherwise incredibly poorly written. This proposal is for some bits to non-destructively create a second controller that is completely independent of the original controller. The new controller will run GRBL (the very same as the big CNC) allowing a shared induction between the two machines. It will also allow standard open source PCB CNC tools to be used, and for the mill to do other more interesting jobs than just PCBs

The machine itself is not very complex. It contains no active electronics, just three stepper drivers, some limit switches and a sensorless BLDC motor. These are all accessible via standard DB connectors, making it easy to make a second controller without interfeering with the original.

The controller

We already have an arduino waiting for the GRBL firmware to be uploaded to it to control the steppers and spindle drive. This project isn't doing anything hugely speciallist so I don't expect to need to make many/any modifications to this firmware

The steppers

3 stepper drivers have already been put aside for this project. I am told these stepper drivers are actually exactly the same as are in the original controller so don't expect this to have any issues

UPDATE The stepper drivers are not an off the shelf item, though they use the pretty ubiquitous Toshiba TB6560 chips common in cheap stepper drives. They're actually incredibly similar to what can be found in the current CNC controller. They'll just need their current sense resistors modified to be in line with the max current the steppers want. I've been playing with them today with a random bunch of steppers and they all seem pretty happy. We have four of these in case one breaks, but it may be found that we need to upgrade to some other cheap drives

The spindle drive

The spindle driver is actually just a bog standard BLDC motor, but designed to support speeds up to 60KRPM. Getting a replacement driver from the manufacturer is infeasable due to price. However, due to BLDC motors being incredibly common in RC cars and eScooters an open source board has surfaced, called the VESC. This is a highly configurable platform that accepts a standard PWM input which correlates to the output velocity, from 0 to 60kRPM.

UPDATE A further task can be to have some switched dump resistors to enable power breaking in the spindle drive at a later date. This could be by creating a switched pulse from the spindle enable line with a 555 or similar for when the drive disables. It is however not a necessary thing at this time and we can just disable any sort of power braking in the drive.

The power supply

The spindle drive has a max input voltage of 40v, and the steppers have a max voltage of around 30v. The original controller had an internal 27v supply, but to play it safe a 24v PSU will be purchased. This should be plenty for PCBs and I believe it has a small adjustment pot to get a bit extra voltage if needed.

Further to this a small DC/DC module will be purchased to create 12v for the internal electronics

UPDATE I've upped the power supply from 240w to 360w to help with any power spike issues we may get. It's been confirmed the steppers are currently being directly run off the 27v supply so no voltage conversion is needed for these.

The case

A case from ebay will hold everything together nicely, keeping it easy to switch the CNC back over to the original controller if required.

UPDATE Switching to a metal case will help heat dissipation, electrical interference and will generally be a lot less flimsy than the plastic one previously chosen

Something not considered, but bought up by Alex R is electrical interference issues, primarily on limit switches. It is my thought that due to the fact that the motors in this system are lower powered, and the sensor lines do not run in parallel with the motor drive lines, there should not be an issue. If we start getting issues, I've checked we have a bunch of optical isolators that can be thrown on a small bit of stripboard in the controller. If we continue to have problems, we can contemplate buying this board which has had good success in the metal CNC:


will be placed next to the current CNC controller.

I confess this won't be a plug and play project. I expect it to take a couple weeks once I get all the pieces for it to be working, but I expect it to be up and running within a month or two maximum. I'm more than happy for others to chip in and help out with the project if we can get a decent plan going, but I'm also more than happy to take the project on by myself.


full funded by Hackspace

The hackspace wiki Other members inputs

Committee Sanity Check:

A majority committee vote is needed for all proposals:

  • Felix
  • Matt
  • Alex

Supporting Members:

A small proposal needs 5 member votes:

  • Nic M
  • Russell D
  • Vikki
  • Fraser
  • Tom G

Go back to the proposals page.

  • botlab/hsproposals/proposal_2020-09-21-pcbcnc-new-controller-parts-proposal
  • Last modified: 21 months ago
  • by dmkitsch