GRBL PWM Inverter Circuit

Here is another quick circuit – this time a GRBL PWM inverter circuit showing how to invert a PWM circuit with only three components. This works great to invert the PWM signal out of GRBL to driver a laser.

PWM Inverter Circuit

PWM Inverter Circuit

As a use example, PWM_In would come from the Spindle Speed output of a GRBLDuino CNC controller and be inverted on PWM`_Out to drive a laser with inverted logic requirements.

GRBL Relay Driver Circuit

Here is a quick relay driver circuit showing how to drive a relay from a microcontroller – specifically, one of my GRBLDuino products.


Microcontroller Relay Driver Circuit

Microcontroller Relay Driver Circuit


The circuit as shown is for a spindle control application but the circuit remains the same for any other use. 5V and GND are self explanatory. SPINEN is the signal coming out of the microcontroller and typically 0v DC or 5v DC. Microcontoller outputs can only switch a few mA before damage occurs, but this circuit allows the transistor Q1 to take the load and switch as much as it is rated.

To create a spindle control relay on GRBLDuino products, SPINEN connects to the Sp EN terminal block (the side labeled +). GND is connected to the other side of this same terminal block. 5V must be connected to a 5v source – the simplest way is to use a wire with a Dupont plug to connect to the high side of the Lim. H/L header.

Here are more GRBLDuino posts!

Introducing GRBLDuino Mega Integrated

The latest project is integrating a GRBLDuino Mega Shield with an Arduino Mega – no more shield! The entire system is now contained in one easy to use board: the GRBLDuino Mega Integrated.

It has all of the same features as the GRBLDuino Mega Shield:


  • Smaller than an Arduino Mega – 3.5″ x 2.3″ (89 x 58 cm)
  • Onboard ATMEGA2560-16AUR running at 16MHz
  • CP2102 USB to UART interface – shows up as a USB serial port and works with Arduino IDE (may require Silicon Labs VCP drivers)
  • On board reset button.
  • Designed for Pololu DRV8825 stepper motor drivers and are compatible with all pin-compatible equivalents.
  • Maximum input voltage of 45 volts DC
  • Jumper selectable high/low limit switch activation.
  • RC filters on limit switch and probe inputs.
  • All machine connections are broken out to screw terminals.
    • + and – Limit switches for each X, Y, and Z axis.
    • Resume, Hold, Abort, Emergency Stop, Door Safety support.
    • Flood and Mist coolant connections.
    • Spindle Enabled, Direction, and Speed (PWM) connections.
    • Probe connection.


The schematic is pretty straightforward – it shows all of the internal connections on the board and external connectors.

Bill of Materials

  • 1x GRBLDuino Mega Integrated PCB
  • 1x ATMega2560
  • 1x CP2102
  • 1x 16MHz crystal
  • 1x micro B USB jack
  • 18x Two position screw terminal blocks
  • 6x 1×8 female pin headers
  • 1x 1×3 male pin headers
  • 3x 1×4 male pin headers
  • 4x 2×3 male pin headers
  • 1x 6mm tactile switch
  • 1x 680 ohm resistor network
  • 5x 10k ohm resistors
  • 1x 1k ohm resistor
  • 3x 100uF, 50v Nichicon capacitors
  • 3x 22pF capacitors
  • 4x 0.15uF capacitors
  • 6x 0.1uF capacitors
  • 1x 1uF capacitor
  • 1x green LED
  • 9x short 2 pin jumper shunts
  • 1x long 2 pin jumper shunts

Gerber Files

For those wishing to make their own board, the Gerber files are provided. There are no guarantees made to accuracy or completeness of these files.


I anticipate these being available for sale through a few outlets beginning in early June. Once production is up, kits (if offered) will sell for around $36 shipped in the US and assembled boards will sell for around $61 shipped in the US. Once available, the best price will be at the Eccentric Workshop store, but they will also be on Tindie and eBay.

Future Versions

Version 2 will likely add in relay drivers on the coolant and spindle enable lines to control external devices. If there is enough demand, I would explore creating a 6 axis version also.


I found a few errors once the prototype boards were assembled. The terminals for Abort, Hold, Resume, and Door were on pins 53, 54, 55, and 56 instead of 89, 88, 87, and 86.


GRBLDuino Mega Shield V1

The GRBLDuino Mega Shield V1 is a 6 axis capable CNC controller shield for Arduino Mega systems running GRBL-Mega. Although the official release doesn’t support more than three axes, there are variants available supporting up to 6.

Shortly after starting the GRBLDuino Uno Shield, I came across some postings about the end of life for GRBL on the Arduino Uno since it is at maximum capacity. The next logical step was to move up to the Arduino Mega version as it had plenty of room for future expansion (and there are a few 6 axis branches out there).

Read more of this post