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 I would prefer a single list.
So far I have found to enable: #define HOST_ACTION_COMMANDS #define HOST_PROMPT_SUPPORT #define AUTO_REPORT_TEMPERATURES #define SHOW_REMAINING_TIME // Display estimated time to completion #if ENABLED(SHOW_REMAINING_TIME) #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
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:
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.
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.)