Direct CNC Control with the Raspberry Pi

If you’re building a CNC router, laser cutter, or even 3D printer, you’ll usually be looking at a dedicated controller. This board takes commands from a computer, often in the form of G-Code, and interprets that into movement commands to the connected stepper motors. Historically this has been something of a necessary evil, as there was really no way to directly control stepper motors with a computer fast enough to be useful. That may not be the case anymore.

A stepstick driver

Thanks to the Raspberry Pi (and similar boards), we now have Linux computers with plenty of GPIO pins. The only thing missing is the software to interpret the G-Code and command the steppers over GPIO, which thanks to [pantadeusz], we now have. Called raspigcd, this software interprets a subset of G-Code to provide real-time control over connected steppers fast enough to drive a small CNC router.

Of course, you can’t directly control a beefy stepper motor to the GPIO pins of a Pi. You’ll let out all the magic smoke. But you can wire it up directly to a stepper driver board. These little modules connect up to a dedicated power supply and handle the considerable current draw of the steppers, all you need to do is provide them the number of steps and direction of travel.

This method of direct control offers some very interesting possibilities for small, low-cost, CNC projects. Not only can you skip the control board, you could conceivably handle the machine’s user interface (either directly via a touch screen or over the network) on the same Pi.

We’ve seen attempts at creating all-in-one Linux stepper controllers in the past, but the fact that anyone with a Raspberry Pi 2 or 3 (the boards this software has currently been tested on) can get in on the action should really help spur along development. Has anyone used this?

3D Printering: Trinamic TMC2130 Stepper Motor Drivers

Adjust the phase current, crank up the microstepping, and forget about it — that’s what most people want out of a stepper motor driver IC. Although they power most of our CNC machines and 3D printers, as monolithic solutions to “make it spin”, we don’t often pay much attention to them.

In this article, I’ll be looking at the Trinamic TMC2130 stepper motor driver, one that comes with more bells and whistles than you might ever need. On the one hand, this driver can be configured through its SPI interface to suit virtually any application that employs a stepper motor. On the other hand, you can also write directly to the coil current registers and expand the scope of applicability far beyond motors.

Continue reading “3D Printering: Trinamic TMC2130 Stepper Motor Drivers”

The Stepper Driver Driver


The Stepstick and Pololu motor drivers are the heart of just about every Reprap electronics board, but they can go bad. The usual way of testing these things is to rig up a microcontroller on a breadboard, grab some cables, and wire something up. [Ken]’s Easy Stepper Motor Controller is a much simpler solution to the problem of testing these drivers and could, with a bit of practice, be constructed on a single-sided homebrew PCB.

The Easy Stepper Motor Controller is a very simple board with connections to a motor, a power supply, and headers for a single Pololu or Stepstick motor driver. Two buttons and a pot control the rotation of the motor with the help of an ATtiny10, and jumpers for up to 16x microstepping are right there on the board.

There’s a video after the break showing what this stepper motor driver driver can do. It’s not much, but if you’re just testing a driver, it’s all you need.
Continue reading “The Stepper Driver Driver”