Marlin vs GRBL on 32 bit board 2020

I am in the process of deciding on a CNC system. I am confident in my understanding of the various mechanical systems available for purchase or construction. What I am not so sure of are the software and electronics. Especially since they are intertwined.

I have searched for comparisons between the different systems (GEBL vs Marlin) but haven’t found anything current. This site providing the most relevant information and discussions so far. However the most recent posts that I’ve found were before Marlin was pushed to handle 32 bit.

I am quite familiar with Marlin, Gcode and basic machine control. Since I currently only 3d print I have no experience with any of the mill/router systems. I am also not in a position to to start small and then grow into a larger CNC. I also don’t like to start with outdated electronics with the intention of upgrading.

Due to operator error I replaced the motherboard in my 3d printer well before I intended (I broke the USB connector and it was basically the same price for the SKR v1.3 as a new stock board or repair). I don’t see any point in buying/building a machine based on 8 bit when 32 bit is readily available. I’m hoping that those with experience in both realms can offer some insight especially since the last discussion I found comparing the two control software packages was for 2017.

Marlin supports a lot of boards, and works mostly with 3D printing software. It currently still supports lots of 8-bit boards, so a 32bit board is mostly idle. This isn’t like a faster intel processor. In a microcontroller, they don’t get much improvement with higher speeds. The big exception is when doing trigonometry, but the marlin devs try hard to avoid that (even during arc moves) because there are so many 8bit boards they still have to work well for.

Grbl is more focused on cnc. It isn’t as actively changed, but it does what it should effectively. Grbl is really well supported on the 8 bit uno. There are more boards, but they are mostly forks of the grbl project and not well supported. The other unique player is the grbl_esp32 boards by Bart Dring. Those are well supported, pretty inexpensive, but have a lot of features.

The skr boards are cheap, and Marlin supports them. They do need visual studio and platform io to flash them, and there isn’t a preconfigured option for the mpcnc. So if you are looking for an easy solution and a v1 machine, the RAMBO boards are a better choice.

Honestly though, it is very hard to tell the difference when using it. They all work very well. There are solutions for each ecosystem and they all function just fine.

Thanks.

1 Like

In current state marlin is close to grbl in cnc sense. Now marlin has workspaces, probing (but as we see - with issues) and comments in () brackets.
As i heard grbl may better in 2 following ponts:

  1. It may better handle laser. I mean handling laser power in sinc with motion. For some people this can matters.
  2. It has a set of “realtime” commands that can be used for immediate control and executed out of order, without queuing.

I’ve been using Marlin for a bit over a year now. I started with 1.#.# and moved to 2.#.# when I replaced the motherboard in my printer. I’ve noticed that the CNC sections I have to scroll over keep getting larger and seemingly more evolved.

It just seems to me that between 32 bits, 5 independent motor control ports, 6 end stop positions, and multiple fan, bed and hot end outputs even the SKR v1.3 should be an excellent controller. And that’s ignoring multiple monitor formats, I2C and I2S availability.

I believe that a purpose built device would be better than cobbling together an inexpensive controller and outboard drivers. As I was always on the bleeding edge professionally I’m not in a position to be there now. I just don’t like the idea of building a system that is outdated before it is even delivered to me.

Can GRBL firmware be installed on the BTT SKR Pro 1.2? If so any tips on how to install it?

The normal workflow for it is a firmware.bin file. The GRBL precompiled file (v1.1h, 2019-08-25 Release) is a “.hex” file (grbl_v1.1h.20190825.hex).

I’ve never done anything with GRBL, but I am interested in the “live” use of GUI’s that support it.

1 Like

I use GRBL on my laser engraver and Marlin on a mini RAMBO board on my Mpcnc.

In terms of usability, they both get the job done. I use CNC.js to drive both of them.

I found GRBL on the arduino nano to be very easy to flash. Marlin was only slightly more difficult. There’s lots of documentation out there on how to do both of them.

As Jeff mentioned, there’s not really a lot of need for a 32bit board vs an 8bit. The firmware’s we’re running just don’t take advantage of the extra bits. The machines are running way slower than the microcontrollers are executing.

1 Like

Not easily and it is what I would consider “bleeding edge” at best, or “development version”.

Grbl-HAL supposedly has a version for this board. But YMMV.

2 Likes

Thanks for the advice!

I have been using Easel to prep my designs for CNC cutting. I’ve been outputting to SD card and printing from the touch screen.

I understand that live control by Easel requires a GRBL setup instead of a Marlin setup.

I have heard of CNC.js but never seen it or used it. Will check it out.

I suppose ESTLcam (sp?) does live control too? With a Marlin setup?

ESTLcam seems to be Windows only. I’m on Mac.

https://estlcam.de/

I googled “CNC.js” and saw a link for a desktop app for Mac OS X (x64).

After some searching, I found the download link “cncjs-app-1.9.23-macos.x64.dmg” and used it to install the app in MacOS.

…When I first opened it, this is what I was greeted with:

However, after clicking on “Restore defaults” I was finally greeted with this nice interface:

I’ve never used it on Mac, but my intuition would be to click the ‘restore defaults’ button.

The workspace settings are just what boxes are shown when you have the app open. The GUI allows you to open and close boxes based on what the machine does and what you need access to.

1 Like

Yep, that’s what I did and it worked.