Prusa MINI Firmware overview
Configuration_adv.h File Reference

Go to the source code of this file.

Macros

#define CONFIGURATION_ADV_H_VERSION   020000
 
#define AUTOTEMP
 
#define TEMP_SENSOR_AD595_OFFSET   0.0
 
#define TEMP_SENSOR_AD595_GAIN   1.0
 
#define TEMP_SENSOR_AD8495_OFFSET   0.0
 
#define TEMP_SENSOR_AD8495_GAIN   1.0
 
#define E0_AUTO_FAN_PIN   -1
 
#define E1_AUTO_FAN_PIN   -1
 
#define E2_AUTO_FAN_PIN   -1
 
#define E3_AUTO_FAN_PIN   -1
 
#define E4_AUTO_FAN_PIN   -1
 
#define E5_AUTO_FAN_PIN   -1
 
#define CHAMBER_AUTO_FAN_PIN   -1
 
#define EXTRUDER_AUTO_FAN_TEMPERATURE   50
 
#define EXTRUDER_AUTO_FAN_SPEED   255
 
#define CHAMBER_AUTO_FAN_TEMPERATURE   30
 
#define CHAMBER_AUTO_FAN_SPEED   255
 
#define FANMUX0_PIN   -1
 
#define FANMUX1_PIN   -1
 
#define FANMUX2_PIN   -1
 
#define X_HOME_BUMP_MM   5
 
#define Y_HOME_BUMP_MM   5
 
#define Z_HOME_BUMP_MM   2
 
#define HOMING_BUMP_DIVISOR   { 2, 2, 4 }
 
#define AXIS_RELATIVE_MODES   { false, false, false, false }
 
#define INVERT_X_STEP_PIN   false
 
#define INVERT_Y_STEP_PIN   false
 
#define INVERT_Z_STEP_PIN   false
 
#define INVERT_E_STEP_PIN   false
 
#define DEFAULT_STEPPER_DEACTIVE_TIME   120
 
#define DISABLE_INACTIVE_X   true
 
#define DISABLE_INACTIVE_Y   true
 
#define DISABLE_INACTIVE_Z   true
 
#define DISABLE_INACTIVE_E   true
 
#define DEFAULT_MINIMUMFEEDRATE   0.0
 
#define DEFAULT_MINTRAVELFEEDRATE   0.0
 
#define DEFAULT_MINSEGMENTTIME   20000
 
#define SLOWDOWN
 
#define MINIMUM_PLANNER_SPEED   0.05
 
#define MICROSTEP_MODES   { 16, 16, 16, 16, 16, 16 }
 
#define DIGIPOT_I2C_NUM_CHANNELS   8
 
#define DIGIPOT_I2C_MOTOR_CURRENTS   { 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 }
 
#define ENCODER_RATE_MULTIPLIER
 
#define USE_WATCHDOG
 
#define ARC_SUPPORT
 
#define MIN_STEPS_PER_SEGMENT   6
 
#define BLOCK_BUFFER_SIZE   16
 
#define MAX_CMD_SIZE   96
 
#define BUFSIZE   4
 
#define TX_BUFFER_SIZE   0
 
#define SERIAL_OVERRUN_PROTECTION
 
#define I2C_SLAVE_ADDRESS   0
 
#define AUTO_REPORT_TEMPERATURES
 
#define EXTENDED_CAPABILITIES_REPORT
 
#define PROPORTIONAL_FONT_RATIO   1.0
 
#define FASTER_GCODE_PARSER
 

Macro Definition Documentation

◆ CONFIGURATION_ADV_H_VERSION

#define CONFIGURATION_ADV_H_VERSION   020000

Marlin 3D Printer Firmware Copyright (c) 2019 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]

Based on Sprinter and grbl. Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/. Configuration_adv.h

Advanced settings. Only change these if you know exactly what you're doing. Some of these settings can damage your printer if improperly set!

Basic settings can be found in Configuration.h

◆ AUTOTEMP

#define AUTOTEMP

Heated Chamber settings Thermal Protection provides additional protection to your printer from damage and fire. Marlin always includes safe min and max temperature ranges which protect against a broken or disconnected thermistor wire.

The issue: If a thermistor falls out, it will report the much lower temperature of the air in the room, and the the firmware will keep the heater on.

The solution: Once the temperature reaches the target, start observing. If the temperature stays too far below the target (hysteresis) for too long (period), the firmware will halt the machine as a safety precaution.

If you get false positives for "Thermal Runaway", increase THERMAL_PROTECTION_HYSTERESIS and/or THERMAL_PROTECTION_PERIOD Thermal Protection parameters for the bed are just as above for hotends. Thermal Protection parameters for the heated chamber. Automatic Temperature: The hotend target temperature is calculated by all the buffered lines of gcode. The maximum buffered steps/sec of the extruder motor is called "se". Start autotemp mode with M109 S<mintemp> B<maxtemp> F<factor> The target temperature is set to mintemp+factor*se[steps/sec] and is limited by mintemp and maxtemp. Turn this off by executing M109 without F* Also, if the temperature is set to a value below mintemp, it will not be changed by autotemp. On an Ultimaker, some initial testing worked with M109 S215 B260 F1 in the start.gcode

◆ TEMP_SENSOR_AD595_OFFSET

#define TEMP_SENSOR_AD595_OFFSET   0.0

High Temperature Thermistor Support

Thermistors able to support high temperature tend to have a hard time getting good readings at room and lower temperatures. This means HEATER_X_RAW_LO_TEMP will probably be caught when the heating element first turns on during the preheating process, which will trigger a min_temp_error as a safety measure and force stop everything. To circumvent this limitation, we allow for a preheat time (during which, min_temp_error won't be triggered) and add a min_temp buffer to handle aberrant readings.

If you want to enable this feature for your hotend thermistor(s) uncomment and set values > 0 in the constants below

◆ TEMP_SENSOR_AD595_GAIN

#define TEMP_SENSOR_AD595_GAIN   1.0

◆ TEMP_SENSOR_AD8495_OFFSET

#define TEMP_SENSOR_AD8495_OFFSET   0.0

◆ TEMP_SENSOR_AD8495_GAIN

#define TEMP_SENSOR_AD8495_GAIN   1.0

◆ E0_AUTO_FAN_PIN

#define E0_AUTO_FAN_PIN   -1

Controller Fan To cool down the stepper drivers and MOSFETs.

The fan will turn on automatically whenever any stepper is enabled and turn off after a set period after all steppers are turned off. PWM Fan Scaling

Define the min/max speeds for PWM fans (as set with M106).

With these options the M106 0-255 value range is scaled to a subset to ensure that the fan has enough power to spin, or to run lower current fans with higher current. (e.g., 5V/12V fans with 12V/24V) Value 0 always turns off the fan.

Define one or both of these to override the default 0-255 range. FAST PWM FAN Settings

Use to change the FAST FAN PWM frequency (if enabled in Configuration.h) Combinations of PWM Modes, prescale values and TOP resolutions are used internally to produce a frequency as close as possible to the desired frequency.

FAST_PWM_FAN_FREQUENCY [undefined by default] Set this to your desired frequency. If left undefined this defaults to F = F_CPU/(2*255*1) ie F = 31.4 Khz on 16 MHz microcontrollers or F = 39.2 KHz on 20 MHz microcontrollers These defaults are the same as with the old FAST_PWM_FAN implementation - no migration is required NOTE: Setting very low frequencies (< 10 Hz) may result in unexpected timer behavior.

USE_OCR2A_AS_TOP [undefined by default] Boards that use TIMER2 for PWM have limitations resulting in only a few possible frequencies on TIMER2: 16MHz MCUs: [62.5KHz, 31.4KHz (default), 7.8KHz, 3.92KHz, 1.95KHz, 977Hz, 488Hz, 244Hz, 60Hz, 122Hz, 30Hz] 20MHz MCUs: [78.1KHz, 39.2KHz (default), 9.77KHz, 4.9KHz, 2.44KHz, 1.22KHz, 610Hz, 305Hz, 153Hz, 76Hz, 38Hz] A greater range can be achieved by enabling USE_OCR2A_AS_TOP. But note that this option blocks the use of PWM on pin OC2A. Only use this option if you don't need PWM on 0C2A. (Check your schematic.) USE_OCR2A_AS_TOP sacrifices duty cycle control resolution to achieve this broader range of frequencies. Extruder cooling fans

Extruder auto fans automatically turn on when their extruders' temperatures go above EXTRUDER_AUTO_FAN_TEMPERATURE.

Your board's pins file specifies the recommended pins. Override those here or set to -1 to disable completely.

Multiple extruders can be assigned to the same pin in which case the fan will turn on when any selected extruder is above the threshold.

◆ E1_AUTO_FAN_PIN

#define E1_AUTO_FAN_PIN   -1

◆ E2_AUTO_FAN_PIN

#define E2_AUTO_FAN_PIN   -1

◆ E3_AUTO_FAN_PIN

#define E3_AUTO_FAN_PIN   -1

◆ E4_AUTO_FAN_PIN

#define E4_AUTO_FAN_PIN   -1

◆ E5_AUTO_FAN_PIN

#define E5_AUTO_FAN_PIN   -1

◆ CHAMBER_AUTO_FAN_PIN

#define CHAMBER_AUTO_FAN_PIN   -1

◆ EXTRUDER_AUTO_FAN_TEMPERATURE

#define EXTRUDER_AUTO_FAN_TEMPERATURE   50

◆ EXTRUDER_AUTO_FAN_SPEED

#define EXTRUDER_AUTO_FAN_SPEED   255

◆ CHAMBER_AUTO_FAN_TEMPERATURE

#define CHAMBER_AUTO_FAN_TEMPERATURE   30

◆ CHAMBER_AUTO_FAN_SPEED

#define CHAMBER_AUTO_FAN_SPEED   255

◆ FANMUX0_PIN

#define FANMUX0_PIN   -1

Part-Cooling Fan Multiplexer

This feature allows you to digitally multiplex the fan output. The multiplexer is automatically switched at tool-change. Set FANMUX[012]_PINs below for up to 2, 4, or 8 multiplexed fans.

◆ FANMUX1_PIN

#define FANMUX1_PIN   -1

◆ FANMUX2_PIN

#define FANMUX2_PIN   -1

◆ X_HOME_BUMP_MM

#define X_HOME_BUMP_MM   5

M355 Case Light on-off / brightness Dual Steppers / Dual Endstops

This section will allow you to use extra E drivers to drive a second motor for X, Y, or Z axes.

For example, set X_DUAL_STEPPER_DRIVERS setting to use a second motor. If the motors need to spin in opposite directions set INVERT_X2_VS_X_DIR. If the second motor needs its own endstop set X_DUAL_ENDSTOPS. This can adjust for "racking." Use X2_USE_ENDSTOP to set the endstop plug that should be used for the second endstop. Extra endstops will appear in the output of 'M119'.

Use X_DUAL_ENDSTOP_ADJUSTMENT to adjust for mechanical imperfection. After homing both motors this offset is applied to the X2 motor. To find the offset home the X axis, and measure the error in X2. Dual endstop offsets can be set at runtime with 'M666 X<offset> Y<offset> Z<offset>'. Dual X Carriage

This setup has two X carriages that can move independently, each with its own hotend. The carriages can be used to print an object with two colors or materials, or in "duplication mode" it can print two identical or X-mirrored objects simultaneously. The inactive carriage is parked automatically to prevent oozing. X1 is the left carriage, X2 the right. They park and home at opposite ends of the X axis. By default the X2 stepper is assigned to the first unused E plug on the board.

The following Dual X Carriage modes can be selected with M605 S<mode>:

0 : (FULL_CONTROL) The slicer has full control over both X-carriages and can achieve optimal travel results as long as it supports dual X-carriages. (M605 S0)

1 : (AUTO_PARK) The firmware automatically parks and unparks the X-carriages on tool-change so that additional slicer support is not required. (M605 S1)

2 : (DUPLICATION) The firmware moves the second X-carriage and extruder in synchronization with the first X-carriage and extruder, to print 2 copies of the same object at the same time. Set the constant X-offset and temperature differential with M605 S2 X[offs] R[deg] and follow with M605 S2 to initiate duplicated movement.

3 : (MIRRORED) Formbot/Vivedino-inspired mirrored mode in which the second extruder duplicates the movement of the first except the second extruder is reversed in the X axis. Set the initial X offset and temperature differential with M605 S2 X[offs] R[deg] and follow with M605 S3 to initiate mirrored movement.

◆ Y_HOME_BUMP_MM

#define Y_HOME_BUMP_MM   5

◆ Z_HOME_BUMP_MM

#define Z_HOME_BUMP_MM   2

◆ HOMING_BUMP_DIVISOR

#define HOMING_BUMP_DIVISOR   { 2, 2, 4 }

◆ AXIS_RELATIVE_MODES

#define AXIS_RELATIVE_MODES   { false, false, false, false }

Z Steppers Auto-Alignment Add the G34 command to align multiple Z steppers using a bed probe.

◆ INVERT_X_STEP_PIN

#define INVERT_X_STEP_PIN   false

◆ INVERT_Y_STEP_PIN

#define INVERT_Y_STEP_PIN   false

◆ INVERT_Z_STEP_PIN

#define INVERT_Z_STEP_PIN   false

◆ INVERT_E_STEP_PIN

#define INVERT_E_STEP_PIN   false

◆ DEFAULT_STEPPER_DEACTIVE_TIME

#define DEFAULT_STEPPER_DEACTIVE_TIME   120

◆ DISABLE_INACTIVE_X

#define DISABLE_INACTIVE_X   true

◆ DISABLE_INACTIVE_Y

#define DISABLE_INACTIVE_Y   true

◆ DISABLE_INACTIVE_Z

#define DISABLE_INACTIVE_Z   true

◆ DISABLE_INACTIVE_E

#define DISABLE_INACTIVE_E   true

◆ DEFAULT_MINIMUMFEEDRATE

#define DEFAULT_MINIMUMFEEDRATE   0.0

◆ DEFAULT_MINTRAVELFEEDRATE

#define DEFAULT_MINTRAVELFEEDRATE   0.0

◆ DEFAULT_MINSEGMENTTIME

#define DEFAULT_MINSEGMENTTIME   20000

◆ SLOWDOWN

#define SLOWDOWN

◆ MINIMUM_PLANNER_SPEED

#define MINIMUM_PLANNER_SPEED   0.05

◆ MICROSTEP_MODES

#define MICROSTEP_MODES   { 16, 16, 16, 16, 16, 16 }

Automatic backlash, position and hotend offset calibration

Enable G425 to run automatic calibration using an electrically- conductive cube, bolt, or washer mounted on the bed.

G425 uses the probe to touch the top and sides of the calibration object on the bed and measures and/or correct positional offsets, axis backlash and hotend offsets.

Note: HOTEND_OFFSET and CALIBRATION_OBJECT_CENTER must be set to within ±5mm of true values for G425 to succeed. Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible vibration and surface artifacts. The algorithm adapts to provide the best possible step smoothing at the lowest stepping frequencies. Custom Microstepping Override as-needed for your setup. Up to 3 MS pins are supported.

◆ DIGIPOT_I2C_NUM_CHANNELS

#define DIGIPOT_I2C_NUM_CHANNELS   8

motor current

Some boards have a means of setting the stepper motor current via firmware.

The power on motor currents are set by: PWM_MOTOR_CURRENT - used by MINIRAMBO & ULTIMAIN_2 known compatible chips: A4982 DIGIPOT_MOTOR_CURRENT - used by BQ_ZUM_MEGA_3D, RAMBO & SCOOVO_X9H known compatible chips: AD5206 DAC_MOTOR_CURRENT_DEFAULT - used by PRINTRBOARD_REVF & RIGIDBOARD_V2 known compatible chips: MCP4728 DIGIPOT_I2C_MOTOR_CURRENTS - used by 5DPRINT, AZTEEG_X3_PRO, AZTEEG_X5_MINI_WIFI, MIGHTYBOARD_REVE known compatible chips: MCP4451, MCP4018

Motor currents can also be set by M907 - M910 and by the LCD. M907 - applies to all. M908 - BQ_ZUM_MEGA_3D, RAMBO, PRINTRBOARD_REVF, RIGIDBOARD_V2 & SCOOVO_X9H M909, M910 & LCD - only PRINTRBOARD_REVF & RIGIDBOARD_V2

◆ DIGIPOT_I2C_MOTOR_CURRENTS

#define DIGIPOT_I2C_MOTOR_CURRENTS   { 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 }

◆ ENCODER_RATE_MULTIPLIER

#define ENCODER_RATE_MULTIPLIER

◆ USE_WATCHDOG

#define USE_WATCHDOG

By default an onboard SD card reader may be shared as a USB mass- storage device. This option hides the SD card from the host PC. Additional options for Graphical Displays

Use the optimizations here to improve printing performance, which can be adversely affected by graphical display drawing, especially when doing several short moves, and when printing on DELTA and SCARA machines.

Some of these options may result in the display lagging behind controller events, as there is a trade-off between reliable printing performance versus fast display updates. The watchdog hardware timer will do a reset and disable all outputs if the firmware gets too overloaded to read the temperature sensors.

If you find that watchdog reboot causes your AVR board to hang forever, enable WATCHDOG_RESET_MANUAL to use a custom timer instead of WDTO. NOTE: This method is less reliable as it can only catch hangups while interrupts are enabled.

◆ ARC_SUPPORT

#define ARC_SUPPORT

Babystepping enables movement of the axes by tiny increments without changing the current position values. This feature is used primarily to adjust the Z axis in the first layer of a print in real-time.

Warning: Does not respect endstops! Linear Pressure Control v1.5

Assumption: advance [steps] = k * (delta velocity [steps/s]) K=0 means advance disabled.

NOTE: K values for LIN_ADVANCE 1.5 differ from earlier versions!

Set K around 0.22 for 3mm PLA Direct Drive with ~6.5cm between the drive gear and heatbreak. Larger K values will be needed for flexible filament and greater distances. If this algorithm produces a higher speed offset than the extruder can handle (compared to E jerk) print acceleration will be reduced during the affected moves to keep within the limit.

See http://marlinfw.org/docs/features/lin_advance.html for full instructions. Mention @Sebastianv650 on GitHub to alert the author of any issues. Points to probe for all 3-point Leveling procedures. Override if the automatically selected points are inadequate. Override MIN_PROBE_EDGE for each side of the build plate Useful to get probe points to exact positions on targets or to allow leveling to avoid plate clamps on only specific sides of the bed.

If you are replacing the prior *_PROBE_BED_POSITION options, LEFT and FRONT values in most cases will map directly over RIGHT and REAR would be the inverse such as (X/Y_BED_SIZE - RIGHT/BACK_PROBE_BED_POSITION)

This will allow all positions to match at compilation, however should the probe position be modified with M851XY then the probe points will follow. This prevents any change from causing the probe to be unable to reach any points. Repeatedly attempt G29 leveling until it succeeds. Stop after G29_MAX_RETRIES attempts.

◆ MIN_STEPS_PER_SEGMENT

#define MIN_STEPS_PER_SEGMENT   6

G38 Probe Target

This option adds G38.2 and G38.3 (probe towards target) and optionally G38.4 and G38.5 (probe away from target). Set MULTIPLE_PROBING for G38 to probe more than once.

◆ BLOCK_BUFFER_SIZE

#define BLOCK_BUFFER_SIZE   16

Minimum delay before and after setting the stepper DIR (in ns) 0 : No delay (Expect at least 10µS since one Stepper ISR must transpire) 20 : Minimum for TMC2xxx drivers 200 : Minimum for A4988 drivers 400 : Minimum for A5984 drivers 500 : Minimum for LV8729 drivers (guess, no info in datasheet) 650 : Minimum for DRV8825 drivers 1500 : Minimum for TB6600 drivers (guess, no info in datasheet) 15000 : Minimum for TB6560 drivers (guess, no info in datasheet)

Override the default value based on the driver type set in Configuration.h. Minimum stepper driver pulse width (in µs) 0 : Smallest possible width the MCU can produce, compatible with TMC2xxx drivers 0 : Minimum 500ns for LV8729, adjusted in stepper.h 1 : Minimum for A4988 and A5984 stepper drivers 2 : Minimum for DRV8825 stepper drivers 3 : Minimum for TB6600 stepper drivers 30 : Minimum for TB6560 stepper drivers

Override the default value based on the driver type set in Configuration.h. Maximum stepping rate (in Hz) the stepper driver allows If undefined, defaults to 1MHz / (2 * MINIMUM_STEPPER_PULSE) 500000 : Maximum for A4988 stepper driver 400000 : Maximum for TMC2xxx stepper drivers 250000 : Maximum for DRV8825 stepper driver 200000 : Maximum for LV8729 stepper driver 150000 : Maximum for TB6600 stepper driver 15000 : Maximum for TB6560 stepper driver

Override the default value based on the driver type set in Configuration.h.

◆ MAX_CMD_SIZE

#define MAX_CMD_SIZE   96

◆ BUFSIZE

#define BUFSIZE   4

◆ TX_BUFFER_SIZE

#define TX_BUFFER_SIZE   0

◆ SERIAL_OVERRUN_PROTECTION

#define SERIAL_OVERRUN_PROTECTION

◆ I2C_SLAVE_ADDRESS

#define I2C_SLAVE_ADDRESS   0

Extra Fan Speed Adds a secondary fan speed for each print-cooling fan. 'M106 P<fan> T3-255' : Set a secondary speed for <fan> 'M106 P<fan> T2' : Use the set secondary speed 'M106 P<fan> T1' : Restore the previous fan speed Firmware-based and LCD-controlled retract

Add G10 / G11 commands for automatic firmware-based retract / recover. Use M207 and M208 to define parameters for retract / recover.

Use M209 to enable or disable auto-retract. With auto-retract enabled, all G1 E moves within the set range will be converted to firmware-based retract/recover moves.

Be sure to turn off auto-retract during filament change.

Note that M207 / M208 / M209 settings are saved to EEPROM. Universal tool change settings. Applies to all types of extruders except where explicitly noted. Advanced Pause Experimental feature for filament change support and for parking the nozzle when paused. Adds the GCode M600 for initiating filament change. If PARK_HEAD_ON_PAUSE enabled, adds the GCode M125 to pause printing and park the nozzle.

Requires an LCD display. Requires NOZZLE_PARK_FEATURE. This feature is required for the default FILAMENT_RUNOUT_SCRIPT. TMC26X Stepper Driver options

The TMC26XStepper library is required for this stepper driver. https://github.com/trinamic/TMC26XStepper To use TMC2130, TMC2160, TMC2660, TMC5130, TMC5160 stepper drivers in SPI mode connect your SPI pins to the hardware SPI interface on your board and define the required CS pins in your pins_MYBOARD.h file. (e.g., RAMPS 1.4 uses AUX3 pins X_CS_PIN 53, Y_CS_PIN 49, etc.). You may also use software SPI if you wish to use general purpose IO pins.

To use TMC2208 stepper UART-configurable stepper drivers connect #_SERIAL_TX_PIN to the driver side PDN_UART pin with a 1K resistor. To use the reading capabilities, also connect #_SERIAL_RX_PIN to PDN_UART without a resistor. The drivers can also be used with hardware serial.

TMCStepper library is required to use TMC stepper drivers. https://github.com/teemuatlut/TMCStepper L6470 Stepper Driver options

Arduino-L6470 library (0.7.0 or higher) is required for this stepper driver. https://github.com/ameyer/Arduino-L6470

Requires the following to be defined in your pins_YOUR_BOARD file L6470_CHAIN_SCK_PIN L6470_CHAIN_MISO_PIN L6470_CHAIN_MOSI_PIN L6470_CHAIN_SS_PIN L6470_RESET_CHAIN_PIN (optional) TWI/I2C BUS

This feature is an EXPERIMENTAL feature so it shall not be used on production machines. Enabling this will allow you to send and receive I2C data from slave devices on the bus.

; Example #1 ; This macro send the string "Marlin" to the slave device with address 0x63 (99) ; It uses multiple M260 commands with one B<base 10> arg M260 A99 ; Target slave address M260 B77 ; M M260 B97 ; a M260 B114 ; r M260 B108 ; l M260 B105 ; i M260 B110 ; n M260 S1 ; Send the current buffer

; Example #2 ; Request 6 bytes from slave device with address 0x63 (99) M261 A99 B5

; Example #3 ; Example serial output of a M261 request echo:i2c-reply: from:99 bytes:5 data:hello

◆ AUTO_REPORT_TEMPERATURES

#define AUTO_REPORT_TEMPERATURES

Photo G-code Add the M240 G-code to take a photo. The photo can be triggered by a digital pin or a physical movement. Spindle & Laser control

Add the M3, M4, and M5 commands to turn the spindle/laser on and off, and to set spindle speed, spindle direction, and laser power.

SuperPid is a router/spindle speed controller used in the CNC milling community. Marlin can be used to turn the spindle on and off. It can also be used to set the spindle speed from 5,000 to 30,000 RPM.

You'll need to select a pin for the ON/OFF function and optionally choose a 0-5V hardware PWM pin for the speed control and a pin for the rotation direction.

See http://marlinfw.org/docs/configuration/laser_spindle.html for more config details. Coolant Control

Add the M7, M8, and M9 commands to turn mist or flood coolant on and off.

Note: COOLANT_MIST_PIN and/or COOLANT_FLOOD_PIN must also be defined. Filament Width Sensor

Measures the filament width in real-time and adjusts flow rate to compensate for any irregularities.

Also allows the measured filament diameter to set the extrusion rate, so the slicer only has to specify the volume.

Only a single extruder is supported at this time.

34 RAMPS_14 : Analog input 5 on the AUX2 connector 81 PRINTRBOARD : Analog input 2 on the Exp1 connector (version B,C,D,E) 301 RAMBO : Analog input 3

Note: May require analog pins to be defined for other boards. CNC Coordinate Systems

Enables G53 and G54-G59.3 commands to select coordinate systems and G92.1 to reset the workspace to native machine space. Auto-report temperatures with M155 S<seconds>

◆ EXTENDED_CAPABILITIES_REPORT

#define EXTENDED_CAPABILITIES_REPORT

Include capabilities in M115 output

◆ PROPORTIONAL_FONT_RATIO

#define PROPORTIONAL_FONT_RATIO   1.0

Expected Printer Check Add the M16 G-code to compare a string to the MACHINE_NAME. M16 with a non-matching string causes the printer to halt. Disable all Volumetric extrusion options Enable this option for a leaner build of Marlin that removes all workspace offsets, simplifying coordinate transformations, leveling, etc.

  • M206 and M428 are disabled.
  • G92 will revert to its behavior from Marlin 1.0. Set the number of proportional font spaces required to fill up a typical character space. This can help to better align the output of commands like G29 O Mesh Output.

For clients that use a fixed-width font (like OctoPrint), leave this set to 1.0. Otherwise, adjust according to your client and font.

◆ FASTER_GCODE_PARSER

#define FASTER_GCODE_PARSER

Spend 28 bytes of SRAM to optimize the GCode parser