Marlin comes with a lot of features and sometimes people don't know which of them are useful for them when using their printer with Octoprint.
Here are some features that can make your life easier
Let's start with the Configuration.h
:
-
#define NOZZLE_PARK_FEATURE
- Specifies a printhead park position.
- required for
ADVANCED_PAUSE_FEATURE
(see below).
-
#define SPEAKER
- Most of the time printers come with a build in buzzer/speaker that can not only be used for confirmation and warning sounds - you can also use them to play midi like music.
I personally put a short song in the preheat button plugin so I know when the printer is ready to go and another when when the print is finished (via the gcode scripts in the settings menu).
You can either make your own gcodes in online midi to gcode converters or just download a big collection like this one 3D printer tunes (11101tones) let your printer play music by Maxdarkdog - Thingiverse.
- Most of the time printers come with a build in buzzer/speaker that can not only be used for confirmation and warning sounds - you can also use them to play midi like music.
Now the Configuration_adv.h
:
-
#define SOUND_MENU_ITEM
- this one is not really something you can use with Octoprint but you can use it to mute the menu sounds after if you enabled the speaker.
The following progress related features depend on the display which is connected to your printers mainboard - they may not work with certain displays.
-
#define LCD_SET_PROGRESS_MANUALLY
- Add an M73 G-code to set the current percentage.
- Required for the M73 Progress Plugin
- Add an M73 G-code to set the current percentage.
-
#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.
-
#define LCD_PROGRESS_BAR
- Show a progress bar on HD44780 LCDs.
-
#define LONG_FILENAME_HOST_SUPPORT
- This allows hosts to request long names for files and folders with M33.
-
#define AUTO_REPORT_SD_STATUS
- Auto-report SdCard status with M27 S>seconds<.
-
#define ARC_SUPPORT
- Enables arc support which is required for the Arc Welder plugin.
-
#define BLOCK_BUFFER_SIZE 64
#define BUFSIZE 32
#define TX_BUFFER_SIZE 32
#define RX_BUFFER_SIZE 2048
- Those settings increase different buffer sizes (Planner bufffer, ASCII buffer, Transmission and Receive Buffer).
Increasing those buffers reduces the chances of blobbs and other defects caused by buffer underruns and short communication hiccups.
The max value depends on which printer board you're using and how much ram is available for the CPU.
If you use those increased values you should put M400 on top of your end gcode in your slicer to prevent it from starting before the print finished - otherwise it could for example turn your heaters of while a lot of moves are still in the buffer.
- Those settings increase different buffer sizes (Planner bufffer, ASCII buffer, Transmission and Receive Buffer).
-
#define EMERGENCY_PARSER
- Realtime Reporting
Report position and state of the machine (like Grbl).
Auto-report position during long moves. - 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.
- Realtime Reporting
-
#define ADVANCED_OK
- Adds buffer usage information to the ok (for example
ok P15 B3
). - required for the buffer buddy plugin.
- Adds buffer usage information to the ok (for example
-
#define ADVANCED_PAUSE_FEATURE
-
Advanced Pause for Filament Change
- Adds the G-code M600 Filament Change to initiate a filament change.
- This feature is required for the default
FILAMENT_RUNOUT_SCRIPT
.
-
Requirements:
- For Filament Change parking enable and configure
NOZZLE_PARK_FEATURE
. - For user interaction enable an LCD display,
HOST_PROMPT_SUPPORT
, orEMERGENCY_PARSER
.
- For Filament Change parking enable and configure
-
Enable
PARK_HEAD_ON_PAUSE
to add the G-code M125 Pause and Park. -
If you have
HOST_PROMPT_SUPPORT
enabled (see below), these prompts get passed back to OctoPrint as well.
-
-
#define AUTO_REPORT_TEMPERATURES
- Auto-report temperatures with M155 S >seconds<.
-
#define AUTO_REPORT_POSITION
#define M114_DETAIL
#define M114_REALTIME
- Some host software and serial controllers use
M114
to get the current position, but polling withM114
is less than optimal, and in older versions of Marlin it would cause print stuttering. With M154 hosts can simply set an interval and Marlin will keep sending reports automatically. This method is preferred over polling withM114
.- I'm not sure if those features are used at the moment, but they could become useful in the future.
- Some host software and serial controllers use
-
#define EXTENDED_CAPABILITIES_REPORT
- When enabled Marlin also reports its capabilities with the M115 gcode.
-
#define REPORT_FAN_CHANGE
- Report the new fan speed when changed by M106 (and others).
- I'm not sure if this feature is used at the moment, but it could become useful in the future.
- Report the new fan speed when changed by M106 (and others).
-
#define MEATPACK_ON_SERIAL_PORT_1
|#define MEATPACK_ON_SERIAL_PORT_2
- required for the Meatpack plugin
-
#define GCODE_CASE_INSENSITIVE
- Accept G-code sent to the firmware in lowercase.
-
#define HOST_ACTION_COMMANDS
-
-
#define HOST_PROMPT_SUPPORT
- passes back some prompts to Octoprint
-
-
-
#define 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.
-
-
edit: forgot to thank @TTalkington - I copied some descriptions from this post