Raspberry Pi CNC Kit (includes Raspberry Pi 4 - 2GB)
SKU: | K2B-1342 |
This DIY CNC Kit includes:
- 1 x Raspberry Pi CNC Board
- 1 x Raspberry Pi 4 - 2GB
- 3 x Stepper Motor – NEMA 23 – 125 oz.in (200 steps/rev)
- 3 x DRV8825 Stepper Motor Driver Carrier, High Current
- 1 x 18V Power Supply with power cable
- 1 x Female DC Power adapter – 2.1mm jack to screw terminal block
- 1 x MicroUSB Power Supply – 5.1V DC 3A
- 1 x Pre-configured Raspberry Pi CNC User Interface SD Card (Class 10 16GB SanDisk)
- 1 x Aluminum Heatsink for Raspberry Pi B+/2/3 (2-Pack)
This kit is powered by Raspberry Pi CNC board from Protoneer. Please see installation, configuration, and quick start guide below.
Now Version 2.60. 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). We recommend the Pololu DRV8825 driver carrier boards to complete this CNC Board.
Installation and configuration
IMPORTANT: None of the components should be powered while installing or configuring.
Quick Start Guide
WARNING: Do not power up the board with stepper drivers installed if they are not connected to stepper motors. The stepper drivers are current limiting and will overheat if they are not connected.
Raspberry Pi CNC - Quick Start Guide
Wiring Diagram
Micro Stepping Jumpers
In the tables below High indicates that a Jumper is inserted and Low indicates that no jumper is inserted.
Pololu A4988
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 |
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.
V2.51 Introduces End-stop and Probe line filters to prevent noise on the lines.
Clone Drive (Introduced with V2.51)
The 4th Stepper Driver Socket can be configured to clone any of the other Axes. Configuration is done with the two rows of solder-able jumpers situated under the board.
External Drivers
Below are images of the pins(in red) needed to connect to an external stepper driver for each axis. External Drivers usually run at 3.3-5V logic with the Raspberry Pi CNC board using 5V. (Check the external driver details before connecting.)
Needed pins are as follow:
- Stepper Pin
- Direction Pin
- Enable Pin
- Ground Pin
Special attention needs to be taken with the Enable pin. Pololu Drivers activate when the enable pin goes low/grounded. If the external drivers you are using needs active high you will not be able to use the enable pin but can instead just connect the external drivers enable pin to 5V to enable it.
Button Controls
The buttons : RESET,ABORT,HOLD,RESUME work with normally open buttons and gets activated when grounded. All buttons are pulled high.
Coolant, Spindle Direction, Spindle Speed
GCode Commands:
- S0 - S1000 - This command set the spindle speed. (0-1000 with 1000 being 100% speed.)
- M3 / M4 - Enables the spindle clockwise or anti-clockwise. The Spindle Direction pin is set accordingly(Anti-clockwise turns direction pin high). Sets the Spindle speed pin accordingly.
- M5 - Disables and pulls spindle pin low.
Examples: M3 S500 -> Enables spindle in clockwise direction at 50% speed.
Keep in mind that the direction pin does not reset when the M5 command is used.
Coolant
GCode Commands:
- M8 - Enables the coolant and pulls the pin high.
- M9 - Disables and pulls the pin low.
Probe
Will be added soon.
Software (Firmware)
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
Uploading new firmware
Version 2.58+
As of this version firmware can directly be upload from the Raspberry Pi.
Upload procedure
Will be added soon.
Older version
Firmware gets uploaded from the Nano's usb port.
GRBL Firmware
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
Firmata
Will be added soon.
Hardware
Version 2.58
- Replaced the Arduino Nano with a embedded micro-controller(ATMEGA328 - Arduino UNO compatible)
- Add reset circuitry to enable programming directly from the Raspberry Pi. ISP pins added and preloaded with the Opti-Boot bootloader. This opens the door for other firmwares like Firmata.
- Replaced clone jumpers with solder-able jumpers.
- Later batches might have dip-switches instead of Jumper headers.
- First Protoneer board to be mode on our Pick and Place machine.
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.
- Wiki Page - http://wiki.protoneer.co.nz/Raspberry_Pi_CNC_v2.51
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)