GRBL vs. Marlin for milling

Looks like Marlin is going to be getting multiple coordinate systems:

There’s still the queuing to contend with…but that’s one of the big things Marlin lacks for Milling now coming into play. So that’s nice to see.

2 Likes

If we get a G0 and G1 will we also be in good shape!

On the use of GRBL I am building a lowrider and am considering GRBL because I can then use Carbide Motion v4 as a controller running on an 8" Win10 tablet. Will the GRBL running on a Ramps and Arduino allow for the dual Endstops on Y and Z for auto squaring?

1 Like

I can’t help with that, I am not even sure you can run GRBL on a ramps yet. Are you sure you can’t just output regular gcode and not use GRBL?

Maybe we have some pros that would know different.

1 Like

You either run grbl or Marlin, not both. Marlin has the dual endstops. I don’t know anything about carbide motion but if it’s grbl compatible, it probably won’t work for Marlin. It might, but the motion feedback in grbl is totally different. That’s just a guess.

If you want to control Marlin from a tablet, run octopi on a raspberry pi.

Hi Ryan, in your post above you mentioned that you have configurations for both Marlin and GRBL, could you point me in the direction of the GRBL configuration, have looked on the site but could not find a link. I am currently trying to get accurate milling of PCB’s and came across an application “OpenCNCPilot” that interests me, it only runs on GRBL v1.1.

Thanks in advance

Rob

What I have is in the “Firmware” page. It is very basic but should get you started.

1 Like

I know this is an older discussion but for what it’s worth I agree with your position Ryan. The CNC world is full of choices. Arguably too many choices and newbies can be paralyzed by indecision or purchase something that is unsuited for their needs. That’s why Costco has limited selection - it helps the consumer make choices.

You present a reasonably robust, relatively inexpensive, very versatile, cleverly designed machine. Marlin suits the choices and comprises you had to make. Rambo boards are straightforward and similarly versatile. A Newbie like me can be up and running in a couple of days If we Read and Follow your instructions. Thanks for your decisions…

Before May this year I had no clue as to what I wanted for sure but was very pleased to find your product. It’s a steep learning curve for the majority of us so Lots of reading and questions ensue. I think the few who are fairly familiar with the CNC world forget how little they knew at one time so pick at your choices from an experienced position but not necessarily with the newbie or budget conscious person in mind. Kinda like pro golfers unhappy with the cut of a rough or green in a community golf course.

Keep up the great work and patient problem assistance. Cheers

 

4 Likes

That was a very nice post, thank you!

1 Like

 

I too am a newbie, I am also a retired engineer who struggles with all the options available, especially in the world of software.

I am certainly not a CNC expert, I merely requested some information on GRBL as I understand from various sources that this is the best option for bed levelling of PCB’s with GRBL application. I want to try this for myself and see where I go, by the way, the additional hardware to run GRBL is $20-$30, would hardly break even my pension!

 

So, I’ve started building my own CNC router before MPCNC showed up, and I just finished it last month (kids in between with little to no time to invest heavily time on hobbies…).

Anyway, I installed the MPCNC marlin software for the dual endstops, and tinkered it a bit because I’m only using 1 XX axis.

I tried ESTLCAM for a couple of tests and exported with the GRBL post processor. Both writing and styrofoam machining went great, using the SD card in an Arduino Mega2560 with RAMPS1.4!

Suddenly I start hearing about using Marlin instead of GRBL and don’t really know why. I went back to estlcam and exported with the Marlin post processor, and the main difference is in the beginning of the file. The rest is exactly the same. But I haven’t tried the Marlin code.

By the way, I don’t really know that much about CNC, I’m just an enthusiast that really likes to follow DIY stuff, besides owning a 3D printer for 7 years now.

So my question is, does it really make that much of a difference of exporting the file with the Marlin post processor instead of the GRBL?!!!

This is the beginning of each code:

GRBL:

(Required tools:)
(Flat 3mm)
G21
G90
G94
M03 S16000
G00 Z5.0000

(No. 1: Hole 17)
G00 X13.8783 Y12.7243…

MARLIN:

G90
M03 S16000
G00 Z5.0000

;No. 1: Hole 17
G00 X13.8783 Y12.7243

G21/G20 and G94/G95 aren’t in Marlin. If you picked inches per minute in estlcam, the grbl might have picked G95 and the F numbers would be all different.

ESTLCAM is set to mm/s, which is the same as in Marlin configuration file.

If those G codes are not in Marlin, I’m guessing they will they just be ignored, right?

And that may be why I had no issues during the milling process.

I think Marlin prints a “command not recognized” and just keeps going.

1 Like

I stuck with Marlin coming from the 3D printing world (although I prefer Repetier), but the more I learn about the capabilities of GRBL, the more interest I am in trying it out. I have the dual endstop setup. is that possible with grbl? Five independently driven steppers and dual end stops? I can’t find a GRBL board on Amazon that has more than 4 stepper drivers.

There was a thread here where someone added dual endstops and compiled it for a RAMPS board. To make it work on a minirambo or rambo, the digitpots need to be set, and the ports need to be configured (at least).

The dual endstop was in a bit of a beta state.

Here’s the thread in the forum about running a version of GRBL on a RAMPS board and being able to utilize dual endstops.

https://www.v1engineering.com/forum/topic/grbl-running-on-ramps/

Not real familiar with this stuff but I would think that you should be able to make it work on your MKS Gen L board.

 

2 Likes

Thanks for the link to that thread! I had just found the grbl-MEGA-5X github and was wondering what all I would have to do to make it compatible with the MPCNC with dual endstops.

Am I understanding correctly that I have to have an external PC/Laptop/Raspberry Pi for machine control? Can I use the LCD/SD Card at all?

That is correct. CNC.js on a v1pi or even running as a desktoo application works well with it though.

First thank you for putting this CNC together as open source.

I was thinking for a while building a CNC but being a hobby could not get one for my small budget. This one was able too build it for under $200 but had to cut some corners :wink:

As I already have a 3D printer which uses RAMPS and marlin FW decided to go with this hardware.

Wired the current Y axis (the one moving on the roller blades) using dual stepper drivers and wired the Z motors in parallel. Currently have no end-stops and was annoyed by the question marks on the LCD display so I start learning the Marlin Firmware code.

Currently I am waiting for some cheap mill bits to start cutting something.

I can build small gcode either by hand or generate it using software and quickly found some limitations of the firmware. So I am currently building a custom CNC menu into the firmware and I am looking for feedback.

The CNC menu appears immediately before the existing MOTION menu on the LCD and currently planning to implement the following structure:

MAIN
  • CNC
    • MOVE AXES
      • MOVE X
      • MOVE Y
      • MOVE Z
    • RESET ALL AXES
    • PROBE
      • PROBE Z DOWN
      • PROBE X RIGHT
      • PROBE X LEFT
      • PROBE Y RIGHT
      • PROBE Y LEFT
    • MILLING
      • CONFIGURATION
      • MILL TOP
        • SET TOOL DIAMETER
        • SET PATH OVERLAP %
        • SET BOARD SIZE X
        • SET BOARD SIZE Y
        • SET MILL DEPTH
        • SET MILL SPEED
        • SET MILL DIRECTION
        • Execute MILL TOP
      • MILL X SIDE
        • SET MILL SIZE
        • SET MILL DEPTH
        • SET MILL SPEED
        • Execute MILL X SIDE
      • MILL Y SIDE
        • SET MILL SIZE
        • SET MILL DEPTH
        • SET MILL SPEED
        • Execute MILL Y SIDE
      • DRILL
        • SET MILL DEPTH
        • SET MILL SPEED
        • Execute DRILL
    • RESET X AZIS
    • RESET Y AZIS
    • RESET Z AXIS
MOVE AXES:
  • My machine has no limit switches so I put the existing trim down MOTION MENU here to help with setting the origin manually.

RESET ALL AXES:

  • allows for setting the HOME position (X=0, Y=0, Z=0)

  • unfortunately in Marlin G92 X0 Y0 Z0 does not set machine coordinate but offsets so had some trouble getting this working correctly.

PROBE:

  • this menu helps with probing each axis using specific directions as I am planning to use a sticky metallic tape to find the board X Y Z position.

MILLING:

  • soon realized that if I want to use metallic tape I need a good surface to mount it to, so I built this menu to be able to run simple milling procedures.

  • In order to have a good surface I decided to implement algorithms that generate gcode in memory and drives directly from the LCD. (no SD card necessary)

  • Added operations for milling a corner of the board flat so I can stick the tape. This can be used for changing tools later one (I still have to figure this thing out)

  • Also added one more operation for drilling at the current position in order to be able to screw the board if needed.

The last three menu Items are currently there for manually set each axis origin separately.

 

Please give me any feedback on this menu and if you would like to see something else inside.

If @Ryan agrees I can work with him on getting these changes applied to his GitHub for somebody else to test them. I only have limited time and a single machine to test with so any help is appreciated.

The 3D printing got to the point where everything is so simple, on the CNC world no so much, and my plan is to bring this one step closer to pressing one button and start the milling :slight_smile:

PS: @chaotix here was mentioning the SCAN function that finds the edges of the print. would be interested to hear more about this feature as I think would be useful to implement too.