I’ve had a CNC mill for a few years now, and while many homemade CNC mills use EasyDriver or Pololu, mine came with a sturdy, generic TB6560 controller board. For those unfamiliar, boards like this are interfaced using an old fashioned LPT parallel port, which was initially an annoyance, but quickly became impractical and a hassle, having to use an old PC with VNC installed. The board has plenty of power to push the steppers around, far more than any of the smaller / cheaper solutions had to offer I think, so I wanted to try and teach this board a few new tricks, and let me interface with it using a more modern interface.
Being as USB was the ideal interface, and from previous searching around, Grbl seems like a great solution. Grbl is [ an open source, embedded, high performance g-code-parser and CNC milling controller written in optimized C that will run on a straight Arduino ]… perfect. The basics of the project are, Arduino has a USB interface, which acts like a serial port. It accepts GCODE from the computer, and Grbl translates this into pulses, used by stepper controllers, pushing around stepper motors, while providing feedback when any limit or control switches are hit.
I dug up all the information I could find on my particular TB6560 controller board, including schematic and documentation, but being as how these are mass produced in China with several minor changes between each clone, the documentation was both helpful and misleading at times. Eventually, I had it wired up to a Grbl flashed Arduino Duemilanove, with a ton of loose wires between the two. And after a lot of adjusting of Grbl settings, I was jogging around my CNC via serial terminal, yay!
While all that is great, it was time to make this into a real, permanent install. First prototyped on breadboard, and then created in Eagle PCB, I have a working device I can leave attached to my mill.
For more detail: GRBL CNC USB to TB6560 Interface using Arduino