Controller board - Estlcam


I would ike a estlcam-compatible controller board.
I am currently considering this (arduinoclub) or this this (CNC Shield) board.

Are they any good? Or should I choose something else (located in Europe)


1 Like

I use the CNC Shield v3.00 on my Burly, but I’m running grbl firmware, not Estlcam firmware. It works fine, supports end stops on all 3 axis plus a probe, as well as spindle RPM control through PWM (but I’ve modified my DW 660 with an RPM sensor and a separate AC controller). It cannot do auto-squaring, as that requires 5 stepper drivers and this controller only has space for 4, with one of those being a “clone” of any of the first 3 axis.

Note that you’ll need an Arduino Uno in addition to the parts in the listing you linked above.

I don’t know whether this is an issue with Estlcam firmware, but version 3.00 of this board was designed with the Spindle Enable on a digital Arduino pin, so that pin could turn a relay on or off, but couldn’t do variable speed. In later versions of grbl, the pin mapping was changed to swap the Spindle Enable pin is swapped with the Z end stop pins. This allows for PWM control of spindle speed, but you need to know to swap those two connections to make it work. The silkscreen on all of the v3.00 boards I’ve seen has the original pin markings. I’ve never run estlcam firmware, so I don’t know if/how you’d need to make this adjustment if you wanted variable spindle speed control.

I have the ac-cnc2017-2s cnc board from and it has been pretty bullet proof. It appears to be the same PCB as the cnc2020 item you linked…it is a very good quality PCB.

The arduinoclub board does not use D13 as a PWM output for motor speed control so none of the swapping pins shenanigans are in play with this board - however - if you do require automatic speed control the board expects you will be using a ‘proper’ spindle and an inverter. If automatic speed control is not required then a simple relay driven, single speed DC motor (either with or without an adjustable power supply to provide manual speed control)can be used as per their diagram.
On my board, there is also a spindle speed PWM output that exits on pin D5 and appears at the scew output next to SpRel terminals. My board is revision R5.132

Another ‘advantage’ over the cncshield is all the opto couplers on the nano’s inputs. There is decent documentation on the German website (in English).

It is the perfect companion to estlcam.

1 Like

You are probably in the same situation as I.
I have the following needs:
Board should work with estlcam
It should support 5 Drivers (pololu compatible)
It should support end switches for autosquaring as well as homing
So far I am not happy with my research results.
For the stepper control I use right now an Arduino Mega with a RAMPS shield for 6 steppers.
Movement works fine, but it does not support the endswitches for auto squaring. As soon as one switch is triggerd, all motors stopp.

In case there is no board supported by estlcam, I may reconsider moving to some other software

Anybody out there with recommendations?

The boards Ryan sells do all of that with Marlin (unless I missed a requirement). The skr pro and Rambo both work well and have a lot of hours of testing.

The fluidNC offerings by Bart Dring have can do that. The magic for dual endstops is in the software. They use one endstop pin and two endstops. They drive home until one motor triggers the endstop, then back both away and move each one toward the switches, triggering the pin with each motor. Pretty slick, IMO.

Thanks a lot for your response. I just got the SKR-Pro-V1.2 with the TMC2209 drivers.
Now when I was reading on V1 how to install the firmware, I got problems in understanding on how I would control the board later on. The nicely written guide " SKR Pro - V1 Engineering Documentation" is demonstrating the installation with the Display and knob - which I do not have and do not plan to install as of now.
Any hint on what I need in total to control the system from my PC?

1 Like

You can use:

  • Repetier host
  • CNCjs
  • Octoprint

Those are the most common here. But there are many others.

Jeff’s options are common ones. Pronterface would be another common one.

Getting into a little more esoteric, you can use an ESP01S module to add wifi connectivity and an interface to control the machine from a web browser, which also works from your phone or a tablet.

You can go the whole way over to using RepRap Firmware by using one of the Mellow Fly ESP32 adapters to add the Duet Web control over Wifi. This also gives you a few other advantages, though there’s a definite learning curve to the new firmware. (I’m trying this for a printer with an SKR Pro 1.2 board myself.) Both of these adapters are inexpensive if you can wait for them to get to you.

I prefer to keep my computers away from the chips the machine makes, but I don’t mind using an old tablet or a phone in the shop area.

I would probably go towards using a Raspberry Pi SBC as an interface to the machine myself, using Octoprint or cnc.js to send files. This is a decent web interface, with good support. It’s more money than the ESP adapters I linked above, but ultimately a little more flexible, and with more regular updates to the software. The ESP01S in particular has a rather clunky interface to the SD card files, which is why I got the Mellow Fly adapter and am working on the move to RepRap Firmware.

1 Like

Thanks both of you for the rapid responses - as if you are night long waiting for another question from my side. :wink:
Your responses give me a lot to think and experiment.

I have got the Arduinoclub board as well and really like it. Only downside is that it only has got connectors for 4 motors, so you can’t use endstops. You’d need 5 for those, but have never needed them yet (though sometimes I wish I had some, but only sometimes).

I was able to flash my SKR-Pro V1.2 with the downloaded bin-file from v1engineering (V1CNC_SkrPro_Dual_2209-
Now I also installed Repetier Host and I am able to move all 5 motors.
X and y axis are obviosly right in the moving distance. 50 mm seem to be 50 mm.
For Z, i use a 2mm thread, with means 1 turn of the motor = 2mm movement. Where can I adjust those values?
I have also installed the dual endstop switches for x and y for Zeroing and squaring. Unfortunately I have no clue on where and how I can do this with the software I have right now.
I checked the sourcefile which came with the ZIP file from V1, but as a newbe I could not find what I expected, however I find a lot of settings which are clearly ment for 3D printers (lots of thermosensors etc.)
Which files in the sources were used to compile the software to get the bin data?
Any input would be appreciated.

Addition: The motors are moving independant of the position and setting of the switches
Even if the contacts are not closed, motors are moving.

The M119 command will report the state of the end stops and is your primary diagnostic tool for sorting out the end stops.

Under the default configuration the firmware only pays attention to the switches during the homing cycle. The default configuration also expects Normally Closed switches, i.e. the C switch pin should be wired to the Common/Negative/- board pin and the NC switch pin wired to the Signal board pin. The NO pin on the switch is unused, as is the 5V/+ pin at the board.

For the auto-squaring function of dual end stops, you need to match the X1 motor to the X1 end stop (and match the switches for X2, Y1, and Y2).

(edit to correct wrong command referenced)

M119. Check the endstops with M119 And make sure everything jogs the correct way before sending any home commands.

M92 Z1600 will set the Z to 4 times more steps per mm.

The motor will be rotating 4x faster, which can reduce torque (steppers are stronger at lower speeds). So also adjust the max Z speed.

M203 Z5 will reduce the max Z speed to 5mm/s. For whatever reason, M203 takes mm/s, even though movement commands like G1 use mm/min (G1 Z10 F300).

If you like those settings, M500 will save them to the eeprom and they will be read again at the next restart. If you don’t like them, just power cycle the skr to reset to whatever you saved last (which might be the firmware defaults).

Thanks to both of you
I assume, that there exists a list of all possible commands for Marlin firmware. My search did not bring the expected results.
Maybe just a small hint (URL) where to get those?

1 Like

think I just got this here: Gcode | Marlin Firmware (
Don’t bother

1 Like

Yep. That is a great resource. It is a little thin. And some of the commands need to be enabled to work, but the info there is generally the best.

Homing works great for X and y axis, but then, the Z starts moving down. I do not have any end stops for Z. What is ist doing or waiting for? When would it stop?
Do I have to put an end stop to the Z?


The Z-axis is normally homed to a Touch plate which is placed on the top surface of the material you plan to mill.
This is connected to the Z limit connection on the controller board.


1 Like

Just home the axis one at a time and don’t do Z.

Either press the home X and home Y buttons manually, or in gcode do:

G28 X
G28 Y

Instead of G28.