Skip to the content
4 layers138.4 × 138.3 mmGRBL board, the printed circuit board in 3D

This is a PCB designed to run GRBL, an open source CNC control software that is designed and optimised for Arduino.

Size
138.4 × 138.3 mm
Copper layers
4
Thickness
1.6 mm
Parts
287
Nets
310
Pads
1,069
Tracks, vias
2,489, 175
Pours
7
Routed
Yes
KiCad
KiCad 5 (file 20171130)
Created
25 Oct 2021
Updated
23 Jan 2022

Overview

GRBL board is an open-source printed circuit board by ephemeridis, from the ephemeridis/GRBL_board repository on GitHub, published under the GPL-3.0 licence. It is a 4-layer board of 138.4 × 138.3 mm with 287 parts on 310 nets, routed with 2,489 tracks and 175 vias.

It is built around the ATMEGA2560-16AU, ATMEGA328P-AU and TMC5160SILENTSTEPSTICK, with the LMV358, OPA2192ID and FT231XS-R among its other parts. Its parts include 89 resistors, 59 capacitors, 53 diodes, 32 ICs and 21 connectors. It belongs with the AVR (ATmega, ATtiny) boards of this library.

Main components

12

README

README.md

GRBL_board

pcb picture

Introduction

This is a PCB designed to run GRBL, an open source CNC control software that is designed and optimised for Arduino. This board uses GRBL-Mega, which is a version of GRBL that can run on the ATMEGA-2560, used in the Arduino Mega. This implementation allows GRBL to have a larger buffer size, since the ATMEGA-328P that GRBL was originally designed for has severe memory limitations.

This board design incorporates several additional features, such as:

  • Designed for SPI configured Trinamic stepper drivers such as the TMC5160, TMC2130, etc.
  • Ability to change the mirrored axis (X, Y or Z) via software (supports software configurable gantry levelling)
  • All inputs and limit switch inputs wired with optocouplers, designed for normally open switches
  • Onboard 12V 2A regulator, accepting 20-32VDC input
  • Speed control for industrial VFDs, with a standard 4-20mA current loop for spindle speed control
  • Sink logic for spindle control
  • Possible sensorless homing using Trinamic drivers (not ideal since it only emulates a limit switch)

The goal is to accomplish this with minimal editing of the GRBL code, thus to do so an additional ATMEGA-328P is added on the board to enable the additional features.

Connections

This board is designed with the aim of being as compatible as possible with the default GRBL, and as such, the pins are wired to follow the default GRBL-Mega pinout, as shown. Default GRBL-Mega pinout

Trinamic Drivers

Trinamic stepper motor drivers are exceptional in terms of performance and efficiency, incorporating advanced features that enable steppers to run cooler and with near silent operation.

However, the tricky bit is that they are not a plug an play solution unlike other stepper drivers like the DRV8825 or the A4988 drivers. The drivers haveto be configured whenever they are powered up. To accomplish this, the separate ATMEGA-328P is used to communicate with the drivers via SPI in order to configure them.

Mirrored Axis

Most CNC configurations include one axis which has dual stepper drive. GRBL has limited support for axis mirroring, and usually sacrifices some pins, such as spindle speed control. Thus, via the use of multiplexer ICs and the separate ATMEGA-328P, code can be uploaded to the ATMEGA-328P in order to specify which axis to mirror and whether to do gantry levelling for that axis.

To accomplish gantry levelling, the ATMEGA-328P will check the two limit switches on the mirrored axis, and if only one switch is triggered, the corresponding stepper's STEP pin will be held low, preventing it from moving until both switches are triggered. Once both limit switches are triggered, the limit switch signal will be sent to the GRBL controller running on the ATMEGA-2560.

Inputs

Previously, I had an extremely bad experience with EMI on the limit switch lines when building a CNC, thus I decided to include an optocoupler on each input of the CNC controller. Although the switches are still normally open, the optocoupler requires current to drive the LED and thus it is nearly impossible for EMI to trigger the optocoupler. This should make the CNC much more robust against EMI, and it is possible to change the switches to normally closed by modifying GRBL.

Parts

287
QtyValueFootprintReferences
33B360Diode_SMD:D_SMA_HandsolderingD10, D11, D12, D13, D14, D15, D16, D17, D18, D19, D20, D21, D22, D23, D24, D25 +17
25100nCapacitor_SMD:C_0603_1608Metric_Pad1.05x0.95mm_HandSolderC3, C10, C11, C12, C13, C14, C20, C21, C27, C38, C40, C41, C42, C46, C47, C48 +9
1510kResistor_SMD:R_0805_2012Metric_Pad1.15x1.40mm_HandSolderR11, R13, R15, R19, R21, R49, R56, R74, R81, R82, R85, R86, R87, R90, R91
151kResistor_SMD:R_0805_2012Metric_Pad1.15x1.40mm_HandSolderR33, R34, R35, R36, R37, R42, R43, R44, R45, R51, R52, R53, R54, R57, R60
14270Resistor_SMD:R_0805_2012Metric_Pad1.15x1.40mm_HandSolderR4, R7, R8, R9, R10, R22, R24, R27, R46, R47, R48, R61, R75, R78
121kResistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolderR28, R29, R30, R31, R32, R38, R39, R40, R41, R83, R84, R89
126N137Package_DIP:DIP-8_W7.62mm_SocketU10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21
9100Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR5, R6, R69, R70, R76, R77, R79, R80, R88
9LEDLED_SMD:LED_1206_3216Metric_Pad1.42x1.75mm_HandSolderD1, D2, D3, D4, D5, D7, D46, D49, D50
64.7uCapacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolderC1, C29, C30, C31, C32, C49
6BZX84C5V6Diode_SMD:D_SOT-23_ANKD9, D43, D44, D51, D52, D53
5BSS127SPackage_TO_SOT_SMD:SOT-23Q1, Q2, Q5, Q6, Q7
4100uCapacitor_SMD:CP_Elec_8x10C33, C34, C35, C36
410uCapacitor_THT:CP_Radial_D8.0mm_P3.50mmC15, C18, C25, C37
420pCapacitor_SMD:C_0603_1608Metric_Pad1.05x0.95mm_HandSolderC6, C7, C50, C51
427Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR1, R2, R72, R73
447pCapacitor_SMD:C_0402_1005Metric_Pad0.74x0.62mm_HandSolderC2, C4, C53, C55
4MountingHoleMountingHole:MountingHole_3.2mm_M3_PadH1, H2, H3, H4
4TMC5160_SILENTSTEPSTICKgrbl_board:TMC5160_SILENTSTEPSTICKU6, U7, U8, U9
32.2kResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR16, R25, R58
333uInductor_SMD:L_Vishay_IHLP-4040L3, L4, L5
347kResistor_SMD:R_0805_2012Metric_Pad1.15x1.40mm_HandSolderR14, R20, R55
36.8nCapacitor_SMD:C_0402_1005Metric_Pad0.74x0.62mm_HandSolderC19, C26, C39
3BD9G341EFJPackage_SO:HTSOP-8-1EP_3.9x4.9mm_P1.27mm_EP2.4x3.2mm_ThermalViasU3, U5, U22
3SS2150-LTPDiode_SMD:D_SMA_HandsolderingD6, D8, D45
2100kResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR12, R18
2100uCapacitor_THT:CP_Radial_D8.0mm_P3.50mmC23, C43
210uInductor_SMD:L_0805_2012Metric_Pad1.05x1.20mm_HandSolderL1, L6
212kResistor_SMD:R_0805_2012Metric_Pad1.15x1.40mm_HandSolderR23, R62
216MCrystal:Crystal_SMD_SeikoEpson_TSX3225-4Pin_3.2x2.5mm_HandSolderingY1, Y2
21N4148Diode_THT:D_DO-35_SOD27_P7.62mm_HorizontalD47, D48
21uCapacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolderC22, C28
2200Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR17, R59
2220pCapacitor_SMD:C_0402_1005Metric_Pad0.74x0.62mm_HandSolderC44, C45
224kResistor_SMD:R_0805_2012Metric_Pad1.15x1.40mm_HandSolderR66, R67
22AFuse:Fuse_Bourns_MF-RHT200F1, F3
230kResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR64, R65
2470uCapacitor_THT:CP_Radial_D12.5mm_P5.00mmC16, C17
274LS153Package_SO:SOIC-16_3.9x9.9mm_P1.27mmU31, U32
2FT231XSPackage_SO:SSOP-20_3.9x8.7mm_P0.635mmU1, U27
2Ferrite_BeadCapacitor_SMD:C_0603_1608Metric_Pad1.05x0.95mm_HandSolderFB1, FB2
2ICSPConnector_PinHeader_2.54mm:PinHeader_2x03_P2.54mm_VerticalJ4, J21
2L7805Package_TO_SOT_SMD:TO-263-2U4, U26
2LMV358Package_SO:SOIC-8_3.9x4.9mm_P1.27mmU23, U24
2SW_PushButton_Switch_SMD:SW_Push_1P1T_NO_6x6mm_H9.5mmSW1, SW2
2SolderJumper_3_OpenJumper:SolderJumper-3_P1.3mm_Open_RoundedPad1.0x1.5mmJP1, JP2
2USB_Bgrbl_board:USB_B_OST_USB-B1HSxx_HorizontalJ3, J20
110nCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC24
112VDCConnector_Phoenix_MC:PhoenixContact_MC_1,5_2-G-3.81_1x02_P3.81mm_HorizontalJ2
113uInductor_SMD:L_Wuerth_HCI-1365L2
11MResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR3
122Resistor_SMD:R_0805_2012Metric_Pad1.15x1.40mm_HandSolderR71
124VDCConnector_Phoenix_MC:PhoenixContact_MC_1,5_2-G-3.81_1x02_P3.81mm_HorizontalJ22
124V_VFDConnector_Phoenix_MC:PhoenixContact_MC_1,5_2-G-3.81_1x02_P3.81mm_HorizontalJ17
1250Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR68
1300mAFuse:Fuse_1812_4532Metric_CastellatedF2
13kResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR63
140106Package_SO:TSSOP-14_4.4x5mm_P0.65mmU28
174LS155Package_SO:SOIC-16_3.9x9.9mm_P1.27mmU29
1ATmega2560-16AUPackage_QFP:TQFP-100_14x14mm_P0.5mmU2
1ATmega328P-AUPackage_QFP:TQFP-32_7x7mm_P0.8mmU30
1BRAKEConnector_Phoenix_MC:PhoenixContact_MC_1,5_2-G-3.81_1x02_P3.81mm_HorizontalJ23
1COOLConnector_Phoenix_MC:PhoenixContact_MC_1,5_3-G-3.81_1x03_P3.81mm_HorizontalJ1
1DOORConnector_Phoenix_MC:PhoenixContact_MC_1,5_2-G-3.81_1x02_P3.81mm_HorizontalJ10
1E_STEPPERConnector_Phoenix_MC:PhoenixContact_MC_1,5_4-G-3.81_1x04_P3.81mm_HorizontalJ9
1INPConnector_Phoenix_MC:PhoenixContact_MC_1,5_6-G-3.81_1x06_P3.81mm_HorizontalJ12
1IRF9Z24SPBFPackage_TO_SOT_SMD:TO-263-3_TabPin2Q4
1LIM_EConnector_Phoenix_MC:PhoenixContact_MC_1,5_2-G-3.81_1x02_P3.81mm_HorizontalJ16
1LIM_XConnector_Phoenix_MC:PhoenixContact_MC_1,5_2-G-3.81_1x02_P3.81mm_HorizontalJ13
1LIM_YConnector_Phoenix_MC:PhoenixContact_MC_1,5_2-G-3.81_1x02_P3.81mm_HorizontalJ14
1LIM_ZConnector_Phoenix_MC:PhoenixContact_MC_1,5_2-G-3.81_1x02_P3.81mm_HorizontalJ15
1LT5400_10kPackage_SO:TSSOP-8_3x3mm_P0.65mmRN1
1OPA2192Package_SO:TSSOP-8_3x3mm_P0.65mmU25
1PROBEConnector_Phoenix_MC:PhoenixContact_MC_1,5_2-G-3.81_1x02_P3.81mm_HorizontalJ11
1SSM3K361R,LFPackage_TO_SOT_SMD:SOT-23Q8
1Screw_Terminal_01x04Connector_Phoenix_MC:PhoenixContact_MC_1,5_4-G-3.81_1x04_P3.81mm_HorizontalJ5
1SpindleConnector_Phoenix_MC:PhoenixContact_MC_1,5_2-G-3.81_1x02_P3.81mm_HorizontalJ18
1X_STEPPERConnector_Phoenix_MC:PhoenixContact_MC_1,5_4-G-3.81_1x04_P3.81mm_HorizontalJ6
1Y_STEPPERConnector_Phoenix_MC:PhoenixContact_MC_1,5_4-G-3.81_1x04_P3.81mm_HorizontalJ7
1ZVN4306GTAPackage_TO_SOT_SMD:SOT-223-3_TabPin2Q3

The 284 most common of 287 parts.

Similar boards

  • 4 layersFluidNC board, the printed circuit board in 3D

    FluidNC board

    ephemeridis/FluidNC_board

    board for fluidnc

    404 parts6
  • 2 layers319 × 232 mmKristerj, the printed circuit board in 3D

    Kristerj

    mechanical-software-inc/MS1_board

    491 partsCERN-OHL-S-2.0
  • 4 layers182.5 × 62 mmGps clock, the printed circuit board in 3D

    Gps clock

    nseuf/NixieTubeClock

    A GPS-powered precision desk clock that uses nixie tubes

    145 parts3
  • 2 layers104 × 62 mmPoE Splitter, the printed circuit board in 3D

    PoE Splitter

    acha666/PoE_Splitter

    121 parts1GPL-3.0
  • 4 layers100 × 176.5 mmElevation Pivot Daughter Board, the printed circuit board in 3D

    Elevation Pivot Daughter Board

    mauro-starspec/Elevation_Pivot_Daughter-Board

    KiCad 9 daughter board for the Starspec elevation/pivot controller.

    263 parts
  • 2 layers37 × 29 mmB115 4x PoE PSE 13W TPS23861, the printed circuit board in 3D

    B115 4x PoE PSE 13W TPS23861

    skunkforce/b115_4x_PoE_PSE_13W_TPS23861

    to pull the submodules before opening the project with kicad.

    39 partsMIT
  • 4 layers250 × 150 mmHMI, the printed circuit board in 3D

    HMI

    datacrystals/TractionInverterV3

    177 parts1
  • 2 layers65 × 56.5 mmDigitSynth, the printed circuit board in 3D

    DigitSynth

    RTES-Group/DigitSynth

    A real-time audio effects processor built on Raspberry Pi — apply filters and effects to live audio using MIDI control messages.

    56 parts8MIT

Questions

How big is the GRBL board PCB?

It measures 138.4 × 138.3 mm and has 4 copper layers, 1.6 mm thick.

What parts does the GRBL board use?

287 parts, built around the ATMEGA2560-16AU, ATMEGA328P-AU, TMC5160SILENTSTEPSTICK and LMV358. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the GRBL board KiCad files?

From the ephemeridis/GRBL_board repository on GitHub, at the commit this page was made from: the board is grbl_board/grbl_board.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the GRBL board design in my own project?

Its repository publishes it under the GPL-3.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).