Which Controller?

Hi all, I am building my first mpcnc and have all the printed parts done and assembled, tubes cut and table in the making.
The bit I am confused about is the controller board. I am an electronics engineer by trade and so understand the boards themselves but there seems to be a few different ones that people use.

I know Ryan sells the Rambo boards where everything is on one board, there is also ramps, is this used in conjunction with an arduino?
I also hear people talk about marlin and grbl? I know these are the firmware on the boards but what are the advantages of each?

I would like eventually to be able to add joystick control and maybe a touch screen for moving the gantry about.

So what are the advantages (or dis-advantages) of each system and which would be best for the requirements above.
Thanks
Steve

We mostly use Marlin here. The rambo comes flashed with Marlin.

Ramps includes an arduino mega (you can buy the ramps board separately, but they usually come as a pair).

The mini rambo and rambo both have builtin drivers so they don’t need any adjustments. The ramps needs to have the drivers (which are different chips) installed and adjusted for the right current. Rambo sets the current in the software, so it comes already at a good set point.

The mini rambo has 4 drivers. The rambo has 5. Each machine uses 5 motors so the rambo can drive each one on its own driver. The main reason this matters is that you can drive the doubled motors independently when homing, so the machine can square itself. But trust me, we lived with 3 drivers for a very long time, and it works just fine with the motors wired in series.

Grbl is more focused on cnc, but it supports fewer boards. There is really only one official board for Grbl, and using it on ramps or rambo is on a fork of the project. You won’t find as much support for doing that. There are lots of screen options for Marlin, the most common is the cheapo full graphics knob one Ryan sells. Changing to a touch screen means you’ll need to change the firmware. There are some new screens coming out for grbl, but they are still bleeding edge.

By far the easiest way is to buy a full sized rambo and a dual endstop wiring kit from Ryan and get that LCD. It is ready to go out of the box.

3 Likes

As ussual there is an easy path and many advanced paths for experimentation and nonstandard configurations. The easy path is rambo preflashed or if you can find a (genuine) rambo you can flash it with Ryan’s firmware. Other boards are fine but less common and more ways to go wrong.

Marlin is going to be preferred for both the simple path and also for mods like joystick control. Grbl is more of a specialty, reduced function firmware for the arduino uno with cnc shield.

I think a good path would be to go the easy path until all the mechanicals are worked out, and then if you find something rambo can’t do, you can switch it out to whatever. It will be more difficult to get started if you are fighting mechanical and software problems simultaneously.

2 Likes

Thanks for the replies

I was looking at the full rambo but the shop seems to be out of stock also I should have mentioned I am in the UK so postage is also quite expensive. I cannot find one of these in the UK in stock either.

So I think I will go down the ramps route with the arduino mega. This should not be a problem as I am very familiar with arduino boards and use them for work on a almost daily basis. Wiring I have made my own harness (we also make harnesses at work) so all sorted for that.

So I need to get a ramps board with drivers and load the Marlin on and away we go :slight_smile:

Is there a preferred diver for the ramps board for these machines?

Thanks

Ok that should work. I use MKS Gen L which is very ramps-like (not the V2.0 which is totally different). I have heard that some chinese ramps boards cheap out a bit too much and they fail.

As for drivers, the drv8825 has a bit higher current capability than a4988 and the software is set up for 32x microstepping by default for the drv8825. For the a4988 it has to change to 16x microstepping. The tmc drivers have lower current capacity and the fancy features are not generally useful except for the reduced noise if youre building a plotter or something.

Occasionally, I feel like I should point out that Ryan is a 1 man show, and the shop keeps the lights on here. He’s more than happy to see one more machine come to life, but if you’d like to support the project, but aren’t interested in supporting the post office or the VAT, then you can send him a few buck via paypal for his excellent design. I have a hard time saying this in a tasteful way, but I think it should be said every once in a while (and no pressure, we are a community here and we’ll help you either way).

5 Likes

Thanks drv8825 drivers it is then.

I will most certainly send a donation to Ryan. I can see a lot of time and effort has gone into making this cnc what it is and getting the following it has.

Hopefully I will be able to assist new builders in the future to repay the community myself.

2 Likes

I would disagree with earlier posters and would like to redress the balance of opinions expressed here thus far. GRBL is not the ā€˜second best’ option as has been expressed so far , GRBL is, in many ways, much better suited to milling operations than Marlin. Marlin is primarily a 3D Printer firmware, written and developed to deal with the peculiarities that 3D printing throws up, whereas GRBL was designed and developed specifically for milling machining in its’ various forms. The display you are presented with from Marlin is heavily biased towards 3D printing with icons for heating, extrusion levels, fan control, bed levelling and LED lighting, all of which is totally useless to milling. what you need are options for different workspaces, a single probe, spindle speed, adjustability of cutting speeds, coolant flows, tool changing and emergency stops! Historically control over the mill has been achieved by a computer attached to the mill, using the screen of the computer as the display and there are many software offerings that offer the correct mix of controls - GRBL controller, Universal Gcode Sender, OpenCNCPilot, Estlcam to name but a few, most have an option for either a pendant (a remote device for controlling the software - like a mobile or tablet) or will support the use of a game joystick pad.

As you have decided to go down the Arduino road I would urge you to look at GRBL instead of Marlin. EstlCam is popular, if you are looking for something to build take a look at https://www.arduinoclub.de, the site has an English version, and is much more geared towards machining rather than printing.

5 Likes

Yep, I’m GRBL + CNC.js on a Raspberrry pi and like it.
I Would like something better than CNC.js though, any suggestion for something running on a raspberry pi?

Maybe start a new thread with that question Matt?

1 Like

I like universal gcode sender works well for me.

1 Like

I didn’t mean to make it sound like grbl was second best. I have used it, and I like it, for many of the reasons you mentioned. Marlin does support a lot more hardware choices, and running grbl on a ramps or rambo is not as well supported.

Another very good option for grbl is grbl_esp32. That has builtin wifi as well, so you can manage it without a pi or a screen.

Also, I really like cnc.js for running with grbl. It is getting better with Marlin too.

1 Like

Jeff, I just thought it was sounding a little one sided. I happen to much prefer GRBL because it is much more machining orientated and a RAMPS or a RAMBO are not the only options out there for the hobby CNCist. I was sorely tempted with one of these https://www.arduinoclub.de/2018/11/18/estlcam-arduino-cnc-controller-rev5-1-en/ or the Mega equivalent even, but decided on Bart Drings ESP32 board as I only need keyboard control over jogging so the overrides facility and jog control from a pendant, which were a big plus for the arduinoclub system, don’t quite take precedent to the cumbersome external stepper drivers (or having to design and get made a pcb for 5 polopu stepper drivers…I’m still tempted to build both though!
I have an SKR v1.3 sitting here with Marlin2 but after playing with the TFT35 screen to remove a lot of the unwanted 3D Printing icons and functions I just don’t think they work very well for a milling application, and with GRBL you can use the popular EstlCam for both CAD and CAM and providing you don’t mind the 30 second pauses it will remain free (although it is only right that people buy it when they have decided they will keep using it.)

1 Like

I use Estlcam for CAM (I suppose you could call it CAD, like repeating patterns or writing text, but it really isn’t a CAD package, unless they’ve added a lot of new features). Can Estlcam directly control grbl?

The other big reason Marlin is so popular is because many of us come from a 3D printing world, so we are already familiar with it. Ryan and some cohorts here have added some features into it (Dual endstops, joystick control). Even if the users aren’t familiar, Ryan is, and he offers preconfigured versions of it for the rambos.

We don’t get many issues from grbl users (except the ones trying to flash the rambo with it). I think that’s a testament to its simplicity, not just the fact that it is less common here.

The printer menus and temperature displays don’t bother me. I don’t have an LCD attached to my CNC anyway. I just use v1pi and connect with my computer via CNC.js, and I flip flop between Marlin and grbl depending on what I am testing.

I’ll chime in here with just one additional tidbit. You didn’t list ā€œlaserā€ in your requirements but many of us, at some point, have affixed diode lasers to our machines. And Grbl, in addition to the milling ā€œbentā€ already mentioned, has (and has had since v1.1f) a very capable LASER MODE that, when enabled, brings dynamic laser power scaling with feedrate (no more burnt corners and edges) and continuous moves through G1, G2, and G3 commands with laser power changes (though ā€œsharingā€ the SPINDLE PWM pin, laser doesn’t need delays to get up to speed).

A fairly early MPCNC adopter, I used Marlin almost exclusively for everything, including laser. And several threads on this forum document the issues/difficulties we’ve seen trying to use Marlin with our lasers. And IIRC Marlin has seen a number of improvements since that address those issues. But since ā€œdiscoveringā€ Grbl’s laser mode (and Lightburn), I personally find Grbl’s ease of use and overall performance better suited to my laser needs.

1 Like

Fair enough, I’m not too familiar with GRBL so I am probably biased. I’m not too interested in unnecessary things Marlin has, because they are easy enough to ignore or configure out, like extruders, etc. But I am interested in things GRBL has that are missing from Marlin. For instance it would be good if I didn’t have to implement a joystick if there were pendant control available. Or an emergency pause that didn’t wait for 16 movements before activating. I still haven’t written routines to probe circles in Marlin but that is also on the table.

Laser is one thing, thanks David for pointing that out.
From the diagram it implies that joystick control is implemented.
Spindle speed control?
Program run / program stop capable of resuming after stopping?
Feed and speed override responds quickly instead of Marlin’s which applies only after 16 movements?
Multi-axis? Marlin has to abuse E and has no concept of A or B.
Probing corners or circles?

The CNC shield I’m using runs on grbl and supports a hardware ā€œcycle pauseā€ button that appears to be instantaneous.

1 Like

Far from knowledgeable of its internals, I can say that GRBL does have a couple of things I’ve come to appreciate.

It is my understanding it doesn’t gueue up commands as Marlin does… and I believe it when I hit pause and see a near-instantaneous stop. I can leave the room, take a break, and resume right where I left it when I return. With ā€œold man digestionā€ā€¦ that happens a lot :grimacing:

Related, with near-instantaneous cessation of motion, the laser beam also shuts off immediately… dynamic power adjustment with feed means that with no motion, there’s no laser power. Also, the beam power ramps with acceleration/deceleration… which is why there’s virtually no burning at corners and shape boundaries.

Looking at the plethora of small/desktop milling machines and laser engravers out there, I think it worth noting that virtually all of them are Grbl-based. And there is also a wealth of add-ons… including pendants and TFT touch-screen displays. I’ve ordered (not yet received) this controller board set to play with, as Jeff has expressed interest in using the TFT displays in another thread. [Always one to procrastinate, I’ve fought to KISS everything… but he’s shamed me into trying something ā€œnewā€.] Also, Grbl still runs on Uno/Nano and I’ve used simple, inexpensive, 2- and 3-axis Nano-based controllers with virtually all my machines, including MPCNC (both ā€œstockā€ and R&P), FoamRipper, and TimSavX2 hot-wire machine. Admittedly, all my machines are basic… but Grbl works for me and my needs.

Please don’t get me wrong. I love the MPCNC and working with Marlin… but that also holds true for LinuxCNC and Grbl. Poor FoamRipper… it’s had all three on it at various times. I get bored easily… :wink:

3 Likes

Thanks for the alternatives. Certainly something more to look into.

I will be going down the ramps route to start with but once I have that all up and running I am a born tinkerer so will end up looking into the other option and having a play.

Not really thought about fitting a laser but now you have mentioned it, I feel I have to try it!!

1 Like

estlcam

ā€˜Sort of’ is the short answer Jeff, either with the ā€˜Protoneer’ (and clone) cnc shield pinouts or the estlcam pinouts. Estlcam does ā€˜reprogram’ the nano/uno/mega to suit itself but it basically behaves the same as GRBL