diff --git a/_features/runout_sensor.md b/_features/runout_sensor.md new file mode 100644 index 000000000..1808f20c1 --- /dev/null +++ b/_features/runout_sensor.md @@ -0,0 +1,128 @@ +--- +title: Filament Runout Sensor +description: Detect the presence of filament in the extruder and handle filament runout. +tag: runout + +author: thinkyhead +category: [ features, runout ] + +code: | + /** + * @section filament runout sensors + * + * Filament Runout Sensors + * Mechanical or opto endstops are used to check for the presence of filament. + * + * IMPORTANT: Runout will only trigger if Marlin is aware that a print job is running. + * Marlin knows a print job is running when: + * 1. Running a print job from media started with M24. + * 2. The Print Job Timer has been started with M75. + * 3. The heaters were turned on and PRINTJOB_TIMER_AUTOSTART is enabled. + * + * RAMPS-based boards use SERVO3_PIN for the first runout sensor. + * For other boards you may need to define FIL_RUNOUT_PIN, FIL_RUNOUT2_PIN, etc. + */ + //#define FILAMENT_RUNOUT_SENSOR + #if ENABLED(FILAMENT_RUNOUT_SENSOR) + #define FIL_RUNOUT_ENABLED_DEFAULT true // Enable the sensor on startup. Override with M412 followed by M500. + #define NUM_RUNOUT_SENSORS 1 // Number of sensors, up to one per extruder. Define a FIL_RUNOUT#_PIN for each. + + #define FIL_RUNOUT_STATE LOW // Pin state indicating that filament is NOT present. + #define FIL_RUNOUT_PULLUP // Use internal pullup for filament runout pins. + //#define FIL_RUNOUT_PULLDOWN // Use internal pulldown for filament runout pins. + //#define WATCH_ALL_RUNOUT_SENSORS // Execute runout script on any triggering sensor, not only for the active extruder. + // This is automatically enabled for MIXING_EXTRUDERs. + + // Override individually if the runout sensors vary + //#define FIL_RUNOUT1_STATE LOW + //#define FIL_RUNOUT1_PULLUP + //#define FIL_RUNOUT1_PULLDOWN + + //#define FIL_RUNOUT2_STATE LOW + //#define FIL_RUNOUT2_PULLUP + //#define FIL_RUNOUT2_PULLDOWN + + //#define FIL_RUNOUT3_STATE LOW + //#define FIL_RUNOUT3_PULLUP + //#define FIL_RUNOUT3_PULLDOWN + + //#define FIL_RUNOUT4_STATE LOW + //#define FIL_RUNOUT4_PULLUP + //#define FIL_RUNOUT4_PULLDOWN + + //#define FIL_RUNOUT5_STATE LOW + //#define FIL_RUNOUT5_PULLUP + //#define FIL_RUNOUT5_PULLDOWN + + //#define FIL_RUNOUT6_STATE LOW + //#define FIL_RUNOUT6_PULLUP + //#define FIL_RUNOUT6_PULLDOWN + + //#define FIL_RUNOUT7_STATE LOW + //#define FIL_RUNOUT7_PULLUP + //#define FIL_RUNOUT7_PULLDOWN + + //#define FIL_RUNOUT8_STATE LOW + //#define FIL_RUNOUT8_PULLUP + //#define FIL_RUNOUT8_PULLDOWN + + // Commands to execute on filament runout. + // With multiple runout sensors use the %c placeholder for the current tool in commands (e.g., "M600 T%c") + // NOTE: After 'M412 H1' the host handles filament runout and this script does not apply. + #define FILAMENT_RUNOUT_SCRIPT "M600" + + // After a runout is detected, continue printing this length of filament + // before executing the runout script. Useful for a sensor at the end of + // a feed tube. Requires 4 bytes SRAM per sensor, plus 4 bytes overhead. + //#define FILAMENT_RUNOUT_DISTANCE_MM 25 + + #ifdef FILAMENT_RUNOUT_DISTANCE_MM + // Enable this option to use an encoder disc that toggles the runout pin + // as the filament moves. (Be sure to set FILAMENT_RUNOUT_DISTANCE_MM + // large enough to avoid false positives.) + //#define FILAMENT_MOTION_SENSOR + + #if ENABLED(FILAMENT_MOTION_SENSOR) + //#define FILAMENT_SWITCH_AND_MOTION + #if ENABLED(FILAMENT_SWITCH_AND_MOTION) + #define NUM_MOTION_SENSORS 1 // Number of sensors, up to one per extruder. Define a FIL_MOTION#_PIN for each. + //#define FIL_MOTION1_PIN -1 + + // Override individually if the motion sensors vary + //#define FIL_MOTION1_STATE LOW + //#define FIL_MOTION1_PULLUP + //#define FIL_MOTION1_PULLDOWN + + //#define FIL_MOTION2_STATE LOW + //#define FIL_MOTION2_PULLUP + //#define FIL_MOTION2_PULLDOWN + + //#define FIL_MOTION3_STATE LOW + //#define FIL_MOTION3_PULLUP + //#define FIL_MOTION3_PULLDOWN + + //#define FIL_MOTION4_STATE LOW + //#define FIL_MOTION4_PULLUP + //#define FIL_MOTION4_PULLDOWN + + //#define FIL_MOTION5_STATE LOW + //#define FIL_MOTION5_PULLUP + //#define FIL_MOTION5_PULLDOWN + + //#define FIL_MOTION6_STATE LOW + //#define FIL_MOTION6_PULLUP + //#define FIL_MOTION6_PULLDOWN + + //#define FIL_MOTION7_STATE LOW + //#define FIL_MOTION7_PULLUP + //#define FIL_MOTION7_PULLDOWN + + //#define FIL_MOTION8_STATE LOW + //#define FIL_MOTION8_PULLUP + //#define FIL_MOTION8_PULLDOWN + #endif + #endif + #endif + #endif // FILAMENT_RUNOUT_SENSOR + +--- diff --git a/_includes/setting-info.html b/_includes/setting-info.html index 1e81d23a4..8c9ceeb29 100644 --- a/_includes/setting-info.html +++ b/_includes/setting-info.html @@ -79,15 +79,15 @@ {% endif %} {%- if options %}
- <{{ h3 }}>Options {% if options[0].value %} - 4 %} class="table-striped"{% endif %}> + <{{ h3 }}>Options + 4 or options[0].brief %} class="table-striped"{% endif %}> {%- for op in options -%} {{ op.value }}{% if op.brief %}{{ op.brief }}{% endif %} {%- endfor -%} {% else %} - {{ options | join: ", " }} + Options: {{ options | join: ", " }} {% endif %}
{% endif %} @@ -97,7 +97,7 @@ {% else %}{% assign example = false %}{% endif %} {%- if example %}
- <{{ h3 }}>Example{% if example[1] %}s{% endif %} + <{{ h3 }}>Example{% if example.size > 1 %}s{% endif %} {% for ex in example %} {% if ex.pre %} {% for line in ex.pre %} @@ -134,12 +134,18 @@

{{ ttl }}

{% if conf.links %} {% endif %} @@ -159,7 +165,7 @@

{{ ttl }}

{% if sub %} {% assign confbak = conf %} {% assign aprefixbak = aprefix %} - {% if conf.name %}{% assign aprefix = aprefix | append: conf.name | append: '-' %}{% else %}{% assign aprefix = '' %}{% endif %} + {% if conf.name %}{% assign aprefix = aprefix | append: conf.name | append: '-' %}{% endif %} {% for conf in sub %} {% if conf contains 'since' %}{% else %}{% assign parsince = conf.since %}{% endif %} {% if conf contains 'tags' %}{% else %}{% assign partags = conf.tags %}{% endif %} diff --git a/_includes/setting-summ.html b/_includes/setting-summ.html index 8ab86aaf4..20021ef98 100644 --- a/_includes/setting-summ.html +++ b/_includes/setting-summ.html @@ -30,15 +30,15 @@

{% if conf.label %}{{ conf. {% for opt in conf.settings %}
{{opt.name}} - {% if opt contains 'subopts' %} + {% if opt.subopts %}
{% for sub1 in opt.subopts %} {{sub1.name}} - {% if sub1 contains 'subopts' %} + {% if sub1.subopts %}
{% for sub2 in sub1.subopts %} {{sub2.name}} - {% if sub2 contains 'subopts' %} + {% if sub2.subopts %}
{% for sub3 in sub2.subopts %} {{sub3.name}} diff --git a/_layouts/setting.html b/_layouts/setting.html index 434d3fa4e..c1dff18e9 100644 --- a/_layouts/setting.html +++ b/_layouts/setting.html @@ -22,19 +22,35 @@ {%- if active -%} - {% endif %} + {%- endif -%} {%- endfor -%}
diff --git a/_sass/_custom.scss b/_sass/_custom.scss index 0862fdb57..c6886a78e 100644 --- a/_sass/_custom.scss +++ b/_sass/_custom.scss @@ -625,11 +625,10 @@ div.alert-danger { div.container.detail, div.container.config { div.row { - h4, h5, h6 { background: var(--color-code-bg); color: var(--color-code); } - h5 { - background: var(--color-gcode-h5-bg); color: var(--color-gcode-h5); - code { background: var(--color-gcode-h5-code-bg); color: var(--color-gcode-h5-code); } - } + h4, h6 { background: var(--color-code-bg); color: var(--color-code); } + h5 { background: var(--color-gcode-h5-bg); } + h5, strong { color: var(--color-gcode-h5); } + h5 code { background: var(--color-gcode-h5-code-bg); color: var(--color-gcode-h5-code); } } div.row.examples pre { background: var(--color-gcode-examples-bg); } div.row.gallery p { color: var(--color-gcode-gallery); } diff --git a/_setting/coming_soon.md b/_setting/coming_soon.md deleted file mode 100644 index 537ccb2d3..000000000 --- a/_setting/coming_soon.md +++ /dev/null @@ -1,39 +0,0 @@ ---- -name: COMING_SOON -type: bool -label: Coming Soon! -brief: This option is coming soon -author: thinkyhead -category: [ wip ] -tags: [ draft ] -eeprom: true - -since: 1.1.0 -until: 2.0.9 - -requires: MY_PARENT -child: [] -type: switch -gcodes: [] -options: - - value: 1 - brief: one - - value: 2 - brief: two - - value: 3 - brief: three - -preview: | - /** - * COMING_SOON - Coming Soon - * - * More details about Coming Soon - */ - //#define COMING_SOON - #if ENABLED(COMING_SOON) - #define SETTING_SUBOPTION // This makes COMING_SOON better - #endif - if (var == 123) { printf("It equals: %d", var); } - ---- -Marlin Settings pages are under construction. It's a lot of work to convert Marlin configurations into web pages, but we'll get there! diff --git a/_setting/geometry.md b/_setting/geometry.md new file mode 100644 index 000000000..e1fc3ad20 --- /dev/null +++ b/_setting/geometry.md @@ -0,0 +1,422 @@ +--- +label: Geometry +brief: Machine dimensions, limits, and homing. +category: [ wip ] +tags: [ geometry ] +pagetype: toc +author: thinkyhead + +settings: +- name: X_BED_SIZE + type: int + since: 2.0.0 + brief: X size of the bed. + long: The X size of the bed. This is used to calculate the number of steps needed to move the X axis. + example: + - value: 250 +- name: Y_BED_SIZE + type: int + since: 2.0.0 + brief: Y size of the bed. + long: The Y size of the bed. This is used to calculate the number of steps needed to move the Y axis. + example: + - value: 240 + +- name: X_MIN_POS + type: int + since: 1.0.0 + brief: Minimum X position. + long: The minimum X position (hard limit) of the machine. + example: + - value: -4 +- name: X_MAX_POS + type: int + since: 1.0.0 + brief: Maximum X position. + long: The maximum X position (hard limit) of the machine. + example: + - value: X_BED_SIZE + 10 + +- name: Y_MIN_POS + type: int + since: 1.0.0 + brief: Minimum Y position. + long: The minimum Y position (hard limit) of the machine. + example: + - value: -4 +- name: Y_MAX_POS + type: int + since: 1.0.0 + brief: Maximum Y position. + long: The maximum Y position (hard limit) of the machine. + example: + - value: Y_BED_SIZE + 8 + +- name: Z_MIN_POS + type: int + since: 1.0.0 + brief: Minimum Z position. + long: The minimum Z position (hard limit) of the machine. + example: + - value: 0 +- name: Z_MAX_POS + type: int + since: 1.0.0 + brief: Maximum Z position. + long: The maximum Z position (hard limit) of the machine. + example: + - value: 300 + +- name: I_MIN_POS + type: int + since: 2.0.0 + brief: Minimum I position. + long: The minimum I position (hard limit) of the machine. + example: + - value: 0 +- name: I_MAX_POS + type: int + since: 2.0.0 + brief: Maximum I position. + long: The maximum I position (hard limit) of the machine. + example: + - value: 45 + +- name: J_MIN_POS + type: int + since: 2.0.0 + brief: Minimum J position. + long: The minimum J position (hard limit) of the machine. + example: + - value: 0 +- name: J_MAX_POS + type: int + since: 2.0.0 + brief: Maximum J position. + long: The maximum J position (hard limit) of the machine. + example: + - value: 180 + +- name: K_MIN_POS + type: int + since: 2.0.0 + brief: Minimum K position. + long: The minimum K position (hard limit) of the machine. + example: + - value: 0 +- name: K_MAX_POS + type: int + since: 2.0.0 + brief: Maximum K position. + long: The maximum K position (hard limit) of the machine. + example: + - value: 0 + +- name: U_MIN_POS + type: int + since: 2.0.0 + brief: Minimum U position. + long: The minimum U position (hard limit) of the machine. + example: + - value: 0 +- name: U_MAX_POS + type: int + since: 2.0.0 + brief: Maximum U position. + long: The maximum U position (hard limit) of the machine. + example: + - value: 0 + +- name: V_MIN_POS + type: int + since: 2.0.0 + brief: Minimum V position. + long: The minimum V position (hard limit) of the machine. + example: + - value: 0 +- name: V_MAX_POS + type: int + since: 2.0.0 + brief: Maximum V position. + long: The maximum V position (hard limit) of the machine. + example: + - value: 0 + +- name: W_MIN_POS + type: int + since: 2.0.0 + brief: Minimum W position. + long: The minimum W position (hard limit) of the machine. + example: + - value: 0 +- name: W_MAX_POS + type: int + since: 2.0.0 + brief: Maximum W position. + long: The maximum W position (hard limit) of the machine. + example: + - value: 0 + +- name: X_HOME_DIR + type: int + since: 1.0.0 + brief: Homing direction of the X axis. + long: The direction of the X axis when homing. + options: [ -1, 0, 1 ] + example: + - value: -1 +- name: Y_HOME_DIR + type: int + since: 1.0.0 + brief: Homing direction of the Y axis. + long: The direction of the Y axis when homing. + options: [ -1, 0, 1 ] + example: + - value: -1 +- name: Z_HOME_DIR + type: int + since: 1.0.0 + brief: Homing direction of the Z axis. + long: The direction of the Z axis when homing. + options: [ -1, 0, 1 ] + example: + - value: 0 + +- name: I_HOME_DIR + type: int + since: 2.0.0 + brief: Homing direction of the I axis. + long: The direction of the I axis when homing. + options: [ -1, 0, 1 ] + example: + - value: 0 +- name: J_HOME_DIR + type: int + since: 2.0.0 + brief: Homing direction of the J axis. + long: The direction of the J axis when homing. + options: [ -1, 0, 1 ] + example: + - value: 0 +- name: K_HOME_DIR + type: int + since: 2.0.0 + brief: Homing direction of the K axis. + long: The direction of the K axis when homing. + options: [ -1, 0, 1 ] + example: + - value: 0 +- name: U_HOME_DIR + type: int + since: 2.0.0 + brief: Homing direction of the U axis. + long: The direction of the U axis when homing. + options: [ -1, 0, 1 ] + example: + - value: 0 +- name: V_HOME_DIR + type: int + since: 2.0.0 + brief: Homing direction of the V axis. + long: The direction of the V axis when homing. + options: [ -1, 0, 1 ] + example: + - value: 0 +- name: W_HOME_DIR + type: int + since: 2.0.0 + brief: Homing direction of the W axis. + long: The direction of the W axis when homing. + options: [ -1, 0, 1 ] + example: + - value: 0 + +- name: MANUAL_X_HOME_POS + type: int + since: 1.0.0 + brief: Explicit X axis home position. + long: The position of the X axis when homed. Leave this undefined to use X_MIN_POS or X_MAX_POS (depending on homing direction). + example: + - value: -1 +- name: MANUAL_Y_HOME_POS + type: int + since: 1.0.0 + brief: Explicit Y axis home position. + long: The position of the Y axis when homed. Leave this undefined to use Y_MIN_POS or Y_MAX_POS (depending on homing direction). + example: + - value: -1 +- name: MANUAL_Z_HOME_POS + type: int + since: 1.0.0 + brief: Explicit Z axis home position. + long: The position of the Z axis when homed. Leave this undefined to use Z_MIN_POS or Z_MAX_POS (depending on homing direction). + example: + - value: 1 + +- name: MANUAL_I_HOME_POS + type: int + since: 2.0.0 + brief: Explicit I axis home position. + long: The position of the I axis when homed. Leave this undefined to use I_MIN_POS or I_MAX_POS (depending on homing direction). + example: + - value: 0 +- name: MANUAL_J_HOME_POS + type: int + since: 2.0.0 + brief: Explicit J axis home position. + long: The position of the J axis when homed. Leave this undefined to use J_MIN_POS or J_MAX_POS (depending on homing direction). + example: + - value: 0 +- name: MANUAL_K_HOME_POS + type: int + since: 2.0.0 + brief: Explicit K axis home position. + long: The position of the K axis when homed. Leave this undefined to use K_MIN_POS or K_MAX_POS (depending on homing direction). + example: + - value: 0 +- name: MANUAL_U_HOME_POS + type: int + since: 2.0.0 + brief: Explicit U axis home position. + long: The position of the U axis when homed. Leave this undefined to use U_MIN_POS or U_MAX_POS (depending on homing direction). + example: + - value: 0 +- name: MANUAL_V_HOME_POS + type: int + since: 2.0.0 + brief: Explicit V axis home position. + long: The position of the V axis when homed. Leave this undefined to use V_MIN_POS or V_MAX_POS (depending on homing direction). + example: + - value: 0 +- name: MANUAL_W_HOME_POS + type: int + since: 2.0.0 + brief: Explicit W axis home position. + long: The position of the W axis when homed. Leave this undefined to use W_MIN_POS or W_MAX_POS (depending on homing direction). + example: + - value: 0 + +- name: MIN_SOFTWARE_ENDSTOP + since: 2.0.0 + brief: Min software endstops. + long: Enable the use of minimum software endstops. Software endstops prevent the machine from moving outside the set machine bounds. + example: + - value: true +- name: MIN_SOFTWARE_ENDSTOP_X + since: 2.0.0 + brief: X axis software endstop. + long: Enable the use of software endstops on the X axis. + example: + - value: true +- name: MIN_SOFTWARE_ENDSTOP_Y + since: 2.0.0 + brief: Y axis software endstop. + long: Enable the use of software endstops on the Y axis. + example: + - value: true +- name: MIN_SOFTWARE_ENDSTOP_Z + since: 2.0.0 + brief: Z axis software endstop. + long: Enable the use of software endstops on the Z axis. + example: + - value: true +- name: MIN_SOFTWARE_ENDSTOP_I + since: 2.0.0 + brief: I axis software endstop. + long: Enable the use of software endstops on the I axis. + example: + - value: true +- name: MIN_SOFTWARE_ENDSTOP_J + since: 2.0.0 + brief: J axis software endstop. + long: Enable the use of software endstops on the J axis. + example: + - value: true +- name: MIN_SOFTWARE_ENDSTOP_K + since: 2.0.0 + brief: K axis software endstop. + long: Enable the use of software endstops on the K axis. + example: + - value: true +- name: MIN_SOFTWARE_ENDSTOP_U + since: 2.0.0 + brief: U axis software endstop. + long: Enable the use of software endstops on the U axis. + example: + - value: true +- name: MIN_SOFTWARE_ENDSTOP_V + since: 2.0.0 + brief: V axis software endstop. + long: Enable the use of software endstops on the V axis. + example: + - value: true +- name: MIN_SOFTWARE_ENDSTOP_W + since: 2.0.0 + brief: W axis software endstop. + long: Enable the use of software endstops on the W axis. + example: + - value: true + +- name: MAX_SOFTWARE_ENDSTOP + since: 2.0.0 + brief: Max software endstops. + long: Enable the use of software endstops. Software endstops are used to prevent the machine from moving outside the set machine bounds. + example: + - value: true +- name: MAX_SOFTWARE_ENDSTOP_X + since: 2.0.0 + brief: X axis software endstop. + long: Enable the use of software endstops on the X axis. + example: + - value: true +- name: MAX_SOFTWARE_ENDSTOP_Y + since: 2.0.0 + brief: Y axis software endstop. + long: Enable the use of software endstops on the Y axis. + example: + - value: true +- name: MAX_SOFTWARE_ENDSTOP_Z + since: 2.0.0 + brief: Z axis software endstop. + long: Enable the use of software endstops on the Z axis. + example: + - value: true +- name: MAX_SOFTWARE_ENDSTOP_I + since: 2.0.0 + brief: I axis software endstop. + long: Enable the use of software endstops on the I axis. + example: + - value: true +- name: MAX_SOFTWARE_ENDSTOP_J + since: 2.0.0 + brief: J axis software endstop. + long: Enable the use of software endstops on the J axis. + example: + - value: true +- name: MAX_SOFTWARE_ENDSTOP_K + since: 2.0.0 + brief: K axis software endstop. + long: Enable the use of software endstops on the K axis. + example: + - value: true +- name: MAX_SOFTWARE_ENDSTOP_U + since: 2.0.0 + brief: U axis software endstop. + long: Enable the use of software endstops on the U axis. + example: + - value: true +- name: MAX_SOFTWARE_ENDSTOP_V + since: 2.0.0 + brief: V axis software endstop. + long: Enable the use of software endstops on the V axis. + example: + - value: true +- name: MAX_SOFTWARE_ENDSTOP_W + since: 2.0.0 + brief: W axis software endstop. + long: Enable the use of software endstops on the W axis. + example: + - value: true + +--- +Use these options to define the machine geometry, including the size of the bed, the maximum X and Y positions, etc. These are the most basic settings for every type of machine that Marlin supports. diff --git a/_setting/hardware.md b/_setting/hardware.md index 146e03b7e..098927411 100644 --- a/_setting/hardware.md +++ b/_setting/hardware.md @@ -33,6 +33,9 @@ settings: - name: BAUDRATE type: int long: Default baud rate for the main serial port. (USB ports always run at full speed.) +- name: BAUD_RATE_GCODE + since: 2.0.0 + long: Enable setting the baud with `M575 P B`. - name: SERIAL_PORT_2 type: int @@ -40,7 +43,6 @@ settings: disabled: true brief: Secondary serial port long: The secondary serial port can be used to communicate with a host, serial controller, or WiFi interface. - subopts: - name: BAUDRATE_2 type: int @@ -51,39 +53,36 @@ settings: type: int since: 2.0.0 disabled: true - brief: Secondary serial port - long: The secondary serial port can be used to communicate with a host, serial controller, or WiFi interface. + brief: Third serial port + long: The third serial port can be used to communicate with a host, serial controller, or WiFi interface. subopts: - name: BAUDRATE_3 type: int disabled: true long: Default baud rate for the third serial port. If not specified then `BAUDRATE` is used. +- name: RS485_SERIAL_PORT + type: int + since: 2.1.3 + disabled: true + brief: RS485 serial port (i.e., CANbus) + long: The RS485 serial ports is used to communicate with peripherals that use the CAN bus protocol. + subopts: + - name: M485_PROTOCOL + type: int + disabled: true + long: Leave this set to `1` to use the default protocol. Check your host for protocol compatibility. + - name: RS485_BUS_BUFFER_SIZE + type: int + disabled: true + default: 128 + long: The size of the CAN bus buffer. This should be set to the maximum number of messages that can be sent in a single CAN frame. + - name: BLUETOOTH since: 1.1.0 disabled: true brief: Bluetooth wireless interface. long: Enable the Bluetooth serial interface on AT90USB devices. -- name: CUSTOM_MACHINE_NAME - type: string - since: 1.1.0 - disabled: true - default: '"3D Printer"' - brief: A unique name for your machine. - long: Enable this option and set a unique name such as "Ralph" or "Printy McPrintface" to identify your 3D printer. - example: - - value: '"X5 Endeavour"' - -- name: MACHINE_UUID - type: string - since: 1.1.0 - disabled: true - default: '"00000000-0000-0000-0000-000000000000"' - brief: A unique ID for your machine. - long: This unique ID can be used by some programs to differentiate between machines. - example: - - value: '"A34F2190-C84E-F553-97C3-12A4DA78A01B"' - --- Use these options to define the machine hardware, including the mainboard, serial ports, etc. These are the most basic settings for every type of machine that Marlin supports. diff --git a/_setting/interface.md b/_setting/interface.md new file mode 100644 index 000000000..d34c7c749 --- /dev/null +++ b/_setting/interface.md @@ -0,0 +1,79 @@ +--- +label: Interface +brief: User interface options +category: [ interface ] +tags: [ interface ] +pagetype: toc +author: thinkyhead + +settings: +- name: LCD_LANGUAGE + brief: Default language to display on the LCD. + type: langcode + default: en + options: [ en, an, bg, ca, cz, da, de, el, el_CY, es, eu, fi, fr, gl, hr, hu, it, jp_kana, ko_KR, nl, pl, pt, pt_br, ro, ru, sk, sv, tr, uk, vi, zh_CN, zh_TW ] +- name: DISPLAY_CHARSET_HD44780 + brief: Character Display extended character set as determined by the hardware. + type: name + default: JAPANESE + options: [ JAPANESE, WESTERN, CYRILLIC ] +- name: LCD_INFO_SCREEN_STYLE + brief: HD44780 character display Info Screen style (0:Classic, 1:Průša, 2:CNC) + type: int + default: 0 + options: [ 0, 1, 2 ] +- name: NO_LCD_MENUS + brief: Disable all menus and only display the Status Screen. + disabled: true +- name: SLIM_LCD_MENUS + brief: Remove some extraneous menu items to recover space. + disabled: true +- name: ENCODER_PULSES_PER_STEP + brief: Number of pulses the encoder sends per increment of the encoder value. + type: int + default: 4 + disabled: true +- name: ENCODER_STEPS_PER_MENU_ITEM + brief: Number of encoder value increments per menu position. + type: int + default: 1 + disabled: true +- name: REVERSE_ENCODER_DIRECTION + brief: If clockwise turns make edited values go down, enable this option. + disabled: true +- name: REVERSE_MENU_DIRECTION + brief: Change the encoder direction required to move the menu highlight up/down. + disabled: true +- name: REVERSE_SELECT_DIRECTION + brief: Change the encoder direction required to select options on a dialog screen. + disabled: true +- name: ENCODER_NOISE_FILTER + brief: Enable to filter out noise if the encoder has a messy signal or is experiencing interference. + disabled: true + subopts: + - name: ENCODER_SAMPLES + brief: Number of samples to use when filtering encoder noise. + default: 10 +- name: INDIVIDUAL_AXIS_HOMING_MENU + brief: Add individual axis homing items (Home X, Home Y, and Home Z) to the LCD menu. + disabled: true +- name: INDIVIDUAL_AXIS_HOMING_SUBMENU + brief: Put axis homing items in a sub-menu. + disabled: true +- name: SPEAKER + disabled: true +- name: LCD_FEEDBACK_FREQUENCY_DURATION_MS + default: 2 + disabled: true +- name: LCD_FEEDBACK_FREQUENCY_HZ + default: 5000 + disabled: true +- name: TONE_QUEUE_LENGTH + default: 4 + disabled: true +- name: STARTUP_TUNE + default: "{ 698, 300, 0, 50, 523, 50, 0, 25, 494, 50, 0, 25, 523, 100, 0, 50, 554, 300, 0, 100, 523, 300 }" + disabled: true + +--- +Use these options to define the machine hardware, including the mainboard, serial ports, etc. These are the most basic settings for every type of machine that Marlin supports. diff --git a/_setting/lcd.md b/_setting/lcd.md new file mode 100644 index 000000000..79ee5b4a3 --- /dev/null +++ b/_setting/lcd.md @@ -0,0 +1,383 @@ +--- +label: LCD +brief: LCD / Controller options +category: [ wip ] +tags: [ lcd, hardware ] +pagetype: toc +author: thinkyhead + +settings: + +- name: REPRAP_DISCOUNT_SMART_CONTROLLER + style: character + since: 1.1.0 + brief: The common EXP1/2 HD44780 LCD controller (with SD Card slot) + +- name: YHCB2004 + style: character + brief: GT2560 (YHCB2004) LCD Display + long: Requires Testato, Koepel `softwarewire` library and Andriy Golovnya's `LiquidCrystal_AIP31068` library. + since: 1.1.9 + +- name: RADDS_DISPLAY + style: character + brief: Original RADDS LCD Display+Encoder+SDCardReader + links: + - url: //web.archive.org/web/20200719145306/doku.radds.org/dokumentation/lcd-display/ + since: 1.1.0 + +- name: ULTIMAKERCONTROLLER + style: character + brief: ULTIMAKER Controller + since: 1.1.0 + +- name: ULTIPANEL + style: character + brief: Ultipanel - As seen on Thingiverse! + since: 1.1.0 + +- name: PANEL_ONE + style: character + brief: PanelOne from T3P3 (via RAMPS 1.4 AUX2/AUX3) + links: + - url: //reprap.org/wiki/PanelOne + since: 1.1.0 + +- name: G3D_PANEL + style: character + brief: Gadgets3D G3D LCD/SD Controller + links: + - url: //reprap.org/wiki/RAMPS_1.3/1.4_GADGETS3D_Shield_with_Panel + since: 1.1.0 + +- name: RIGIDBOT_PANEL + style: character + brief: RigidBot Panel V1.0 + +- name: MAKEBOARD_MINI_2_LINE_DISPLAY_1602 + style: character + brief: Makeboard 3D Printer Parts 3D Printer Mini Display 1602 Mini Controller + links: + - url: //www.aliexpress.com/item/32765887917.html + +- name: ZONESTAR_LCD + style: character + brief: ANET and Tronxy 20x4 Controller, with keypad + description: | + Requires ADC_KEYPAD_PIN to be assigned to an analog pin. + This LCD is known to be susceptible to electrical interference + which scrambles the display. Pressing any button clears it up. + This is a LCD2004 display with 5 analog buttons. + +- name: ULTRA_LCD + style: character + brief: Generic 16x2, 16x4, 20x2, or 20x4 character-based LCD. + +- name: RA_CONTROL_PANEL + style: i2c + brief: Elefu RA Board Control Panel + links: + - url: //web.archive.org/web/20140823033947/www.elefu.com/index.php?route=product/product&product_id=53 + +- name: LCD_SAINSMART_I2C_1602 + style: i2c + brief: Sainsmart (YwRobot) 16x2 LCD Display. Requires the `LiquidCrystal_I2C` library. + links: + - url: //github.com/MarlinFirmware/New-LiquidCrystal + - url: //github.com/fmalpartida/New-LiquidCrystal/wiki + +- name: LCD_SAINSMART_I2C_2004 + style: i2c + brief: Sainsmart (YwRobot) 20x4 LCD Display. Requires the `LiquidCrystal_I2C` library. + links: + - url: //github.com/MarlinFirmware/New-LiquidCrystal + - url: //github.com/fmalpartida/New-LiquidCrystal/wiki + +- name: LCM1602 + style: i2c + brief: Generic LCM1602 LCD adapter. + +- name: LCD_I2C_PANELOLU2 + style: i2c + brief: Panelolu 2 LCD with status LEDs separate encoder and click inputs + description: | + Note: This controller requires Arduino's LiquidTWI2 library v1.2.3 or later. + For more info: https://github.com/lincomatic/LiquidTWI2 + Note: The PANELOLU2 encoder click input can either be directly connected to + a pin (if BTN_ENC defined to != -1) or read through I2C (when BTN_ENC == -1). + +- name: LCD_I2C_VIKI + style: i2c + brief: Panucatt VIKI LCD with status LEDs, integrated click & L/R/U/D buttons, separate encoder inputs. + +- name: SAV_3DLCD + style: shift-register + brief: 2-wire Non-latching LCD SR + links: + - url: //github.com/fmalpartida/New-LiquidCrystal/wiki/schematics#user-content-ShiftRegister_connection + - url: //reprap.org/wiki/SAV_3D_LCD + +- name: FF_INTERFACEBOARD + brief: + +- name: TFTGLCD_PANEL_SPI + brief: + +- name: TFTGLCD_PANEL_I2C + brief: + +- name: REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER + since: 1.1.0 + brief: The common EXP1/2 Full Graphic LCD controller (with SD Card slot. + +- name: K3D_FULL_GRAPHIC_SMART_CONTROLLER + brief: + +- name: REPRAPWORLD_GRAPHICAL_LCD + brief: + +- name: VIKI2 + brief: + +- name: miniVIKI + brief: + +- name: WYH_L12864 + brief: + +- name: MINIPANEL + brief: + +- name: MAKRPANEL + brief: + +- name: ELB_FULL_GRAPHIC_CONTROLLER + brief: + +- name: BQ_LCD_SMART_CONTROLLER + brief: + +- name: CARTESIO_UI + brief: + +- name: LCD_FOR_MELZI + brief: + +- name: ULTI_CONTROLLER + brief: + +- name: MKS_MINI_12864 + brief: + +- name: MKS_MINI_12864_V3 + brief: + +- name: MKS_LCD12864A + brief: + +- name: MKS_LCD12864B + brief: + +- name: FYSETC_MINI_12864_X_X + brief: + +- name: FYSETC_MINI_12864_1_2 + brief: + +- name: FYSETC_MINI_12864_2_0 + brief: + +- name: FYSETC_MINI_12864_2_1 + brief: + +- name: FYSETC_GENERIC_12864_1_1 + brief: + +- name: BTT_MINI_12864 + brief: + +- name: BEEZ_MINI_12864 + brief: + +- name: CR10_STOCKDISPLAY + brief: + +- name: ENDER2_STOCKDISPLAY + brief: + +- name: ANET_FULL_GRAPHICS_LCD + brief: + +- name: CTC_A10S_A13 + brief: + +- name: AZSMZ_12864 + brief: + +- name: SILVER_GATE_GLCD_CONTROLLER + brief: + +- name: EMOTION_TECH_LCD + brief: + +- name: U8GLIB_SSD1306 + brief: + +- name: SAV_3DGLCD + subopts: + - name: U8GLIB_SSD1306 + - name: U8GLIB_SH1106 + +- name: OLED_PANEL_TINYBOY2 + brief: + +- name: MKS_12864OLED + brief: + +- name: MKS_12864OLED_SSD1306 + brief: + +- name: ZONESTAR_12864LCD + brief: + +- name: ZONESTAR_12864OLED + brief: + +- name: ZONESTAR_12864OLED_SSD1306 + brief: + +- name: U8GLIB_SH1106_EINSTART + brief: + +- name: OVERLORD_OLED + brief: + +- name: FYSETC_242_OLED_12864 + brief: + +- name: K3D_242_OLED_CONTROLLER + brief: + +- name: DGUS_LCD_UI + brief: + subopts: + - name: USE_MKS_GREEN_UI + - name: LCD_SCREEN_ROTATE + type: rotation + options: [ 0, 90, 180, 270 ] + - name: IA_CREALITY_BOOT_DELAY + type: ms + +- name: MALYAN_LCD + brief: + +- name: TOUCH_UI_FTDI_EVE + brief: + +- name: ANYCUBIC_LCD_CHIRON + brief: + +- name: ANYCUBIC_LCD_I3MEGA + brief: + +- name: ANYCUBIC_LCD_VYPER + brief: + +- name: SOVOL_SV06_RTS + brief: + +- name: NEXTION_TFT + brief: + +- name: EXTENSIBLE_UI + brief: + +- name: MKS_TS35_V2_0 + brief: + +- name: MKS_ROBIN_TFT24 + brief: + +- name: MKS_ROBIN_TFT28 + brief: + +- name: MKS_ROBIN_TFT32 + brief: + +- name: MKS_ROBIN_TFT35 + brief: + +- name: MKS_ROBIN_TFT43 + brief: + +- name: MKS_ROBIN_TFT_V1_1R + brief: + +- name: TFT_TRONXY_X5SA + brief: + +- name: ANYCUBIC_TFT35 + brief: + +- name: LONGER_LK_TFT28 + brief: + +- name: ANET_ET4_TFT28 + brief: + +- name: ANET_ET5_TFT35 + brief: + +- name: BIQU_BX_TFT70 + brief: + +- name: BTT_TFT35_SPI_V1_0 + brief: + +- name: TFT_GENERIC + brief: + +- name: TFT_CLASSIC_UI + brief: + +- name: TFT_COLOR_UI + brief: + +- name: TFT_LVGL_UI + brief: + +- name: TFT_ROTATION + brief: Set the TFT rotation angle. Only applies to some TFT displays. + +- name: DWIN_CREALITY_LCD + since: 2.0.8 + brief: The Ender-3 V2 display with Creality UI. Requires Marlin supplied DWIN_SET. +- name: DWIN_LCD_PROUI + since: 2.1.0 + brief: The Ender-3 V2 display with Pro UI by MRISCOC. Requires Marlin supplied DWIN_SET. +- name: DWIN_CREALITY_LCD_JYERSUI + since: 2.0.8 + brief: The Ender-3 V2 display with Jyers UI. Requires Marlin supplied DWIN_SET. +- name: DWIN_MARLINUI_PORTRAIT + since: 2.0.9 + brief: The Ender-3 V2 display with Marlin UI in portrait (tall) orientation. Requires Marlin supplied DWIN_SET. +- name: DWIN_MARLINUI_LANDSCAPE + since: 2.0.9 + brief: The Ender-3 V2 display with Marlin UI in landscape (wide) orientation. Requires Marlin supplied DWIN_SET. + +- name: TOUCH_SCREEN + brief: + +- name: REPRAPWORLD_KEYPAD + brief: + subopts: + - name: REPRAPWORLD_KEYPAD_MOVE_STEP + type: int + +- name: EASYTHREED_UI + brief: + +--- +These options are used to select and configure Marlin to communicate with an LCD controller directly connected to your board. + +Marlin supports a huge number of LCD controllers, from simple character LCDs with a click-wheel to graphical OLED touchscreen displays. See the [LCD Controllers](/_docs/hardware/controllers.md) page for full details about all the supported displays and controllers. diff --git a/_setting/machine_info.md b/_setting/machine_info.md index ce51de115..0832d5eda 100644 --- a/_setting/machine_info.md +++ b/_setting/machine_info.md @@ -9,12 +9,23 @@ author: thinkyhead settings: - name: CUSTOM_MACHINE_NAME type: string - since: 1.0.0 - until: + since: 1.1.0 + disabled: true + default: '"3D Printer"' + brief: A unique name for your machine. + long: Enable this option and set a unique name such as "Ralph" or "Printy McPrintface" to identify your 3D printer. + example: + - value: '"X5 Endeavour"' - brief: Machine name and/or model. - long: Use this option to provide the name or model of the machine. This is displayed in the message sent to the host when Marlin first boots up, and it may also be displayed on the LCD Info Screen. +- name: MACHINE_UUID + type: string + since: 1.1.0 + disabled: true + default: '"00000000-0000-0000-0000-000000000000"' + brief: A unique ID for your machine. + long: This unique ID can be used by some programs to differentiate between machines. example: - - value: '"3D Printer"' + - value: '"A34F2190-C84E-F553-97C3-12A4DA78A01B"' + --- Use these options to set Human-readable information about the machine, which may also be displayed on the host or LCD. diff --git a/_setting/motion.md b/_setting/motion.md new file mode 100644 index 000000000..5868f9a88 --- /dev/null +++ b/_setting/motion.md @@ -0,0 +1,50 @@ +--- +label: Motion +brief: Settings for motion and motor control. +category: [ wip ] +tags: [ motion ] +pagetype: toc +author: thinkyhead + +settings: +- name: DEFAULT_AXIS_STEPS_PER_UNIT + type: float + since: 1.0.0 + brief: Default steps per unit for all axes. + long: The default steps per unit for all axes. This is used to calculate the number of steps needed to move the axis a given distance. + example: + - value: "{ 80, 80, 400, 500 }" + +- name: EDITABLE_STEPS_PER_UNI + since: 2.1.3 + brief: Editable the steps per unit. + long: Add a G-code and menu items to edit axis steps per unit. Disable to save some memory. + +- name: DEFAULT_MAX_FEEDRATE + type: float + since: 1.0.0 + brief: Default maximum feedrate for all axes. + long: The default maximum feedrate for all axes. This is used to calculate the maximum speed for each axis. + example: + - value: 200 + +- name: DEFAULT_MAX_ACCELERATION + type: float + since: 1.0.0 + brief: Default maximum acceleration for all axes. + long: The default maximum acceleration for all axes. This is used to calculate the maximum speed for each axis. + example: + - value: 200 + +- name: DEFAULT_ACCELERATION + type: float + since: 1.0.0 + brief: Default acceleration for all axes. + long: The default acceleration for all axes. This is used to calculate the maximum speed for each axis. + example: + - value: 200 + +- name: CLASSIC_JERK + since: 1.1.9 + brief: Use Classic Jerk acceleration for all axes. + long: Classic Jerk limits acceleration on a per-axis basis and is suitable for most machines and is the default for all machines except for CoreXY printers. diff --git a/_setting/stepper_drivers.md b/_setting/stepper_drivers.md index 5ecf39e8a..e6b57c36f 100644 --- a/_setting/stepper_drivers.md +++ b/_setting/stepper_drivers.md @@ -7,56 +7,60 @@ pagetype: toc author: thinkyhead shared: - - - options: - - value: A4988 - brief: Allegro A4988 - - value: A5984 - brief: Allegro A5984 - - value: DRV8825 - brief: DRV8825 high-current driver with up to 32x micro-stepping - - value: LV8729 - brief: LV8729 with up to 128x micro-stepping - - value: TB6560 - brief: Toshiba TB6560 stepper driver board - - value: TB6600 - brief: Toshiba TB6600 stepper driver board - - value: TMC2100 - brief: Trinamic TMC2100 - - value: TMC2130 - brief: Trinamic TMC2130 (SPI) - - value: TMC2130_STANDALONE - brief: Trinamic TMC2130 (standalone) - - value: TMC2160 - brief: Trinamic TMC2160 (SPI) - - value: TMC2160_STANDALONE - brief: Trinamic TMC2160 (standalone) - - value: TMC2208 - brief: Trinamic TMC2208 (UART) - - value: TMC2208_STANDALONE - brief: Trinamic TMC2208 (standalone) - - value: TMC2209 - brief: Trinamic TMC2209 (UART) - - value: TMC2209_STANDALONE - brief: Trinamic TMC2209 (standalone) - - value: TMC26X - brief: Trinamic TMC26X (SPI) - - value: TMC26X_STANDALONE - brief: Trinamic TMC26X (standalone) - - value: TMC2660 - brief: Trinamic TMC2660 (SPI) - - value: TMC2660_STANDALONE - brief: Trinamic TMC2660 (standalone) - - value: TMC5130 - brief: Trinamic TMC5130 (SPI) - - value: TMC5130_STANDALONE - brief: Trinamic TMC5130 (standalone) - - value: TMC5160 - brief: Trinamic TMC5160 (SPI) - - value: TMC5160_STANDALONE - brief: Trinamic TMC5160 (standalone) - - value: TMC2209 - brief: Trinamic TMC2209 +- options: + - value: A4988 + brief: Allegro A4988 + - value: A5984 + brief: Allegro A5984 + - value: DRV8825 + brief: DRV8825 high-current driver with up to 32x micro-stepping + - value: LV8729 + brief: LV8729 with up to 128x micro-stepping + - value: TB6560 + brief: Toshiba TB6560 stepper driver board + - value: TB6600 + brief: Toshiba TB6600 stepper driver board + - value: TMC2100 + brief: Trinamic TMC2100 + - value: TMC2130 + brief: Trinamic TMC2130 (SPI) + - value: TMC2130_STANDALONE + brief: Trinamic TMC2130 (standalone + - value: TMC2160 + brief: Trinamic TMC2160 (SPI) + - value: TMC2160_STANDALONE + brief: Trinamic TMC2160 (standalone) + - value: TMC2208 + brief: Trinamic TMC2208 (UART) + - value: TMC2208_STANDALONE + brief: Trinamic TMC2208 (standalone) + - value: TMC2209 + brief: Trinamic TMC2209 (UART) + - value: TMC2209_STANDALONE + brief: Trinamic TMC2209 (standalone) + - value: TMC26X + brief: Trinamic TMC26X (SPI) + - value: TMC26X_STANDALONE + brief: Trinamic TMC26X (standalone) + - value: TMC2660 + brief: Trinamic TMC2660 (SPI) + - value: TMC2660_STANDALONE + brief: Trinamic TMC2660 (standalone) + - value: TMC5130 + brief: Trinamic TMC5130 (SPI) + - value: TMC5130_STANDALONE + brief: Trinamic TMC5130 (standalone) + - value: TMC5160 + brief: Trinamic TMC5160 (SPI) + - value: TMC5160_STANDALONE + brief: Trinamic TMC5160 (standalone) + - value: TMC2209 + brief: Trinamic TMC2209 + - value: TMC2240 + brief: Trinamic TMC2240 (SPI) + - value: TMC2240_STANDALONE + brief: Trinamic TMC2240 (standalone) + settings: - name: X_DRIVER_TYPE type: name @@ -209,54 +213,49 @@ settings: since: 2.0.0 brief: Stepper Driver for the E0 axis. options: 0 - - name: E1_DRIVER_TYPE type: name default: A4988 since: 2.0.0 brief: Stepper Driver for the E1 axis. options: 0 - - name: E2_DRIVER_TYPE type: name default: A4988 since: 2.0.0 brief: Stepper Driver for the E2 axis. options: 0 - - name: E3_DRIVER_TYPE type: name default: A4988 since: 2.0.0 brief: Stepper Driver for the E3 axis. options: 0 - - name: E4_DRIVER_TYPE type: name default: A4988 since: 2.0.0 brief: Stepper Driver for the E4 axis. options: 0 - - name: E5_DRIVER_TYPE type: name default: A4988 since: 2.0.0 brief: Stepper Driver for the E5 axis. options: 0 - - name: E6_DRIVER_TYPE type: name default: A4988 since: 2.0.0 brief: Stepper Driver for the E6 axis. options: 0 - - name: E7_DRIVER_TYPE type: name default: A4988 since: 2.0.0 brief: Stepper Driver for the E7 axis. options: 0 + --- -Marlin is able to tune signal timing and provide extra options based on the type of Stepper Driver. These settings are used to specify the type of Stepper Driver for each axis. \ No newline at end of file + +Marlin is able to tune signal timing and provide extra options based on the type of Stepper Driver. These settings are used to specify the type of Stepper Driver for each axis.