List of recommendations in Marlin to enable

What is the problem?

Is there a list of which options should be enabled in Marlin to get the most out of Octoprint when compiling the firmware myself?

What did you already try to solve it?

Read tons of guides and videos and I'm finding small bread crumbs of hints of what to enable :slight_smile: I would prefer a single list.
So far I have found to enable:
#define SHOW_REMAINING_TIME // Display estimated time to completion
#define USE_M73_REMAINING_TIME // Use remaining time from M73 command instead of estimation
#define ROTATE_PROGRESS_DISPLAY // Display (P)rogress, (E)lapsed, and (R)emaining time

And probably a few more that I can't remember. This question is more for a new FAQ entry or similar :slight_smile:

Have you tried running in safe mode?

No need for my question/issue

Systeminfo Bundle


Additional information about your setup

Ender-5 with bltouch and skr mini e3 1.2.

1 Like

tagging @MMcLure and @TTalkington :slight_smile:

1 Like

Some of this is going to depend on your exact setup and how you use it, such as the LCD screen.

What you have there is a good start, though. I'd add in:

  • EMERGENCY_PARSER: allows you to interrupt some long running commands, most notably if you decide you want to cancel while the printer is waiting for the bed/hotend to heatup, you won't have to wait for the temperature to reach target before it actually cancels
  • HOST_START_MENU_ITEM: this adds a 'HOST START' menu item to the LCD. This is most useful in a case where you end up canceling a print because the first layer wasn't coming out right and then want to start it again from the LCD, or similar.

And while not really related to printing from a host (ie. OctoPrint), I'd recommend:

  • NOZZLE_PARK_FEATURE and ADVANCED_PAUSE_FEATURE: these two give you M600 and the 'Change Filament' menu item. This is useful if you want to make filament changes within a print (use M600 instead of just pause) and the command is handy by itself if you want to change the filament since it will interactively unload, load and purge the filament for you. If you have HOST_PROMPT_SUPPORT enabled, these prompts get passed back to OctoPrint as well.

Finally, I'd recommend checking out the buffer and blocksize settings. I think some other users here could describe exactly what these do better than I can, but the short version is that increasing these may help prevent stuttering and similar issues which can cause print quality issues while printing from OctoPrint. The ideal values will depend on what board you have, and how much free RAM is available, but for reference, my Ender 3's, which have 4.2.x boards, use:

#define BUFSIZE 32
#define TX_BUFFER_SIZE 32
#define RX_BUFFER_SIZE 2048

Note: This might be fairly aggressive, and if you go with this you'll want to add an M400 to the top of your 'End G-Code' in your slicer, otherwise the heaters may be turned off before the final layer is actually printed.


I feel with the original list you already gleamed and those that Taylor mentioned you have basically the default changes I make to my Marlin configurations to a tee.

Thanks a lot :slight_smile:
Now we just need a single FAQ entry or help page with this very useful information.

1 Like

Just wanted to say thanks for the M400 tip! I had noticed the hotend cooling off before the print ended and was super confused by it. I did some reading on how the command vs. planner buffer work and it makes more sense now, but until that point I had no idea that non-move commands could be executed before prior moves. (I guess if you think of "executing a move command" as "putting the move into the planner buffer", then it's not out of order in that sense. But that wasn't intuitive for me.)



This is correct yes, at least for version

Correct, that's what I get for typing them out and not copying/pasting. Thanks!

Any volunteers to convert this into a #support:guides post? :wink:

I would do it if everyone is okay with it :slight_smile:


This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.