Protoneer CNC Shield

Just received the CNC shield from Protoneer [link]

I like a modular approach to the electronics (rather than a single board with the motor drivers or even with the microprocessor). I rather replace one component rather than the entire board. In addition, in this approach, all the components are pluggable, allowing very easy replacement. Further, as the technology advances, components can be upgraded or reused.

Especially, I like to use off the shelf Arduino or Arduino clones. These boards are now very inexpensive and are being improved all the time. In this build, the Arduino clone costs only $10. You can see more of it here: [link]



The standard build is to solder all the components on the top side of the shield. I plan on soldering some of the components on the bottom side in order to allow more space under the driver boards for better cooling. In order to do this, one must find a way to increase the space between the shield and the Arduino. This can be simply accomplished by installing some female headers under the board (instead of the male pin headers)




Clearing the components under the driver boards should allow better air circulation for better cooling




Because we are going to be soldering on both sides, one must do some planning in order to allow sufficient space to solder the pins (if you don’t plan, some component may not leave enough space to solder.

First, solder the jumper and the pull up resistor on the bottom side of the board.


The 4th driver (driver A) will be the same as the Y axis since Shapeoko 2 has dual motor on the Y axis. Since I don’t plan on changing it, I hardwired the configuration of driver A to the Y-axis.


Next are the micro-step pins. The best way to solder this is to assemble them into “modules” with the jumpers in place. These are soldered on the bottom side of the board to allow more space under the driver boards.



Next, we solder the socket headers for the driver boards on the top side of the board. Again, the best way to do this is to assemble modules. This will keep the headers straight.


Here is testing out placing the headers for soldering (this photo doesn’t show the micro-step pins that should be soldered already)


I found that assembling the headers as shows below is a better way because the edges of the pin headers are jagged and if you butt them to each other, they may not fit perfectly well resulting in slightly slanting the socket headers.


Perfectly aligned…


Note: if you are installing pin headers for the power out (the 4 pins next to the motor drivers) you can install them before the driver board headers. I am using 4-pin lock sockets so I will install them afterwards.

Now is also a good time to solder the pin headers to the driver boards. Install the pin headers to the socket headers and just place the drivers boards on the pins.





Next, I installed the power output locking sockets. I had these already so why not use them. Unfortunately the space between the driver boards is too small, so I had to cut the locking lip for 2 of the 4 sockets.



Next is soldering the power supply decoupling capacitors. These are to ensure clean power to the driver boards. I also installed a small value film caps as additional decoupling (I just had these around). After the caps, the socket headers to plug the shield to the Arduino are installed.



Just like before, setting the socket headers on the Arduino, makes soldering a breeze…



The rest of the pins you can install later if needed.

Here is the completed Arduino-CNC shield-Driver board module.




UPDATE (JAN-9-2018)

This board is v. 3.00. The current version is v. 3.51 [link]

New with Version 3.51:

  • Added circuitry for End-Stop and Probe signal filtering. This eliminates false triggers and makes it possible use non-shielded cable for end-stops/probes.
  • Bigger Solder pads making it easier to assemble.
  • Probe pin labels have been updated to make it easier to install a probe.

Here is the version history from the protoneer site [link]

  • Version 3.10+
    • Added Support for GRBL 0.9v with PWM Spindle.
  • Version 3.00 (4 Axis)
    • Enlarged board to add a 4th Axis that can clone the X,Y or Z axis. With a 4th option to use pin D12-13 to control it.(Setting up the 4th Axis)
    • Added a breakout header for all the Axis’s.
    • Added a communication header for UART (Serial) and I2C.
    • Added the a connector for an optional fuse.(Fuse not supplies as it needs to be selected for the current that will be used.)
    • Capacitors are mounted horizontally giving more clearance between them and the stepper drivers. Good for ventilation.
    • Added a pull-up resistor on the axis enable pins. This prevents the pin from being in a floating state.
    • Added 2 mounting holes


Shield v3.0 and GRBL 1.1 – Z- (Z minus) is actualy Spindle PWM/EN. It is on Arduino D11 pin. PWM enabled with $32=1. [LINK]

V3.00 only supports GRBL v0.8 – Firmware -> … z_9600.hex. The Latest V3.51 supports GRBL 1.1 [link]

I have bought CNC shield v3.0 but in GRBL ver 0.9+ are pins D11 and D12 reverse. I need control spindle on/off via Gcode and I’m using limit switches too. Is it possible to run CNC shield v3.0 with GRBL ver 0.9, when I simply connect my spindle control to pin for limit Z axis and limit switch for Z axis to spindle pin on CNC shield? Or there is a catch (some resistors, capacitors and so on… in board logic of CNC shield )?  –> I have tried and I confirm, that works perfectly!Thanks. [LINK]


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: