Raspberry Pi CNC v2.51

From Protoneer - Wiki
Revision as of 15:00, 24 January 2016 by F5dta (Talk | contribs)

Jump to: navigation, search


Raspberry Pi CNC Board V215 Front2.JPG

The RPI CNC Board combines a real-time CNC controller(Micro-controller running GRBL) with a powerful credit card size computer(Raspberry Pi).

By combining the two systems we have created an eco-system where the Raspberry Pi provides benefits like: Processing power, connectivity(IOT) and a well supported community.

The board plugs directly into the Raspberry Pi General Purpose Input/Output pins, with the micro-controller and Raspberry Pi communicating via serial. (/dev/ttyAMA0)

Availability and Update Notifications

Protoneer Shop
Raspberry Pi CNC Board News-Letter

Installation and configuration

IMPORTANT: None of the components should be powered while installing or configuring.

Wiring Diagram

Raspberry Pi CNC Wiring diagram.png ... Diagram Will Be Updated To The 4 Stepper Setup Soon ...


  1. Start by fastening the spacers onto the Raspberry Pi.
  2. If the Stepper Driver micro-stepping jumper configuration is known it might be easier to install the jumpers before installing the Raspberry Pi CNC board.(Jumpers can also be fitted at a later stage)
  3. Plug the Micro-controller(Arduino Nano) and stepper drivers into the Raspberry Pi CNC board. We recommend turning the stepper driver current POD's to its minimum position.
  4. Plug the Raspberry Pi CNC board into the Raspberry Pi header and screw the board in place.

WARNING: Do not power up the board with stepper drivers installed if they are not connected to stepper motors. These stepper drivers are current limiting and will overheat if they are not connected.

Micro Stepping Jumpers

In the tables below High indicates that a Jumper is inserted and Low indicates that no jumper is inserted.

Pololu A4988 Link
Jumper 1 Jumper 2 Jumper 3 Microstep Resolution
Low Low Low Full step
High Low Low 1/2 step
Low High Low 1/4 step
High High Low 1/8 step
High High High 1/16 step
Pololu DRV8825 Link
Jumper 1 Jumper 2 Jumper 3 Microstep Resolution
Low Low Low Full step
High Low Low 1/2 step
Low High Low 1/4 step
High High Low 1/8 step
Low Low High 1/16 step
High Low High 1/32 step
Low High High 1/32 step
High High High 1/32 step

End Stops

End Stops use normally-open push-button type switches. The End-stop socket shares a common ground that connects to each axis end-stop. The pins are pulled high by the micro controller's internal pull-ups and will activate the end-stop when the pin is connected to ground.

GRBL v0.9 setting $21 needs to be set to 1 to activate hard-limits. Setting $22 also activated the Homing functionality.

Clone Drive

The 4th Stepper Driver Socket can be configured to clone any of the other Axes. Configuration is done with the two rows of jumper headers situated under the Nano board.

... Updated Diagrams to follow soon ...

Removing all the jumpers for the two rows of headers disables the 4th Stepper Driver Socket.

External Drivers and Buttons

. . .


In order for the GRBL to communicate with the Raspberry Pi, the hardware serial port on the Raspberry Pi needs to be enabled and working. HobbyTronics has a good tutorial on how to set it up and test it. Raspberry Pi Serial Port setup

Firmware (GRBL + Micro-Controller)

GRBL is the magic that does the actual control of the CNC machines.

For more details : GRBL

The Raspberry CNC board comes pre-loaded with GRBL but can be updated as follows : Flashing Grbl to an Arduino

User Interfaces (Raspberry Pi)

bCNC [Python][Recommended]

bCNC is a GRBL CNC command sender, auto-leveller and g-code editor.

We have created a special Raspberry Pi Image with bCNC pre-installed. Raspberry Pi CNC User Interface SD Card Image

alt bCNC


  • G-code sender + Editor - Compatible with GRBL 0.9i
  • Workspace configuration (dialog for G54..G59 commands)
  • Auto leveling, Z-probing and auto leveling by altering the g-code during sending
  • Basic CAM features (profiling, drilling)
  • User configurable database of materials, endmills, stock
  • Graphically moving and arranging objects
  • Web pendant to be used via smart phones
  • Graphical display of the g-code, and workspace
  • Extra's : Finger joint box generator

bCNC Wiki

Source code is available at [1] Install instructions - [2]

Serial Interface

The micro-controller is connected to the Rapsberry Pi via the GPIO serial pins. To connect to the onboard serial port of the Raspberry Pi you will need a serial terminal application like minicom or putty to connect.

Serial port details (GRBL 0.9)
Port : /dev/ttyAMA0
Baud Rate : 115200

G-Code streaming script for GRBL [Python]

This is a simple Python script that allows you to send G-Code files to GRBL.

Download : Stream.py

Raspberry Pi CNC - Web interface

Raspberry Pi CNC


Version 2.51

  • Extra Stepper Drivers Socket that can clone one of the other Axes.
  • End-stop + Probe line noise filters. Allows end stops to work with normal un-shielded cable.
  • Breakout pins allowing external Stepper drivers to be hooked up.

Version 2.11

  • Initial Version
  • 3-Axis (XYZ)
  • End Stop for each Axis (XYZ)
  • Variable Speed Spindle / Laser Intensity control (PWM Spindle pin and Direction pin)
  • Coolant control pin. (Extra output pin)