Merge pull request #6600 from thinkyhead/bugfix_first_fixes

Update git helper scripts, config comments
master
Scott Lahteine 8 years ago committed by GitHub
commit 66bedc1a24

@ -987,23 +987,17 @@
#define PREHEAT_2_TEMP_BED 110 #define PREHEAT_2_TEMP_BED 110
#define PREHEAT_2_FAN_SPEED 0 // Value from 0 to 255 #define PREHEAT_2_FAN_SPEED 0 // Value from 0 to 255
// /**
// Nozzle Park -- EXPERIMENTAL * Nozzle Park -- EXPERIMENTAL
// *
// When enabled allows the user to define a special XYZ position, inside the * Park the nozzle at the given XYZ position on idle or G27.
// machine's topology, to park the nozzle when idle or when receiving the G27 *
// command. * The "P" parameter controls the action applied to the Z axis:
// *
// The "P" paramenter controls what is the action applied to the Z axis: * P0 (Default) If Z is below park Z raise the nozzle.
// P0: (Default) If current Z-pos is lower than Z-park then the nozzle will * P1 Raise the nozzle always to Z-park height.
// be raised to reach Z-park height. * P2 Raise the nozzle by Z-park amount, limited to Z_MAX_POS.
// */
// P1: No matter the current Z-pos, the nozzle will be raised/lowered to
// reach Z-park height.
//
// P2: The nozzle height will be raised by Z-park amount but never going over
// the machine's limit of Z_MAX_POS.
//
//#define NOZZLE_PARK_FEATURE //#define NOZZLE_PARK_FEATURE
#if ENABLED(NOZZLE_PARK_FEATURE) #if ENABLED(NOZZLE_PARK_FEATURE)
@ -1011,44 +1005,44 @@
#define NOZZLE_PARK_POINT { (X_MIN_POS + 10), (Y_MAX_POS - 10), 20 } #define NOZZLE_PARK_POINT { (X_MIN_POS + 10), (Y_MAX_POS - 10), 20 }
#endif #endif
// /**
// Clean Nozzle Feature -- EXPERIMENTAL * Clean Nozzle Feature -- EXPERIMENTAL
// *
// When enabled allows the user to send G12 to start the nozzle cleaning * Adds the G12 command to perform a nozzle cleaning process.
// process, the G-Code accepts two parameters: *
// "P" for pattern selection * Parameters:
// "S" for defining the number of strokes/repetitions * P Pattern
// * S Strokes / Repetitions
// Available list of patterns: * T Triangles (P1 only)
// P0: This is the default pattern, this process requires a sponge type *
// material at a fixed bed location. S defines "strokes" i.e. * Patterns:
// back-and-forth movements between the starting and end points. * P0 Straight line (default). This process requires a sponge type material
// * at a fixed bed location. "S" specifies strokes (i.e. back-forth motions)
// P1: This starts a zig-zag pattern between (X0, Y0) and (X1, Y1), "T" * between the start / end points.
// defines the number of zig-zag triangles to be done. "S" defines the *
// number of strokes aka one back-and-forth movement. Zig-zags will * P1 Zig-zag pattern between (X0, Y0) and (X1, Y1), "T" specifies the
// be performed in whichever dimension is smallest. As an example, * number of zig-zag triangles to do. "S" defines the number of strokes.
// sending "G12 P1 S1 T3" will execute: * Zig-zags are done in whichever is the narrower dimension.
// * For example, "G12 P1 S1 T3" will execute:
// -- *
// | (X0, Y1) | /\ /\ /\ | (X1, Y1) * --
// | | / \ / \ / \ | * | (X0, Y1) | /\ /\ /\ | (X1, Y1)
// A | | / \ / \ / \ | * | | / \ / \ / \ |
// | | / \ / \ / \ | * A | | / \ / \ / \ |
// | (X0, Y0) | / \/ \/ \ | (X1, Y0) * | | / \ / \ / \ |
// -- +--------------------------------+ * | (X0, Y0) | / \/ \/ \ | (X1, Y0)
// |________|_________|_________| * -- +--------------------------------+
// T1 T2 T3 * |________|_________|_________|
// * T1 T2 T3
// P2: This starts a circular pattern with circle with middle in *
// NOZZLE_CLEAN_CIRCLE_MIDDLE radius of R and stroke count of S. * P2 Circular pattern with middle at NOZZLE_CLEAN_CIRCLE_MIDDLE.
// Before starting the circle nozzle goes to NOZZLE_CLEAN_START_POINT. * "R" specifies the radius. "S" specifies the stroke count.
// * Before starting, the nozzle moves to NOZZLE_CLEAN_START_POINT.
// Caveats: End point Z should use the same value as Start point Z. *
// * Caveats: The ending Z should be the same as starting Z.
// Attention: This is an EXPERIMENTAL feature, in the future the G-code arguments * Attention: EXPERIMENTAL. G-code arguments may change.
// may change to add new functionality like different wipe patterns. *
// */
//#define NOZZLE_CLEAN_FEATURE //#define NOZZLE_CLEAN_FEATURE
#if ENABLED(NOZZLE_CLEAN_FEATURE) #if ENABLED(NOZZLE_CLEAN_FEATURE)
@ -1073,33 +1067,35 @@
#define NOZZLE_CLEAN_GOBACK #define NOZZLE_CLEAN_GOBACK
#endif #endif
// /**
// Print job timer * Print Job Timer
// *
// Enable this option to automatically start and stop the * Automatically start and stop the print job timer on M104/M109/M190.
// print job timer when M104/M109/M190 commands are received. *
// M104 (extruder without wait) - high temp = none, low temp = stop timer * M104 (hotend, no wait) - high temp = none, low temp = stop timer
// M109 (extruder with wait) - high temp = start timer, low temp = stop timer * M109 (hotend, wait) - high temp = start timer, low temp = stop timer
// M190 (bed with wait) - high temp = start timer, low temp = none * M190 (bed, wait) - high temp = start timer, low temp = none
// *
// In all cases the timer can be started and stopped using * The timer can also be controlled with the following commands:
// the following commands: *
// * M75 - Start the print job timer
// - M75 - Start the print job timer * M76 - Pause the print job timer
// - M76 - Pause the print job timer * M77 - Stop the print job timer
// - M77 - Stop the print job timer */
#define PRINTJOB_TIMER_AUTOSTART #define PRINTJOB_TIMER_AUTOSTART
// /**
// Print Counter * Print Counter
// *
// When enabled Marlin will keep track of some print statistical data such as: * Track statistical data such as:
// - Total print jobs *
// - Total successful print jobs * - Total print jobs
// - Total failed print jobs * - Total successful print jobs
// - Total time printing * - Total failed print jobs
// * - Total time printing
// This information can be viewed by the M78 command. *
* View the current statistics with M78.
*/
//#define PRINTCOUNTER //#define PRINTCOUNTER
//============================================================================= //=============================================================================
@ -1108,78 +1104,79 @@
// @section lcd // @section lcd
// /**
// LCD LANGUAGE * LCD LANGUAGE
// *
// Here you may choose the language used by Marlin on the LCD menus, the following * Select the language to display on the LCD. These languages are available:
// list of languages are available: *
// en, an, bg, ca, cn, cz, de, el, el-gr, es, eu, fi, fr, gl, hr, it, * en, an, bg, ca, cn, cz, de, el, el-gr, es, eu, fi, fr, gl, hr, it,
// kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk, test * kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk, test
// *
// :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'test':'TEST' } * :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'test':'TEST' }
// */
#define LCD_LANGUAGE en #define LCD_LANGUAGE en
// /**
// LCD Character Set * LCD Character Set
// *
// Note: This option is NOT applicable to Graphical Displays. * Note: This option is NOT applicable to Graphical Displays.
// *
// All character-based LCD's provide ASCII plus one of these * All character-based LCDs provide ASCII plus one of these
// language extensions: * language extensions:
// *
// - JAPANESE ... the most common * - JAPANESE ... the most common
// - WESTERN ... with more accented characters * - WESTERN ... with more accented characters
// - CYRILLIC ... for the Russian language * - CYRILLIC ... for the Russian language
// *
// To determine the language extension installed on your controller: * To determine the language extension installed on your controller:
// *
// - Compile and upload with LCD_LANGUAGE set to 'test' * - Compile and upload with LCD_LANGUAGE set to 'test'
// - Click the controller to view the LCD menu * - Click the controller to view the LCD menu
// - The LCD will display Japanese, Western, or Cyrillic text * - The LCD will display Japanese, Western, or Cyrillic text
// *
// See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language * See https: *github.com/MarlinFirmware/Marlin/wiki/LCD-Language
// *
// :['JAPANESE', 'WESTERN', 'CYRILLIC'] * :['JAPANESE', 'WESTERN', 'CYRILLIC']
// */
#define DISPLAY_CHARSET_HD44780 JAPANESE #define DISPLAY_CHARSET_HD44780 JAPANESE
// /**
// LCD TYPE * LCD TYPE
// *
// You may choose ULTRA_LCD if you have character based LCD with 16x2, 16x4, 20x2, * Enable ULTRA_LCD for a 16x2, 16x4, 20x2, or 20x4 character-based LCD.
// 20x4 char/lines or DOGLCD for the full graphics display with 128x64 pixels * Enable DOGLCD for a 128x64 (ST7565R) Full Graphical Display.
// (ST7565R family). (This option will be set automatically for certain displays.) * (These options will be enabled automatically for most displays.)
// *
// IMPORTANT NOTE: The U8glib library is required for Full Graphic Display! * IMPORTANT: The U8glib library is required for Full Graphic Display!
// https://github.com/olikraus/U8glib_Arduino * https://github.com/olikraus/U8glib_Arduino
// */
//#define ULTRA_LCD // Character based //#define ULTRA_LCD // Character based
//#define DOGLCD // Full graphics display //#define DOGLCD // Full graphics display
// /**
// SD CARD * SD CARD
// *
// SD Card support is disabled by default. If your controller has an SD slot, * SD Card support is disabled by default. If your controller has an SD slot,
// you must uncomment the following option or it won't work. * you must uncomment the following option or it won't work.
// *
*/
//#define SDSUPPORT //#define SDSUPPORT
// /**
// SD CARD: SPI SPEED * SD CARD: SPI SPEED
// *
// Uncomment ONE of the following items to use a slower SPI transfer * Enable one of the following items for a slower SPI transfer speed.
// speed. This is usually required if you're getting volume init errors. * This may be required to resolve "volume init" errors.
// */
//#define SPI_SPEED SPI_HALF_SPEED //#define SPI_SPEED SPI_HALF_SPEED
//#define SPI_SPEED SPI_QUARTER_SPEED //#define SPI_SPEED SPI_QUARTER_SPEED
//#define SPI_SPEED SPI_EIGHTH_SPEED //#define SPI_SPEED SPI_EIGHTH_SPEED
// /**
// SD CARD: ENABLE CRC * SD CARD: ENABLE CRC
// *
// Use CRC checks and retries on the SD communication. * Use CRC checks and retries on the SD communication.
// */
//#define SD_CHECK_AND_RETRY //#define SD_CHECK_AND_RETRY
// //
@ -1207,7 +1204,7 @@
*/ */
// //
// This option reverses the encoder direction everywhere // This option reverses the encoder direction everywhere.
// //
// Set this option if CLOCKWISE causes values to DECREASE // Set this option if CLOCKWISE causes values to DECREASE
// //

@ -832,7 +832,7 @@ void clear_command_queue() {
*/ */
inline void _commit_command(bool say_ok) { inline void _commit_command(bool say_ok) {
send_ok[cmd_queue_index_w] = say_ok; send_ok[cmd_queue_index_w] = say_ok;
cmd_queue_index_w = (cmd_queue_index_w + 1) % BUFSIZE; if (++cmd_queue_index_w >= BUFSIZE) cmd_queue_index_w = 0;
commands_in_queue++; commands_in_queue++;
} }
@ -12330,7 +12330,7 @@ void loop() {
// The queue may be reset by a command handler or by code invoked by idle() within a handler // The queue may be reset by a command handler or by code invoked by idle() within a handler
if (commands_in_queue) { if (commands_in_queue) {
--commands_in_queue; --commands_in_queue;
cmd_queue_index_r = (cmd_queue_index_r + 1) % BUFSIZE; if (++cmd_queue_index_r >= BUFSIZE) cmd_queue_index_r = 0;
} }
} }
endstops.report_state(); endstops.report_state();

@ -985,23 +985,17 @@
#define PREHEAT_2_TEMP_BED 110 #define PREHEAT_2_TEMP_BED 110
#define PREHEAT_2_FAN_SPEED 0 // Value from 0 to 255 #define PREHEAT_2_FAN_SPEED 0 // Value from 0 to 255
// /**
// Nozzle Park -- EXPERIMENTAL * Nozzle Park -- EXPERIMENTAL
// *
// When enabled allows the user to define a special XYZ position, inside the * Park the nozzle at the given XYZ position on idle or G27.
// machine's topology, to park the nozzle when idle or when receiving the G27 *
// command. * The "P" parameter controls the action applied to the Z axis:
// *
// The "P" paramenter controls what is the action applied to the Z axis: * P0 (Default) If Z is below park Z raise the nozzle.
// P0: (Default) If current Z-pos is lower than Z-park then the nozzle will * P1 Raise the nozzle always to Z-park height.
// be raised to reach Z-park height. * P2 Raise the nozzle by Z-park amount, limited to Z_MAX_POS.
// */
// P1: No matter the current Z-pos, the nozzle will be raised/lowered to
// reach Z-park height.
//
// P2: The nozzle height will be raised by Z-park amount but never going over
// the machine's limit of Z_MAX_POS.
//
//#define NOZZLE_PARK_FEATURE //#define NOZZLE_PARK_FEATURE
#if ENABLED(NOZZLE_PARK_FEATURE) #if ENABLED(NOZZLE_PARK_FEATURE)
@ -1009,44 +1003,44 @@
#define NOZZLE_PARK_POINT { (X_MIN_POS + 10), (Y_MAX_POS - 10), 20 } #define NOZZLE_PARK_POINT { (X_MIN_POS + 10), (Y_MAX_POS - 10), 20 }
#endif #endif
// /**
// Clean Nozzle Feature -- EXPERIMENTAL * Clean Nozzle Feature -- EXPERIMENTAL
// *
// When enabled allows the user to send G12 to start the nozzle cleaning * Adds the G12 command to perform a nozzle cleaning process.
// process, the G-Code accepts two parameters: *
// "P" for pattern selection * Parameters:
// "S" for defining the number of strokes/repetitions * P Pattern
// * S Strokes / Repetitions
// Available list of patterns: * T Triangles (P1 only)
// P0: This is the default pattern, this process requires a sponge type *
// material at a fixed bed location. S defines "strokes" i.e. * Patterns:
// back-and-forth movements between the starting and end points. * P0 Straight line (default). This process requires a sponge type material
// * at a fixed bed location. "S" specifies strokes (i.e. back-forth motions)
// P1: This starts a zig-zag pattern between (X0, Y0) and (X1, Y1), "T" * between the start / end points.
// defines the number of zig-zag triangles to be done. "S" defines the *
// number of strokes aka one back-and-forth movement. Zig-zags will * P1 Zig-zag pattern between (X0, Y0) and (X1, Y1), "T" specifies the
// be performed in whichever dimension is smallest. As an example, * number of zig-zag triangles to do. "S" defines the number of strokes.
// sending "G12 P1 S1 T3" will execute: * Zig-zags are done in whichever is the narrower dimension.
// * For example, "G12 P1 S1 T3" will execute:
// -- *
// | (X0, Y1) | /\ /\ /\ | (X1, Y1) * --
// | | / \ / \ / \ | * | (X0, Y1) | /\ /\ /\ | (X1, Y1)
// A | | / \ / \ / \ | * | | / \ / \ / \ |
// | | / \ / \ / \ | * A | | / \ / \ / \ |
// | (X0, Y0) | / \/ \/ \ | (X1, Y0) * | | / \ / \ / \ |
// -- +--------------------------------+ * | (X0, Y0) | / \/ \/ \ | (X1, Y0)
// |________|_________|_________| * -- +--------------------------------+
// T1 T2 T3 * |________|_________|_________|
// * T1 T2 T3
// P2: This starts a circular pattern with circle with middle in *
// NOZZLE_CLEAN_CIRCLE_MIDDLE radius of R and stroke count of S. * P2 Circular pattern with middle at NOZZLE_CLEAN_CIRCLE_MIDDLE.
// Before starting the circle nozzle goes to NOZZLE_CLEAN_START_POINT. * "R" specifies the radius. "S" specifies the stroke count.
// * Before starting, the nozzle moves to NOZZLE_CLEAN_START_POINT.
// Caveats: End point Z should use the same value as Start point Z. *
// * Caveats: The ending Z should be the same as starting Z.
// Attention: This is an EXPERIMENTAL feature, in the future the G-code arguments * Attention: EXPERIMENTAL. G-code arguments may change.
// may change to add new functionality like different wipe patterns. *
// */
//#define NOZZLE_CLEAN_FEATURE //#define NOZZLE_CLEAN_FEATURE
#if ENABLED(NOZZLE_CLEAN_FEATURE) #if ENABLED(NOZZLE_CLEAN_FEATURE)
@ -1071,33 +1065,35 @@
#define NOZZLE_CLEAN_GOBACK #define NOZZLE_CLEAN_GOBACK
#endif #endif
// /**
// Print job timer * Print Job Timer
// *
// Enable this option to automatically start and stop the * Automatically start and stop the print job timer on M104/M109/M190.
// print job timer when M104/M109/M190 commands are received. *
// M104 (extruder without wait) - high temp = none, low temp = stop timer * M104 (hotend, no wait) - high temp = none, low temp = stop timer
// M109 (extruder with wait) - high temp = start timer, low temp = stop timer * M109 (hotend, wait) - high temp = start timer, low temp = stop timer
// M190 (bed with wait) - high temp = start timer, low temp = none * M190 (bed, wait) - high temp = start timer, low temp = none
// *
// In all cases the timer can be started and stopped using * The timer can also be controlled with the following commands:
// the following commands: *
// * M75 - Start the print job timer
// - M75 - Start the print job timer * M76 - Pause the print job timer
// - M76 - Pause the print job timer * M77 - Stop the print job timer
// - M77 - Stop the print job timer */
#define PRINTJOB_TIMER_AUTOSTART #define PRINTJOB_TIMER_AUTOSTART
// /**
// Print Counter * Print Counter
// *
// When enabled Marlin will keep track of some print statistical data such as: * Track statistical data such as:
// - Total print jobs *
// - Total successful print jobs * - Total print jobs
// - Total failed print jobs * - Total successful print jobs
// - Total time printing * - Total failed print jobs
// * - Total time printing
// This information can be viewed by the M78 command. *
* View the current statistics with M78.
*/
//#define PRINTCOUNTER //#define PRINTCOUNTER
//============================================================================= //=============================================================================
@ -1106,78 +1102,79 @@
// @section lcd // @section lcd
// /**
// LCD LANGUAGE * LCD LANGUAGE
// *
// Here you may choose the language used by Marlin on the LCD menus, the following * Select the language to display on the LCD. These languages are available:
// list of languages are available: *
// en, an, bg, ca, cn, cz, de, el, el-gr, es, eu, fi, fr, gl, hr, it, * en, an, bg, ca, cn, cz, de, el, el-gr, es, eu, fi, fr, gl, hr, it,
// kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk, test * kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk, test
// *
// :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'test':'TEST' } * :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'test':'TEST' }
// */
#define LCD_LANGUAGE en #define LCD_LANGUAGE en
// /**
// LCD Character Set * LCD Character Set
// *
// Note: This option is NOT applicable to Graphical Displays. * Note: This option is NOT applicable to Graphical Displays.
// *
// All character-based LCD's provide ASCII plus one of these * All character-based LCDs provide ASCII plus one of these
// language extensions: * language extensions:
// *
// - JAPANESE ... the most common * - JAPANESE ... the most common
// - WESTERN ... with more accented characters * - WESTERN ... with more accented characters
// - CYRILLIC ... for the Russian language * - CYRILLIC ... for the Russian language
// *
// To determine the language extension installed on your controller: * To determine the language extension installed on your controller:
// *
// - Compile and upload with LCD_LANGUAGE set to 'test' * - Compile and upload with LCD_LANGUAGE set to 'test'
// - Click the controller to view the LCD menu * - Click the controller to view the LCD menu
// - The LCD will display Japanese, Western, or Cyrillic text * - The LCD will display Japanese, Western, or Cyrillic text
// *
// See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language * See https: *github.com/MarlinFirmware/Marlin/wiki/LCD-Language
// *
// :['JAPANESE', 'WESTERN', 'CYRILLIC'] * :['JAPANESE', 'WESTERN', 'CYRILLIC']
// */
#define DISPLAY_CHARSET_HD44780 JAPANESE #define DISPLAY_CHARSET_HD44780 JAPANESE
// /**
// LCD TYPE * LCD TYPE
// *
// You may choose ULTRA_LCD if you have character based LCD with 16x2, 16x4, 20x2, * Enable ULTRA_LCD for a 16x2, 16x4, 20x2, or 20x4 character-based LCD.
// 20x4 char/lines or DOGLCD for the full graphics display with 128x64 pixels * Enable DOGLCD for a 128x64 (ST7565R) Full Graphical Display.
// (ST7565R family). (This option will be set automatically for certain displays.) * (These options will be enabled automatically for most displays.)
// *
// IMPORTANT NOTE: The U8glib library is required for Full Graphic Display! * IMPORTANT: The U8glib library is required for Full Graphic Display!
// https://github.com/olikraus/U8glib_Arduino * https://github.com/olikraus/U8glib_Arduino
// */
//#define ULTRA_LCD // Character based //#define ULTRA_LCD // Character based
//#define DOGLCD // Full graphics display //#define DOGLCD // Full graphics display
// /**
// SD CARD * SD CARD
// *
// SD Card support is disabled by default. If your controller has an SD slot, * SD Card support is disabled by default. If your controller has an SD slot,
// you must uncomment the following option or it won't work. * you must uncomment the following option or it won't work.
// *
*/
#define SDSUPPORT #define SDSUPPORT
// /**
// SD CARD: SPI SPEED * SD CARD: SPI SPEED
// *
// Uncomment ONE of the following items to use a slower SPI transfer * Enable one of the following items for a slower SPI transfer speed.
// speed. This is usually required if you're getting volume init errors. * This may be required to resolve "volume init" errors.
// */
//#define SPI_SPEED SPI_HALF_SPEED //#define SPI_SPEED SPI_HALF_SPEED
//#define SPI_SPEED SPI_QUARTER_SPEED //#define SPI_SPEED SPI_QUARTER_SPEED
//#define SPI_SPEED SPI_EIGHTH_SPEED //#define SPI_SPEED SPI_EIGHTH_SPEED
// /**
// SD CARD: ENABLE CRC * SD CARD: ENABLE CRC
// *
// Use CRC checks and retries on the SD communication. * Use CRC checks and retries on the SD communication.
// */
//#define SD_CHECK_AND_RETRY //#define SD_CHECK_AND_RETRY
// //
@ -1205,7 +1202,7 @@
*/ */
// //
// This option reverses the encoder direction everywhere // This option reverses the encoder direction everywhere.
// //
// Set this option if CLOCKWISE causes values to DECREASE // Set this option if CLOCKWISE causes values to DECREASE
// //

@ -969,23 +969,17 @@
#define PREHEAT_2_TEMP_BED 100 #define PREHEAT_2_TEMP_BED 100
#define PREHEAT_2_FAN_SPEED 255 // Value from 0 to 255 #define PREHEAT_2_FAN_SPEED 255 // Value from 0 to 255
// /**
// Nozzle Park -- EXPERIMENTAL * Nozzle Park -- EXPERIMENTAL
// *
// When enabled allows the user to define a special XYZ position, inside the * Park the nozzle at the given XYZ position on idle or G27.
// machine's topology, to park the nozzle when idle or when receiving the G27 *
// command. * The "P" parameter controls the action applied to the Z axis:
// *
// The "P" paramenter controls what is the action applied to the Z axis: * P0 (Default) If Z is below park Z raise the nozzle.
// P0: (Default) If current Z-pos is lower than Z-park then the nozzle will * P1 Raise the nozzle always to Z-park height.
// be raised to reach Z-park height. * P2 Raise the nozzle by Z-park amount, limited to Z_MAX_POS.
// */
// P1: No matter the current Z-pos, the nozzle will be raised/lowered to
// reach Z-park height.
//
// P2: The nozzle height will be raised by Z-park amount but never going over
// the machine's limit of Z_MAX_POS.
//
//#define NOZZLE_PARK_FEATURE //#define NOZZLE_PARK_FEATURE
#if ENABLED(NOZZLE_PARK_FEATURE) #if ENABLED(NOZZLE_PARK_FEATURE)
@ -993,44 +987,44 @@
#define NOZZLE_PARK_POINT { (X_MIN_POS + 10), (Y_MAX_POS - 10), 20 } #define NOZZLE_PARK_POINT { (X_MIN_POS + 10), (Y_MAX_POS - 10), 20 }
#endif #endif
// /**
// Clean Nozzle Feature -- EXPERIMENTAL * Clean Nozzle Feature -- EXPERIMENTAL
// *
// When enabled allows the user to send G12 to start the nozzle cleaning * Adds the G12 command to perform a nozzle cleaning process.
// process, the G-Code accepts two parameters: *
// "P" for pattern selection * Parameters:
// "S" for defining the number of strokes/repetitions * P Pattern
// * S Strokes / Repetitions
// Available list of patterns: * T Triangles (P1 only)
// P0: This is the default pattern, this process requires a sponge type *
// material at a fixed bed location. S defines "strokes" i.e. * Patterns:
// back-and-forth movements between the starting and end points. * P0 Straight line (default). This process requires a sponge type material
// * at a fixed bed location. "S" specifies strokes (i.e. back-forth motions)
// P1: This starts a zig-zag pattern between (X0, Y0) and (X1, Y1), "T" * between the start / end points.
// defines the number of zig-zag triangles to be done. "S" defines the *
// number of strokes aka one back-and-forth movement. Zig-zags will * P1 Zig-zag pattern between (X0, Y0) and (X1, Y1), "T" specifies the
// be performed in whichever dimension is smallest. As an example, * number of zig-zag triangles to do. "S" defines the number of strokes.
// sending "G12 P1 S1 T3" will execute: * Zig-zags are done in whichever is the narrower dimension.
// * For example, "G12 P1 S1 T3" will execute:
// -- *
// | (X0, Y1) | /\ /\ /\ | (X1, Y1) * --
// | | / \ / \ / \ | * | (X0, Y1) | /\ /\ /\ | (X1, Y1)
// A | | / \ / \ / \ | * | | / \ / \ / \ |
// | | / \ / \ / \ | * A | | / \ / \ / \ |
// | (X0, Y0) | / \/ \/ \ | (X1, Y0) * | | / \ / \ / \ |
// -- +--------------------------------+ * | (X0, Y0) | / \/ \/ \ | (X1, Y0)
// |________|_________|_________| * -- +--------------------------------+
// T1 T2 T3 * |________|_________|_________|
// * T1 T2 T3
// P2: This starts a circular pattern with circle with middle in *
// NOZZLE_CLEAN_CIRCLE_MIDDLE radius of R and stroke count of S. * P2 Circular pattern with middle at NOZZLE_CLEAN_CIRCLE_MIDDLE.
// Before starting the circle nozzle goes to NOZZLE_CLEAN_START_POINT. * "R" specifies the radius. "S" specifies the stroke count.
// * Before starting, the nozzle moves to NOZZLE_CLEAN_START_POINT.
// Caveats: End point Z should use the same value as Start point Z. *
// * Caveats: The ending Z should be the same as starting Z.
// Attention: This is an EXPERIMENTAL feature, in the future the G-code arguments * Attention: EXPERIMENTAL. G-code arguments may change.
// may change to add new functionality like different wipe patterns. *
// */
//#define NOZZLE_CLEAN_FEATURE //#define NOZZLE_CLEAN_FEATURE
#if ENABLED(NOZZLE_CLEAN_FEATURE) #if ENABLED(NOZZLE_CLEAN_FEATURE)
@ -1055,33 +1049,35 @@
#define NOZZLE_CLEAN_GOBACK #define NOZZLE_CLEAN_GOBACK
#endif #endif
// /**
// Print job timer * Print Job Timer
// *
// Enable this option to automatically start and stop the * Automatically start and stop the print job timer on M104/M109/M190.
// print job timer when M104/M109/M190 commands are received. *
// M104 (extruder without wait) - high temp = none, low temp = stop timer * M104 (hotend, no wait) - high temp = none, low temp = stop timer
// M109 (extruder with wait) - high temp = start timer, low temp = stop timer * M109 (hotend, wait) - high temp = start timer, low temp = stop timer
// M190 (bed with wait) - high temp = start timer, low temp = none * M190 (bed, wait) - high temp = start timer, low temp = none
// *
// In all cases the timer can be started and stopped using * The timer can also be controlled with the following commands:
// the following commands: *
// * M75 - Start the print job timer
// - M75 - Start the print job timer * M76 - Pause the print job timer
// - M76 - Pause the print job timer * M77 - Stop the print job timer
// - M77 - Stop the print job timer */
#define PRINTJOB_TIMER_AUTOSTART #define PRINTJOB_TIMER_AUTOSTART
// /**
// Print Counter * Print Counter
// *
// When enabled Marlin will keep track of some print statistical data such as: * Track statistical data such as:
// - Total print jobs *
// - Total successful print jobs * - Total print jobs
// - Total failed print jobs * - Total successful print jobs
// - Total time printing * - Total failed print jobs
// * - Total time printing
// This information can be viewed by the M78 command. *
* View the current statistics with M78.
*/
//#define PRINTCOUNTER //#define PRINTCOUNTER
//============================================================================= //=============================================================================
@ -1090,78 +1086,79 @@
// @section lcd // @section lcd
// /**
// LCD LANGUAGE * LCD LANGUAGE
// *
// Here you may choose the language used by Marlin on the LCD menus, the following * Select the language to display on the LCD. These languages are available:
// list of languages are available: *
// en, an, bg, ca, cn, cz, de, el, el-gr, es, eu, fi, fr, gl, hr, it, * en, an, bg, ca, cn, cz, de, el, el-gr, es, eu, fi, fr, gl, hr, it,
// kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk, test * kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk, test
// *
// :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'test':'TEST' } * :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'test':'TEST' }
// */
//#define LCD_LANGUAGE en //#define LCD_LANGUAGE en
// /**
// LCD Character Set * LCD Character Set
// *
// Note: This option is NOT applicable to Graphical Displays. * Note: This option is NOT applicable to Graphical Displays.
// *
// All character-based LCD's provide ASCII plus one of these * All character-based LCDs provide ASCII plus one of these
// language extensions: * language extensions:
// *
// - JAPANESE ... the most common * - JAPANESE ... the most common
// - WESTERN ... with more accented characters * - WESTERN ... with more accented characters
// - CYRILLIC ... for the Russian language * - CYRILLIC ... for the Russian language
// *
// To determine the language extension installed on your controller: * To determine the language extension installed on your controller:
// *
// - Compile and upload with LCD_LANGUAGE set to 'test' * - Compile and upload with LCD_LANGUAGE set to 'test'
// - Click the controller to view the LCD menu * - Click the controller to view the LCD menu
// - The LCD will display Japanese, Western, or Cyrillic text * - The LCD will display Japanese, Western, or Cyrillic text
// *
// See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language * See https: *github.com/MarlinFirmware/Marlin/wiki/LCD-Language
// *
// :['JAPANESE', 'WESTERN', 'CYRILLIC'] * :['JAPANESE', 'WESTERN', 'CYRILLIC']
// */
#define DISPLAY_CHARSET_HD44780 JAPANESE #define DISPLAY_CHARSET_HD44780 JAPANESE
// /**
// LCD TYPE * LCD TYPE
// *
// You may choose ULTRA_LCD if you have character based LCD with 16x2, 16x4, 20x2, * Enable ULTRA_LCD for a 16x2, 16x4, 20x2, or 20x4 character-based LCD.
// 20x4 char/lines or DOGLCD for the full graphics display with 128x64 pixels * Enable DOGLCD for a 128x64 (ST7565R) Full Graphical Display.
// (ST7565R family). (This option will be set automatically for certain displays.) * (These options will be enabled automatically for most displays.)
// *
// IMPORTANT NOTE: The U8glib library is required for Full Graphic Display! * IMPORTANT: The U8glib library is required for Full Graphic Display!
// https://github.com/olikraus/U8glib_Arduino * https://github.com/olikraus/U8glib_Arduino
// */
//#define ULTRA_LCD // Character based //#define ULTRA_LCD // Character based
//#define DOGLCD // Full graphics display //#define DOGLCD // Full graphics display
// /**
// SD CARD * SD CARD
// *
// SD Card support is disabled by default. If your controller has an SD slot, * SD Card support is disabled by default. If your controller has an SD slot,
// you must uncomment the following option or it won't work. * you must uncomment the following option or it won't work.
// *
*/
//#define SDSUPPORT //#define SDSUPPORT
// /**
// SD CARD: SPI SPEED * SD CARD: SPI SPEED
// *
// Uncomment ONE of the following items to use a slower SPI transfer * Enable one of the following items for a slower SPI transfer speed.
// speed. This is usually required if you're getting volume init errors. * This may be required to resolve "volume init" errors.
// */
//#define SPI_SPEED SPI_HALF_SPEED //#define SPI_SPEED SPI_HALF_SPEED
//#define SPI_SPEED SPI_QUARTER_SPEED //#define SPI_SPEED SPI_QUARTER_SPEED
//#define SPI_SPEED SPI_EIGHTH_SPEED //#define SPI_SPEED SPI_EIGHTH_SPEED
// /**
// SD CARD: ENABLE CRC * SD CARD: ENABLE CRC
// *
// Use CRC checks and retries on the SD communication. * Use CRC checks and retries on the SD communication.
// */
//#define SD_CHECK_AND_RETRY //#define SD_CHECK_AND_RETRY
// //
@ -1189,7 +1186,7 @@
*/ */
// //
// This option reverses the encoder direction everywhere // This option reverses the encoder direction everywhere.
// //
// Set this option if CLOCKWISE causes values to DECREASE // Set this option if CLOCKWISE causes values to DECREASE
// //

@ -969,23 +969,17 @@
#define PREHEAT_2_TEMP_BED 100 #define PREHEAT_2_TEMP_BED 100
#define PREHEAT_2_FAN_SPEED 255 // Value from 0 to 255 #define PREHEAT_2_FAN_SPEED 255 // Value from 0 to 255
// /**
// Nozzle Park -- EXPERIMENTAL * Nozzle Park -- EXPERIMENTAL
// *
// When enabled allows the user to define a special XYZ position, inside the * Park the nozzle at the given XYZ position on idle or G27.
// machine's topology, to park the nozzle when idle or when receiving the G27 *
// command. * The "P" parameter controls the action applied to the Z axis:
// *
// The "P" paramenter controls what is the action applied to the Z axis: * P0 (Default) If Z is below park Z raise the nozzle.
// P0: (Default) If current Z-pos is lower than Z-park then the nozzle will * P1 Raise the nozzle always to Z-park height.
// be raised to reach Z-park height. * P2 Raise the nozzle by Z-park amount, limited to Z_MAX_POS.
// */
// P1: No matter the current Z-pos, the nozzle will be raised/lowered to
// reach Z-park height.
//
// P2: The nozzle height will be raised by Z-park amount but never going over
// the machine's limit of Z_MAX_POS.
//
//#define NOZZLE_PARK_FEATURE //#define NOZZLE_PARK_FEATURE
#if ENABLED(NOZZLE_PARK_FEATURE) #if ENABLED(NOZZLE_PARK_FEATURE)
@ -993,44 +987,44 @@
#define NOZZLE_PARK_POINT { (X_MIN_POS + 10), (Y_MAX_POS - 10), 20 } #define NOZZLE_PARK_POINT { (X_MIN_POS + 10), (Y_MAX_POS - 10), 20 }
#endif #endif
// /**
// Clean Nozzle Feature -- EXPERIMENTAL * Clean Nozzle Feature -- EXPERIMENTAL
// *
// When enabled allows the user to send G12 to start the nozzle cleaning * Adds the G12 command to perform a nozzle cleaning process.
// process, the G-Code accepts two parameters: *
// "P" for pattern selection * Parameters:
// "S" for defining the number of strokes/repetitions * P Pattern
// * S Strokes / Repetitions
// Available list of patterns: * T Triangles (P1 only)
// P0: This is the default pattern, this process requires a sponge type *
// material at a fixed bed location. S defines "strokes" i.e. * Patterns:
// back-and-forth movements between the starting and end points. * P0 Straight line (default). This process requires a sponge type material
// * at a fixed bed location. "S" specifies strokes (i.e. back-forth motions)
// P1: This starts a zig-zag pattern between (X0, Y0) and (X1, Y1), "T" * between the start / end points.
// defines the number of zig-zag triangles to be done. "S" defines the *
// number of strokes aka one back-and-forth movement. Zig-zags will * P1 Zig-zag pattern between (X0, Y0) and (X1, Y1), "T" specifies the
// be performed in whichever dimension is smallest. As an example, * number of zig-zag triangles to do. "S" defines the number of strokes.
// sending "G12 P1 S1 T3" will execute: * Zig-zags are done in whichever is the narrower dimension.
// * For example, "G12 P1 S1 T3" will execute:
// -- *
// | (X0, Y1) | /\ /\ /\ | (X1, Y1) * --
// | | / \ / \ / \ | * | (X0, Y1) | /\ /\ /\ | (X1, Y1)
// A | | / \ / \ / \ | * | | / \ / \ / \ |
// | | / \ / \ / \ | * A | | / \ / \ / \ |
// | (X0, Y0) | / \/ \/ \ | (X1, Y0) * | | / \ / \ / \ |
// -- +--------------------------------+ * | (X0, Y0) | / \/ \/ \ | (X1, Y0)
// |________|_________|_________| * -- +--------------------------------+
// T1 T2 T3 * |________|_________|_________|
// * T1 T2 T3
// P2: This starts a circular pattern with circle with middle in *
// NOZZLE_CLEAN_CIRCLE_MIDDLE radius of R and stroke count of S. * P2 Circular pattern with middle at NOZZLE_CLEAN_CIRCLE_MIDDLE.
// Before starting the circle nozzle goes to NOZZLE_CLEAN_START_POINT. * "R" specifies the radius. "S" specifies the stroke count.
// * Before starting, the nozzle moves to NOZZLE_CLEAN_START_POINT.
// Caveats: End point Z should use the same value as Start point Z. *
// * Caveats: The ending Z should be the same as starting Z.
// Attention: This is an EXPERIMENTAL feature, in the future the G-code arguments * Attention: EXPERIMENTAL. G-code arguments may change.
// may change to add new functionality like different wipe patterns. *
// */
//#define NOZZLE_CLEAN_FEATURE //#define NOZZLE_CLEAN_FEATURE
#if ENABLED(NOZZLE_CLEAN_FEATURE) #if ENABLED(NOZZLE_CLEAN_FEATURE)
@ -1055,33 +1049,35 @@
#define NOZZLE_CLEAN_GOBACK #define NOZZLE_CLEAN_GOBACK
#endif #endif
// /**
// Print job timer * Print Job Timer
// *
// Enable this option to automatically start and stop the * Automatically start and stop the print job timer on M104/M109/M190.
// print job timer when M104/M109/M190 commands are received. *
// M104 (extruder without wait) - high temp = none, low temp = stop timer * M104 (hotend, no wait) - high temp = none, low temp = stop timer
// M109 (extruder with wait) - high temp = start timer, low temp = stop timer * M109 (hotend, wait) - high temp = start timer, low temp = stop timer
// M190 (bed with wait) - high temp = start timer, low temp = none * M190 (bed, wait) - high temp = start timer, low temp = none
// *
// In all cases the timer can be started and stopped using * The timer can also be controlled with the following commands:
// the following commands: *
// * M75 - Start the print job timer
// - M75 - Start the print job timer * M76 - Pause the print job timer
// - M76 - Pause the print job timer * M77 - Stop the print job timer
// - M77 - Stop the print job timer */
#define PRINTJOB_TIMER_AUTOSTART #define PRINTJOB_TIMER_AUTOSTART
// /**
// Print Counter * Print Counter
// *
// When enabled Marlin will keep track of some print statistical data such as: * Track statistical data such as:
// - Total print jobs *
// - Total successful print jobs * - Total print jobs
// - Total failed print jobs * - Total successful print jobs
// - Total time printing * - Total failed print jobs
// * - Total time printing
// This information can be viewed by the M78 command. *
* View the current statistics with M78.
*/
//#define PRINTCOUNTER //#define PRINTCOUNTER
//============================================================================= //=============================================================================
@ -1090,78 +1086,79 @@
// @section lcd // @section lcd
// /**
// LCD LANGUAGE * LCD LANGUAGE
// *
// Here you may choose the language used by Marlin on the LCD menus, the following * Select the language to display on the LCD. These languages are available:
// list of languages are available: *
// en, an, bg, ca, cn, cz, de, el, el-gr, es, eu, fi, fr, gl, hr, it, * en, an, bg, ca, cn, cz, de, el, el-gr, es, eu, fi, fr, gl, hr, it,
// kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk, test * kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk, test
// *
// :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'test':'TEST' } * :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'test':'TEST' }
// */
//#define LCD_LANGUAGE en //#define LCD_LANGUAGE en
// /**
// LCD Character Set * LCD Character Set
// *
// Note: This option is NOT applicable to Graphical Displays. * Note: This option is NOT applicable to Graphical Displays.
// *
// All character-based LCD's provide ASCII plus one of these * All character-based LCDs provide ASCII plus one of these
// language extensions: * language extensions:
// *
// - JAPANESE ... the most common * - JAPANESE ... the most common
// - WESTERN ... with more accented characters * - WESTERN ... with more accented characters
// - CYRILLIC ... for the Russian language * - CYRILLIC ... for the Russian language
// *
// To determine the language extension installed on your controller: * To determine the language extension installed on your controller:
// *
// - Compile and upload with LCD_LANGUAGE set to 'test' * - Compile and upload with LCD_LANGUAGE set to 'test'
// - Click the controller to view the LCD menu * - Click the controller to view the LCD menu
// - The LCD will display Japanese, Western, or Cyrillic text * - The LCD will display Japanese, Western, or Cyrillic text
// *
// See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language * See https: *github.com/MarlinFirmware/Marlin/wiki/LCD-Language
// *
// :['JAPANESE', 'WESTERN', 'CYRILLIC'] * :['JAPANESE', 'WESTERN', 'CYRILLIC']
// */
#define DISPLAY_CHARSET_HD44780 JAPANESE #define DISPLAY_CHARSET_HD44780 JAPANESE
// /**
// LCD TYPE * LCD TYPE
// *
// You may choose ULTRA_LCD if you have character based LCD with 16x2, 16x4, 20x2, * Enable ULTRA_LCD for a 16x2, 16x4, 20x2, or 20x4 character-based LCD.
// 20x4 char/lines or DOGLCD for the full graphics display with 128x64 pixels * Enable DOGLCD for a 128x64 (ST7565R) Full Graphical Display.
// (ST7565R family). (This option will be set automatically for certain displays.) * (These options will be enabled automatically for most displays.)
// *
// IMPORTANT NOTE: The U8glib library is required for Full Graphic Display! * IMPORTANT: The U8glib library is required for Full Graphic Display!
// https://github.com/olikraus/U8glib_Arduino * https://github.com/olikraus/U8glib_Arduino
// */
//#define ULTRA_LCD // Character based //#define ULTRA_LCD // Character based
//#define DOGLCD // Full graphics display //#define DOGLCD // Full graphics display
// /**
// SD CARD * SD CARD
// *
// SD Card support is disabled by default. If your controller has an SD slot, * SD Card support is disabled by default. If your controller has an SD slot,
// you must uncomment the following option or it won't work. * you must uncomment the following option or it won't work.
// *
*/
//#define SDSUPPORT //#define SDSUPPORT
// /**
// SD CARD: SPI SPEED * SD CARD: SPI SPEED
// *
// Uncomment ONE of the following items to use a slower SPI transfer * Enable one of the following items for a slower SPI transfer speed.
// speed. This is usually required if you're getting volume init errors. * This may be required to resolve "volume init" errors.
// */
//#define SPI_SPEED SPI_HALF_SPEED //#define SPI_SPEED SPI_HALF_SPEED
//#define SPI_SPEED SPI_QUARTER_SPEED //#define SPI_SPEED SPI_QUARTER_SPEED
//#define SPI_SPEED SPI_EIGHTH_SPEED //#define SPI_SPEED SPI_EIGHTH_SPEED
// /**
// SD CARD: ENABLE CRC * SD CARD: ENABLE CRC
// *
// Use CRC checks and retries on the SD communication. * Use CRC checks and retries on the SD communication.
// */
//#define SD_CHECK_AND_RETRY //#define SD_CHECK_AND_RETRY
// //
@ -1189,7 +1186,7 @@
*/ */
// //
// This option reverses the encoder direction everywhere // This option reverses the encoder direction everywhere.
// //
// Set this option if CLOCKWISE causes values to DECREASE // Set this option if CLOCKWISE causes values to DECREASE
// //

@ -991,23 +991,17 @@
#define PREHEAT_2_TEMP_BED 110 #define PREHEAT_2_TEMP_BED 110
#define PREHEAT_2_FAN_SPEED 0 // Value from 0 to 255 #define PREHEAT_2_FAN_SPEED 0 // Value from 0 to 255
// /**
// Nozzle Park -- EXPERIMENTAL * Nozzle Park -- EXPERIMENTAL
// *
// When enabled allows the user to define a special XYZ position, inside the * Park the nozzle at the given XYZ position on idle or G27.
// machine's topology, to park the nozzle when idle or when receiving the G27 *
// command. * The "P" parameter controls the action applied to the Z axis:
// *
// The "P" paramenter controls what is the action applied to the Z axis: * P0 (Default) If Z is below park Z raise the nozzle.
// P0: (Default) If current Z-pos is lower than Z-park then the nozzle will * P1 Raise the nozzle always to Z-park height.
// be raised to reach Z-park height. * P2 Raise the nozzle by Z-park amount, limited to Z_MAX_POS.
// */
// P1: No matter the current Z-pos, the nozzle will be raised/lowered to
// reach Z-park height.
//
// P2: The nozzle height will be raised by Z-park amount but never going over
// the machine's limit of Z_MAX_POS.
//
//#define NOZZLE_PARK_FEATURE //#define NOZZLE_PARK_FEATURE
#if ENABLED(NOZZLE_PARK_FEATURE) #if ENABLED(NOZZLE_PARK_FEATURE)
@ -1015,44 +1009,44 @@
#define NOZZLE_PARK_POINT { (X_MIN_POS + 10), (Y_MAX_POS - 10), 20 } #define NOZZLE_PARK_POINT { (X_MIN_POS + 10), (Y_MAX_POS - 10), 20 }
#endif #endif
// /**
// Clean Nozzle Feature -- EXPERIMENTAL * Clean Nozzle Feature -- EXPERIMENTAL
// *
// When enabled allows the user to send G12 to start the nozzle cleaning * Adds the G12 command to perform a nozzle cleaning process.
// process, the G-Code accepts two parameters: *
// "P" for pattern selection * Parameters:
// "S" for defining the number of strokes/repetitions * P Pattern
// * S Strokes / Repetitions
// Available list of patterns: * T Triangles (P1 only)
// P0: This is the default pattern, this process requires a sponge type *
// material at a fixed bed location. S defines "strokes" i.e. * Patterns:
// back-and-forth movements between the starting and end points. * P0 Straight line (default). This process requires a sponge type material
// * at a fixed bed location. "S" specifies strokes (i.e. back-forth motions)
// P1: This starts a zig-zag pattern between (X0, Y0) and (X1, Y1), "T" * between the start / end points.
// defines the number of zig-zag triangles to be done. "S" defines the *
// number of strokes aka one back-and-forth movement. Zig-zags will * P1 Zig-zag pattern between (X0, Y0) and (X1, Y1), "T" specifies the
// be performed in whichever dimension is smallest. As an example, * number of zig-zag triangles to do. "S" defines the number of strokes.
// sending "G12 P1 S1 T3" will execute: * Zig-zags are done in whichever is the narrower dimension.
// * For example, "G12 P1 S1 T3" will execute:
// -- *
// | (X0, Y1) | /\ /\ /\ | (X1, Y1) * --
// | | / \ / \ / \ | * | (X0, Y1) | /\ /\ /\ | (X1, Y1)
// A | | / \ / \ / \ | * | | / \ / \ / \ |
// | | / \ / \ / \ | * A | | / \ / \ / \ |
// | (X0, Y0) | / \/ \/ \ | (X1, Y0) * | | / \ / \ / \ |
// -- +--------------------------------+ * | (X0, Y0) | / \/ \/ \ | (X1, Y0)
// |________|_________|_________| * -- +--------------------------------+
// T1 T2 T3 * |________|_________|_________|
// * T1 T2 T3
// P2: This starts a circular pattern with circle with middle in *
// NOZZLE_CLEAN_CIRCLE_MIDDLE radius of R and stroke count of S. * P2 Circular pattern with middle at NOZZLE_CLEAN_CIRCLE_MIDDLE.
// Before starting the circle nozzle goes to NOZZLE_CLEAN_START_POINT. * "R" specifies the radius. "S" specifies the stroke count.
// * Before starting, the nozzle moves to NOZZLE_CLEAN_START_POINT.
// Caveats: End point Z should use the same value as Start point Z. *
// * Caveats: The ending Z should be the same as starting Z.
// Attention: This is an EXPERIMENTAL feature, in the future the G-code arguments * Attention: EXPERIMENTAL. G-code arguments may change.
// may change to add new functionality like different wipe patterns. *
// */
//#define NOZZLE_CLEAN_FEATURE //#define NOZZLE_CLEAN_FEATURE
#if ENABLED(NOZZLE_CLEAN_FEATURE) #if ENABLED(NOZZLE_CLEAN_FEATURE)
@ -1077,33 +1071,35 @@
#define NOZZLE_CLEAN_GOBACK #define NOZZLE_CLEAN_GOBACK
#endif #endif
// /**
// Print job timer * Print Job Timer
// *
// Enable this option to automatically start and stop the * Automatically start and stop the print job timer on M104/M109/M190.
// print job timer when M104/M109/M190 commands are received. *
// M104 (extruder without wait) - high temp = none, low temp = stop timer * M104 (hotend, no wait) - high temp = none, low temp = stop timer
// M109 (extruder with wait) - high temp = start timer, low temp = stop timer * M109 (hotend, wait) - high temp = start timer, low temp = stop timer
// M190 (bed with wait) - high temp = start timer, low temp = none * M190 (bed, wait) - high temp = start timer, low temp = none
// *
// In all cases the timer can be started and stopped using * The timer can also be controlled with the following commands:
// the following commands: *
// * M75 - Start the print job timer
// - M75 - Start the print job timer * M76 - Pause the print job timer
// - M76 - Pause the print job timer * M77 - Stop the print job timer
// - M77 - Stop the print job timer */
#define PRINTJOB_TIMER_AUTOSTART #define PRINTJOB_TIMER_AUTOSTART
// /**
// Print Counter * Print Counter
// *
// When enabled Marlin will keep track of some print statistical data such as: * Track statistical data such as:
// - Total print jobs *
// - Total successful print jobs * - Total print jobs
// - Total failed print jobs * - Total successful print jobs
// - Total time printing * - Total failed print jobs
// * - Total time printing
// This information can be viewed by the M78 command. *
* View the current statistics with M78.
*/
//#define PRINTCOUNTER //#define PRINTCOUNTER
//============================================================================= //=============================================================================
@ -1112,78 +1108,79 @@
// @section lcd // @section lcd
// /**
// LCD LANGUAGE * LCD LANGUAGE
// *
// Here you may choose the language used by Marlin on the LCD menus, the following * Select the language to display on the LCD. These languages are available:
// list of languages are available: *
// en, an, bg, ca, cn, cz, de, el, el-gr, es, eu, fi, fr, gl, hr, it, * en, an, bg, ca, cn, cz, de, el, el-gr, es, eu, fi, fr, gl, hr, it,
// kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk, test * kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk, test
// *
// :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'test':'TEST' } * :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'test':'TEST' }
// */
#define LCD_LANGUAGE en #define LCD_LANGUAGE en
// /**
// LCD Character Set * LCD Character Set
// *
// Note: This option is NOT applicable to Graphical Displays. * Note: This option is NOT applicable to Graphical Displays.
// *
// All character-based LCD's provide ASCII plus one of these * All character-based LCDs provide ASCII plus one of these
// language extensions: * language extensions:
// *
// - JAPANESE ... the most common * - JAPANESE ... the most common
// - WESTERN ... with more accented characters * - WESTERN ... with more accented characters
// - CYRILLIC ... for the Russian language * - CYRILLIC ... for the Russian language
// *
// To determine the language extension installed on your controller: * To determine the language extension installed on your controller:
// *
// - Compile and upload with LCD_LANGUAGE set to 'test' * - Compile and upload with LCD_LANGUAGE set to 'test'
// - Click the controller to view the LCD menu * - Click the controller to view the LCD menu
// - The LCD will display Japanese, Western, or Cyrillic text * - The LCD will display Japanese, Western, or Cyrillic text
// *
// See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language * See https: *github.com/MarlinFirmware/Marlin/wiki/LCD-Language
// *
// :['JAPANESE', 'WESTERN', 'CYRILLIC'] * :['JAPANESE', 'WESTERN', 'CYRILLIC']
// */
#define DISPLAY_CHARSET_HD44780 JAPANESE #define DISPLAY_CHARSET_HD44780 JAPANESE
// /**
// LCD TYPE * LCD TYPE
// *
// You may choose ULTRA_LCD if you have character based LCD with 16x2, 16x4, 20x2, * Enable ULTRA_LCD for a 16x2, 16x4, 20x2, or 20x4 character-based LCD.
// 20x4 char/lines or DOGLCD for the full graphics display with 128x64 pixels * Enable DOGLCD for a 128x64 (ST7565R) Full Graphical Display.
// (ST7565R family). (This option will be set automatically for certain displays.) * (These options will be enabled automatically for most displays.)
// *
// IMPORTANT NOTE: The U8glib library is required for Full Graphic Display! * IMPORTANT: The U8glib library is required for Full Graphic Display!
// https://github.com/olikraus/U8glib_Arduino * https://github.com/olikraus/U8glib_Arduino
// */
//#define ULTRA_LCD // Character based //#define ULTRA_LCD // Character based
//#define DOGLCD // Full graphics display //#define DOGLCD // Full graphics display
// /**
// SD CARD * SD CARD
// *
// SD Card support is disabled by default. If your controller has an SD slot, * SD Card support is disabled by default. If your controller has an SD slot,
// you must uncomment the following option or it won't work. * you must uncomment the following option or it won't work.
// *
*/
#define SDSUPPORT #define SDSUPPORT
// /**
// SD CARD: SPI SPEED * SD CARD: SPI SPEED
// *
// Uncomment ONE of the following items to use a slower SPI transfer * Enable one of the following items for a slower SPI transfer speed.
// speed. This is usually required if you're getting volume init errors. * This may be required to resolve "volume init" errors.
// */
//#define SPI_SPEED SPI_HALF_SPEED //#define SPI_SPEED SPI_HALF_SPEED
//#define SPI_SPEED SPI_QUARTER_SPEED //#define SPI_SPEED SPI_QUARTER_SPEED
//#define SPI_SPEED SPI_EIGHTH_SPEED //#define SPI_SPEED SPI_EIGHTH_SPEED
// /**
// SD CARD: ENABLE CRC * SD CARD: ENABLE CRC
// *
// Use CRC checks and retries on the SD communication. * Use CRC checks and retries on the SD communication.
// */
#define SD_CHECK_AND_RETRY #define SD_CHECK_AND_RETRY
// //
@ -1211,7 +1208,7 @@
*/ */
// //
// This option reverses the encoder direction everywhere // This option reverses the encoder direction everywhere.
// //
// Set this option if CLOCKWISE causes values to DECREASE // Set this option if CLOCKWISE causes values to DECREASE
// //

@ -977,23 +977,17 @@
#define PREHEAT_2_TEMP_BED 100 #define PREHEAT_2_TEMP_BED 100
#define PREHEAT_2_FAN_SPEED 255 // Value from 0 to 255 #define PREHEAT_2_FAN_SPEED 255 // Value from 0 to 255
// /**
// Nozzle Park -- EXPERIMENTAL * Nozzle Park -- EXPERIMENTAL
// *
// When enabled allows the user to define a special XYZ position, inside the * Park the nozzle at the given XYZ position on idle or G27.
// machine's topology, to park the nozzle when idle or when receiving the G27 *
// command. * The "P" parameter controls the action applied to the Z axis:
// *
// The "P" paramenter controls what is the action applied to the Z axis: * P0 (Default) If Z is below park Z raise the nozzle.
// P0: (Default) If current Z-pos is lower than Z-park then the nozzle will * P1 Raise the nozzle always to Z-park height.
// be raised to reach Z-park height. * P2 Raise the nozzle by Z-park amount, limited to Z_MAX_POS.
// */
// P1: No matter the current Z-pos, the nozzle will be raised/lowered to
// reach Z-park height.
//
// P2: The nozzle height will be raised by Z-park amount but never going over
// the machine's limit of Z_MAX_POS.
//
//#define NOZZLE_PARK_FEATURE //#define NOZZLE_PARK_FEATURE
#if ENABLED(NOZZLE_PARK_FEATURE) #if ENABLED(NOZZLE_PARK_FEATURE)
@ -1001,44 +995,44 @@
#define NOZZLE_PARK_POINT { (X_MIN_POS + 10), (Y_MAX_POS - 10), 20 } #define NOZZLE_PARK_POINT { (X_MIN_POS + 10), (Y_MAX_POS - 10), 20 }
#endif #endif
// /**
// Clean Nozzle Feature -- EXPERIMENTAL * Clean Nozzle Feature -- EXPERIMENTAL
// *
// When enabled allows the user to send G12 to start the nozzle cleaning * Adds the G12 command to perform a nozzle cleaning process.
// process, the G-Code accepts two parameters: *
// "P" for pattern selection * Parameters:
// "S" for defining the number of strokes/repetitions * P Pattern
// * S Strokes / Repetitions
// Available list of patterns: * T Triangles (P1 only)
// P0: This is the default pattern, this process requires a sponge type *
// material at a fixed bed location. S defines "strokes" i.e. * Patterns:
// back-and-forth movements between the starting and end points. * P0 Straight line (default). This process requires a sponge type material
// * at a fixed bed location. "S" specifies strokes (i.e. back-forth motions)
// P1: This starts a zig-zag pattern between (X0, Y0) and (X1, Y1), "T" * between the start / end points.
// defines the number of zig-zag triangles to be done. "S" defines the *
// number of strokes aka one back-and-forth movement. Zig-zags will * P1 Zig-zag pattern between (X0, Y0) and (X1, Y1), "T" specifies the
// be performed in whichever dimension is smallest. As an example, * number of zig-zag triangles to do. "S" defines the number of strokes.
// sending "G12 P1 S1 T3" will execute: * Zig-zags are done in whichever is the narrower dimension.
// * For example, "G12 P1 S1 T3" will execute:
// -- *
// | (X0, Y1) | /\ /\ /\ | (X1, Y1) * --
// | | / \ / \ / \ | * | (X0, Y1) | /\ /\ /\ | (X1, Y1)
// A | | / \ / \ / \ | * | | / \ / \ / \ |
// | | / \ / \ / \ | * A | | / \ / \ / \ |
// | (X0, Y0) | / \/ \/ \ | (X1, Y0) * | | / \ / \ / \ |
// -- +--------------------------------+ * | (X0, Y0) | / \/ \/ \ | (X1, Y0)
// |________|_________|_________| * -- +--------------------------------+
// T1 T2 T3 * |________|_________|_________|
// * T1 T2 T3
// P2: This starts a circular pattern with circle with middle in *
// NOZZLE_CLEAN_CIRCLE_MIDDLE radius of R and stroke count of S. * P2 Circular pattern with middle at NOZZLE_CLEAN_CIRCLE_MIDDLE.
// Before starting the circle nozzle goes to NOZZLE_CLEAN_START_POINT. * "R" specifies the radius. "S" specifies the stroke count.
// * Before starting, the nozzle moves to NOZZLE_CLEAN_START_POINT.
// Caveats: End point Z should use the same value as Start point Z. *
// * Caveats: The ending Z should be the same as starting Z.
// Attention: This is an EXPERIMENTAL feature, in the future the G-code arguments * Attention: EXPERIMENTAL. G-code arguments may change.
// may change to add new functionality like different wipe patterns. *
// */
//#define NOZZLE_CLEAN_FEATURE //#define NOZZLE_CLEAN_FEATURE
#if ENABLED(NOZZLE_CLEAN_FEATURE) #if ENABLED(NOZZLE_CLEAN_FEATURE)
@ -1063,33 +1057,35 @@
#define NOZZLE_CLEAN_GOBACK #define NOZZLE_CLEAN_GOBACK
#endif #endif
// /**
// Print job timer * Print Job Timer
// *
// Enable this option to automatically start and stop the * Automatically start and stop the print job timer on M104/M109/M190.
// print job timer when M104/M109/M190 commands are received. *
// M104 (extruder without wait) - high temp = none, low temp = stop timer * M104 (hotend, no wait) - high temp = none, low temp = stop timer
// M109 (extruder with wait) - high temp = start timer, low temp = stop timer * M109 (hotend, wait) - high temp = start timer, low temp = stop timer
// M190 (bed with wait) - high temp = start timer, low temp = none * M190 (bed, wait) - high temp = start timer, low temp = none
// *
// In all cases the timer can be started and stopped using * The timer can also be controlled with the following commands:
// the following commands: *
// * M75 - Start the print job timer
// - M75 - Start the print job timer * M76 - Pause the print job timer
// - M76 - Pause the print job timer * M77 - Stop the print job timer
// - M77 - Stop the print job timer */
#define PRINTJOB_TIMER_AUTOSTART #define PRINTJOB_TIMER_AUTOSTART
// /**
// Print Counter * Print Counter
// *
// When enabled Marlin will keep track of some print statistical data such as: * Track statistical data such as:
// - Total print jobs *
// - Total successful print jobs * - Total print jobs
// - Total failed print jobs * - Total successful print jobs
// - Total time printing * - Total failed print jobs
// * - Total time printing
// This information can be viewed by the M78 command. *
* View the current statistics with M78.
*/
//#define PRINTCOUNTER //#define PRINTCOUNTER
//============================================================================= //=============================================================================
@ -1098,78 +1094,79 @@
// @section lcd // @section lcd
// /**
// LCD LANGUAGE * LCD LANGUAGE
// *
// Here you may choose the language used by Marlin on the LCD menus, the following * Select the language to display on the LCD. These languages are available:
// list of languages are available: *
// en, an, bg, ca, cn, cz, de, el, el-gr, es, eu, fi, fr, gl, hr, it, * en, an, bg, ca, cn, cz, de, el, el-gr, es, eu, fi, fr, gl, hr, it,
// kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk, test * kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk, test
// *
// :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'test':'TEST' } * :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'test':'TEST' }
// */
//#define LCD_LANGUAGE en //#define LCD_LANGUAGE en
// /**
// LCD Character Set * LCD Character Set
// *
// Note: This option is NOT applicable to Graphical Displays. * Note: This option is NOT applicable to Graphical Displays.
// *
// All character-based LCD's provide ASCII plus one of these * All character-based LCDs provide ASCII plus one of these
// language extensions: * language extensions:
// *
// - JAPANESE ... the most common * - JAPANESE ... the most common
// - WESTERN ... with more accented characters * - WESTERN ... with more accented characters
// - CYRILLIC ... for the Russian language * - CYRILLIC ... for the Russian language
// *
// To determine the language extension installed on your controller: * To determine the language extension installed on your controller:
// *
// - Compile and upload with LCD_LANGUAGE set to 'test' * - Compile and upload with LCD_LANGUAGE set to 'test'
// - Click the controller to view the LCD menu * - Click the controller to view the LCD menu
// - The LCD will display Japanese, Western, or Cyrillic text * - The LCD will display Japanese, Western, or Cyrillic text
// *
// See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language * See https: *github.com/MarlinFirmware/Marlin/wiki/LCD-Language
// *
// :['JAPANESE', 'WESTERN', 'CYRILLIC'] * :['JAPANESE', 'WESTERN', 'CYRILLIC']
// */
#define DISPLAY_CHARSET_HD44780 JAPANESE #define DISPLAY_CHARSET_HD44780 JAPANESE
// /**
// LCD TYPE * LCD TYPE
// *
// You may choose ULTRA_LCD if you have character based LCD with 16x2, 16x4, 20x2, * Enable ULTRA_LCD for a 16x2, 16x4, 20x2, or 20x4 character-based LCD.
// 20x4 char/lines or DOGLCD for the full graphics display with 128x64 pixels * Enable DOGLCD for a 128x64 (ST7565R) Full Graphical Display.
// (ST7565R family). (This option will be set automatically for certain displays.) * (These options will be enabled automatically for most displays.)
// *
// IMPORTANT NOTE: The U8glib library is required for Full Graphic Display! * IMPORTANT: The U8glib library is required for Full Graphic Display!
// https://github.com/olikraus/U8glib_Arduino * https://github.com/olikraus/U8glib_Arduino
// */
#define ULTRA_LCD // Character based #define ULTRA_LCD // Character based
//#define DOGLCD // Full graphics display //#define DOGLCD // Full graphics display
// /**
// SD CARD * SD CARD
// *
// SD Card support is disabled by default. If your controller has an SD slot, * SD Card support is disabled by default. If your controller has an SD slot,
// you must uncomment the following option or it won't work. * you must uncomment the following option or it won't work.
// *
*/
#define SDSUPPORT #define SDSUPPORT
// /**
// SD CARD: SPI SPEED * SD CARD: SPI SPEED
// *
// Uncomment ONE of the following items to use a slower SPI transfer * Enable one of the following items for a slower SPI transfer speed.
// speed. This is usually required if you're getting volume init errors. * This may be required to resolve "volume init" errors.
// */
//#define SPI_SPEED SPI_HALF_SPEED //#define SPI_SPEED SPI_HALF_SPEED
//#define SPI_SPEED SPI_QUARTER_SPEED //#define SPI_SPEED SPI_QUARTER_SPEED
//#define SPI_SPEED SPI_EIGHTH_SPEED //#define SPI_SPEED SPI_EIGHTH_SPEED
// /**
// SD CARD: ENABLE CRC * SD CARD: ENABLE CRC
// *
// Use CRC checks and retries on the SD communication. * Use CRC checks and retries on the SD communication.
// */
//#define SD_CHECK_AND_RETRY //#define SD_CHECK_AND_RETRY
// //
@ -1197,7 +1194,7 @@
*/ */
// //
// This option reverses the encoder direction everywhere // This option reverses the encoder direction everywhere.
// //
// Set this option if CLOCKWISE causes values to DECREASE // Set this option if CLOCKWISE causes values to DECREASE
// //

@ -980,23 +980,17 @@
#define PREHEAT_2_TEMP_BED 110 #define PREHEAT_2_TEMP_BED 110
#define PREHEAT_2_FAN_SPEED 0 // Value from 0 to 255 #define PREHEAT_2_FAN_SPEED 0 // Value from 0 to 255
// /**
// Nozzle Park -- EXPERIMENTAL * Nozzle Park -- EXPERIMENTAL
// *
// When enabled allows the user to define a special XYZ position, inside the * Park the nozzle at the given XYZ position on idle or G27.
// machine's topology, to park the nozzle when idle or when receiving the G27 *
// command. * The "P" parameter controls the action applied to the Z axis:
// *
// The "P" paramenter controls what is the action applied to the Z axis: * P0 (Default) If Z is below park Z raise the nozzle.
// P0: (Default) If current Z-pos is lower than Z-park then the nozzle will * P1 Raise the nozzle always to Z-park height.
// be raised to reach Z-park height. * P2 Raise the nozzle by Z-park amount, limited to Z_MAX_POS.
// */
// P1: No matter the current Z-pos, the nozzle will be raised/lowered to
// reach Z-park height.
//
// P2: The nozzle height will be raised by Z-park amount but never going over
// the machine's limit of Z_MAX_POS.
//
#define NOZZLE_PARK_FEATURE #define NOZZLE_PARK_FEATURE
#if ENABLED(NOZZLE_PARK_FEATURE) #if ENABLED(NOZZLE_PARK_FEATURE)
@ -1004,44 +998,44 @@
#define NOZZLE_PARK_POINT { (X_MIN_POS + 10), (Y_MAX_POS - 10), 10 } #define NOZZLE_PARK_POINT { (X_MIN_POS + 10), (Y_MAX_POS - 10), 10 }
#endif #endif
// /**
// Clean Nozzle Feature -- EXPERIMENTAL * Clean Nozzle Feature -- EXPERIMENTAL
// *
// When enabled allows the user to send G12 to start the nozzle cleaning * Adds the G12 command to perform a nozzle cleaning process.
// process, the G-Code accepts two parameters: *
// "P" for pattern selection * Parameters:
// "S" for defining the number of strokes/repetitions * P Pattern
// * S Strokes / Repetitions
// Available list of patterns: * T Triangles (P1 only)
// P0: This is the default pattern, this process requires a sponge type *
// material at a fixed bed location. S defines "strokes" i.e. * Patterns:
// back-and-forth movements between the starting and end points. * P0 Straight line (default). This process requires a sponge type material
// * at a fixed bed location. "S" specifies strokes (i.e. back-forth motions)
// P1: This starts a zig-zag pattern between (X0, Y0) and (X1, Y1), "T" * between the start / end points.
// defines the number of zig-zag triangles to be done. "S" defines the *
// number of strokes aka one back-and-forth movement. Zig-zags will * P1 Zig-zag pattern between (X0, Y0) and (X1, Y1), "T" specifies the
// be performed in whichever dimension is smallest. As an example, * number of zig-zag triangles to do. "S" defines the number of strokes.
// sending "G12 P1 S1 T3" will execute: * Zig-zags are done in whichever is the narrower dimension.
// * For example, "G12 P1 S1 T3" will execute:
// -- *
// | (X0, Y1) | /\ /\ /\ | (X1, Y1) * --
// | | / \ / \ / \ | * | (X0, Y1) | /\ /\ /\ | (X1, Y1)
// A | | / \ / \ / \ | * | | / \ / \ / \ |
// | | / \ / \ / \ | * A | | / \ / \ / \ |
// | (X0, Y0) | / \/ \/ \ | (X1, Y0) * | | / \ / \ / \ |
// -- +--------------------------------+ * | (X0, Y0) | / \/ \/ \ | (X1, Y0)
// |________|_________|_________| * -- +--------------------------------+
// T1 T2 T3 * |________|_________|_________|
// * T1 T2 T3
// P2: This starts a circular pattern with circle with middle in *
// NOZZLE_CLEAN_CIRCLE_MIDDLE radius of R and stroke count of S. * P2 Circular pattern with middle at NOZZLE_CLEAN_CIRCLE_MIDDLE.
// Before starting the circle nozzle goes to NOZZLE_CLEAN_START_POINT. * "R" specifies the radius. "S" specifies the stroke count.
// * Before starting, the nozzle moves to NOZZLE_CLEAN_START_POINT.
// Caveats: End point Z should use the same value as Start point Z. *
// * Caveats: The ending Z should be the same as starting Z.
// Attention: This is an EXPERIMENTAL feature, in the future the G-code arguments * Attention: EXPERIMENTAL. G-code arguments may change.
// may change to add new functionality like different wipe patterns. *
// */
#define NOZZLE_CLEAN_FEATURE #define NOZZLE_CLEAN_FEATURE
#if ENABLED(NOZZLE_CLEAN_FEATURE) #if ENABLED(NOZZLE_CLEAN_FEATURE)
@ -1066,33 +1060,35 @@
//#define NOZZLE_CLEAN_GOBACK //#define NOZZLE_CLEAN_GOBACK
#endif #endif
// /**
// Print job timer * Print Job Timer
// *
// Enable this option to automatically start and stop the * Automatically start and stop the print job timer on M104/M109/M190.
// print job timer when M104/M109/M190 commands are received. *
// M104 (extruder without wait) - high temp = none, low temp = stop timer * M104 (hotend, no wait) - high temp = none, low temp = stop timer
// M109 (extruder with wait) - high temp = start timer, low temp = stop timer * M109 (hotend, wait) - high temp = start timer, low temp = stop timer
// M190 (bed with wait) - high temp = start timer, low temp = none * M190 (bed, wait) - high temp = start timer, low temp = none
// *
// In all cases the timer can be started and stopped using * The timer can also be controlled with the following commands:
// the following commands: *
// * M75 - Start the print job timer
// - M75 - Start the print job timer * M76 - Pause the print job timer
// - M76 - Pause the print job timer * M77 - Stop the print job timer
// - M77 - Stop the print job timer */
#define PRINTJOB_TIMER_AUTOSTART #define PRINTJOB_TIMER_AUTOSTART
// /**
// Print Counter * Print Counter
// *
// When enabled Marlin will keep track of some print statistical data such as: * Track statistical data such as:
// - Total print jobs *
// - Total successful print jobs * - Total print jobs
// - Total failed print jobs * - Total successful print jobs
// - Total time printing * - Total failed print jobs
// * - Total time printing
// This information can be viewed by the M78 command. *
* View the current statistics with M78.
*/
#define PRINTCOUNTER #define PRINTCOUNTER
//============================================================================= //=============================================================================
@ -1101,78 +1097,79 @@
// @section lcd // @section lcd
// /**
// LCD LANGUAGE * LCD LANGUAGE
// *
// Here you may choose the language used by Marlin on the LCD menus, the following * Select the language to display on the LCD. These languages are available:
// list of languages are available: *
// en, an, bg, ca, cn, cz, de, el, el-gr, es, eu, fi, fr, gl, hr, it, * en, an, bg, ca, cn, cz, de, el, el-gr, es, eu, fi, fr, gl, hr, it,
// kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk, test * kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk, test
// *
// :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'test':'TEST' } * :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'test':'TEST' }
// */
#define LCD_LANGUAGE en #define LCD_LANGUAGE en
// /**
// LCD Character Set * LCD Character Set
// *
// Note: This option is NOT applicable to Graphical Displays. * Note: This option is NOT applicable to Graphical Displays.
// *
// All character-based LCD's provide ASCII plus one of these * All character-based LCDs provide ASCII plus one of these
// language extensions: * language extensions:
// *
// - JAPANESE ... the most common * - JAPANESE ... the most common
// - WESTERN ... with more accented characters * - WESTERN ... with more accented characters
// - CYRILLIC ... for the Russian language * - CYRILLIC ... for the Russian language
// *
// To determine the language extension installed on your controller: * To determine the language extension installed on your controller:
// *
// - Compile and upload with LCD_LANGUAGE set to 'test' * - Compile and upload with LCD_LANGUAGE set to 'test'
// - Click the controller to view the LCD menu * - Click the controller to view the LCD menu
// - The LCD will display Japanese, Western, or Cyrillic text * - The LCD will display Japanese, Western, or Cyrillic text
// *
// See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language * See https: *github.com/MarlinFirmware/Marlin/wiki/LCD-Language
// *
// :['JAPANESE', 'WESTERN', 'CYRILLIC'] * :['JAPANESE', 'WESTERN', 'CYRILLIC']
// */
#define DISPLAY_CHARSET_HD44780 JAPANESE #define DISPLAY_CHARSET_HD44780 JAPANESE
// /**
// LCD TYPE * LCD TYPE
// *
// You may choose ULTRA_LCD if you have character based LCD with 16x2, 16x4, 20x2, * Enable ULTRA_LCD for a 16x2, 16x4, 20x2, or 20x4 character-based LCD.
// 20x4 char/lines or DOGLCD for the full graphics display with 128x64 pixels * Enable DOGLCD for a 128x64 (ST7565R) Full Graphical Display.
// (ST7565R family). (This option will be set automatically for certain displays.) * (These options will be enabled automatically for most displays.)
// *
// IMPORTANT NOTE: The U8glib library is required for Full Graphic Display! * IMPORTANT: The U8glib library is required for Full Graphic Display!
// https://github.com/olikraus/U8glib_Arduino * https://github.com/olikraus/U8glib_Arduino
// */
//#define ULTRA_LCD // Character based //#define ULTRA_LCD // Character based
//#define DOGLCD // Full graphics display //#define DOGLCD // Full graphics display
// /**
// SD CARD * SD CARD
// *
// SD Card support is disabled by default. If your controller has an SD slot, * SD Card support is disabled by default. If your controller has an SD slot,
// you must uncomment the following option or it won't work. * you must uncomment the following option or it won't work.
// *
*/
#define SDSUPPORT #define SDSUPPORT
// /**
// SD CARD: SPI SPEED * SD CARD: SPI SPEED
// *
// Uncomment ONE of the following items to use a slower SPI transfer * Enable one of the following items for a slower SPI transfer speed.
// speed. This is usually required if you're getting volume init errors. * This may be required to resolve "volume init" errors.
// */
//#define SPI_SPEED SPI_HALF_SPEED //#define SPI_SPEED SPI_HALF_SPEED
//#define SPI_SPEED SPI_QUARTER_SPEED //#define SPI_SPEED SPI_QUARTER_SPEED
//#define SPI_SPEED SPI_EIGHTH_SPEED //#define SPI_SPEED SPI_EIGHTH_SPEED
// /**
// SD CARD: ENABLE CRC * SD CARD: ENABLE CRC
// *
// Use CRC checks and retries on the SD communication. * Use CRC checks and retries on the SD communication.
// */
#define SD_CHECK_AND_RETRY #define SD_CHECK_AND_RETRY
// //
@ -1200,7 +1197,7 @@
*/ */
// //
// This option reverses the encoder direction everywhere // This option reverses the encoder direction everywhere.
// //
// Set this option if CLOCKWISE causes values to DECREASE // Set this option if CLOCKWISE causes values to DECREASE
// //

@ -1015,23 +1015,17 @@
#define PREHEAT_2_TEMP_BED 60 // K8200: ABS / set back to 110 if you have an upgraded heatbed power supply #define PREHEAT_2_TEMP_BED 60 // K8200: ABS / set back to 110 if you have an upgraded heatbed power supply
#define PREHEAT_2_FAN_SPEED 0 // Value from 0 to 255 #define PREHEAT_2_FAN_SPEED 0 // Value from 0 to 255
// /**
// Nozzle Park -- EXPERIMENTAL * Nozzle Park -- EXPERIMENTAL
// *
// When enabled allows the user to define a special XYZ position, inside the * Park the nozzle at the given XYZ position on idle or G27.
// machine's topology, to park the nozzle when idle or when receiving the G27 *
// command. * The "P" parameter controls the action applied to the Z axis:
// *
// The "P" paramenter controls what is the action applied to the Z axis: * P0 (Default) If Z is below park Z raise the nozzle.
// P0: (Default) If current Z-pos is lower than Z-park then the nozzle will * P1 Raise the nozzle always to Z-park height.
// be raised to reach Z-park height. * P2 Raise the nozzle by Z-park amount, limited to Z_MAX_POS.
// */
// P1: No matter the current Z-pos, the nozzle will be raised/lowered to
// reach Z-park height.
//
// P2: The nozzle height will be raised by Z-park amount but never going over
// the machine's limit of Z_MAX_POS.
//
//#define NOZZLE_PARK_FEATURE //#define NOZZLE_PARK_FEATURE
#if ENABLED(NOZZLE_PARK_FEATURE) #if ENABLED(NOZZLE_PARK_FEATURE)
@ -1039,44 +1033,44 @@
#define NOZZLE_PARK_POINT { (X_MIN_POS + 10), (Y_MAX_POS - 10), 20 } #define NOZZLE_PARK_POINT { (X_MIN_POS + 10), (Y_MAX_POS - 10), 20 }
#endif #endif
// /**
// Clean Nozzle Feature -- EXPERIMENTAL * Clean Nozzle Feature -- EXPERIMENTAL
// *
// When enabled allows the user to send G12 to start the nozzle cleaning * Adds the G12 command to perform a nozzle cleaning process.
// process, the G-Code accepts two parameters: *
// "P" for pattern selection * Parameters:
// "S" for defining the number of strokes/repetitions * P Pattern
// * S Strokes / Repetitions
// Available list of patterns: * T Triangles (P1 only)
// P0: This is the default pattern, this process requires a sponge type *
// material at a fixed bed location. S defines "strokes" i.e. * Patterns:
// back-and-forth movements between the starting and end points. * P0 Straight line (default). This process requires a sponge type material
// * at a fixed bed location. "S" specifies strokes (i.e. back-forth motions)
// P1: This starts a zig-zag pattern between (X0, Y0) and (X1, Y1), "T" * between the start / end points.
// defines the number of zig-zag triangles to be done. "S" defines the *
// number of strokes aka one back-and-forth movement. Zig-zags will * P1 Zig-zag pattern between (X0, Y0) and (X1, Y1), "T" specifies the
// be performed in whichever dimension is smallest. As an example, * number of zig-zag triangles to do. "S" defines the number of strokes.
// sending "G12 P1 S1 T3" will execute: * Zig-zags are done in whichever is the narrower dimension.
// * For example, "G12 P1 S1 T3" will execute:
// -- *
// | (X0, Y1) | /\ /\ /\ | (X1, Y1) * --
// | | / \ / \ / \ | * | (X0, Y1) | /\ /\ /\ | (X1, Y1)
// A | | / \ / \ / \ | * | | / \ / \ / \ |
// | | / \ / \ / \ | * A | | / \ / \ / \ |
// | (X0, Y0) | / \/ \/ \ | (X1, Y0) * | | / \ / \ / \ |
// -- +--------------------------------+ * | (X0, Y0) | / \/ \/ \ | (X1, Y0)
// |________|_________|_________| * -- +--------------------------------+
// T1 T2 T3 * |________|_________|_________|
// * T1 T2 T3
// P2: This starts a circular pattern with circle with middle in *
// NOZZLE_CLEAN_CIRCLE_MIDDLE radius of R and stroke count of S. * P2 Circular pattern with middle at NOZZLE_CLEAN_CIRCLE_MIDDLE.
// Before starting the circle nozzle goes to NOZZLE_CLEAN_START_POINT. * "R" specifies the radius. "S" specifies the stroke count.
// * Before starting, the nozzle moves to NOZZLE_CLEAN_START_POINT.
// Caveats: End point Z should use the same value as Start point Z. *
// * Caveats: The ending Z should be the same as starting Z.
// Attention: This is an EXPERIMENTAL feature, in the future the G-code arguments * Attention: EXPERIMENTAL. G-code arguments may change.
// may change to add new functionality like different wipe patterns. *
// */
//#define NOZZLE_CLEAN_FEATURE //#define NOZZLE_CLEAN_FEATURE
#if ENABLED(NOZZLE_CLEAN_FEATURE) #if ENABLED(NOZZLE_CLEAN_FEATURE)
@ -1101,33 +1095,35 @@
#define NOZZLE_CLEAN_GOBACK #define NOZZLE_CLEAN_GOBACK
#endif #endif
// /**
// Print job timer * Print Job Timer
// *
// Enable this option to automatically start and stop the * Automatically start and stop the print job timer on M104/M109/M190.
// print job timer when M104/M109/M190 commands are received. *
// M104 (extruder without wait) - high temp = none, low temp = stop timer * M104 (hotend, no wait) - high temp = none, low temp = stop timer
// M109 (extruder with wait) - high temp = start timer, low temp = stop timer * M109 (hotend, wait) - high temp = start timer, low temp = stop timer
// M190 (bed with wait) - high temp = start timer, low temp = none * M190 (bed, wait) - high temp = start timer, low temp = none
// *
// In all cases the timer can be started and stopped using * The timer can also be controlled with the following commands:
// the following commands: *
// * M75 - Start the print job timer
// - M75 - Start the print job timer * M76 - Pause the print job timer
// - M76 - Pause the print job timer * M77 - Stop the print job timer
// - M77 - Stop the print job timer */
#define PRINTJOB_TIMER_AUTOSTART #define PRINTJOB_TIMER_AUTOSTART
// /**
// Print Counter * Print Counter
// *
// When enabled Marlin will keep track of some print statistical data such as: * Track statistical data such as:
// - Total print jobs *
// - Total successful print jobs * - Total print jobs
// - Total failed print jobs * - Total successful print jobs
// - Total time printing * - Total failed print jobs
// * - Total time printing
// This information can be viewed by the M78 command. *
* View the current statistics with M78.
*/
#define PRINTCOUNTER #define PRINTCOUNTER
//============================================================================= //=============================================================================
@ -1139,78 +1135,79 @@
// K8200: for Display VM8201 with SD slot // K8200: for Display VM8201 with SD slot
#if ENABLED(K8200_VM8201) #if ENABLED(K8200_VM8201)
// /**
// LCD LANGUAGE * LCD LANGUAGE
// *
// Here you may choose the language used by Marlin on the LCD menus, the following * Select the language to display on the LCD. These languages are available:
// list of languages are available: *
// en, an, bg, ca, cn, cz, de, el, el-gr, es, eu, fi, fr, gl, hr, it, * en, an, bg, ca, cn, cz, de, el, el-gr, es, eu, fi, fr, gl, hr, it,
// kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk, test * kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk, test
// *
// :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'test':'TEST' } * :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'test':'TEST' }
// */
#define LCD_LANGUAGE en #define LCD_LANGUAGE en
// /**
// LCD Character Set * LCD Character Set
// *
// Note: This option is NOT applicable to Graphical Displays. * Note: This option is NOT applicable to Graphical Displays.
// *
// All character-based LCD's provide ASCII plus one of these * All character-based LCDs provide ASCII plus one of these
// language extensions: * language extensions:
// *
// - JAPANESE ... the most common * - JAPANESE ... the most common
// - WESTERN ... with more accented characters * - WESTERN ... with more accented characters
// - CYRILLIC ... for the Russian language * - CYRILLIC ... for the Russian language
// *
// To determine the language extension installed on your controller: * To determine the language extension installed on your controller:
// *
// - Compile and upload with LCD_LANGUAGE set to 'test' * - Compile and upload with LCD_LANGUAGE set to 'test'
// - Click the controller to view the LCD menu * - Click the controller to view the LCD menu
// - The LCD will display Japanese, Western, or Cyrillic text * - The LCD will display Japanese, Western, or Cyrillic text
// *
// See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language * See https: *github.com/MarlinFirmware/Marlin/wiki/LCD-Language
// *
// :['JAPANESE', 'WESTERN', 'CYRILLIC'] * :['JAPANESE', 'WESTERN', 'CYRILLIC']
// */
#define DISPLAY_CHARSET_HD44780 JAPANESE // K8200: for Display VM8201 // this is the most common hardware #define DISPLAY_CHARSET_HD44780 JAPANESE // K8200: for Display VM8201 // this is the most common hardware
// /**
// LCD TYPE * LCD TYPE
// *
// You may choose ULTRA_LCD if you have character based LCD with 16x2, 16x4, 20x2, * Enable ULTRA_LCD for a 16x2, 16x4, 20x2, or 20x4 character-based LCD.
// 20x4 char/lines or DOGLCD for the full graphics display with 128x64 pixels * Enable DOGLCD for a 128x64 (ST7565R) Full Graphical Display.
// (ST7565R family). (This option will be set automatically for certain displays.) * (These options will be enabled automatically for most displays.)
// *
// IMPORTANT NOTE: The U8glib library is required for Full Graphic Display! * IMPORTANT: The U8glib library is required for Full Graphic Display!
// https://github.com/olikraus/U8glib_Arduino * https://github.com/olikraus/U8glib_Arduino
// */
//#define ULTRA_LCD // Character based //#define ULTRA_LCD // Character based
//#define DOGLCD // Full graphics display //#define DOGLCD // Full graphics display
// /**
// SD CARD * SD CARD
// *
// SD Card support is disabled by default. If your controller has an SD slot, * SD Card support is disabled by default. If your controller has an SD slot,
// you must uncomment the following option or it won't work. * you must uncomment the following option or it won't work.
// *
*/
#define SDSUPPORT #define SDSUPPORT
// /**
// SD CARD: SPI SPEED * SD CARD: SPI SPEED
// *
// Uncomment ONE of the following items to use a slower SPI transfer * Enable one of the following items for a slower SPI transfer speed.
// speed. This is usually required if you're getting volume init errors. * This may be required to resolve "volume init" errors.
// */
//#define SPI_SPEED SPI_HALF_SPEED //#define SPI_SPEED SPI_HALF_SPEED
//#define SPI_SPEED SPI_QUARTER_SPEED //#define SPI_SPEED SPI_QUARTER_SPEED
//#define SPI_SPEED SPI_EIGHTH_SPEED //#define SPI_SPEED SPI_EIGHTH_SPEED
// /**
// SD CARD: ENABLE CRC * SD CARD: ENABLE CRC
// *
// Use CRC checks and retries on the SD communication. * Use CRC checks and retries on the SD communication.
// */
#define SD_CHECK_AND_RETRY #define SD_CHECK_AND_RETRY
// //
@ -1238,7 +1235,7 @@
*/ */
// //
// This option reverses the encoder direction everywhere // This option reverses the encoder direction everywhere.
// //
// Set this option if CLOCKWISE causes values to DECREASE // Set this option if CLOCKWISE causes values to DECREASE
// //

@ -4,7 +4,7 @@
* updated manually with parameters from genuine Vellemann Firmware "firmware_k8200_marlinv2" based on the recent development branch * updated manually with parameters from genuine Vellemann Firmware "firmware_k8200_marlinv2" based on the recent development branch
* VM8201 uses "DISPLAY_CHARSET_HD44870_JAPAN" and "ULTIMAKERCONTROLLER" * VM8201 uses "DISPLAY_CHARSET_HD44870 JAPANESE" and "ULTIMAKERCONTROLLER"
* german (de) translation with umlaut is supported now - thanks to @AnHardt for the great hardware based umlaut support * german (de) translation with umlaut is supported now - thanks to @AnHardt for the great hardware based umlaut support
I [@CONSULitAS](https://github.com/CONSULitAS) tested the changes on my K8200 with 20x4-LCD and Arduino 1.6.12 for Mac (SD library added to IDE manually), 2016-11-18 - everything works well. I [@CONSULitAS](https://github.com/CONSULitAS) tested the changes on my K8200 with 20x4-LCD and Arduino 1.6.12 for Mac (SD library added to IDE manually), 2016-11-18 - everything works well.

@ -986,23 +986,17 @@
#define PREHEAT_2_TEMP_BED 0 #define PREHEAT_2_TEMP_BED 0
#define PREHEAT_2_FAN_SPEED 165 // Value from 0 to 255 #define PREHEAT_2_FAN_SPEED 165 // Value from 0 to 255
// /**
// Nozzle Park -- EXPERIMENTAL * Nozzle Park -- EXPERIMENTAL
// *
// When enabled allows the user to define a special XYZ position, inside the * Park the nozzle at the given XYZ position on idle or G27.
// machine's topology, to park the nozzle when idle or when receiving the G27 *
// command. * The "P" parameter controls the action applied to the Z axis:
// *
// The "P" paramenter controls what is the action applied to the Z axis: * P0 (Default) If Z is below park Z raise the nozzle.
// P0: (Default) If current Z-pos is lower than Z-park then the nozzle will * P1 Raise the nozzle always to Z-park height.
// be raised to reach Z-park height. * P2 Raise the nozzle by Z-park amount, limited to Z_MAX_POS.
// */
// P1: No matter the current Z-pos, the nozzle will be raised/lowered to
// reach Z-park height.
//
// P2: The nozzle height will be raised by Z-park amount but never going over
// the machine's limit of Z_MAX_POS.
//
//#define NOZZLE_PARK_FEATURE //#define NOZZLE_PARK_FEATURE
#if ENABLED(NOZZLE_PARK_FEATURE) #if ENABLED(NOZZLE_PARK_FEATURE)
@ -1010,44 +1004,44 @@
#define NOZZLE_PARK_POINT { (X_MIN_POS + 10), (Y_MAX_POS - 10), 20 } #define NOZZLE_PARK_POINT { (X_MIN_POS + 10), (Y_MAX_POS - 10), 20 }
#endif #endif
// /**
// Clean Nozzle Feature -- EXPERIMENTAL * Clean Nozzle Feature -- EXPERIMENTAL
// *
// When enabled allows the user to send G12 to start the nozzle cleaning * Adds the G12 command to perform a nozzle cleaning process.
// process, the G-Code accepts two parameters: *
// "P" for pattern selection * Parameters:
// "S" for defining the number of strokes/repetitions * P Pattern
// * S Strokes / Repetitions
// Available list of patterns: * T Triangles (P1 only)
// P0: This is the default pattern, this process requires a sponge type *
// material at a fixed bed location. S defines "strokes" i.e. * Patterns:
// back-and-forth movements between the starting and end points. * P0 Straight line (default). This process requires a sponge type material
// * at a fixed bed location. "S" specifies strokes (i.e. back-forth motions)
// P1: This starts a zig-zag pattern between (X0, Y0) and (X1, Y1), "T" * between the start / end points.
// defines the number of zig-zag triangles to be done. "S" defines the *
// number of strokes aka one back-and-forth movement. Zig-zags will * P1 Zig-zag pattern between (X0, Y0) and (X1, Y1), "T" specifies the
// be performed in whichever dimension is smallest. As an example, * number of zig-zag triangles to do. "S" defines the number of strokes.
// sending "G12 P1 S1 T3" will execute: * Zig-zags are done in whichever is the narrower dimension.
// * For example, "G12 P1 S1 T3" will execute:
// -- *
// | (X0, Y1) | /\ /\ /\ | (X1, Y1) * --
// | | / \ / \ / \ | * | (X0, Y1) | /\ /\ /\ | (X1, Y1)
// A | | / \ / \ / \ | * | | / \ / \ / \ |
// | | / \ / \ / \ | * A | | / \ / \ / \ |
// | (X0, Y0) | / \/ \/ \ | (X1, Y0) * | | / \ / \ / \ |
// -- +--------------------------------+ * | (X0, Y0) | / \/ \/ \ | (X1, Y0)
// |________|_________|_________| * -- +--------------------------------+
// T1 T2 T3 * |________|_________|_________|
// * T1 T2 T3
// P2: This starts a circular pattern with circle with middle in *
// NOZZLE_CLEAN_CIRCLE_MIDDLE radius of R and stroke count of S. * P2 Circular pattern with middle at NOZZLE_CLEAN_CIRCLE_MIDDLE.
// Before starting the circle nozzle goes to NOZZLE_CLEAN_START_POINT. * "R" specifies the radius. "S" specifies the stroke count.
// * Before starting, the nozzle moves to NOZZLE_CLEAN_START_POINT.
// Caveats: End point Z should use the same value as Start point Z. *
// * Caveats: The ending Z should be the same as starting Z.
// Attention: This is an EXPERIMENTAL feature, in the future the G-code arguments * Attention: EXPERIMENTAL. G-code arguments may change.
// may change to add new functionality like different wipe patterns. *
// */
//#define NOZZLE_CLEAN_FEATURE //#define NOZZLE_CLEAN_FEATURE
#if ENABLED(NOZZLE_CLEAN_FEATURE) #if ENABLED(NOZZLE_CLEAN_FEATURE)
@ -1072,33 +1066,35 @@
#define NOZZLE_CLEAN_GOBACK #define NOZZLE_CLEAN_GOBACK
#endif #endif
// /**
// Print job timer * Print Job Timer
// *
// Enable this option to automatically start and stop the * Automatically start and stop the print job timer on M104/M109/M190.
// print job timer when M104/M109/M190 commands are received. *
// M104 (extruder without wait) - high temp = none, low temp = stop timer * M104 (hotend, no wait) - high temp = none, low temp = stop timer
// M109 (extruder with wait) - high temp = start timer, low temp = stop timer * M109 (hotend, wait) - high temp = start timer, low temp = stop timer
// M190 (bed with wait) - high temp = start timer, low temp = none * M190 (bed, wait) - high temp = start timer, low temp = none
// *
// In all cases the timer can be started and stopped using * The timer can also be controlled with the following commands:
// the following commands: *
// * M75 - Start the print job timer
// - M75 - Start the print job timer * M76 - Pause the print job timer
// - M76 - Pause the print job timer * M77 - Stop the print job timer
// - M77 - Stop the print job timer */
#define PRINTJOB_TIMER_AUTOSTART #define PRINTJOB_TIMER_AUTOSTART
// /**
// Print Counter * Print Counter
// *
// When enabled Marlin will keep track of some print statistical data such as: * Track statistical data such as:
// - Total print jobs *
// - Total successful print jobs * - Total print jobs
// - Total failed print jobs * - Total successful print jobs
// - Total time printing * - Total failed print jobs
// * - Total time printing
// This information can be viewed by the M78 command. *
* View the current statistics with M78.
*/
//#define PRINTCOUNTER //#define PRINTCOUNTER
//============================================================================= //=============================================================================
@ -1107,78 +1103,79 @@
// @section lcd // @section lcd
// /**
// LCD LANGUAGE * LCD LANGUAGE
// *
// Here you may choose the language used by Marlin on the LCD menus, the following * Select the language to display on the LCD. These languages are available:
// list of languages are available: *
// en, an, bg, ca, cn, cz, de, el, el-gr, es, eu, fi, fr, gl, hr, it, * en, an, bg, ca, cn, cz, de, el, el-gr, es, eu, fi, fr, gl, hr, it,
// kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk, test * kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk, test
// *
// :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'test':'TEST' } * :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'test':'TEST' }
// */
#define LCD_LANGUAGE en #define LCD_LANGUAGE en
// /**
// LCD Character Set * LCD Character Set
// *
// Note: This option is NOT applicable to Graphical Displays. * Note: This option is NOT applicable to Graphical Displays.
// *
// All character-based LCD's provide ASCII plus one of these * All character-based LCDs provide ASCII plus one of these
// language extensions: * language extensions:
// *
// - JAPANESE ... the most common * - JAPANESE ... the most common
// - WESTERN ... with more accented characters * - WESTERN ... with more accented characters
// - CYRILLIC ... for the Russian language * - CYRILLIC ... for the Russian language
// *
// To determine the language extension installed on your controller: * To determine the language extension installed on your controller:
// *
// - Compile and upload with LCD_LANGUAGE set to 'test' * - Compile and upload with LCD_LANGUAGE set to 'test'
// - Click the controller to view the LCD menu * - Click the controller to view the LCD menu
// - The LCD will display Japanese, Western, or Cyrillic text * - The LCD will display Japanese, Western, or Cyrillic text
// *
// See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language * See https: *github.com/MarlinFirmware/Marlin/wiki/LCD-Language
// *
// :['JAPANESE', 'WESTERN', 'CYRILLIC'] * :['JAPANESE', 'WESTERN', 'CYRILLIC']
// */
#define DISPLAY_CHARSET_HD44780 JAPANESE #define DISPLAY_CHARSET_HD44780 JAPANESE
// /**
// LCD TYPE * LCD TYPE
// *
// You may choose ULTRA_LCD if you have character based LCD with 16x2, 16x4, 20x2, * Enable ULTRA_LCD for a 16x2, 16x4, 20x2, or 20x4 character-based LCD.
// 20x4 char/lines or DOGLCD for the full graphics display with 128x64 pixels * Enable DOGLCD for a 128x64 (ST7565R) Full Graphical Display.
// (ST7565R family). (This option will be set automatically for certain displays.) * (These options will be enabled automatically for most displays.)
// *
// IMPORTANT NOTE: The U8glib library is required for Full Graphic Display! * IMPORTANT: The U8glib library is required for Full Graphic Display!
// https://github.com/olikraus/U8glib_Arduino * https://github.com/olikraus/U8glib_Arduino
// */
#define ULTRA_LCD // Character based #define ULTRA_LCD // Character based
//#define DOGLCD // Full graphics display //#define DOGLCD // Full graphics display
// /**
// SD CARD * SD CARD
// *
// SD Card support is disabled by default. If your controller has an SD slot, * SD Card support is disabled by default. If your controller has an SD slot,
// you must uncomment the following option or it won't work. * you must uncomment the following option or it won't work.
// *
*/
#define SDSUPPORT #define SDSUPPORT
// /**
// SD CARD: SPI SPEED * SD CARD: SPI SPEED
// *
// Uncomment ONE of the following items to use a slower SPI transfer * Enable one of the following items for a slower SPI transfer speed.
// speed. This is usually required if you're getting volume init errors. * This may be required to resolve "volume init" errors.
// */
//#define SPI_SPEED SPI_HALF_SPEED //#define SPI_SPEED SPI_HALF_SPEED
//#define SPI_SPEED SPI_QUARTER_SPEED //#define SPI_SPEED SPI_QUARTER_SPEED
//#define SPI_SPEED SPI_EIGHTH_SPEED //#define SPI_SPEED SPI_EIGHTH_SPEED
// /**
// SD CARD: ENABLE CRC * SD CARD: ENABLE CRC
// *
// Use CRC checks and retries on the SD communication. * Use CRC checks and retries on the SD communication.
// */
//#define SD_CHECK_AND_RETRY //#define SD_CHECK_AND_RETRY
// //
@ -1206,7 +1203,7 @@
*/ */
// //
// This option reverses the encoder direction everywhere // This option reverses the encoder direction everywhere.
// //
// Set this option if CLOCKWISE causes values to DECREASE // Set this option if CLOCKWISE causes values to DECREASE
// //

@ -986,23 +986,17 @@
#define PREHEAT_2_TEMP_BED 0 #define PREHEAT_2_TEMP_BED 0
#define PREHEAT_2_FAN_SPEED 165 // Value from 0 to 255 #define PREHEAT_2_FAN_SPEED 165 // Value from 0 to 255
// /**
// Nozzle Park -- EXPERIMENTAL * Nozzle Park -- EXPERIMENTAL
// *
// When enabled allows the user to define a special XYZ position, inside the * Park the nozzle at the given XYZ position on idle or G27.
// machine's topology, to park the nozzle when idle or when receiving the G27 *
// command. * The "P" parameter controls the action applied to the Z axis:
// *
// The "P" paramenter controls what is the action applied to the Z axis: * P0 (Default) If Z is below park Z raise the nozzle.
// P0: (Default) If current Z-pos is lower than Z-park then the nozzle will * P1 Raise the nozzle always to Z-park height.
// be raised to reach Z-park height. * P2 Raise the nozzle by Z-park amount, limited to Z_MAX_POS.
// */
// P1: No matter the current Z-pos, the nozzle will be raised/lowered to
// reach Z-park height.
//
// P2: The nozzle height will be raised by Z-park amount but never going over
// the machine's limit of Z_MAX_POS.
//
//#define NOZZLE_PARK_FEATURE //#define NOZZLE_PARK_FEATURE
#if ENABLED(NOZZLE_PARK_FEATURE) #if ENABLED(NOZZLE_PARK_FEATURE)
@ -1010,44 +1004,44 @@
#define NOZZLE_PARK_POINT { (X_MIN_POS + 10), (Y_MAX_POS - 10), 20 } #define NOZZLE_PARK_POINT { (X_MIN_POS + 10), (Y_MAX_POS - 10), 20 }
#endif #endif
// /**
// Clean Nozzle Feature -- EXPERIMENTAL * Clean Nozzle Feature -- EXPERIMENTAL
// *
// When enabled allows the user to send G12 to start the nozzle cleaning * Adds the G12 command to perform a nozzle cleaning process.
// process, the G-Code accepts two parameters: *
// "P" for pattern selection * Parameters:
// "S" for defining the number of strokes/repetitions * P Pattern
// * S Strokes / Repetitions
// Available list of patterns: * T Triangles (P1 only)
// P0: This is the default pattern, this process requires a sponge type *
// material at a fixed bed location. S defines "strokes" i.e. * Patterns:
// back-and-forth movements between the starting and end points. * P0 Straight line (default). This process requires a sponge type material
// * at a fixed bed location. "S" specifies strokes (i.e. back-forth motions)
// P1: This starts a zig-zag pattern between (X0, Y0) and (X1, Y1), "T" * between the start / end points.
// defines the number of zig-zag triangles to be done. "S" defines the *
// number of strokes aka one back-and-forth movement. Zig-zags will * P1 Zig-zag pattern between (X0, Y0) and (X1, Y1), "T" specifies the
// be performed in whichever dimension is smallest. As an example, * number of zig-zag triangles to do. "S" defines the number of strokes.
// sending "G12 P1 S1 T3" will execute: * Zig-zags are done in whichever is the narrower dimension.
// * For example, "G12 P1 S1 T3" will execute:
// -- *
// | (X0, Y1) | /\ /\ /\ | (X1, Y1) * --
// | | / \ / \ / \ | * | (X0, Y1) | /\ /\ /\ | (X1, Y1)
// A | | / \ / \ / \ | * | | / \ / \ / \ |
// | | / \ / \ / \ | * A | | / \ / \ / \ |
// | (X0, Y0) | / \/ \/ \ | (X1, Y0) * | | / \ / \ / \ |
// -- +--------------------------------+ * | (X0, Y0) | / \/ \/ \ | (X1, Y0)
// |________|_________|_________| * -- +--------------------------------+
// T1 T2 T3 * |________|_________|_________|
// * T1 T2 T3
// P2: This starts a circular pattern with circle with middle in *
// NOZZLE_CLEAN_CIRCLE_MIDDLE radius of R and stroke count of S. * P2 Circular pattern with middle at NOZZLE_CLEAN_CIRCLE_MIDDLE.
// Before starting the circle nozzle goes to NOZZLE_CLEAN_START_POINT. * "R" specifies the radius. "S" specifies the stroke count.
// * Before starting, the nozzle moves to NOZZLE_CLEAN_START_POINT.
// Caveats: End point Z should use the same value as Start point Z. *
// * Caveats: The ending Z should be the same as starting Z.
// Attention: This is an EXPERIMENTAL feature, in the future the G-code arguments * Attention: EXPERIMENTAL. G-code arguments may change.
// may change to add new functionality like different wipe patterns. *
// */
//#define NOZZLE_CLEAN_FEATURE //#define NOZZLE_CLEAN_FEATURE
#if ENABLED(NOZZLE_CLEAN_FEATURE) #if ENABLED(NOZZLE_CLEAN_FEATURE)
@ -1072,33 +1066,35 @@
#define NOZZLE_CLEAN_GOBACK #define NOZZLE_CLEAN_GOBACK
#endif #endif
// /**
// Print job timer * Print Job Timer
// *
// Enable this option to automatically start and stop the * Automatically start and stop the print job timer on M104/M109/M190.
// print job timer when M104/M109/M190 commands are received. *
// M104 (extruder without wait) - high temp = none, low temp = stop timer * M104 (hotend, no wait) - high temp = none, low temp = stop timer
// M109 (extruder with wait) - high temp = start timer, low temp = stop timer * M109 (hotend, wait) - high temp = start timer, low temp = stop timer
// M190 (bed with wait) - high temp = start timer, low temp = none * M190 (bed, wait) - high temp = start timer, low temp = none
// *
// In all cases the timer can be started and stopped using * The timer can also be controlled with the following commands:
// the following commands: *
// * M75 - Start the print job timer
// - M75 - Start the print job timer * M76 - Pause the print job timer
// - M76 - Pause the print job timer * M77 - Stop the print job timer
// - M77 - Stop the print job timer */
#define PRINTJOB_TIMER_AUTOSTART #define PRINTJOB_TIMER_AUTOSTART
// /**
// Print Counter * Print Counter
// *
// When enabled Marlin will keep track of some print statistical data such as: * Track statistical data such as:
// - Total print jobs *
// - Total successful print jobs * - Total print jobs
// - Total failed print jobs * - Total successful print jobs
// - Total time printing * - Total failed print jobs
// * - Total time printing
// This information can be viewed by the M78 command. *
* View the current statistics with M78.
*/
//#define PRINTCOUNTER //#define PRINTCOUNTER
//============================================================================= //=============================================================================
@ -1107,78 +1103,79 @@
// @section lcd // @section lcd
// /**
// LCD LANGUAGE * LCD LANGUAGE
// *
// Here you may choose the language used by Marlin on the LCD menus, the following * Select the language to display on the LCD. These languages are available:
// list of languages are available: *
// en, an, bg, ca, cn, cz, de, el, el-gr, es, eu, fi, fr, gl, hr, it, * en, an, bg, ca, cn, cz, de, el, el-gr, es, eu, fi, fr, gl, hr, it,
// kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk, test * kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk, test
// *
// :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'test':'TEST' } * :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'test':'TEST' }
// */
#define LCD_LANGUAGE en #define LCD_LANGUAGE en
// /**
// LCD Character Set * LCD Character Set
// *
// Note: This option is NOT applicable to Graphical Displays. * Note: This option is NOT applicable to Graphical Displays.
// *
// All character-based LCD's provide ASCII plus one of these * All character-based LCDs provide ASCII plus one of these
// language extensions: * language extensions:
// *
// - JAPANESE ... the most common * - JAPANESE ... the most common
// - WESTERN ... with more accented characters * - WESTERN ... with more accented characters
// - CYRILLIC ... for the Russian language * - CYRILLIC ... for the Russian language
// *
// To determine the language extension installed on your controller: * To determine the language extension installed on your controller:
// *
// - Compile and upload with LCD_LANGUAGE set to 'test' * - Compile and upload with LCD_LANGUAGE set to 'test'
// - Click the controller to view the LCD menu * - Click the controller to view the LCD menu
// - The LCD will display Japanese, Western, or Cyrillic text * - The LCD will display Japanese, Western, or Cyrillic text
// *
// See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language * See https: *github.com/MarlinFirmware/Marlin/wiki/LCD-Language
// *
// :['JAPANESE', 'WESTERN', 'CYRILLIC'] * :['JAPANESE', 'WESTERN', 'CYRILLIC']
// */
#define DISPLAY_CHARSET_HD44780 JAPANESE #define DISPLAY_CHARSET_HD44780 JAPANESE
// /**
// LCD TYPE * LCD TYPE
// *
// You may choose ULTRA_LCD if you have character based LCD with 16x2, 16x4, 20x2, * Enable ULTRA_LCD for a 16x2, 16x4, 20x2, or 20x4 character-based LCD.
// 20x4 char/lines or DOGLCD for the full graphics display with 128x64 pixels * Enable DOGLCD for a 128x64 (ST7565R) Full Graphical Display.
// (ST7565R family). (This option will be set automatically for certain displays.) * (These options will be enabled automatically for most displays.)
// *
// IMPORTANT NOTE: The U8glib library is required for Full Graphic Display! * IMPORTANT: The U8glib library is required for Full Graphic Display!
// https://github.com/olikraus/U8glib_Arduino * https://github.com/olikraus/U8glib_Arduino
// */
#define ULTRA_LCD // Character based #define ULTRA_LCD // Character based
//#define DOGLCD // Full graphics display //#define DOGLCD // Full graphics display
// /**
// SD CARD * SD CARD
// *
// SD Card support is disabled by default. If your controller has an SD slot, * SD Card support is disabled by default. If your controller has an SD slot,
// you must uncomment the following option or it won't work. * you must uncomment the following option or it won't work.
// *
*/
#define SDSUPPORT #define SDSUPPORT
// /**
// SD CARD: SPI SPEED * SD CARD: SPI SPEED
// *
// Uncomment ONE of the following items to use a slower SPI transfer * Enable one of the following items for a slower SPI transfer speed.
// speed. This is usually required if you're getting volume init errors. * This may be required to resolve "volume init" errors.
// */
//#define SPI_SPEED SPI_HALF_SPEED //#define SPI_SPEED SPI_HALF_SPEED
//#define SPI_SPEED SPI_QUARTER_SPEED //#define SPI_SPEED SPI_QUARTER_SPEED
//#define SPI_SPEED SPI_EIGHTH_SPEED //#define SPI_SPEED SPI_EIGHTH_SPEED
// /**
// SD CARD: ENABLE CRC * SD CARD: ENABLE CRC
// *
// Use CRC checks and retries on the SD communication. * Use CRC checks and retries on the SD communication.
// */
//#define SD_CHECK_AND_RETRY //#define SD_CHECK_AND_RETRY
// //
@ -1206,7 +1203,7 @@
*/ */
// //
// This option reverses the encoder direction everywhere // This option reverses the encoder direction everywhere.
// //
// Set this option if CLOCKWISE causes values to DECREASE // Set this option if CLOCKWISE causes values to DECREASE
// //

@ -986,23 +986,17 @@
#define PREHEAT_2_TEMP_BED 110 #define PREHEAT_2_TEMP_BED 110
#define PREHEAT_2_FAN_SPEED 0 // Value from 0 to 255 #define PREHEAT_2_FAN_SPEED 0 // Value from 0 to 255
// /**
// Nozzle Park -- EXPERIMENTAL * Nozzle Park -- EXPERIMENTAL
// *
// When enabled allows the user to define a special XYZ position, inside the * Park the nozzle at the given XYZ position on idle or G27.
// machine's topology, to park the nozzle when idle or when receiving the G27 *
// command. * The "P" parameter controls the action applied to the Z axis:
// *
// The "P" paramenter controls what is the action applied to the Z axis: * P0 (Default) If Z is below park Z raise the nozzle.
// P0: (Default) If current Z-pos is lower than Z-park then the nozzle will * P1 Raise the nozzle always to Z-park height.
// be raised to reach Z-park height. * P2 Raise the nozzle by Z-park amount, limited to Z_MAX_POS.
// */
// P1: No matter the current Z-pos, the nozzle will be raised/lowered to
// reach Z-park height.
//
// P2: The nozzle height will be raised by Z-park amount but never going over
// the machine's limit of Z_MAX_POS.
//
//#define NOZZLE_PARK_FEATURE //#define NOZZLE_PARK_FEATURE
#if ENABLED(NOZZLE_PARK_FEATURE) #if ENABLED(NOZZLE_PARK_FEATURE)
@ -1010,44 +1004,44 @@
#define NOZZLE_PARK_POINT { (X_MIN_POS + 10), (Y_MAX_POS - 10), 20 } #define NOZZLE_PARK_POINT { (X_MIN_POS + 10), (Y_MAX_POS - 10), 20 }
#endif #endif
// /**
// Clean Nozzle Feature -- EXPERIMENTAL * Clean Nozzle Feature -- EXPERIMENTAL
// *
// When enabled allows the user to send G12 to start the nozzle cleaning * Adds the G12 command to perform a nozzle cleaning process.
// process, the G-Code accepts two parameters: *
// "P" for pattern selection * Parameters:
// "S" for defining the number of strokes/repetitions * P Pattern
// * S Strokes / Repetitions
// Available list of patterns: * T Triangles (P1 only)
// P0: This is the default pattern, this process requires a sponge type *
// material at a fixed bed location. S defines "strokes" i.e. * Patterns:
// back-and-forth movements between the starting and end points. * P0 Straight line (default). This process requires a sponge type material
// * at a fixed bed location. "S" specifies strokes (i.e. back-forth motions)
// P1: This starts a zig-zag pattern between (X0, Y0) and (X1, Y1), "T" * between the start / end points.
// defines the number of zig-zag triangles to be done. "S" defines the *
// number of strokes aka one back-and-forth movement. Zig-zags will * P1 Zig-zag pattern between (X0, Y0) and (X1, Y1), "T" specifies the
// be performed in whichever dimension is smallest. As an example, * number of zig-zag triangles to do. "S" defines the number of strokes.
// sending "G12 P1 S1 T3" will execute: * Zig-zags are done in whichever is the narrower dimension.
// * For example, "G12 P1 S1 T3" will execute:
// -- *
// | (X0, Y1) | /\ /\ /\ | (X1, Y1) * --
// | | / \ / \ / \ | * | (X0, Y1) | /\ /\ /\ | (X1, Y1)
// A | | / \ / \ / \ | * | | / \ / \ / \ |
// | | / \ / \ / \ | * A | | / \ / \ / \ |
// | (X0, Y0) | / \/ \/ \ | (X1, Y0) * | | / \ / \ / \ |
// -- +--------------------------------+ * | (X0, Y0) | / \/ \/ \ | (X1, Y0)
// |________|_________|_________| * -- +--------------------------------+
// T1 T2 T3 * |________|_________|_________|
// * T1 T2 T3
// P2: This starts a circular pattern with circle with middle in *
// NOZZLE_CLEAN_CIRCLE_MIDDLE radius of R and stroke count of S. * P2 Circular pattern with middle at NOZZLE_CLEAN_CIRCLE_MIDDLE.
// Before starting the circle nozzle goes to NOZZLE_CLEAN_START_POINT. * "R" specifies the radius. "S" specifies the stroke count.
// * Before starting, the nozzle moves to NOZZLE_CLEAN_START_POINT.
// Caveats: End point Z should use the same value as Start point Z. *
// * Caveats: The ending Z should be the same as starting Z.
// Attention: This is an EXPERIMENTAL feature, in the future the G-code arguments * Attention: EXPERIMENTAL. G-code arguments may change.
// may change to add new functionality like different wipe patterns. *
// */
//#define NOZZLE_CLEAN_FEATURE //#define NOZZLE_CLEAN_FEATURE
#if ENABLED(NOZZLE_CLEAN_FEATURE) #if ENABLED(NOZZLE_CLEAN_FEATURE)
@ -1072,33 +1066,35 @@
#define NOZZLE_CLEAN_GOBACK #define NOZZLE_CLEAN_GOBACK
#endif #endif
// /**
// Print job timer * Print Job Timer
// *
// Enable this option to automatically start and stop the * Automatically start and stop the print job timer on M104/M109/M190.
// print job timer when M104/M109/M190 commands are received. *
// M104 (extruder without wait) - high temp = none, low temp = stop timer * M104 (hotend, no wait) - high temp = none, low temp = stop timer
// M109 (extruder with wait) - high temp = start timer, low temp = stop timer * M109 (hotend, wait) - high temp = start timer, low temp = stop timer
// M190 (bed with wait) - high temp = start timer, low temp = none * M190 (bed, wait) - high temp = start timer, low temp = none
// *
// In all cases the timer can be started and stopped using * The timer can also be controlled with the following commands:
// the following commands: *
// * M75 - Start the print job timer
// - M75 - Start the print job timer * M76 - Pause the print job timer
// - M76 - Pause the print job timer * M77 - Stop the print job timer
// - M77 - Stop the print job timer */
#define PRINTJOB_TIMER_AUTOSTART #define PRINTJOB_TIMER_AUTOSTART
// /**
// Print Counter * Print Counter
// *
// When enabled Marlin will keep track of some print statistical data such as: * Track statistical data such as:
// - Total print jobs *
// - Total successful print jobs * - Total print jobs
// - Total failed print jobs * - Total successful print jobs
// - Total time printing * - Total failed print jobs
// * - Total time printing
// This information can be viewed by the M78 command. *
* View the current statistics with M78.
*/
//#define PRINTCOUNTER //#define PRINTCOUNTER
//============================================================================= //=============================================================================
@ -1107,78 +1103,79 @@
// @section lcd // @section lcd
// /**
// LCD LANGUAGE * LCD LANGUAGE
// *
// Here you may choose the language used by Marlin on the LCD menus, the following * Select the language to display on the LCD. These languages are available:
// list of languages are available: *
// en, an, bg, ca, cn, cz, de, el, el-gr, es, eu, fi, fr, gl, hr, it, * en, an, bg, ca, cn, cz, de, el, el-gr, es, eu, fi, fr, gl, hr, it,
// kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk, test * kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk, test
// *
// :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'test':'TEST' } * :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'test':'TEST' }
// */
#define LCD_LANGUAGE en #define LCD_LANGUAGE en
// /**
// LCD Character Set * LCD Character Set
// *
// Note: This option is NOT applicable to Graphical Displays. * Note: This option is NOT applicable to Graphical Displays.
// *
// All character-based LCD's provide ASCII plus one of these * All character-based LCDs provide ASCII plus one of these
// language extensions: * language extensions:
// *
// - JAPANESE ... the most common * - JAPANESE ... the most common
// - WESTERN ... with more accented characters * - WESTERN ... with more accented characters
// - CYRILLIC ... for the Russian language * - CYRILLIC ... for the Russian language
// *
// To determine the language extension installed on your controller: * To determine the language extension installed on your controller:
// *
// - Compile and upload with LCD_LANGUAGE set to 'test' * - Compile and upload with LCD_LANGUAGE set to 'test'
// - Click the controller to view the LCD menu * - Click the controller to view the LCD menu
// - The LCD will display Japanese, Western, or Cyrillic text * - The LCD will display Japanese, Western, or Cyrillic text
// *
// See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language * See https: *github.com/MarlinFirmware/Marlin/wiki/LCD-Language
// *
// :['JAPANESE', 'WESTERN', 'CYRILLIC'] * :['JAPANESE', 'WESTERN', 'CYRILLIC']
// */
#define DISPLAY_CHARSET_HD44780 JAPANESE #define DISPLAY_CHARSET_HD44780 JAPANESE
// /**
// LCD TYPE * LCD TYPE
// *
// You may choose ULTRA_LCD if you have character based LCD with 16x2, 16x4, 20x2, * Enable ULTRA_LCD for a 16x2, 16x4, 20x2, or 20x4 character-based LCD.
// 20x4 char/lines or DOGLCD for the full graphics display with 128x64 pixels * Enable DOGLCD for a 128x64 (ST7565R) Full Graphical Display.
// (ST7565R family). (This option will be set automatically for certain displays.) * (These options will be enabled automatically for most displays.)
// *
// IMPORTANT NOTE: The U8glib library is required for Full Graphic Display! * IMPORTANT: The U8glib library is required for Full Graphic Display!
// https://github.com/olikraus/U8glib_Arduino * https://github.com/olikraus/U8glib_Arduino
// */
#define ULTRA_LCD // Character based #define ULTRA_LCD // Character based
//#define DOGLCD // Full graphics display //#define DOGLCD // Full graphics display
// /**
// SD CARD * SD CARD
// *
// SD Card support is disabled by default. If your controller has an SD slot, * SD Card support is disabled by default. If your controller has an SD slot,
// you must uncomment the following option or it won't work. * you must uncomment the following option or it won't work.
// *
*/
#define SDSUPPORT #define SDSUPPORT
// /**
// SD CARD: SPI SPEED * SD CARD: SPI SPEED
// *
// Uncomment ONE of the following items to use a slower SPI transfer * Enable one of the following items for a slower SPI transfer speed.
// speed. This is usually required if you're getting volume init errors. * This may be required to resolve "volume init" errors.
// */
//#define SPI_SPEED SPI_HALF_SPEED //#define SPI_SPEED SPI_HALF_SPEED
//#define SPI_SPEED SPI_QUARTER_SPEED //#define SPI_SPEED SPI_QUARTER_SPEED
//#define SPI_SPEED SPI_EIGHTH_SPEED //#define SPI_SPEED SPI_EIGHTH_SPEED
// /**
// SD CARD: ENABLE CRC * SD CARD: ENABLE CRC
// *
// Use CRC checks and retries on the SD communication. * Use CRC checks and retries on the SD communication.
// */
#define SD_CHECK_AND_RETRY #define SD_CHECK_AND_RETRY
// //
@ -1206,7 +1203,7 @@
*/ */
// //
// This option reverses the encoder direction everywhere // This option reverses the encoder direction everywhere.
// //
// Set this option if CLOCKWISE causes values to DECREASE // Set this option if CLOCKWISE causes values to DECREASE
// //

@ -985,23 +985,17 @@
#define PREHEAT_2_TEMP_BED 110 #define PREHEAT_2_TEMP_BED 110
#define PREHEAT_2_FAN_SPEED 255 // Value from 0 to 255 #define PREHEAT_2_FAN_SPEED 255 // Value from 0 to 255
// /**
// Nozzle Park -- EXPERIMENTAL * Nozzle Park -- EXPERIMENTAL
// *
// When enabled allows the user to define a special XYZ position, inside the * Park the nozzle at the given XYZ position on idle or G27.
// machine's topology, to park the nozzle when idle or when receiving the G27 *
// command. * The "P" parameter controls the action applied to the Z axis:
// *
// The "P" paramenter controls what is the action applied to the Z axis: * P0 (Default) If Z is below park Z raise the nozzle.
// P0: (Default) If current Z-pos is lower than Z-park then the nozzle will * P1 Raise the nozzle always to Z-park height.
// be raised to reach Z-park height. * P2 Raise the nozzle by Z-park amount, limited to Z_MAX_POS.
// */
// P1: No matter the current Z-pos, the nozzle will be raised/lowered to
// reach Z-park height.
//
// P2: The nozzle height will be raised by Z-park amount but never going over
// the machine's limit of Z_MAX_POS.
//
//#define NOZZLE_PARK_FEATURE //#define NOZZLE_PARK_FEATURE
#if ENABLED(NOZZLE_PARK_FEATURE) #if ENABLED(NOZZLE_PARK_FEATURE)
@ -1009,44 +1003,44 @@
#define NOZZLE_PARK_POINT { (X_MIN_POS + 10), (Y_MAX_POS - 10), 20 } #define NOZZLE_PARK_POINT { (X_MIN_POS + 10), (Y_MAX_POS - 10), 20 }
#endif #endif
// /**
// Clean Nozzle Feature -- EXPERIMENTAL * Clean Nozzle Feature -- EXPERIMENTAL
// *
// When enabled allows the user to send G12 to start the nozzle cleaning * Adds the G12 command to perform a nozzle cleaning process.
// process, the G-Code accepts two parameters: *
// "P" for pattern selection * Parameters:
// "S" for defining the number of strokes/repetitions * P Pattern
// * S Strokes / Repetitions
// Available list of patterns: * T Triangles (P1 only)
// P0: This is the default pattern, this process requires a sponge type *
// material at a fixed bed location. S defines "strokes" i.e. * Patterns:
// back-and-forth movements between the starting and end points. * P0 Straight line (default). This process requires a sponge type material
// * at a fixed bed location. "S" specifies strokes (i.e. back-forth motions)
// P1: This starts a zig-zag pattern between (X0, Y0) and (X1, Y1), "T" * between the start / end points.
// defines the number of zig-zag triangles to be done. "S" defines the *
// number of strokes aka one back-and-forth movement. Zig-zags will * P1 Zig-zag pattern between (X0, Y0) and (X1, Y1), "T" specifies the
// be performed in whichever dimension is smallest. As an example, * number of zig-zag triangles to do. "S" defines the number of strokes.
// sending "G12 P1 S1 T3" will execute: * Zig-zags are done in whichever is the narrower dimension.
// * For example, "G12 P1 S1 T3" will execute:
// -- *
// | (X0, Y1) | /\ /\ /\ | (X1, Y1) * --
// | | / \ / \ / \ | * | (X0, Y1) | /\ /\ /\ | (X1, Y1)
// A | | / \ / \ / \ | * | | / \ / \ / \ |
// | | / \ / \ / \ | * A | | / \ / \ / \ |
// | (X0, Y0) | / \/ \/ \ | (X1, Y0) * | | / \ / \ / \ |
// -- +--------------------------------+ * | (X0, Y0) | / \/ \/ \ | (X1, Y0)
// |________|_________|_________| * -- +--------------------------------+
// T1 T2 T3 * |________|_________|_________|
// * T1 T2 T3
// P2: This starts a circular pattern with circle with middle in *
// NOZZLE_CLEAN_CIRCLE_MIDDLE radius of R and stroke count of S. * P2 Circular pattern with middle at NOZZLE_CLEAN_CIRCLE_MIDDLE.
// Before starting the circle nozzle goes to NOZZLE_CLEAN_START_POINT. * "R" specifies the radius. "S" specifies the stroke count.
// * Before starting, the nozzle moves to NOZZLE_CLEAN_START_POINT.
// Caveats: End point Z should use the same value as Start point Z. *
// * Caveats: The ending Z should be the same as starting Z.
// Attention: This is an EXPERIMENTAL feature, in the future the G-code arguments * Attention: EXPERIMENTAL. G-code arguments may change.
// may change to add new functionality like different wipe patterns. *
// */
//#define NOZZLE_CLEAN_FEATURE //#define NOZZLE_CLEAN_FEATURE
#if ENABLED(NOZZLE_CLEAN_FEATURE) #if ENABLED(NOZZLE_CLEAN_FEATURE)
@ -1071,33 +1065,35 @@
#define NOZZLE_CLEAN_GOBACK #define NOZZLE_CLEAN_GOBACK
#endif #endif
// /**
// Print job timer * Print Job Timer
// *
// Enable this option to automatically start and stop the * Automatically start and stop the print job timer on M104/M109/M190.
// print job timer when M104/M109/M190 commands are received. *
// M104 (extruder without wait) - high temp = none, low temp = stop timer * M104 (hotend, no wait) - high temp = none, low temp = stop timer
// M109 (extruder with wait) - high temp = start timer, low temp = stop timer * M109 (hotend, wait) - high temp = start timer, low temp = stop timer
// M190 (bed with wait) - high temp = start timer, low temp = none * M190 (bed, wait) - high temp = start timer, low temp = none
// *
// In all cases the timer can be started and stopped using * The timer can also be controlled with the following commands:
// the following commands: *
// * M75 - Start the print job timer
// - M75 - Start the print job timer * M76 - Pause the print job timer
// - M76 - Pause the print job timer * M77 - Stop the print job timer
// - M77 - Stop the print job timer */
#define PRINTJOB_TIMER_AUTOSTART #define PRINTJOB_TIMER_AUTOSTART
// /**
// Print Counter * Print Counter
// *
// When enabled Marlin will keep track of some print statistical data such as: * Track statistical data such as:
// - Total print jobs *
// - Total successful print jobs * - Total print jobs
// - Total failed print jobs * - Total successful print jobs
// - Total time printing * - Total failed print jobs
// * - Total time printing
// This information can be viewed by the M78 command. *
* View the current statistics with M78.
*/
//#define PRINTCOUNTER //#define PRINTCOUNTER
//============================================================================= //=============================================================================
@ -1106,78 +1102,79 @@
// @section lcd // @section lcd
// /**
// LCD LANGUAGE * LCD LANGUAGE
// *
// Here you may choose the language used by Marlin on the LCD menus, the following * Select the language to display on the LCD. These languages are available:
// list of languages are available: *
// en, an, bg, ca, cn, cz, de, el, el-gr, es, eu, fi, fr, gl, hr, it, * en, an, bg, ca, cn, cz, de, el, el-gr, es, eu, fi, fr, gl, hr, it,
// kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk, test * kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk, test
// *
// :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'test':'TEST' } * :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'test':'TEST' }
// */
#define LCD_LANGUAGE en #define LCD_LANGUAGE en
// /**
// LCD Character Set * LCD Character Set
// *
// Note: This option is NOT applicable to Graphical Displays. * Note: This option is NOT applicable to Graphical Displays.
// *
// All character-based LCD's provide ASCII plus one of these * All character-based LCDs provide ASCII plus one of these
// language extensions: * language extensions:
// *
// - JAPANESE ... the most common * - JAPANESE ... the most common
// - WESTERN ... with more accented characters * - WESTERN ... with more accented characters
// - CYRILLIC ... for the Russian language * - CYRILLIC ... for the Russian language
// *
// To determine the language extension installed on your controller: * To determine the language extension installed on your controller:
// *
// - Compile and upload with LCD_LANGUAGE set to 'test' * - Compile and upload with LCD_LANGUAGE set to 'test'
// - Click the controller to view the LCD menu * - Click the controller to view the LCD menu
// - The LCD will display Japanese, Western, or Cyrillic text * - The LCD will display Japanese, Western, or Cyrillic text
// *
// See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language * See https: *github.com/MarlinFirmware/Marlin/wiki/LCD-Language
// *
// :['JAPANESE', 'WESTERN', 'CYRILLIC'] * :['JAPANESE', 'WESTERN', 'CYRILLIC']
// */
#define DISPLAY_CHARSET_HD44780 JAPANESE #define DISPLAY_CHARSET_HD44780 JAPANESE
// /**
// LCD TYPE * LCD TYPE
// *
// You may choose ULTRA_LCD if you have character based LCD with 16x2, 16x4, 20x2, * Enable ULTRA_LCD for a 16x2, 16x4, 20x2, or 20x4 character-based LCD.
// 20x4 char/lines or DOGLCD for the full graphics display with 128x64 pixels * Enable DOGLCD for a 128x64 (ST7565R) Full Graphical Display.
// (ST7565R family). (This option will be set automatically for certain displays.) * (These options will be enabled automatically for most displays.)
// *
// IMPORTANT NOTE: The U8glib library is required for Full Graphic Display! * IMPORTANT: The U8glib library is required for Full Graphic Display!
// https://github.com/olikraus/U8glib_Arduino * https://github.com/olikraus/U8glib_Arduino
// */
//#define ULTRA_LCD // Character based //#define ULTRA_LCD // Character based
//#define DOGLCD // Full graphics display //#define DOGLCD // Full graphics display
// /**
// SD CARD * SD CARD
// *
// SD Card support is disabled by default. If your controller has an SD slot, * SD Card support is disabled by default. If your controller has an SD slot,
// you must uncomment the following option or it won't work. * you must uncomment the following option or it won't work.
// *
*/
#define SDSUPPORT #define SDSUPPORT
// /**
// SD CARD: SPI SPEED * SD CARD: SPI SPEED
// *
// Uncomment ONE of the following items to use a slower SPI transfer * Enable one of the following items for a slower SPI transfer speed.
// speed. This is usually required if you're getting volume init errors. * This may be required to resolve "volume init" errors.
// */
//#define SPI_SPEED SPI_HALF_SPEED //#define SPI_SPEED SPI_HALF_SPEED
//#define SPI_SPEED SPI_QUARTER_SPEED //#define SPI_SPEED SPI_QUARTER_SPEED
#define SPI_SPEED SPI_EIGHTH_SPEED #define SPI_SPEED SPI_EIGHTH_SPEED
// /**
// SD CARD: ENABLE CRC * SD CARD: ENABLE CRC
// *
// Use CRC checks and retries on the SD communication. * Use CRC checks and retries on the SD communication.
// */
//#define SD_CHECK_AND_RETRY //#define SD_CHECK_AND_RETRY
// //
@ -1205,7 +1202,7 @@
*/ */
// //
// This option reverses the encoder direction everywhere // This option reverses the encoder direction everywhere.
// //
// Set this option if CLOCKWISE causes values to DECREASE // Set this option if CLOCKWISE causes values to DECREASE
// //

@ -1001,23 +1001,17 @@
#define PREHEAT_2_TEMP_BED 100 #define PREHEAT_2_TEMP_BED 100
#define PREHEAT_2_FAN_SPEED 255 // Value from 0 to 255 #define PREHEAT_2_FAN_SPEED 255 // Value from 0 to 255
// /**
// Nozzle Park -- EXPERIMENTAL * Nozzle Park -- EXPERIMENTAL
// *
// When enabled allows the user to define a special XYZ position, inside the * Park the nozzle at the given XYZ position on idle or G27.
// machine's topology, to park the nozzle when idle or when receiving the G27 *
// command. * The "P" parameter controls the action applied to the Z axis:
// *
// The "P" paramenter controls what is the action applied to the Z axis: * P0 (Default) If Z is below park Z raise the nozzle.
// P0: (Default) If current Z-pos is lower than Z-park then the nozzle will * P1 Raise the nozzle always to Z-park height.
// be raised to reach Z-park height. * P2 Raise the nozzle by Z-park amount, limited to Z_MAX_POS.
// */
// P1: No matter the current Z-pos, the nozzle will be raised/lowered to
// reach Z-park height.
//
// P2: The nozzle height will be raised by Z-park amount but never going over
// the machine's limit of Z_MAX_POS.
//
//#define NOZZLE_PARK_FEATURE //#define NOZZLE_PARK_FEATURE
#if ENABLED(NOZZLE_PARK_FEATURE) #if ENABLED(NOZZLE_PARK_FEATURE)
@ -1025,44 +1019,44 @@
#define NOZZLE_PARK_POINT { (X_MIN_POS + 10), (Y_MAX_POS - 10), 20 } #define NOZZLE_PARK_POINT { (X_MIN_POS + 10), (Y_MAX_POS - 10), 20 }
#endif #endif
// /**
// Clean Nozzle Feature -- EXPERIMENTAL * Clean Nozzle Feature -- EXPERIMENTAL
// *
// When enabled allows the user to send G12 to start the nozzle cleaning * Adds the G12 command to perform a nozzle cleaning process.
// process, the G-Code accepts two parameters: *
// "P" for pattern selection * Parameters:
// "S" for defining the number of strokes/repetitions * P Pattern
// * S Strokes / Repetitions
// Available list of patterns: * T Triangles (P1 only)
// P0: This is the default pattern, this process requires a sponge type *
// material at a fixed bed location. S defines "strokes" i.e. * Patterns:
// back-and-forth movements between the starting and end points. * P0 Straight line (default). This process requires a sponge type material
// * at a fixed bed location. "S" specifies strokes (i.e. back-forth motions)
// P1: This starts a zig-zag pattern between (X0, Y0) and (X1, Y1), "T" * between the start / end points.
// defines the number of zig-zag triangles to be done. "S" defines the *
// number of strokes aka one back-and-forth movement. Zig-zags will * P1 Zig-zag pattern between (X0, Y0) and (X1, Y1), "T" specifies the
// be performed in whichever dimension is smallest. As an example, * number of zig-zag triangles to do. "S" defines the number of strokes.
// sending "G12 P1 S1 T3" will execute: * Zig-zags are done in whichever is the narrower dimension.
// * For example, "G12 P1 S1 T3" will execute:
// -- *
// | (X0, Y1) | /\ /\ /\ | (X1, Y1) * --
// | | / \ / \ / \ | * | (X0, Y1) | /\ /\ /\ | (X1, Y1)
// A | | / \ / \ / \ | * | | / \ / \ / \ |
// | | / \ / \ / \ | * A | | / \ / \ / \ |
// | (X0, Y0) | / \/ \/ \ | (X1, Y0) * | | / \ / \ / \ |
// -- +--------------------------------+ * | (X0, Y0) | / \/ \/ \ | (X1, Y0)
// |________|_________|_________| * -- +--------------------------------+
// T1 T2 T3 * |________|_________|_________|
// * T1 T2 T3
// P2: This starts a circular pattern with circle with middle in *
// NOZZLE_CLEAN_CIRCLE_MIDDLE radius of R and stroke count of S. * P2 Circular pattern with middle at NOZZLE_CLEAN_CIRCLE_MIDDLE.
// Before starting the circle nozzle goes to NOZZLE_CLEAN_START_POINT. * "R" specifies the radius. "S" specifies the stroke count.
// * Before starting, the nozzle moves to NOZZLE_CLEAN_START_POINT.
// Caveats: End point Z should use the same value as Start point Z. *
// * Caveats: The ending Z should be the same as starting Z.
// Attention: This is an EXPERIMENTAL feature, in the future the G-code arguments * Attention: EXPERIMENTAL. G-code arguments may change.
// may change to add new functionality like different wipe patterns. *
// */
//#define NOZZLE_CLEAN_FEATURE //#define NOZZLE_CLEAN_FEATURE
#if ENABLED(NOZZLE_CLEAN_FEATURE) #if ENABLED(NOZZLE_CLEAN_FEATURE)
@ -1087,33 +1081,35 @@
#define NOZZLE_CLEAN_GOBACK #define NOZZLE_CLEAN_GOBACK
#endif #endif
// /**
// Print job timer * Print Job Timer
// *
// Enable this option to automatically start and stop the * Automatically start and stop the print job timer on M104/M109/M190.
// print job timer when M104/M109/M190 commands are received. *
// M104 (extruder without wait) - high temp = none, low temp = stop timer * M104 (hotend, no wait) - high temp = none, low temp = stop timer
// M109 (extruder with wait) - high temp = start timer, low temp = stop timer * M109 (hotend, wait) - high temp = start timer, low temp = stop timer
// M190 (bed with wait) - high temp = start timer, low temp = none * M190 (bed, wait) - high temp = start timer, low temp = none
// *
// In all cases the timer can be started and stopped using * The timer can also be controlled with the following commands:
// the following commands: *
// * M75 - Start the print job timer
// - M75 - Start the print job timer * M76 - Pause the print job timer
// - M76 - Pause the print job timer * M77 - Stop the print job timer
// - M77 - Stop the print job timer */
#define PRINTJOB_TIMER_AUTOSTART #define PRINTJOB_TIMER_AUTOSTART
// /**
// Print Counter * Print Counter
// *
// When enabled Marlin will keep track of some print statistical data such as: * Track statistical data such as:
// - Total print jobs *
// - Total successful print jobs * - Total print jobs
// - Total failed print jobs * - Total successful print jobs
// - Total time printing * - Total failed print jobs
// * - Total time printing
// This information can be viewed by the M78 command. *
* View the current statistics with M78.
*/
//#define PRINTCOUNTER //#define PRINTCOUNTER
//============================================================================= //=============================================================================
@ -1122,78 +1118,79 @@
// @section lcd // @section lcd
// /**
// LCD LANGUAGE * LCD LANGUAGE
// *
// Here you may choose the language used by Marlin on the LCD menus, the following * Select the language to display on the LCD. These languages are available:
// list of languages are available: *
// en, an, bg, ca, cn, cz, de, el, el-gr, es, eu, fi, fr, gl, hr, it, * en, an, bg, ca, cn, cz, de, el, el-gr, es, eu, fi, fr, gl, hr, it,
// kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk, test * kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk, test
// *
// :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'test':'TEST' } * :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'test':'TEST' }
// */
//#define LCD_LANGUAGE en //#define LCD_LANGUAGE en
// /**
// LCD Character Set * LCD Character Set
// *
// Note: This option is NOT applicable to Graphical Displays. * Note: This option is NOT applicable to Graphical Displays.
// *
// All character-based LCD's provide ASCII plus one of these * All character-based LCDs provide ASCII plus one of these
// language extensions: * language extensions:
// *
// - JAPANESE ... the most common * - JAPANESE ... the most common
// - WESTERN ... with more accented characters * - WESTERN ... with more accented characters
// - CYRILLIC ... for the Russian language * - CYRILLIC ... for the Russian language
// *
// To determine the language extension installed on your controller: * To determine the language extension installed on your controller:
// *
// - Compile and upload with LCD_LANGUAGE set to 'test' * - Compile and upload with LCD_LANGUAGE set to 'test'
// - Click the controller to view the LCD menu * - Click the controller to view the LCD menu
// - The LCD will display Japanese, Western, or Cyrillic text * - The LCD will display Japanese, Western, or Cyrillic text
// *
// See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language * See https: *github.com/MarlinFirmware/Marlin/wiki/LCD-Language
// *
// :['JAPANESE', 'WESTERN', 'CYRILLIC'] * :['JAPANESE', 'WESTERN', 'CYRILLIC']
// */
#define DISPLAY_CHARSET_HD44780 JAPANESE #define DISPLAY_CHARSET_HD44780 JAPANESE
// /**
// LCD TYPE * LCD TYPE
// *
// You may choose ULTRA_LCD if you have character based LCD with 16x2, 16x4, 20x2, * Enable ULTRA_LCD for a 16x2, 16x4, 20x2, or 20x4 character-based LCD.
// 20x4 char/lines or DOGLCD for the full graphics display with 128x64 pixels * Enable DOGLCD for a 128x64 (ST7565R) Full Graphical Display.
// (ST7565R family). (This option will be set automatically for certain displays.) * (These options will be enabled automatically for most displays.)
// *
// IMPORTANT NOTE: The U8glib library is required for Full Graphic Display! * IMPORTANT: The U8glib library is required for Full Graphic Display!
// https://github.com/olikraus/U8glib_Arduino * https://github.com/olikraus/U8glib_Arduino
// */
//#define ULTRA_LCD // Character based //#define ULTRA_LCD // Character based
//#define DOGLCD // Full graphics display //#define DOGLCD // Full graphics display
// /**
// SD CARD * SD CARD
// *
// SD Card support is disabled by default. If your controller has an SD slot, * SD Card support is disabled by default. If your controller has an SD slot,
// you must uncomment the following option or it won't work. * you must uncomment the following option or it won't work.
// *
*/
//#define SDSUPPORT //#define SDSUPPORT
// /**
// SD CARD: SPI SPEED * SD CARD: SPI SPEED
// *
// Uncomment ONE of the following items to use a slower SPI transfer * Enable one of the following items for a slower SPI transfer speed.
// speed. This is usually required if you're getting volume init errors. * This may be required to resolve "volume init" errors.
// */
//#define SPI_SPEED SPI_HALF_SPEED //#define SPI_SPEED SPI_HALF_SPEED
//#define SPI_SPEED SPI_QUARTER_SPEED //#define SPI_SPEED SPI_QUARTER_SPEED
//#define SPI_SPEED SPI_EIGHTH_SPEED //#define SPI_SPEED SPI_EIGHTH_SPEED
// /**
// SD CARD: ENABLE CRC * SD CARD: ENABLE CRC
// *
// Use CRC checks and retries on the SD communication. * Use CRC checks and retries on the SD communication.
// */
//#define SD_CHECK_AND_RETRY //#define SD_CHECK_AND_RETRY
// //
@ -1221,7 +1218,7 @@
*/ */
// //
// This option reverses the encoder direction everywhere // This option reverses the encoder direction everywhere.
// //
// Set this option if CLOCKWISE causes values to DECREASE // Set this option if CLOCKWISE causes values to DECREASE
// //

@ -1006,23 +1006,17 @@
#define PREHEAT_2_TEMP_BED 110 #define PREHEAT_2_TEMP_BED 110
#define PREHEAT_2_FAN_SPEED 0 // Value from 0 to 255 #define PREHEAT_2_FAN_SPEED 0 // Value from 0 to 255
// /**
// Nozzle Park -- EXPERIMENTAL * Nozzle Park -- EXPERIMENTAL
// *
// When enabled allows the user to define a special XYZ position, inside the * Park the nozzle at the given XYZ position on idle or G27.
// machine's topology, to park the nozzle when idle or when receiving the G27 *
// command. * The "P" parameter controls the action applied to the Z axis:
// *
// The "P" paramenter controls what is the action applied to the Z axis: * P0 (Default) If Z is below park Z raise the nozzle.
// P0: (Default) If current Z-pos is lower than Z-park then the nozzle will * P1 Raise the nozzle always to Z-park height.
// be raised to reach Z-park height. * P2 Raise the nozzle by Z-park amount, limited to Z_MAX_POS.
// */
// P1: No matter the current Z-pos, the nozzle will be raised/lowered to
// reach Z-park height.
//
// P2: The nozzle height will be raised by Z-park amount but never going over
// the machine's limit of Z_MAX_POS.
//
//#define NOZZLE_PARK_FEATURE //#define NOZZLE_PARK_FEATURE
#if ENABLED(NOZZLE_PARK_FEATURE) #if ENABLED(NOZZLE_PARK_FEATURE)
@ -1030,44 +1024,44 @@
#define NOZZLE_PARK_POINT { (X_MIN_POS + 10), (Y_MAX_POS - 10), 20 } #define NOZZLE_PARK_POINT { (X_MIN_POS + 10), (Y_MAX_POS - 10), 20 }
#endif #endif
// /**
// Clean Nozzle Feature -- EXPERIMENTAL * Clean Nozzle Feature -- EXPERIMENTAL
// *
// When enabled allows the user to send G12 to start the nozzle cleaning * Adds the G12 command to perform a nozzle cleaning process.
// process, the G-Code accepts two parameters: *
// "P" for pattern selection * Parameters:
// "S" for defining the number of strokes/repetitions * P Pattern
// * S Strokes / Repetitions
// Available list of patterns: * T Triangles (P1 only)
// P0: This is the default pattern, this process requires a sponge type *
// material at a fixed bed location. S defines "strokes" i.e. * Patterns:
// back-and-forth movements between the starting and end points. * P0 Straight line (default). This process requires a sponge type material
// * at a fixed bed location. "S" specifies strokes (i.e. back-forth motions)
// P1: This starts a zig-zag pattern between (X0, Y0) and (X1, Y1), "T" * between the start / end points.
// defines the number of zig-zag triangles to be done. "S" defines the *
// number of strokes aka one back-and-forth movement. Zig-zags will * P1 Zig-zag pattern between (X0, Y0) and (X1, Y1), "T" specifies the
// be performed in whichever dimension is smallest. As an example, * number of zig-zag triangles to do. "S" defines the number of strokes.
// sending "G12 P1 S1 T3" will execute: * Zig-zags are done in whichever is the narrower dimension.
// * For example, "G12 P1 S1 T3" will execute:
// -- *
// | (X0, Y1) | /\ /\ /\ | (X1, Y1) * --
// | | / \ / \ / \ | * | (X0, Y1) | /\ /\ /\ | (X1, Y1)
// A | | / \ / \ / \ | * | | / \ / \ / \ |
// | | / \ / \ / \ | * A | | / \ / \ / \ |
// | (X0, Y0) | / \/ \/ \ | (X1, Y0) * | | / \ / \ / \ |
// -- +--------------------------------+ * | (X0, Y0) | / \/ \/ \ | (X1, Y0)
// |________|_________|_________| * -- +--------------------------------+
// T1 T2 T3 * |________|_________|_________|
// * T1 T2 T3
// P2: This starts a circular pattern with circle with middle in *
// NOZZLE_CLEAN_CIRCLE_MIDDLE radius of R and stroke count of S. * P2 Circular pattern with middle at NOZZLE_CLEAN_CIRCLE_MIDDLE.
// Before starting the circle nozzle goes to NOZZLE_CLEAN_START_POINT. * "R" specifies the radius. "S" specifies the stroke count.
// * Before starting, the nozzle moves to NOZZLE_CLEAN_START_POINT.
// Caveats: End point Z should use the same value as Start point Z. *
// * Caveats: The ending Z should be the same as starting Z.
// Attention: This is an EXPERIMENTAL feature, in the future the G-code arguments * Attention: EXPERIMENTAL. G-code arguments may change.
// may change to add new functionality like different wipe patterns. *
// */
//#define NOZZLE_CLEAN_FEATURE //#define NOZZLE_CLEAN_FEATURE
#if ENABLED(NOZZLE_CLEAN_FEATURE) #if ENABLED(NOZZLE_CLEAN_FEATURE)
@ -1092,33 +1086,35 @@
#define NOZZLE_CLEAN_GOBACK #define NOZZLE_CLEAN_GOBACK
#endif #endif
// /**
// Print job timer * Print Job Timer
// *
// Enable this option to automatically start and stop the * Automatically start and stop the print job timer on M104/M109/M190.
// print job timer when M104/M109/M190 commands are received. *
// M104 (extruder without wait) - high temp = none, low temp = stop timer * M104 (hotend, no wait) - high temp = none, low temp = stop timer
// M109 (extruder with wait) - high temp = start timer, low temp = stop timer * M109 (hotend, wait) - high temp = start timer, low temp = stop timer
// M190 (bed with wait) - high temp = start timer, low temp = none * M190 (bed, wait) - high temp = start timer, low temp = none
// *
// In all cases the timer can be started and stopped using * The timer can also be controlled with the following commands:
// the following commands: *
// * M75 - Start the print job timer
// - M75 - Start the print job timer * M76 - Pause the print job timer
// - M76 - Pause the print job timer * M77 - Stop the print job timer
// - M77 - Stop the print job timer */
#define PRINTJOB_TIMER_AUTOSTART #define PRINTJOB_TIMER_AUTOSTART
// /**
// Print Counter * Print Counter
// *
// When enabled Marlin will keep track of some print statistical data such as: * Track statistical data such as:
// - Total print jobs *
// - Total successful print jobs * - Total print jobs
// - Total failed print jobs * - Total successful print jobs
// - Total time printing * - Total failed print jobs
// * - Total time printing
// This information can be viewed by the M78 command. *
* View the current statistics with M78.
*/
//#define PRINTCOUNTER //#define PRINTCOUNTER
//============================================================================= //=============================================================================
@ -1127,78 +1123,79 @@
// @section lcd // @section lcd
// /**
// LCD LANGUAGE * LCD LANGUAGE
// *
// Here you may choose the language used by Marlin on the LCD menus, the following * Select the language to display on the LCD. These languages are available:
// list of languages are available: *
// en, an, bg, ca, cn, cz, de, el, el-gr, es, eu, fi, fr, gl, hr, it, * en, an, bg, ca, cn, cz, de, el, el-gr, es, eu, fi, fr, gl, hr, it,
// kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk, test * kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk, test
// *
// :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'test':'TEST' } * :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'test':'TEST' }
// */
#define LCD_LANGUAGE en #define LCD_LANGUAGE en
// /**
// LCD Character Set * LCD Character Set
// *
// Note: This option is NOT applicable to Graphical Displays. * Note: This option is NOT applicable to Graphical Displays.
// *
// All character-based LCD's provide ASCII plus one of these * All character-based LCDs provide ASCII plus one of these
// language extensions: * language extensions:
// *
// - JAPANESE ... the most common * - JAPANESE ... the most common
// - WESTERN ... with more accented characters * - WESTERN ... with more accented characters
// - CYRILLIC ... for the Russian language * - CYRILLIC ... for the Russian language
// *
// To determine the language extension installed on your controller: * To determine the language extension installed on your controller:
// *
// - Compile and upload with LCD_LANGUAGE set to 'test' * - Compile and upload with LCD_LANGUAGE set to 'test'
// - Click the controller to view the LCD menu * - Click the controller to view the LCD menu
// - The LCD will display Japanese, Western, or Cyrillic text * - The LCD will display Japanese, Western, or Cyrillic text
// *
// See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language * See https: *github.com/MarlinFirmware/Marlin/wiki/LCD-Language
// *
// :['JAPANESE', 'WESTERN', 'CYRILLIC'] * :['JAPANESE', 'WESTERN', 'CYRILLIC']
// */
#define DISPLAY_CHARSET_HD44780 JAPANESE #define DISPLAY_CHARSET_HD44780 JAPANESE
// /**
// LCD TYPE * LCD TYPE
// *
// You may choose ULTRA_LCD if you have character based LCD with 16x2, 16x4, 20x2, * Enable ULTRA_LCD for a 16x2, 16x4, 20x2, or 20x4 character-based LCD.
// 20x4 char/lines or DOGLCD for the full graphics display with 128x64 pixels * Enable DOGLCD for a 128x64 (ST7565R) Full Graphical Display.
// (ST7565R family). (This option will be set automatically for certain displays.) * (These options will be enabled automatically for most displays.)
// *
// IMPORTANT NOTE: The U8glib library is required for Full Graphic Display! * IMPORTANT: The U8glib library is required for Full Graphic Display!
// https://github.com/olikraus/U8glib_Arduino * https://github.com/olikraus/U8glib_Arduino
// */
//#define ULTRA_LCD // Character based //#define ULTRA_LCD // Character based
//#define DOGLCD // Full graphics display //#define DOGLCD // Full graphics display
// /**
// SD CARD * SD CARD
// *
// SD Card support is disabled by default. If your controller has an SD slot, * SD Card support is disabled by default. If your controller has an SD slot,
// you must uncomment the following option or it won't work. * you must uncomment the following option or it won't work.
// *
*/
//#define SDSUPPORT //#define SDSUPPORT
// /**
// SD CARD: SPI SPEED * SD CARD: SPI SPEED
// *
// Uncomment ONE of the following items to use a slower SPI transfer * Enable one of the following items for a slower SPI transfer speed.
// speed. This is usually required if you're getting volume init errors. * This may be required to resolve "volume init" errors.
// */
//#define SPI_SPEED SPI_HALF_SPEED //#define SPI_SPEED SPI_HALF_SPEED
//#define SPI_SPEED SPI_QUARTER_SPEED //#define SPI_SPEED SPI_QUARTER_SPEED
//#define SPI_SPEED SPI_EIGHTH_SPEED //#define SPI_SPEED SPI_EIGHTH_SPEED
// /**
// SD CARD: ENABLE CRC * SD CARD: ENABLE CRC
// *
// Use CRC checks and retries on the SD communication. * Use CRC checks and retries on the SD communication.
// */
//#define SD_CHECK_AND_RETRY //#define SD_CHECK_AND_RETRY
// //
@ -1226,7 +1223,7 @@
*/ */
// //
// This option reverses the encoder direction everywhere // This option reverses the encoder direction everywhere.
// //
// Set this option if CLOCKWISE causes values to DECREASE // Set this option if CLOCKWISE causes values to DECREASE
// //

@ -1042,23 +1042,17 @@
#define PREHEAT_2_TEMP_BED 90 // TB2: ABS default 110, 90 is the maximum temp at 12V supply #define PREHEAT_2_TEMP_BED 90 // TB2: ABS default 110, 90 is the maximum temp at 12V supply
#define PREHEAT_2_FAN_SPEED 0 // Value from 0 to 255 #define PREHEAT_2_FAN_SPEED 0 // Value from 0 to 255
// /**
// Nozzle Park -- EXPERIMENTAL * Nozzle Park -- EXPERIMENTAL
// *
// When enabled allows the user to define a special XYZ position, inside the * Park the nozzle at the given XYZ position on idle or G27.
// machine's topology, to park the nozzle when idle or when receiving the G27 *
// command. * The "P" parameter controls the action applied to the Z axis:
// *
// The "P" paramenter controls what is the action applied to the Z axis: * P0 (Default) If Z is below park Z raise the nozzle.
// P0: (Default) If current Z-pos is lower than Z-park then the nozzle will * P1 Raise the nozzle always to Z-park height.
// be raised to reach Z-park height. * P2 Raise the nozzle by Z-park amount, limited to Z_MAX_POS.
// */
// P1: No matter the current Z-pos, the nozzle will be raised/lowered to
// reach Z-park height.
//
// P2: The nozzle height will be raised by Z-park amount but never going over
// the machine's limit of Z_MAX_POS.
//
#define NOZZLE_PARK_FEATURE #define NOZZLE_PARK_FEATURE
#if ENABLED(NOZZLE_PARK_FEATURE) #if ENABLED(NOZZLE_PARK_FEATURE)
@ -1066,44 +1060,44 @@
#define NOZZLE_PARK_POINT { (X_MIN_POS + 10), (Y_MAX_POS - 10), 20 } #define NOZZLE_PARK_POINT { (X_MIN_POS + 10), (Y_MAX_POS - 10), 20 }
#endif #endif
// /**
// Clean Nozzle Feature -- EXPERIMENTAL * Clean Nozzle Feature -- EXPERIMENTAL
// *
// When enabled allows the user to send G12 to start the nozzle cleaning * Adds the G12 command to perform a nozzle cleaning process.
// process, the G-Code accepts two parameters: *
// "P" for pattern selection * Parameters:
// "S" for defining the number of strokes/repetitions * P Pattern
// * S Strokes / Repetitions
// Available list of patterns: * T Triangles (P1 only)
// P0: This is the default pattern, this process requires a sponge type *
// material at a fixed bed location. S defines "strokes" i.e. * Patterns:
// back-and-forth movements between the starting and end points. * P0 Straight line (default). This process requires a sponge type material
// * at a fixed bed location. "S" specifies strokes (i.e. back-forth motions)
// P1: This starts a zig-zag pattern between (X0, Y0) and (X1, Y1), "T" * between the start / end points.
// defines the number of zig-zag triangles to be done. "S" defines the *
// number of strokes aka one back-and-forth movement. Zig-zags will * P1 Zig-zag pattern between (X0, Y0) and (X1, Y1), "T" specifies the
// be performed in whichever dimension is smallest. As an example, * number of zig-zag triangles to do. "S" defines the number of strokes.
// sending "G12 P1 S1 T3" will execute: * Zig-zags are done in whichever is the narrower dimension.
// * For example, "G12 P1 S1 T3" will execute:
// -- *
// | (X0, Y1) | /\ /\ /\ | (X1, Y1) * --
// | | / \ / \ / \ | * | (X0, Y1) | /\ /\ /\ | (X1, Y1)
// A | | / \ / \ / \ | * | | / \ / \ / \ |
// | | / \ / \ / \ | * A | | / \ / \ / \ |
// | (X0, Y0) | / \/ \/ \ | (X1, Y0) * | | / \ / \ / \ |
// -- +--------------------------------+ * | (X0, Y0) | / \/ \/ \ | (X1, Y0)
// |________|_________|_________| * -- +--------------------------------+
// T1 T2 T3 * |________|_________|_________|
// * T1 T2 T3
// P2: This starts a circular pattern with circle with middle in *
// NOZZLE_CLEAN_CIRCLE_MIDDLE radius of R and stroke count of S. * P2 Circular pattern with middle at NOZZLE_CLEAN_CIRCLE_MIDDLE.
// Before starting the circle nozzle goes to NOZZLE_CLEAN_START_POINT. * "R" specifies the radius. "S" specifies the stroke count.
// * Before starting, the nozzle moves to NOZZLE_CLEAN_START_POINT.
// Caveats: End point Z should use the same value as Start point Z. *
// * Caveats: The ending Z should be the same as starting Z.
// Attention: This is an EXPERIMENTAL feature, in the future the G-code arguments * Attention: EXPERIMENTAL. G-code arguments may change.
// may change to add new functionality like different wipe patterns. *
// */
//#define NOZZLE_CLEAN_FEATURE //#define NOZZLE_CLEAN_FEATURE
#if ENABLED(NOZZLE_CLEAN_FEATURE) #if ENABLED(NOZZLE_CLEAN_FEATURE)
@ -1128,33 +1122,35 @@
#define NOZZLE_CLEAN_GOBACK #define NOZZLE_CLEAN_GOBACK
#endif #endif
// /**
// Print job timer * Print Job Timer
// *
// Enable this option to automatically start and stop the * Automatically start and stop the print job timer on M104/M109/M190.
// print job timer when M104/M109/M190 commands are received. *
// M104 (extruder without wait) - high temp = none, low temp = stop timer * M104 (hotend, no wait) - high temp = none, low temp = stop timer
// M109 (extruder with wait) - high temp = start timer, low temp = stop timer * M109 (hotend, wait) - high temp = start timer, low temp = stop timer
// M190 (bed with wait) - high temp = start timer, low temp = none * M190 (bed, wait) - high temp = start timer, low temp = none
// *
// In all cases the timer can be started and stopped using * The timer can also be controlled with the following commands:
// the following commands: *
// * M75 - Start the print job timer
// - M75 - Start the print job timer * M76 - Pause the print job timer
// - M76 - Pause the print job timer * M77 - Stop the print job timer
// - M77 - Stop the print job timer */
#define PRINTJOB_TIMER_AUTOSTART #define PRINTJOB_TIMER_AUTOSTART
// /**
// Print Counter * Print Counter
// *
// When enabled Marlin will keep track of some print statistical data such as: * Track statistical data such as:
// - Total print jobs *
// - Total successful print jobs * - Total print jobs
// - Total failed print jobs * - Total successful print jobs
// - Total time printing * - Total failed print jobs
// * - Total time printing
// This information can be viewed by the M78 command. *
* View the current statistics with M78.
*/
#define PRINTCOUNTER #define PRINTCOUNTER
//============================================================================= //=============================================================================
@ -1163,78 +1159,79 @@
// @section lcd // @section lcd
// /**
// LCD LANGUAGE * LCD LANGUAGE
// *
// Here you may choose the language used by Marlin on the LCD menus, the following * Select the language to display on the LCD. These languages are available:
// list of languages are available: *
// en, an, bg, ca, cn, cz, de, el, el-gr, es, eu, fi, fr, gl, hr, it, * en, an, bg, ca, cn, cz, de, el, el-gr, es, eu, fi, fr, gl, hr, it,
// kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk, test * kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk, test
// *
// :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'test':'TEST' } * :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'test':'TEST' }
// */
#define LCD_LANGUAGE en #define LCD_LANGUAGE en
// /**
// LCD Character Set * LCD Character Set
// *
// Note: This option is NOT applicable to Graphical Displays. * Note: This option is NOT applicable to Graphical Displays.
// *
// All character-based LCD's provide ASCII plus one of these * All character-based LCDs provide ASCII plus one of these
// language extensions: * language extensions:
// *
// - JAPANESE ... the most common * - JAPANESE ... the most common
// - WESTERN ... with more accented characters * - WESTERN ... with more accented characters
// - CYRILLIC ... for the Russian language * - CYRILLIC ... for the Russian language
// *
// To determine the language extension installed on your controller: * To determine the language extension installed on your controller:
// *
// - Compile and upload with LCD_LANGUAGE set to 'test' * - Compile and upload with LCD_LANGUAGE set to 'test'
// - Click the controller to view the LCD menu * - Click the controller to view the LCD menu
// - The LCD will display Japanese, Western, or Cyrillic text * - The LCD will display Japanese, Western, or Cyrillic text
// *
// See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language * See https: *github.com/MarlinFirmware/Marlin/wiki/LCD-Language
// *
// :['JAPANESE', 'WESTERN', 'CYRILLIC'] * :['JAPANESE', 'WESTERN', 'CYRILLIC']
// */
#define DISPLAY_CHARSET_HD44780 JAPANESE #define DISPLAY_CHARSET_HD44780 JAPANESE
// /**
// LCD TYPE * LCD TYPE
// *
// You may choose ULTRA_LCD if you have character based LCD with 16x2, 16x4, 20x2, * Enable ULTRA_LCD for a 16x2, 16x4, 20x2, or 20x4 character-based LCD.
// 20x4 char/lines or DOGLCD for the full graphics display with 128x64 pixels * Enable DOGLCD for a 128x64 (ST7565R) Full Graphical Display.
// (ST7565R family). (This option will be set automatically for certain displays.) * (These options will be enabled automatically for most displays.)
// *
// IMPORTANT NOTE: The U8glib library is required for Full Graphic Display! * IMPORTANT: The U8glib library is required for Full Graphic Display!
// https://github.com/olikraus/U8glib_Arduino * https://github.com/olikraus/U8glib_Arduino
// */
//#define ULTRA_LCD // Character based //#define ULTRA_LCD // Character based
//#define DOGLCD // Full graphics display //#define DOGLCD // Full graphics display
// /**
// SD CARD * SD CARD
// *
// SD Card support is disabled by default. If your controller has an SD slot, * SD Card support is disabled by default. If your controller has an SD slot,
// you must uncomment the following option or it won't work. * you must uncomment the following option or it won't work.
// *
*/
#define SDSUPPORT #define SDSUPPORT
// /**
// SD CARD: SPI SPEED * SD CARD: SPI SPEED
// *
// Uncomment ONE of the following items to use a slower SPI transfer * Enable one of the following items for a slower SPI transfer speed.
// speed. This is usually required if you're getting volume init errors. * This may be required to resolve "volume init" errors.
// */
//#define SPI_SPEED SPI_HALF_SPEED //#define SPI_SPEED SPI_HALF_SPEED
//#define SPI_SPEED SPI_QUARTER_SPEED //#define SPI_SPEED SPI_QUARTER_SPEED
//#define SPI_SPEED SPI_EIGHTH_SPEED //#define SPI_SPEED SPI_EIGHTH_SPEED
// /**
// SD CARD: ENABLE CRC * SD CARD: ENABLE CRC
// *
// Use CRC checks and retries on the SD communication. * Use CRC checks and retries on the SD communication.
// */
#define SD_CHECK_AND_RETRY #define SD_CHECK_AND_RETRY
// //
@ -1262,7 +1259,7 @@
*/ */
// //
// This option reverses the encoder direction everywhere // This option reverses the encoder direction everywhere.
// //
// Set this option if CLOCKWISE causes values to DECREASE // Set this option if CLOCKWISE causes values to DECREASE
// //

@ -977,23 +977,17 @@
#define PREHEAT_2_TEMP_BED 100 #define PREHEAT_2_TEMP_BED 100
#define PREHEAT_2_FAN_SPEED 255 // Value from 0 to 255 #define PREHEAT_2_FAN_SPEED 255 // Value from 0 to 255
// /**
// Nozzle Park -- EXPERIMENTAL * Nozzle Park -- EXPERIMENTAL
// *
// When enabled allows the user to define a special XYZ position, inside the * Park the nozzle at the given XYZ position on idle or G27.
// machine's topology, to park the nozzle when idle or when receiving the G27 *
// command. * The "P" parameter controls the action applied to the Z axis:
// *
// The "P" paramenter controls what is the action applied to the Z axis: * P0 (Default) If Z is below park Z raise the nozzle.
// P0: (Default) If current Z-pos is lower than Z-park then the nozzle will * P1 Raise the nozzle always to Z-park height.
// be raised to reach Z-park height. * P2 Raise the nozzle by Z-park amount, limited to Z_MAX_POS.
// */
// P1: No matter the current Z-pos, the nozzle will be raised/lowered to
// reach Z-park height.
//
// P2: The nozzle height will be raised by Z-park amount but never going over
// the machine's limit of Z_MAX_POS.
//
//#define NOZZLE_PARK_FEATURE //#define NOZZLE_PARK_FEATURE
#if ENABLED(NOZZLE_PARK_FEATURE) #if ENABLED(NOZZLE_PARK_FEATURE)
@ -1001,44 +995,44 @@
#define NOZZLE_PARK_POINT { (X_MIN_POS + 10), (Y_MAX_POS - 10), 20 } #define NOZZLE_PARK_POINT { (X_MIN_POS + 10), (Y_MAX_POS - 10), 20 }
#endif #endif
// /**
// Clean Nozzle Feature -- EXPERIMENTAL * Clean Nozzle Feature -- EXPERIMENTAL
// *
// When enabled allows the user to send G12 to start the nozzle cleaning * Adds the G12 command to perform a nozzle cleaning process.
// process, the G-Code accepts two parameters: *
// "P" for pattern selection * Parameters:
// "S" for defining the number of strokes/repetitions * P Pattern
// * S Strokes / Repetitions
// Available list of patterns: * T Triangles (P1 only)
// P0: This is the default pattern, this process requires a sponge type *
// material at a fixed bed location. S defines "strokes" i.e. * Patterns:
// back-and-forth movements between the starting and end points. * P0 Straight line (default). This process requires a sponge type material
// * at a fixed bed location. "S" specifies strokes (i.e. back-forth motions)
// P1: This starts a zig-zag pattern between (X0, Y0) and (X1, Y1), "T" * between the start / end points.
// defines the number of zig-zag triangles to be done. "S" defines the *
// number of strokes aka one back-and-forth movement. Zig-zags will * P1 Zig-zag pattern between (X0, Y0) and (X1, Y1), "T" specifies the
// be performed in whichever dimension is smallest. As an example, * number of zig-zag triangles to do. "S" defines the number of strokes.
// sending "G12 P1 S1 T3" will execute: * Zig-zags are done in whichever is the narrower dimension.
// * For example, "G12 P1 S1 T3" will execute:
// -- *
// | (X0, Y1) | /\ /\ /\ | (X1, Y1) * --
// | | / \ / \ / \ | * | (X0, Y1) | /\ /\ /\ | (X1, Y1)
// A | | / \ / \ / \ | * | | / \ / \ / \ |
// | | / \ / \ / \ | * A | | / \ / \ / \ |
// | (X0, Y0) | / \/ \/ \ | (X1, Y0) * | | / \ / \ / \ |
// -- +--------------------------------+ * | (X0, Y0) | / \/ \/ \ | (X1, Y0)
// |________|_________|_________| * -- +--------------------------------+
// T1 T2 T3 * |________|_________|_________|
// * T1 T2 T3
// P2: This starts a circular pattern with circle with middle in *
// NOZZLE_CLEAN_CIRCLE_MIDDLE radius of R and stroke count of S. * P2 Circular pattern with middle at NOZZLE_CLEAN_CIRCLE_MIDDLE.
// Before starting the circle nozzle goes to NOZZLE_CLEAN_START_POINT. * "R" specifies the radius. "S" specifies the stroke count.
// * Before starting, the nozzle moves to NOZZLE_CLEAN_START_POINT.
// Caveats: End point Z should use the same value as Start point Z. *
// * Caveats: The ending Z should be the same as starting Z.
// Attention: This is an EXPERIMENTAL feature, in the future the G-code arguments * Attention: EXPERIMENTAL. G-code arguments may change.
// may change to add new functionality like different wipe patterns. *
// */
//#define NOZZLE_CLEAN_FEATURE //#define NOZZLE_CLEAN_FEATURE
#if ENABLED(NOZZLE_CLEAN_FEATURE) #if ENABLED(NOZZLE_CLEAN_FEATURE)
@ -1063,33 +1057,35 @@
#define NOZZLE_CLEAN_GOBACK #define NOZZLE_CLEAN_GOBACK
#endif #endif
// /**
// Print job timer * Print Job Timer
// *
// Enable this option to automatically start and stop the * Automatically start and stop the print job timer on M104/M109/M190.
// print job timer when M104/M109/M190 commands are received. *
// M104 (extruder without wait) - high temp = none, low temp = stop timer * M104 (hotend, no wait) - high temp = none, low temp = stop timer
// M109 (extruder with wait) - high temp = start timer, low temp = stop timer * M109 (hotend, wait) - high temp = start timer, low temp = stop timer
// M190 (bed with wait) - high temp = start timer, low temp = none * M190 (bed, wait) - high temp = start timer, low temp = none
// *
// In all cases the timer can be started and stopped using * The timer can also be controlled with the following commands:
// the following commands: *
// * M75 - Start the print job timer
// - M75 - Start the print job timer * M76 - Pause the print job timer
// - M76 - Pause the print job timer * M77 - Stop the print job timer
// - M77 - Stop the print job timer */
#define PRINTJOB_TIMER_AUTOSTART #define PRINTJOB_TIMER_AUTOSTART
// /**
// Print Counter * Print Counter
// *
// When enabled Marlin will keep track of some print statistical data such as: * Track statistical data such as:
// - Total print jobs *
// - Total successful print jobs * - Total print jobs
// - Total failed print jobs * - Total successful print jobs
// - Total time printing * - Total failed print jobs
// * - Total time printing
// This information can be viewed by the M78 command. *
* View the current statistics with M78.
*/
//#define PRINTCOUNTER //#define PRINTCOUNTER
//============================================================================= //=============================================================================
@ -1098,78 +1094,79 @@
// @section lcd // @section lcd
// /**
// LCD LANGUAGE * LCD LANGUAGE
// *
// Here you may choose the language used by Marlin on the LCD menus, the following * Select the language to display on the LCD. These languages are available:
// list of languages are available: *
// en, an, bg, ca, cn, cz, de, el, el-gr, es, eu, fi, fr, gl, hr, it, * en, an, bg, ca, cn, cz, de, el, el-gr, es, eu, fi, fr, gl, hr, it,
// kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk, test * kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk, test
// *
// :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'test':'TEST' } * :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'test':'TEST' }
// */
//#define LCD_LANGUAGE en //#define LCD_LANGUAGE en
// /**
// LCD Character Set * LCD Character Set
// *
// Note: This option is NOT applicable to Graphical Displays. * Note: This option is NOT applicable to Graphical Displays.
// *
// All character-based LCD's provide ASCII plus one of these * All character-based LCDs provide ASCII plus one of these
// language extensions: * language extensions:
// *
// - JAPANESE ... the most common * - JAPANESE ... the most common
// - WESTERN ... with more accented characters * - WESTERN ... with more accented characters
// - CYRILLIC ... for the Russian language * - CYRILLIC ... for the Russian language
// *
// To determine the language extension installed on your controller: * To determine the language extension installed on your controller:
// *
// - Compile and upload with LCD_LANGUAGE set to 'test' * - Compile and upload with LCD_LANGUAGE set to 'test'
// - Click the controller to view the LCD menu * - Click the controller to view the LCD menu
// - The LCD will display Japanese, Western, or Cyrillic text * - The LCD will display Japanese, Western, or Cyrillic text
// *
// See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language * See https: *github.com/MarlinFirmware/Marlin/wiki/LCD-Language
// *
// :['JAPANESE', 'WESTERN', 'CYRILLIC'] * :['JAPANESE', 'WESTERN', 'CYRILLIC']
// */
#define DISPLAY_CHARSET_HD44780 JAPANESE #define DISPLAY_CHARSET_HD44780 JAPANESE
// /**
// LCD TYPE * LCD TYPE
// *
// You may choose ULTRA_LCD if you have character based LCD with 16x2, 16x4, 20x2, * Enable ULTRA_LCD for a 16x2, 16x4, 20x2, or 20x4 character-based LCD.
// 20x4 char/lines or DOGLCD for the full graphics display with 128x64 pixels * Enable DOGLCD for a 128x64 (ST7565R) Full Graphical Display.
// (ST7565R family). (This option will be set automatically for certain displays.) * (These options will be enabled automatically for most displays.)
// *
// IMPORTANT NOTE: The U8glib library is required for Full Graphic Display! * IMPORTANT: The U8glib library is required for Full Graphic Display!
// https://github.com/olikraus/U8glib_Arduino * https://github.com/olikraus/U8glib_Arduino
// */
#define ULTRA_LCD // Character based #define ULTRA_LCD // Character based
//#define DOGLCD // Full graphics display //#define DOGLCD // Full graphics display
// /**
// SD CARD * SD CARD
// *
// SD Card support is disabled by default. If your controller has an SD slot, * SD Card support is disabled by default. If your controller has an SD slot,
// you must uncomment the following option or it won't work. * you must uncomment the following option or it won't work.
// *
*/
#define SDSUPPORT #define SDSUPPORT
// /**
// SD CARD: SPI SPEED * SD CARD: SPI SPEED
// *
// Uncomment ONE of the following items to use a slower SPI transfer * Enable one of the following items for a slower SPI transfer speed.
// speed. This is usually required if you're getting volume init errors. * This may be required to resolve "volume init" errors.
// */
//#define SPI_SPEED SPI_HALF_SPEED //#define SPI_SPEED SPI_HALF_SPEED
//#define SPI_SPEED SPI_QUARTER_SPEED //#define SPI_SPEED SPI_QUARTER_SPEED
//#define SPI_SPEED SPI_EIGHTH_SPEED //#define SPI_SPEED SPI_EIGHTH_SPEED
// /**
// SD CARD: ENABLE CRC * SD CARD: ENABLE CRC
// *
// Use CRC checks and retries on the SD communication. * Use CRC checks and retries on the SD communication.
// */
//#define SD_CHECK_AND_RETRY //#define SD_CHECK_AND_RETRY
// //
@ -1197,7 +1194,7 @@
*/ */
// //
// This option reverses the encoder direction everywhere // This option reverses the encoder direction everywhere.
// //
// Set this option if CLOCKWISE causes values to DECREASE // Set this option if CLOCKWISE causes values to DECREASE
// //

@ -986,23 +986,17 @@
#define PREHEAT_2_TEMP_BED 110 #define PREHEAT_2_TEMP_BED 110
#define PREHEAT_2_FAN_SPEED 0 // Value from 0 to 255 #define PREHEAT_2_FAN_SPEED 0 // Value from 0 to 255
// /**
// Nozzle Park -- EXPERIMENTAL * Nozzle Park -- EXPERIMENTAL
// *
// When enabled allows the user to define a special XYZ position, inside the * Park the nozzle at the given XYZ position on idle or G27.
// machine's topology, to park the nozzle when idle or when receiving the G27 *
// command. * The "P" parameter controls the action applied to the Z axis:
// *
// The "P" paramenter controls what is the action applied to the Z axis: * P0 (Default) If Z is below park Z raise the nozzle.
// P0: (Default) If current Z-pos is lower than Z-park then the nozzle will * P1 Raise the nozzle always to Z-park height.
// be raised to reach Z-park height. * P2 Raise the nozzle by Z-park amount, limited to Z_MAX_POS.
// */
// P1: No matter the current Z-pos, the nozzle will be raised/lowered to
// reach Z-park height.
//
// P2: The nozzle height will be raised by Z-park amount but never going over
// the machine's limit of Z_MAX_POS.
//
//#define NOZZLE_PARK_FEATURE //#define NOZZLE_PARK_FEATURE
#if ENABLED(NOZZLE_PARK_FEATURE) #if ENABLED(NOZZLE_PARK_FEATURE)
@ -1010,44 +1004,44 @@
#define NOZZLE_PARK_POINT { (X_MIN_POS + 10), (Y_MAX_POS - 10), 20 } #define NOZZLE_PARK_POINT { (X_MIN_POS + 10), (Y_MAX_POS - 10), 20 }
#endif #endif
// /**
// Clean Nozzle Feature -- EXPERIMENTAL * Clean Nozzle Feature -- EXPERIMENTAL
// *
// When enabled allows the user to send G12 to start the nozzle cleaning * Adds the G12 command to perform a nozzle cleaning process.
// process, the G-Code accepts two parameters: *
// "P" for pattern selection * Parameters:
// "S" for defining the number of strokes/repetitions * P Pattern
// * S Strokes / Repetitions
// Available list of patterns: * T Triangles (P1 only)
// P0: This is the default pattern, this process requires a sponge type *
// material at a fixed bed location. S defines "strokes" i.e. * Patterns:
// back-and-forth movements between the starting and end points. * P0 Straight line (default). This process requires a sponge type material
// * at a fixed bed location. "S" specifies strokes (i.e. back-forth motions)
// P1: This starts a zig-zag pattern between (X0, Y0) and (X1, Y1), "T" * between the start / end points.
// defines the number of zig-zag triangles to be done. "S" defines the *
// number of strokes aka one back-and-forth movement. Zig-zags will * P1 Zig-zag pattern between (X0, Y0) and (X1, Y1), "T" specifies the
// be performed in whichever dimension is smallest. As an example, * number of zig-zag triangles to do. "S" defines the number of strokes.
// sending "G12 P1 S1 T3" will execute: * Zig-zags are done in whichever is the narrower dimension.
// * For example, "G12 P1 S1 T3" will execute:
// -- *
// | (X0, Y1) | /\ /\ /\ | (X1, Y1) * --
// | | / \ / \ / \ | * | (X0, Y1) | /\ /\ /\ | (X1, Y1)
// A | | / \ / \ / \ | * | | / \ / \ / \ |
// | | / \ / \ / \ | * A | | / \ / \ / \ |
// | (X0, Y0) | / \/ \/ \ | (X1, Y0) * | | / \ / \ / \ |
// -- +--------------------------------+ * | (X0, Y0) | / \/ \/ \ | (X1, Y0)
// |________|_________|_________| * -- +--------------------------------+
// T1 T2 T3 * |________|_________|_________|
// * T1 T2 T3
// P2: This starts a circular pattern with circle with middle in *
// NOZZLE_CLEAN_CIRCLE_MIDDLE radius of R and stroke count of S. * P2 Circular pattern with middle at NOZZLE_CLEAN_CIRCLE_MIDDLE.
// Before starting the circle nozzle goes to NOZZLE_CLEAN_START_POINT. * "R" specifies the radius. "S" specifies the stroke count.
// * Before starting, the nozzle moves to NOZZLE_CLEAN_START_POINT.
// Caveats: End point Z should use the same value as Start point Z. *
// * Caveats: The ending Z should be the same as starting Z.
// Attention: This is an EXPERIMENTAL feature, in the future the G-code arguments * Attention: EXPERIMENTAL. G-code arguments may change.
// may change to add new functionality like different wipe patterns. *
// */
//#define NOZZLE_CLEAN_FEATURE //#define NOZZLE_CLEAN_FEATURE
#if ENABLED(NOZZLE_CLEAN_FEATURE) #if ENABLED(NOZZLE_CLEAN_FEATURE)
@ -1072,33 +1066,35 @@
#define NOZZLE_CLEAN_GOBACK #define NOZZLE_CLEAN_GOBACK
#endif #endif
// /**
// Print job timer * Print Job Timer
// *
// Enable this option to automatically start and stop the * Automatically start and stop the print job timer on M104/M109/M190.
// print job timer when M104/M109/M190 commands are received. *
// M104 (extruder without wait) - high temp = none, low temp = stop timer * M104 (hotend, no wait) - high temp = none, low temp = stop timer
// M109 (extruder with wait) - high temp = start timer, low temp = stop timer * M109 (hotend, wait) - high temp = start timer, low temp = stop timer
// M190 (bed with wait) - high temp = start timer, low temp = none * M190 (bed, wait) - high temp = start timer, low temp = none
// *
// In all cases the timer can be started and stopped using * The timer can also be controlled with the following commands:
// the following commands: *
// * M75 - Start the print job timer
// - M75 - Start the print job timer * M76 - Pause the print job timer
// - M76 - Pause the print job timer * M77 - Stop the print job timer
// - M77 - Stop the print job timer */
#define PRINTJOB_TIMER_AUTOSTART #define PRINTJOB_TIMER_AUTOSTART
// /**
// Print Counter * Print Counter
// *
// When enabled Marlin will keep track of some print statistical data such as: * Track statistical data such as:
// - Total print jobs *
// - Total successful print jobs * - Total print jobs
// - Total failed print jobs * - Total successful print jobs
// - Total time printing * - Total failed print jobs
// * - Total time printing
// This information can be viewed by the M78 command. *
* View the current statistics with M78.
*/
//#define PRINTCOUNTER //#define PRINTCOUNTER
//============================================================================= //=============================================================================
@ -1107,78 +1103,79 @@
// @section lcd // @section lcd
// /**
// LCD LANGUAGE * LCD LANGUAGE
// *
// Here you may choose the language used by Marlin on the LCD menus, the following * Select the language to display on the LCD. These languages are available:
// list of languages are available: *
// en, an, bg, ca, cn, cz, de, el, el-gr, es, eu, fi, fr, gl, hr, it, * en, an, bg, ca, cn, cz, de, el, el-gr, es, eu, fi, fr, gl, hr, it,
// kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk, test * kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk, test
// *
// :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'test':'TEST' } * :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'test':'TEST' }
// */
#define LCD_LANGUAGE en #define LCD_LANGUAGE en
// /**
// LCD Character Set * LCD Character Set
// *
// Note: This option is NOT applicable to Graphical Displays. * Note: This option is NOT applicable to Graphical Displays.
// *
// All character-based LCD's provide ASCII plus one of these * All character-based LCDs provide ASCII plus one of these
// language extensions: * language extensions:
// *
// - JAPANESE ... the most common * - JAPANESE ... the most common
// - WESTERN ... with more accented characters * - WESTERN ... with more accented characters
// - CYRILLIC ... for the Russian language * - CYRILLIC ... for the Russian language
// *
// To determine the language extension installed on your controller: * To determine the language extension installed on your controller:
// *
// - Compile and upload with LCD_LANGUAGE set to 'test' * - Compile and upload with LCD_LANGUAGE set to 'test'
// - Click the controller to view the LCD menu * - Click the controller to view the LCD menu
// - The LCD will display Japanese, Western, or Cyrillic text * - The LCD will display Japanese, Western, or Cyrillic text
// *
// See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language * See https: *github.com/MarlinFirmware/Marlin/wiki/LCD-Language
// *
// :['JAPANESE', 'WESTERN', 'CYRILLIC'] * :['JAPANESE', 'WESTERN', 'CYRILLIC']
// */
#define DISPLAY_CHARSET_HD44780 JAPANESE #define DISPLAY_CHARSET_HD44780 JAPANESE
// /**
// LCD TYPE * LCD TYPE
// *
// You may choose ULTRA_LCD if you have character based LCD with 16x2, 16x4, 20x2, * Enable ULTRA_LCD for a 16x2, 16x4, 20x2, or 20x4 character-based LCD.
// 20x4 char/lines or DOGLCD for the full graphics display with 128x64 pixels * Enable DOGLCD for a 128x64 (ST7565R) Full Graphical Display.
// (ST7565R family). (This option will be set automatically for certain displays.) * (These options will be enabled automatically for most displays.)
// *
// IMPORTANT NOTE: The U8glib library is required for Full Graphic Display! * IMPORTANT: The U8glib library is required for Full Graphic Display!
// https://github.com/olikraus/U8glib_Arduino * https://github.com/olikraus/U8glib_Arduino
// */
//#define ULTRA_LCD // Character based //#define ULTRA_LCD // Character based
//#define DOGLCD // Full graphics display //#define DOGLCD // Full graphics display
// /**
// SD CARD * SD CARD
// *
// SD Card support is disabled by default. If your controller has an SD slot, * SD Card support is disabled by default. If your controller has an SD slot,
// you must uncomment the following option or it won't work. * you must uncomment the following option or it won't work.
// *
*/
#define SDSUPPORT #define SDSUPPORT
// /**
// SD CARD: SPI SPEED * SD CARD: SPI SPEED
// *
// Uncomment ONE of the following items to use a slower SPI transfer * Enable one of the following items for a slower SPI transfer speed.
// speed. This is usually required if you're getting volume init errors. * This may be required to resolve "volume init" errors.
// */
#define SPI_SPEED SPI_HALF_SPEED #define SPI_SPEED SPI_HALF_SPEED
//#define SPI_SPEED SPI_QUARTER_SPEED //#define SPI_SPEED SPI_QUARTER_SPEED
//#define SPI_SPEED SPI_EIGHTH_SPEED //#define SPI_SPEED SPI_EIGHTH_SPEED
// /**
// SD CARD: ENABLE CRC * SD CARD: ENABLE CRC
// *
// Use CRC checks and retries on the SD communication. * Use CRC checks and retries on the SD communication.
// */
//#define SD_CHECK_AND_RETRY //#define SD_CHECK_AND_RETRY
// //
@ -1206,7 +1203,7 @@
*/ */
// //
// This option reverses the encoder direction everywhere // This option reverses the encoder direction everywhere.
// //
// Set this option if CLOCKWISE causes values to DECREASE // Set this option if CLOCKWISE causes values to DECREASE
// //

@ -1104,23 +1104,17 @@
#define PREHEAT_2_TEMP_BED 100 #define PREHEAT_2_TEMP_BED 100
#define PREHEAT_2_FAN_SPEED 0 // Value from 0 to 255 #define PREHEAT_2_FAN_SPEED 0 // Value from 0 to 255
// /**
// Nozzle Park -- EXPERIMENTAL * Nozzle Park -- EXPERIMENTAL
// *
// When enabled allows the user to define a special XYZ position, inside the * Park the nozzle at the given XYZ position on idle or G27.
// machine's topology, to park the nozzle when idle or when receiving the G27 *
// command. * The "P" parameter controls the action applied to the Z axis:
// *
// The "P" paramenter controls what is the action applied to the Z axis: * P0 (Default) If Z is below park Z raise the nozzle.
// P0: (Default) If current Z-pos is lower than Z-park then the nozzle will * P1 Raise the nozzle always to Z-park height.
// be raised to reach Z-park height. * P2 Raise the nozzle by Z-park amount, limited to Z_MAX_POS.
// */
// P1: No matter the current Z-pos, the nozzle will be raised/lowered to
// reach Z-park height.
//
// P2: The nozzle height will be raised by Z-park amount but never going over
// the machine's limit of Z_MAX_POS.
//
//#define NOZZLE_PARK_FEATURE //#define NOZZLE_PARK_FEATURE
#if ENABLED(NOZZLE_PARK_FEATURE) #if ENABLED(NOZZLE_PARK_FEATURE)
@ -1128,44 +1122,44 @@
#define NOZZLE_PARK_POINT { (X_MIN_POS + 10), (Y_MAX_POS - 10), 20 } #define NOZZLE_PARK_POINT { (X_MIN_POS + 10), (Y_MAX_POS - 10), 20 }
#endif #endif
// /**
// Clean Nozzle Feature -- EXPERIMENTAL * Clean Nozzle Feature -- EXPERIMENTAL
// *
// When enabled allows the user to send G12 to start the nozzle cleaning * Adds the G12 command to perform a nozzle cleaning process.
// process, the G-Code accepts two parameters: *
// "P" for pattern selection * Parameters:
// "S" for defining the number of strokes/repetitions * P Pattern
// * S Strokes / Repetitions
// Available list of patterns: * T Triangles (P1 only)
// P0: This is the default pattern, this process requires a sponge type *
// material at a fixed bed location. S defines "strokes" i.e. * Patterns:
// back-and-forth movements between the starting and end points. * P0 Straight line (default). This process requires a sponge type material
// * at a fixed bed location. "S" specifies strokes (i.e. back-forth motions)
// P1: This starts a zig-zag pattern between (X0, Y0) and (X1, Y1), "T" * between the start / end points.
// defines the number of zig-zag triangles to be done. "S" defines the *
// number of strokes aka one back-and-forth movement. Zig-zags will * P1 Zig-zag pattern between (X0, Y0) and (X1, Y1), "T" specifies the
// be performed in whichever dimension is smallest. As an example, * number of zig-zag triangles to do. "S" defines the number of strokes.
// sending "G12 P1 S1 T3" will execute: * Zig-zags are done in whichever is the narrower dimension.
// * For example, "G12 P1 S1 T3" will execute:
// -- *
// | (X0, Y1) | /\ /\ /\ | (X1, Y1) * --
// | | / \ / \ / \ | * | (X0, Y1) | /\ /\ /\ | (X1, Y1)
// A | | / \ / \ / \ | * | | / \ / \ / \ |
// | | / \ / \ / \ | * A | | / \ / \ / \ |
// | (X0, Y0) | / \/ \/ \ | (X1, Y0) * | | / \ / \ / \ |
// -- +--------------------------------+ * | (X0, Y0) | / \/ \/ \ | (X1, Y0)
// |________|_________|_________| * -- +--------------------------------+
// T1 T2 T3 * |________|_________|_________|
// * T1 T2 T3
// P2: This starts a circular pattern with circle with middle in *
// NOZZLE_CLEAN_CIRCLE_MIDDLE radius of R and stroke count of S. * P2 Circular pattern with middle at NOZZLE_CLEAN_CIRCLE_MIDDLE.
// Before starting the circle nozzle goes to NOZZLE_CLEAN_START_POINT. * "R" specifies the radius. "S" specifies the stroke count.
// * Before starting, the nozzle moves to NOZZLE_CLEAN_START_POINT.
// Caveats: End point Z should use the same value as Start point Z. *
// * Caveats: The ending Z should be the same as starting Z.
// Attention: This is an EXPERIMENTAL feature, in the future the G-code arguments * Attention: EXPERIMENTAL. G-code arguments may change.
// may change to add new functionality like different wipe patterns. *
// */
//#define NOZZLE_CLEAN_FEATURE //#define NOZZLE_CLEAN_FEATURE
#if ENABLED(NOZZLE_CLEAN_FEATURE) #if ENABLED(NOZZLE_CLEAN_FEATURE)
@ -1190,33 +1184,35 @@
#define NOZZLE_CLEAN_GOBACK #define NOZZLE_CLEAN_GOBACK
#endif #endif
// /**
// Print job timer * Print Job Timer
// *
// Enable this option to automatically start and stop the * Automatically start and stop the print job timer on M104/M109/M190.
// print job timer when M104/M109/M190 commands are received. *
// M104 (extruder without wait) - high temp = none, low temp = stop timer * M104 (hotend, no wait) - high temp = none, low temp = stop timer
// M109 (extruder with wait) - high temp = start timer, low temp = stop timer * M109 (hotend, wait) - high temp = start timer, low temp = stop timer
// M190 (bed with wait) - high temp = start timer, low temp = none * M190 (bed, wait) - high temp = start timer, low temp = none
// *
// In all cases the timer can be started and stopped using * The timer can also be controlled with the following commands:
// the following commands: *
// * M75 - Start the print job timer
// - M75 - Start the print job timer * M76 - Pause the print job timer
// - M76 - Pause the print job timer * M77 - Stop the print job timer
// - M77 - Stop the print job timer */
#define PRINTJOB_TIMER_AUTOSTART #define PRINTJOB_TIMER_AUTOSTART
// /**
// Print Counter * Print Counter
// *
// When enabled Marlin will keep track of some print statistical data such as: * Track statistical data such as:
// - Total print jobs *
// - Total successful print jobs * - Total print jobs
// - Total failed print jobs * - Total successful print jobs
// - Total time printing * - Total failed print jobs
// * - Total time printing
// This information can be viewed by the M78 command. *
* View the current statistics with M78.
*/
#define PRINTCOUNTER #define PRINTCOUNTER
//============================================================================= //=============================================================================
@ -1225,78 +1221,79 @@
// @section lcd // @section lcd
// /**
// LCD LANGUAGE * LCD LANGUAGE
// *
// Here you may choose the language used by Marlin on the LCD menus, the following * Select the language to display on the LCD. These languages are available:
// list of languages are available: *
// en, an, bg, ca, cn, cz, de, el, el-gr, es, eu, fi, fr, gl, hr, it, * en, an, bg, ca, cn, cz, de, el, el-gr, es, eu, fi, fr, gl, hr, it,
// kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk, test * kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk, test
// *
// :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'test':'TEST' } * :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'test':'TEST' }
// */
#define LCD_LANGUAGE en #define LCD_LANGUAGE en
// /**
// LCD Character Set * LCD Character Set
// *
// Note: This option is NOT applicable to Graphical Displays. * Note: This option is NOT applicable to Graphical Displays.
// *
// All character-based LCD's provide ASCII plus one of these * All character-based LCDs provide ASCII plus one of these
// language extensions: * language extensions:
// *
// - JAPANESE ... the most common * - JAPANESE ... the most common
// - WESTERN ... with more accented characters * - WESTERN ... with more accented characters
// - CYRILLIC ... for the Russian language * - CYRILLIC ... for the Russian language
// *
// To determine the language extension installed on your controller: * To determine the language extension installed on your controller:
// *
// - Compile and upload with LCD_LANGUAGE set to 'test' * - Compile and upload with LCD_LANGUAGE set to 'test'
// - Click the controller to view the LCD menu * - Click the controller to view the LCD menu
// - The LCD will display Japanese, Western, or Cyrillic text * - The LCD will display Japanese, Western, or Cyrillic text
// *
// See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language * See https: *github.com/MarlinFirmware/Marlin/wiki/LCD-Language
// *
// :['JAPANESE', 'WESTERN', 'CYRILLIC'] * :['JAPANESE', 'WESTERN', 'CYRILLIC']
// */
#define DISPLAY_CHARSET_HD44780 WESTERN #define DISPLAY_CHARSET_HD44780 WESTERN
// /**
// LCD TYPE * LCD TYPE
// *
// You may choose ULTRA_LCD if you have character based LCD with 16x2, 16x4, 20x2, * Enable ULTRA_LCD for a 16x2, 16x4, 20x2, or 20x4 character-based LCD.
// 20x4 char/lines or DOGLCD for the full graphics display with 128x64 pixels * Enable DOGLCD for a 128x64 (ST7565R) Full Graphical Display.
// (ST7565R family). (This option will be set automatically for certain displays.) * (These options will be enabled automatically for most displays.)
// *
// IMPORTANT NOTE: The U8glib library is required for Full Graphic Display! * IMPORTANT: The U8glib library is required for Full Graphic Display!
// https://github.com/olikraus/U8glib_Arduino * https://github.com/olikraus/U8glib_Arduino
// */
//#define ULTRA_LCD // Character based //#define ULTRA_LCD // Character based
//#define DOGLCD // Full graphics display //#define DOGLCD // Full graphics display
// /**
// SD CARD * SD CARD
// *
// SD Card support is disabled by default. If your controller has an SD slot, * SD Card support is disabled by default. If your controller has an SD slot,
// you must uncomment the following option or it won't work. * you must uncomment the following option or it won't work.
// *
*/
#define SDSUPPORT #define SDSUPPORT
// /**
// SD CARD: SPI SPEED * SD CARD: SPI SPEED
// *
// Uncomment ONE of the following items to use a slower SPI transfer * Enable one of the following items for a slower SPI transfer speed.
// speed. This is usually required if you're getting volume init errors. * This may be required to resolve "volume init" errors.
// */
//#define SPI_SPEED SPI_HALF_SPEED //#define SPI_SPEED SPI_HALF_SPEED
//#define SPI_SPEED SPI_QUARTER_SPEED //#define SPI_SPEED SPI_QUARTER_SPEED
//#define SPI_SPEED SPI_EIGHTH_SPEED //#define SPI_SPEED SPI_EIGHTH_SPEED
// /**
// SD CARD: ENABLE CRC * SD CARD: ENABLE CRC
// *
// Use CRC checks and retries on the SD communication. * Use CRC checks and retries on the SD communication.
// */
#define SD_CHECK_AND_RETRY #define SD_CHECK_AND_RETRY
// //
@ -1324,7 +1321,7 @@
*/ */
// //
// This option reverses the encoder direction everywhere // This option reverses the encoder direction everywhere.
// //
// Set this option if CLOCKWISE causes values to DECREASE // Set this option if CLOCKWISE causes values to DECREASE
// //

@ -1106,23 +1106,17 @@
#define PREHEAT_2_TEMP_BED 100 #define PREHEAT_2_TEMP_BED 100
#define PREHEAT_2_FAN_SPEED 0 // Value from 0 to 255 #define PREHEAT_2_FAN_SPEED 0 // Value from 0 to 255
// /**
// Nozzle Park -- EXPERIMENTAL * Nozzle Park -- EXPERIMENTAL
// *
// When enabled allows the user to define a special XYZ position, inside the * Park the nozzle at the given XYZ position on idle or G27.
// machine's topology, to park the nozzle when idle or when receiving the G27 *
// command. * The "P" parameter controls the action applied to the Z axis:
// *
// The "P" paramenter controls what is the action applied to the Z axis: * P0 (Default) If Z is below park Z raise the nozzle.
// P0: (Default) If current Z-pos is lower than Z-park then the nozzle will * P1 Raise the nozzle always to Z-park height.
// be raised to reach Z-park height. * P2 Raise the nozzle by Z-park amount, limited to Z_MAX_POS.
// */
// P1: No matter the current Z-pos, the nozzle will be raised/lowered to
// reach Z-park height.
//
// P2: The nozzle height will be raised by Z-park amount but never going over
// the machine's limit of Z_MAX_POS.
//
//#define NOZZLE_PARK_FEATURE //#define NOZZLE_PARK_FEATURE
#if ENABLED(NOZZLE_PARK_FEATURE) #if ENABLED(NOZZLE_PARK_FEATURE)
@ -1130,44 +1124,44 @@
#define NOZZLE_PARK_POINT { (X_MIN_POS + 10), (Y_MAX_POS - 10), 20 } #define NOZZLE_PARK_POINT { (X_MIN_POS + 10), (Y_MAX_POS - 10), 20 }
#endif #endif
// /**
// Clean Nozzle Feature -- EXPERIMENTAL * Clean Nozzle Feature -- EXPERIMENTAL
// *
// When enabled allows the user to send G12 to start the nozzle cleaning * Adds the G12 command to perform a nozzle cleaning process.
// process, the G-Code accepts two parameters: *
// "P" for pattern selection * Parameters:
// "S" for defining the number of strokes/repetitions * P Pattern
// * S Strokes / Repetitions
// Available list of patterns: * T Triangles (P1 only)
// P0: This is the default pattern, this process requires a sponge type *
// material at a fixed bed location. S defines "strokes" i.e. * Patterns:
// back-and-forth movements between the starting and end points. * P0 Straight line (default). This process requires a sponge type material
// * at a fixed bed location. "S" specifies strokes (i.e. back-forth motions)
// P1: This starts a zig-zag pattern between (X0, Y0) and (X1, Y1), "T" * between the start / end points.
// defines the number of zig-zag triangles to be done. "S" defines the *
// number of strokes aka one back-and-forth movement. Zig-zags will * P1 Zig-zag pattern between (X0, Y0) and (X1, Y1), "T" specifies the
// be performed in whichever dimension is smallest. As an example, * number of zig-zag triangles to do. "S" defines the number of strokes.
// sending "G12 P1 S1 T3" will execute: * Zig-zags are done in whichever is the narrower dimension.
// * For example, "G12 P1 S1 T3" will execute:
// -- *
// | (X0, Y1) | /\ /\ /\ | (X1, Y1) * --
// | | / \ / \ / \ | * | (X0, Y1) | /\ /\ /\ | (X1, Y1)
// A | | / \ / \ / \ | * | | / \ / \ / \ |
// | | / \ / \ / \ | * A | | / \ / \ / \ |
// | (X0, Y0) | / \/ \/ \ | (X1, Y0) * | | / \ / \ / \ |
// -- +--------------------------------+ * | (X0, Y0) | / \/ \/ \ | (X1, Y0)
// |________|_________|_________| * -- +--------------------------------+
// T1 T2 T3 * |________|_________|_________|
// * T1 T2 T3
// P2: This starts a circular pattern with circle with middle in *
// NOZZLE_CLEAN_CIRCLE_MIDDLE radius of R and stroke count of S. * P2 Circular pattern with middle at NOZZLE_CLEAN_CIRCLE_MIDDLE.
// Before starting the circle nozzle goes to NOZZLE_CLEAN_START_POINT. * "R" specifies the radius. "S" specifies the stroke count.
// * Before starting, the nozzle moves to NOZZLE_CLEAN_START_POINT.
// Caveats: End point Z should use the same value as Start point Z. *
// * Caveats: The ending Z should be the same as starting Z.
// Attention: This is an EXPERIMENTAL feature, in the future the G-code arguments * Attention: EXPERIMENTAL. G-code arguments may change.
// may change to add new functionality like different wipe patterns. *
// */
//#define NOZZLE_CLEAN_FEATURE //#define NOZZLE_CLEAN_FEATURE
#if ENABLED(NOZZLE_CLEAN_FEATURE) #if ENABLED(NOZZLE_CLEAN_FEATURE)
@ -1192,33 +1186,35 @@
#define NOZZLE_CLEAN_GOBACK #define NOZZLE_CLEAN_GOBACK
#endif #endif
// /**
// Print job timer * Print Job Timer
// *
// Enable this option to automatically start and stop the * Automatically start and stop the print job timer on M104/M109/M190.
// print job timer when M104/M109/M190 commands are received. *
// M104 (extruder without wait) - high temp = none, low temp = stop timer * M104 (hotend, no wait) - high temp = none, low temp = stop timer
// M109 (extruder with wait) - high temp = start timer, low temp = stop timer * M109 (hotend, wait) - high temp = start timer, low temp = stop timer
// M190 (bed with wait) - high temp = start timer, low temp = none * M190 (bed, wait) - high temp = start timer, low temp = none
// *
// In all cases the timer can be started and stopped using * The timer can also be controlled with the following commands:
// the following commands: *
// * M75 - Start the print job timer
// - M75 - Start the print job timer * M76 - Pause the print job timer
// - M76 - Pause the print job timer * M77 - Stop the print job timer
// - M77 - Stop the print job timer */
#define PRINTJOB_TIMER_AUTOSTART #define PRINTJOB_TIMER_AUTOSTART
// /**
// Print Counter * Print Counter
// *
// When enabled Marlin will keep track of some print statistical data such as: * Track statistical data such as:
// - Total print jobs *
// - Total successful print jobs * - Total print jobs
// - Total failed print jobs * - Total successful print jobs
// - Total time printing * - Total failed print jobs
// * - Total time printing
// This information can be viewed by the M78 command. *
* View the current statistics with M78.
*/
#define PRINTCOUNTER #define PRINTCOUNTER
//============================================================================= //=============================================================================
@ -1227,78 +1223,79 @@
// @section lcd // @section lcd
// /**
// LCD LANGUAGE * LCD LANGUAGE
// *
// Here you may choose the language used by Marlin on the LCD menus, the following * Select the language to display on the LCD. These languages are available:
// list of languages are available: *
// en, an, bg, ca, cn, cz, de, el, el-gr, es, eu, fi, fr, gl, hr, it, * en, an, bg, ca, cn, cz, de, el, el-gr, es, eu, fi, fr, gl, hr, it,
// kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk, test * kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk, test
// *
// :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'test':'TEST' } * :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'test':'TEST' }
// */
#define LCD_LANGUAGE en #define LCD_LANGUAGE en
// /**
// LCD Character Set * LCD Character Set
// *
// Note: This option is NOT applicable to Graphical Displays. * Note: This option is NOT applicable to Graphical Displays.
// *
// All character-based LCD's provide ASCII plus one of these * All character-based LCDs provide ASCII plus one of these
// language extensions: * language extensions:
// *
// - JAPANESE ... the most common * - JAPANESE ... the most common
// - WESTERN ... with more accented characters * - WESTERN ... with more accented characters
// - CYRILLIC ... for the Russian language * - CYRILLIC ... for the Russian language
// *
// To determine the language extension installed on your controller: * To determine the language extension installed on your controller:
// *
// - Compile and upload with LCD_LANGUAGE set to 'test' * - Compile and upload with LCD_LANGUAGE set to 'test'
// - Click the controller to view the LCD menu * - Click the controller to view the LCD menu
// - The LCD will display Japanese, Western, or Cyrillic text * - The LCD will display Japanese, Western, or Cyrillic text
// *
// See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language * See https: *github.com/MarlinFirmware/Marlin/wiki/LCD-Language
// *
// :['JAPANESE', 'WESTERN', 'CYRILLIC'] * :['JAPANESE', 'WESTERN', 'CYRILLIC']
// */
#define DISPLAY_CHARSET_HD44780 WESTERN #define DISPLAY_CHARSET_HD44780 WESTERN
// /**
// LCD TYPE * LCD TYPE
// *
// You may choose ULTRA_LCD if you have character based LCD with 16x2, 16x4, 20x2, * Enable ULTRA_LCD for a 16x2, 16x4, 20x2, or 20x4 character-based LCD.
// 20x4 char/lines or DOGLCD for the full graphics display with 128x64 pixels * Enable DOGLCD for a 128x64 (ST7565R) Full Graphical Display.
// (ST7565R family). (This option will be set automatically for certain displays.) * (These options will be enabled automatically for most displays.)
// *
// IMPORTANT NOTE: The U8glib library is required for Full Graphic Display! * IMPORTANT: The U8glib library is required for Full Graphic Display!
// https://github.com/olikraus/U8glib_Arduino * https://github.com/olikraus/U8glib_Arduino
// */
//#define ULTRA_LCD // Character based //#define ULTRA_LCD // Character based
//#define DOGLCD // Full graphics display //#define DOGLCD // Full graphics display
// /**
// SD CARD * SD CARD
// *
// SD Card support is disabled by default. If your controller has an SD slot, * SD Card support is disabled by default. If your controller has an SD slot,
// you must uncomment the following option or it won't work. * you must uncomment the following option or it won't work.
// *
*/
#define SDSUPPORT #define SDSUPPORT
// /**
// SD CARD: SPI SPEED * SD CARD: SPI SPEED
// *
// Uncomment ONE of the following items to use a slower SPI transfer * Enable one of the following items for a slower SPI transfer speed.
// speed. This is usually required if you're getting volume init errors. * This may be required to resolve "volume init" errors.
// */
//#define SPI_SPEED SPI_HALF_SPEED //#define SPI_SPEED SPI_HALF_SPEED
//#define SPI_SPEED SPI_QUARTER_SPEED //#define SPI_SPEED SPI_QUARTER_SPEED
//#define SPI_SPEED SPI_EIGHTH_SPEED //#define SPI_SPEED SPI_EIGHTH_SPEED
// /**
// SD CARD: ENABLE CRC * SD CARD: ENABLE CRC
// *
// Use CRC checks and retries on the SD communication. * Use CRC checks and retries on the SD communication.
// */
//#define SD_CHECK_AND_RETRY //#define SD_CHECK_AND_RETRY
// //
@ -1326,7 +1323,7 @@
*/ */
// //
// This option reverses the encoder direction everywhere // This option reverses the encoder direction everywhere.
// //
// Set this option if CLOCKWISE causes values to DECREASE // Set this option if CLOCKWISE causes values to DECREASE
// //

@ -1093,23 +1093,17 @@
#define PREHEAT_2_TEMP_BED 100 #define PREHEAT_2_TEMP_BED 100
#define PREHEAT_2_FAN_SPEED 255 // Value from 0 to 255 #define PREHEAT_2_FAN_SPEED 255 // Value from 0 to 255
// /**
// Nozzle Park -- EXPERIMENTAL * Nozzle Park -- EXPERIMENTAL
// *
// When enabled allows the user to define a special XYZ position, inside the * Park the nozzle at the given XYZ position on idle or G27.
// machine's topology, to park the nozzle when idle or when receiving the G27 *
// command. * The "P" parameter controls the action applied to the Z axis:
// *
// The "P" paramenter controls what is the action applied to the Z axis: * P0 (Default) If Z is below park Z raise the nozzle.
// P0: (Default) If current Z-pos is lower than Z-park then the nozzle will * P1 Raise the nozzle always to Z-park height.
// be raised to reach Z-park height. * P2 Raise the nozzle by Z-park amount, limited to Z_MAX_POS.
// */
// P1: No matter the current Z-pos, the nozzle will be raised/lowered to
// reach Z-park height.
//
// P2: The nozzle height will be raised by Z-park amount but never going over
// the machine's limit of Z_MAX_POS.
//
//#define NOZZLE_PARK_FEATURE //#define NOZZLE_PARK_FEATURE
#if ENABLED(NOZZLE_PARK_FEATURE) #if ENABLED(NOZZLE_PARK_FEATURE)
@ -1117,44 +1111,44 @@
#define NOZZLE_PARK_POINT { (X_MIN_POS + 10), (Y_MAX_POS - 10), 20 } #define NOZZLE_PARK_POINT { (X_MIN_POS + 10), (Y_MAX_POS - 10), 20 }
#endif #endif
// /**
// Clean Nozzle Feature -- EXPERIMENTAL * Clean Nozzle Feature -- EXPERIMENTAL
// *
// When enabled allows the user to send G12 to start the nozzle cleaning * Adds the G12 command to perform a nozzle cleaning process.
// process, the G-Code accepts two parameters: *
// "P" for pattern selection * Parameters:
// "S" for defining the number of strokes/repetitions * P Pattern
// * S Strokes / Repetitions
// Available list of patterns: * T Triangles (P1 only)
// P0: This is the default pattern, this process requires a sponge type *
// material at a fixed bed location. S defines "strokes" i.e. * Patterns:
// back-and-forth movements between the starting and end points. * P0 Straight line (default). This process requires a sponge type material
// * at a fixed bed location. "S" specifies strokes (i.e. back-forth motions)
// P1: This starts a zig-zag pattern between (X0, Y0) and (X1, Y1), "T" * between the start / end points.
// defines the number of zig-zag triangles to be done. "S" defines the *
// number of strokes aka one back-and-forth movement. Zig-zags will * P1 Zig-zag pattern between (X0, Y0) and (X1, Y1), "T" specifies the
// be performed in whichever dimension is smallest. As an example, * number of zig-zag triangles to do. "S" defines the number of strokes.
// sending "G12 P1 S1 T3" will execute: * Zig-zags are done in whichever is the narrower dimension.
// * For example, "G12 P1 S1 T3" will execute:
// -- *
// | (X0, Y1) | /\ /\ /\ | (X1, Y1) * --
// | | / \ / \ / \ | * | (X0, Y1) | /\ /\ /\ | (X1, Y1)
// A | | / \ / \ / \ | * | | / \ / \ / \ |
// | | / \ / \ / \ | * A | | / \ / \ / \ |
// | (X0, Y0) | / \/ \/ \ | (X1, Y0) * | | / \ / \ / \ |
// -- +--------------------------------+ * | (X0, Y0) | / \/ \/ \ | (X1, Y0)
// |________|_________|_________| * -- +--------------------------------+
// T1 T2 T3 * |________|_________|_________|
// * T1 T2 T3
// P2: This starts a circular pattern with circle with middle in *
// NOZZLE_CLEAN_CIRCLE_MIDDLE radius of R and stroke count of S. * P2 Circular pattern with middle at NOZZLE_CLEAN_CIRCLE_MIDDLE.
// Before starting the circle nozzle goes to NOZZLE_CLEAN_START_POINT. * "R" specifies the radius. "S" specifies the stroke count.
// * Before starting, the nozzle moves to NOZZLE_CLEAN_START_POINT.
// Caveats: End point Z should use the same value as Start point Z. *
// * Caveats: The ending Z should be the same as starting Z.
// Attention: This is an EXPERIMENTAL feature, in the future the G-code arguments * Attention: EXPERIMENTAL. G-code arguments may change.
// may change to add new functionality like different wipe patterns. *
// */
//#define NOZZLE_CLEAN_FEATURE //#define NOZZLE_CLEAN_FEATURE
#if ENABLED(NOZZLE_CLEAN_FEATURE) #if ENABLED(NOZZLE_CLEAN_FEATURE)
@ -1179,33 +1173,35 @@
#define NOZZLE_CLEAN_GOBACK #define NOZZLE_CLEAN_GOBACK
#endif #endif
// /**
// Print job timer * Print Job Timer
// *
// Enable this option to automatically start and stop the * Automatically start and stop the print job timer on M104/M109/M190.
// print job timer when M104/M109/M190 commands are received. *
// M104 (extruder without wait) - high temp = none, low temp = stop timer * M104 (hotend, no wait) - high temp = none, low temp = stop timer
// M109 (extruder with wait) - high temp = start timer, low temp = stop timer * M109 (hotend, wait) - high temp = start timer, low temp = stop timer
// M190 (bed with wait) - high temp = start timer, low temp = none * M190 (bed, wait) - high temp = start timer, low temp = none
// *
// In all cases the timer can be started and stopped using * The timer can also be controlled with the following commands:
// the following commands: *
// * M75 - Start the print job timer
// - M75 - Start the print job timer * M76 - Pause the print job timer
// - M76 - Pause the print job timer * M77 - Stop the print job timer
// - M77 - Stop the print job timer */
#define PRINTJOB_TIMER_AUTOSTART #define PRINTJOB_TIMER_AUTOSTART
// /**
// Print Counter * Print Counter
// *
// When enabled Marlin will keep track of some print statistical data such as: * Track statistical data such as:
// - Total print jobs *
// - Total successful print jobs * - Total print jobs
// - Total failed print jobs * - Total successful print jobs
// - Total time printing * - Total failed print jobs
// * - Total time printing
// This information can be viewed by the M78 command. *
* View the current statistics with M78.
*/
//#define PRINTCOUNTER //#define PRINTCOUNTER
//============================================================================= //=============================================================================
@ -1214,78 +1210,79 @@
// @section lcd // @section lcd
// /**
// LCD LANGUAGE * LCD LANGUAGE
// *
// Here you may choose the language used by Marlin on the LCD menus, the following * Select the language to display on the LCD. These languages are available:
// list of languages are available: *
// en, an, bg, ca, cn, cz, de, el, el-gr, es, eu, fi, fr, gl, hr, it, * en, an, bg, ca, cn, cz, de, el, el-gr, es, eu, fi, fr, gl, hr, it,
// kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk, test * kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk, test
// *
// :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'test':'TEST' } * :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'test':'TEST' }
// */
#define LCD_LANGUAGE en #define LCD_LANGUAGE en
// /**
// LCD Character Set * LCD Character Set
// *
// Note: This option is NOT applicable to Graphical Displays. * Note: This option is NOT applicable to Graphical Displays.
// *
// All character-based LCD's provide ASCII plus one of these * All character-based LCDs provide ASCII plus one of these
// language extensions: * language extensions:
// *
// - JAPANESE ... the most common * - JAPANESE ... the most common
// - WESTERN ... with more accented characters * - WESTERN ... with more accented characters
// - CYRILLIC ... for the Russian language * - CYRILLIC ... for the Russian language
// *
// To determine the language extension installed on your controller: * To determine the language extension installed on your controller:
// *
// - Compile and upload with LCD_LANGUAGE set to 'test' * - Compile and upload with LCD_LANGUAGE set to 'test'
// - Click the controller to view the LCD menu * - Click the controller to view the LCD menu
// - The LCD will display Japanese, Western, or Cyrillic text * - The LCD will display Japanese, Western, or Cyrillic text
// *
// See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language * See https: *github.com/MarlinFirmware/Marlin/wiki/LCD-Language
// *
// :['JAPANESE', 'WESTERN', 'CYRILLIC'] * :['JAPANESE', 'WESTERN', 'CYRILLIC']
// */
#define DISPLAY_CHARSET_HD44780 JAPANESE #define DISPLAY_CHARSET_HD44780 JAPANESE
// /**
// LCD TYPE * LCD TYPE
// *
// You may choose ULTRA_LCD if you have character based LCD with 16x2, 16x4, 20x2, * Enable ULTRA_LCD for a 16x2, 16x4, 20x2, or 20x4 character-based LCD.
// 20x4 char/lines or DOGLCD for the full graphics display with 128x64 pixels * Enable DOGLCD for a 128x64 (ST7565R) Full Graphical Display.
// (ST7565R family). (This option will be set automatically for certain displays.) * (These options will be enabled automatically for most displays.)
// *
// IMPORTANT NOTE: The U8glib library is required for Full Graphic Display! * IMPORTANT: The U8glib library is required for Full Graphic Display!
// https://github.com/olikraus/U8glib_Arduino * https://github.com/olikraus/U8glib_Arduino
// */
//#define ULTRA_LCD // Character based //#define ULTRA_LCD // Character based
//#define DOGLCD // Full graphics display //#define DOGLCD // Full graphics display
// /**
// SD CARD * SD CARD
// *
// SD Card support is disabled by default. If your controller has an SD slot, * SD Card support is disabled by default. If your controller has an SD slot,
// you must uncomment the following option or it won't work. * you must uncomment the following option or it won't work.
// *
*/
//#define SDSUPPORT //#define SDSUPPORT
// /**
// SD CARD: SPI SPEED * SD CARD: SPI SPEED
// *
// Uncomment ONE of the following items to use a slower SPI transfer * Enable one of the following items for a slower SPI transfer speed.
// speed. This is usually required if you're getting volume init errors. * This may be required to resolve "volume init" errors.
// */
//#define SPI_SPEED SPI_HALF_SPEED //#define SPI_SPEED SPI_HALF_SPEED
//#define SPI_SPEED SPI_QUARTER_SPEED //#define SPI_SPEED SPI_QUARTER_SPEED
//#define SPI_SPEED SPI_EIGHTH_SPEED //#define SPI_SPEED SPI_EIGHTH_SPEED
// /**
// SD CARD: ENABLE CRC * SD CARD: ENABLE CRC
// *
// Use CRC checks and retries on the SD communication. * Use CRC checks and retries on the SD communication.
// */
//#define SD_CHECK_AND_RETRY //#define SD_CHECK_AND_RETRY
// //
@ -1313,7 +1310,7 @@
*/ */
// //
// This option reverses the encoder direction everywhere // This option reverses the encoder direction everywhere.
// //
// Set this option if CLOCKWISE causes values to DECREASE // Set this option if CLOCKWISE causes values to DECREASE
// //

@ -1096,23 +1096,17 @@
#define PREHEAT_2_TEMP_BED 100 #define PREHEAT_2_TEMP_BED 100
#define PREHEAT_2_FAN_SPEED 255 // Value from 0 to 255 #define PREHEAT_2_FAN_SPEED 255 // Value from 0 to 255
// /**
// Nozzle Park -- EXPERIMENTAL * Nozzle Park -- EXPERIMENTAL
// *
// When enabled allows the user to define a special XYZ position, inside the * Park the nozzle at the given XYZ position on idle or G27.
// machine's topology, to park the nozzle when idle or when receiving the G27 *
// command. * The "P" parameter controls the action applied to the Z axis:
// *
// The "P" paramenter controls what is the action applied to the Z axis: * P0 (Default) If Z is below park Z raise the nozzle.
// P0: (Default) If current Z-pos is lower than Z-park then the nozzle will * P1 Raise the nozzle always to Z-park height.
// be raised to reach Z-park height. * P2 Raise the nozzle by Z-park amount, limited to Z_MAX_POS.
// */
// P1: No matter the current Z-pos, the nozzle will be raised/lowered to
// reach Z-park height.
//
// P2: The nozzle height will be raised by Z-park amount but never going over
// the machine's limit of Z_MAX_POS.
//
//#define NOZZLE_PARK_FEATURE //#define NOZZLE_PARK_FEATURE
#if ENABLED(NOZZLE_PARK_FEATURE) #if ENABLED(NOZZLE_PARK_FEATURE)
@ -1120,44 +1114,44 @@
#define NOZZLE_PARK_POINT { (X_MIN_POS + 10), (Y_MAX_POS - 10), 20 } #define NOZZLE_PARK_POINT { (X_MIN_POS + 10), (Y_MAX_POS - 10), 20 }
#endif #endif
// /**
// Clean Nozzle Feature -- EXPERIMENTAL * Clean Nozzle Feature -- EXPERIMENTAL
// *
// When enabled allows the user to send G12 to start the nozzle cleaning * Adds the G12 command to perform a nozzle cleaning process.
// process, the G-Code accepts two parameters: *
// "P" for pattern selection * Parameters:
// "S" for defining the number of strokes/repetitions * P Pattern
// * S Strokes / Repetitions
// Available list of patterns: * T Triangles (P1 only)
// P0: This is the default pattern, this process requires a sponge type *
// material at a fixed bed location. S defines "strokes" i.e. * Patterns:
// back-and-forth movements between the starting and end points. * P0 Straight line (default). This process requires a sponge type material
// * at a fixed bed location. "S" specifies strokes (i.e. back-forth motions)
// P1: This starts a zig-zag pattern between (X0, Y0) and (X1, Y1), "T" * between the start / end points.
// defines the number of zig-zag triangles to be done. "S" defines the *
// number of strokes aka one back-and-forth movement. Zig-zags will * P1 Zig-zag pattern between (X0, Y0) and (X1, Y1), "T" specifies the
// be performed in whichever dimension is smallest. As an example, * number of zig-zag triangles to do. "S" defines the number of strokes.
// sending "G12 P1 S1 T3" will execute: * Zig-zags are done in whichever is the narrower dimension.
// * For example, "G12 P1 S1 T3" will execute:
// -- *
// | (X0, Y1) | /\ /\ /\ | (X1, Y1) * --
// | | / \ / \ / \ | * | (X0, Y1) | /\ /\ /\ | (X1, Y1)
// A | | / \ / \ / \ | * | | / \ / \ / \ |
// | | / \ / \ / \ | * A | | / \ / \ / \ |
// | (X0, Y0) | / \/ \/ \ | (X1, Y0) * | | / \ / \ / \ |
// -- +--------------------------------+ * | (X0, Y0) | / \/ \/ \ | (X1, Y0)
// |________|_________|_________| * -- +--------------------------------+
// T1 T2 T3 * |________|_________|_________|
// * T1 T2 T3
// P2: This starts a circular pattern with circle with middle in *
// NOZZLE_CLEAN_CIRCLE_MIDDLE radius of R and stroke count of S. * P2 Circular pattern with middle at NOZZLE_CLEAN_CIRCLE_MIDDLE.
// Before starting the circle nozzle goes to NOZZLE_CLEAN_START_POINT. * "R" specifies the radius. "S" specifies the stroke count.
// * Before starting, the nozzle moves to NOZZLE_CLEAN_START_POINT.
// Caveats: End point Z should use the same value as Start point Z. *
// * Caveats: The ending Z should be the same as starting Z.
// Attention: This is an EXPERIMENTAL feature, in the future the G-code arguments * Attention: EXPERIMENTAL. G-code arguments may change.
// may change to add new functionality like different wipe patterns. *
// */
//#define NOZZLE_CLEAN_FEATURE //#define NOZZLE_CLEAN_FEATURE
#if ENABLED(NOZZLE_CLEAN_FEATURE) #if ENABLED(NOZZLE_CLEAN_FEATURE)
@ -1182,33 +1176,35 @@
#define NOZZLE_CLEAN_GOBACK #define NOZZLE_CLEAN_GOBACK
#endif #endif
// /**
// Print job timer * Print Job Timer
// *
// Enable this option to automatically start and stop the * Automatically start and stop the print job timer on M104/M109/M190.
// print job timer when M104/M109/M190 commands are received. *
// M104 (extruder without wait) - high temp = none, low temp = stop timer * M104 (hotend, no wait) - high temp = none, low temp = stop timer
// M109 (extruder with wait) - high temp = start timer, low temp = stop timer * M109 (hotend, wait) - high temp = start timer, low temp = stop timer
// M190 (bed with wait) - high temp = start timer, low temp = none * M190 (bed, wait) - high temp = start timer, low temp = none
// *
// In all cases the timer can be started and stopped using * The timer can also be controlled with the following commands:
// the following commands: *
// * M75 - Start the print job timer
// - M75 - Start the print job timer * M76 - Pause the print job timer
// - M76 - Pause the print job timer * M77 - Stop the print job timer
// - M77 - Stop the print job timer */
#define PRINTJOB_TIMER_AUTOSTART #define PRINTJOB_TIMER_AUTOSTART
// /**
// Print Counter * Print Counter
// *
// When enabled Marlin will keep track of some print statistical data such as: * Track statistical data such as:
// - Total print jobs *
// - Total successful print jobs * - Total print jobs
// - Total failed print jobs * - Total successful print jobs
// - Total time printing * - Total failed print jobs
// * - Total time printing
// This information can be viewed by the M78 command. *
* View the current statistics with M78.
*/
//#define PRINTCOUNTER //#define PRINTCOUNTER
//============================================================================= //=============================================================================
@ -1217,78 +1213,79 @@
// @section lcd // @section lcd
// /**
// LCD LANGUAGE * LCD LANGUAGE
// *
// Here you may choose the language used by Marlin on the LCD menus, the following * Select the language to display on the LCD. These languages are available:
// list of languages are available: *
// en, an, bg, ca, cn, cz, de, el, el-gr, es, eu, fi, fr, gl, hr, it, * en, an, bg, ca, cn, cz, de, el, el-gr, es, eu, fi, fr, gl, hr, it,
// kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk, test * kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk, test
// *
// :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'test':'TEST' } * :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'test':'TEST' }
// */
#define LCD_LANGUAGE en #define LCD_LANGUAGE en
// /**
// LCD Character Set * LCD Character Set
// *
// Note: This option is NOT applicable to Graphical Displays. * Note: This option is NOT applicable to Graphical Displays.
// *
// All character-based LCD's provide ASCII plus one of these * All character-based LCDs provide ASCII plus one of these
// language extensions: * language extensions:
// *
// - JAPANESE ... the most common * - JAPANESE ... the most common
// - WESTERN ... with more accented characters * - WESTERN ... with more accented characters
// - CYRILLIC ... for the Russian language * - CYRILLIC ... for the Russian language
// *
// To determine the language extension installed on your controller: * To determine the language extension installed on your controller:
// *
// - Compile and upload with LCD_LANGUAGE set to 'test' * - Compile and upload with LCD_LANGUAGE set to 'test'
// - Click the controller to view the LCD menu * - Click the controller to view the LCD menu
// - The LCD will display Japanese, Western, or Cyrillic text * - The LCD will display Japanese, Western, or Cyrillic text
// *
// See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language * See https: *github.com/MarlinFirmware/Marlin/wiki/LCD-Language
// *
// :['JAPANESE', 'WESTERN', 'CYRILLIC'] * :['JAPANESE', 'WESTERN', 'CYRILLIC']
// */
#define DISPLAY_CHARSET_HD44780 JAPANESE #define DISPLAY_CHARSET_HD44780 JAPANESE
// /**
// LCD TYPE * LCD TYPE
// *
// You may choose ULTRA_LCD if you have character based LCD with 16x2, 16x4, 20x2, * Enable ULTRA_LCD for a 16x2, 16x4, 20x2, or 20x4 character-based LCD.
// 20x4 char/lines or DOGLCD for the full graphics display with 128x64 pixels * Enable DOGLCD for a 128x64 (ST7565R) Full Graphical Display.
// (ST7565R family). (This option will be set automatically for certain displays.) * (These options will be enabled automatically for most displays.)
// *
// IMPORTANT NOTE: The U8glib library is required for Full Graphic Display! * IMPORTANT: The U8glib library is required for Full Graphic Display!
// https://github.com/olikraus/U8glib_Arduino * https://github.com/olikraus/U8glib_Arduino
// */
//#define ULTRA_LCD // Character based //#define ULTRA_LCD // Character based
//#define DOGLCD // Full graphics display //#define DOGLCD // Full graphics display
// /**
// SD CARD * SD CARD
// *
// SD Card support is disabled by default. If your controller has an SD slot, * SD Card support is disabled by default. If your controller has an SD slot,
// you must uncomment the following option or it won't work. * you must uncomment the following option or it won't work.
// *
*/
//#define SDSUPPORT //#define SDSUPPORT
// /**
// SD CARD: SPI SPEED * SD CARD: SPI SPEED
// *
// Uncomment ONE of the following items to use a slower SPI transfer * Enable one of the following items for a slower SPI transfer speed.
// speed. This is usually required if you're getting volume init errors. * This may be required to resolve "volume init" errors.
// */
//#define SPI_SPEED SPI_HALF_SPEED //#define SPI_SPEED SPI_HALF_SPEED
//#define SPI_SPEED SPI_QUARTER_SPEED //#define SPI_SPEED SPI_QUARTER_SPEED
//#define SPI_SPEED SPI_EIGHTH_SPEED //#define SPI_SPEED SPI_EIGHTH_SPEED
// /**
// SD CARD: ENABLE CRC * SD CARD: ENABLE CRC
// *
// Use CRC checks and retries on the SD communication. * Use CRC checks and retries on the SD communication.
// */
//#define SD_CHECK_AND_RETRY //#define SD_CHECK_AND_RETRY
// //
@ -1316,7 +1313,7 @@
*/ */
// //
// This option reverses the encoder direction everywhere // This option reverses the encoder direction everywhere.
// //
// Set this option if CLOCKWISE causes values to DECREASE // Set this option if CLOCKWISE causes values to DECREASE
// //

@ -1102,23 +1102,17 @@
#define PREHEAT_2_TEMP_BED 100 #define PREHEAT_2_TEMP_BED 100
#define PREHEAT_2_FAN_SPEED 255 // Value from 0 to 255 #define PREHEAT_2_FAN_SPEED 255 // Value from 0 to 255
// /**
// Nozzle Park -- EXPERIMENTAL * Nozzle Park -- EXPERIMENTAL
// *
// When enabled allows the user to define a special XYZ position, inside the * Park the nozzle at the given XYZ position on idle or G27.
// machine's topology, to park the nozzle when idle or when receiving the G27 *
// command. * The "P" parameter controls the action applied to the Z axis:
// *
// The "P" paramenter controls what is the action applied to the Z axis: * P0 (Default) If Z is below park Z raise the nozzle.
// P0: (Default) If current Z-pos is lower than Z-park then the nozzle will * P1 Raise the nozzle always to Z-park height.
// be raised to reach Z-park height. * P2 Raise the nozzle by Z-park amount, limited to Z_MAX_POS.
// */
// P1: No matter the current Z-pos, the nozzle will be raised/lowered to
// reach Z-park height.
//
// P2: The nozzle height will be raised by Z-park amount but never going over
// the machine's limit of Z_MAX_POS.
//
//#define NOZZLE_PARK_FEATURE //#define NOZZLE_PARK_FEATURE
#if ENABLED(NOZZLE_PARK_FEATURE) #if ENABLED(NOZZLE_PARK_FEATURE)
@ -1126,44 +1120,44 @@
#define NOZZLE_PARK_POINT { (X_MIN_POS + 10), (Y_MAX_POS - 10), 20 } #define NOZZLE_PARK_POINT { (X_MIN_POS + 10), (Y_MAX_POS - 10), 20 }
#endif #endif
// /**
// Clean Nozzle Feature -- EXPERIMENTAL * Clean Nozzle Feature -- EXPERIMENTAL
// *
// When enabled allows the user to send G12 to start the nozzle cleaning * Adds the G12 command to perform a nozzle cleaning process.
// process, the G-Code accepts two parameters: *
// "P" for pattern selection * Parameters:
// "S" for defining the number of strokes/repetitions * P Pattern
// * S Strokes / Repetitions
// Available list of patterns: * T Triangles (P1 only)
// P0: This is the default pattern, this process requires a sponge type *
// material at a fixed bed location. S defines "strokes" i.e. * Patterns:
// back-and-forth movements between the starting and end points. * P0 Straight line (default). This process requires a sponge type material
// * at a fixed bed location. "S" specifies strokes (i.e. back-forth motions)
// P1: This starts a zig-zag pattern between (X0, Y0) and (X1, Y1), "T" * between the start / end points.
// defines the number of zig-zag triangles to be done. "S" defines the *
// number of strokes aka one back-and-forth movement. Zig-zags will * P1 Zig-zag pattern between (X0, Y0) and (X1, Y1), "T" specifies the
// be performed in whichever dimension is smallest. As an example, * number of zig-zag triangles to do. "S" defines the number of strokes.
// sending "G12 P1 S1 T3" will execute: * Zig-zags are done in whichever is the narrower dimension.
// * For example, "G12 P1 S1 T3" will execute:
// -- *
// | (X0, Y1) | /\ /\ /\ | (X1, Y1) * --
// | | / \ / \ / \ | * | (X0, Y1) | /\ /\ /\ | (X1, Y1)
// A | | / \ / \ / \ | * | | / \ / \ / \ |
// | | / \ / \ / \ | * A | | / \ / \ / \ |
// | (X0, Y0) | / \/ \/ \ | (X1, Y0) * | | / \ / \ / \ |
// -- +--------------------------------+ * | (X0, Y0) | / \/ \/ \ | (X1, Y0)
// |________|_________|_________| * -- +--------------------------------+
// T1 T2 T3 * |________|_________|_________|
// * T1 T2 T3
// P2: This starts a circular pattern with circle with middle in *
// NOZZLE_CLEAN_CIRCLE_MIDDLE radius of R and stroke count of S. * P2 Circular pattern with middle at NOZZLE_CLEAN_CIRCLE_MIDDLE.
// Before starting the circle nozzle goes to NOZZLE_CLEAN_START_POINT. * "R" specifies the radius. "S" specifies the stroke count.
// * Before starting, the nozzle moves to NOZZLE_CLEAN_START_POINT.
// Caveats: End point Z should use the same value as Start point Z. *
// * Caveats: The ending Z should be the same as starting Z.
// Attention: This is an EXPERIMENTAL feature, in the future the G-code arguments * Attention: EXPERIMENTAL. G-code arguments may change.
// may change to add new functionality like different wipe patterns. *
// */
//#define NOZZLE_CLEAN_FEATURE //#define NOZZLE_CLEAN_FEATURE
#if ENABLED(NOZZLE_CLEAN_FEATURE) #if ENABLED(NOZZLE_CLEAN_FEATURE)
@ -1188,33 +1182,35 @@
#define NOZZLE_CLEAN_GOBACK #define NOZZLE_CLEAN_GOBACK
#endif #endif
// /**
// Print job timer * Print Job Timer
// *
// Enable this option to automatically start and stop the * Automatically start and stop the print job timer on M104/M109/M190.
// print job timer when M104/M109/M190 commands are received. *
// M104 (extruder without wait) - high temp = none, low temp = stop timer * M104 (hotend, no wait) - high temp = none, low temp = stop timer
// M109 (extruder with wait) - high temp = start timer, low temp = stop timer * M109 (hotend, wait) - high temp = start timer, low temp = stop timer
// M190 (bed with wait) - high temp = start timer, low temp = none * M190 (bed, wait) - high temp = start timer, low temp = none
// *
// In all cases the timer can be started and stopped using * The timer can also be controlled with the following commands:
// the following commands: *
// * M75 - Start the print job timer
// - M75 - Start the print job timer * M76 - Pause the print job timer
// - M76 - Pause the print job timer * M77 - Stop the print job timer
// - M77 - Stop the print job timer */
#define PRINTJOB_TIMER_AUTOSTART #define PRINTJOB_TIMER_AUTOSTART
// /**
// Print Counter * Print Counter
// *
// When enabled Marlin will keep track of some print statistical data such as: * Track statistical data such as:
// - Total print jobs *
// - Total successful print jobs * - Total print jobs
// - Total failed print jobs * - Total successful print jobs
// - Total time printing * - Total failed print jobs
// * - Total time printing
// This information can be viewed by the M78 command. *
* View the current statistics with M78.
*/
//#define PRINTCOUNTER //#define PRINTCOUNTER
//============================================================================= //=============================================================================
@ -1223,78 +1219,79 @@
// @section lcd // @section lcd
// /**
// LCD LANGUAGE * LCD LANGUAGE
// *
// Here you may choose the language used by Marlin on the LCD menus, the following * Select the language to display on the LCD. These languages are available:
// list of languages are available: *
// en, an, bg, ca, cn, cz, de, el, el-gr, es, eu, fi, fr, gl, hr, it, * en, an, bg, ca, cn, cz, de, el, el-gr, es, eu, fi, fr, gl, hr, it,
// kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk, test * kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk, test
// *
// :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'test':'TEST' } * :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'test':'TEST' }
// */
#define LCD_LANGUAGE en #define LCD_LANGUAGE en
// /**
// LCD Character Set * LCD Character Set
// *
// Note: This option is NOT applicable to Graphical Displays. * Note: This option is NOT applicable to Graphical Displays.
// *
// All character-based LCD's provide ASCII plus one of these * All character-based LCDs provide ASCII plus one of these
// language extensions: * language extensions:
// *
// - JAPANESE ... the most common * - JAPANESE ... the most common
// - WESTERN ... with more accented characters * - WESTERN ... with more accented characters
// - CYRILLIC ... for the Russian language * - CYRILLIC ... for the Russian language
// *
// To determine the language extension installed on your controller: * To determine the language extension installed on your controller:
// *
// - Compile and upload with LCD_LANGUAGE set to 'test' * - Compile and upload with LCD_LANGUAGE set to 'test'
// - Click the controller to view the LCD menu * - Click the controller to view the LCD menu
// - The LCD will display Japanese, Western, or Cyrillic text * - The LCD will display Japanese, Western, or Cyrillic text
// *
// See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language * See https: *github.com/MarlinFirmware/Marlin/wiki/LCD-Language
// *
// :['JAPANESE', 'WESTERN', 'CYRILLIC'] * :['JAPANESE', 'WESTERN', 'CYRILLIC']
// */
#define DISPLAY_CHARSET_HD44780 JAPANESE #define DISPLAY_CHARSET_HD44780 JAPANESE
// /**
// LCD TYPE * LCD TYPE
// *
// You may choose ULTRA_LCD if you have character based LCD with 16x2, 16x4, 20x2, * Enable ULTRA_LCD for a 16x2, 16x4, 20x2, or 20x4 character-based LCD.
// 20x4 char/lines or DOGLCD for the full graphics display with 128x64 pixels * Enable DOGLCD for a 128x64 (ST7565R) Full Graphical Display.
// (ST7565R family). (This option will be set automatically for certain displays.) * (These options will be enabled automatically for most displays.)
// *
// IMPORTANT NOTE: The U8glib library is required for Full Graphic Display! * IMPORTANT: The U8glib library is required for Full Graphic Display!
// https://github.com/olikraus/U8glib_Arduino * https://github.com/olikraus/U8glib_Arduino
// */
//#define ULTRA_LCD // Character based //#define ULTRA_LCD // Character based
//#define DOGLCD // Full graphics display //#define DOGLCD // Full graphics display
// /**
// SD CARD * SD CARD
// *
// SD Card support is disabled by default. If your controller has an SD slot, * SD Card support is disabled by default. If your controller has an SD slot,
// you must uncomment the following option or it won't work. * you must uncomment the following option or it won't work.
// *
*/
#define SDSUPPORT #define SDSUPPORT
// /**
// SD CARD: SPI SPEED * SD CARD: SPI SPEED
// *
// Uncomment ONE of the following items to use a slower SPI transfer * Enable one of the following items for a slower SPI transfer speed.
// speed. This is usually required if you're getting volume init errors. * This may be required to resolve "volume init" errors.
// */
//#define SPI_SPEED SPI_HALF_SPEED //#define SPI_SPEED SPI_HALF_SPEED
//#define SPI_SPEED SPI_QUARTER_SPEED //#define SPI_SPEED SPI_QUARTER_SPEED
//#define SPI_SPEED SPI_EIGHTH_SPEED //#define SPI_SPEED SPI_EIGHTH_SPEED
// /**
// SD CARD: ENABLE CRC * SD CARD: ENABLE CRC
// *
// Use CRC checks and retries on the SD communication. * Use CRC checks and retries on the SD communication.
// */
//#define SD_CHECK_AND_RETRY //#define SD_CHECK_AND_RETRY
// //
@ -1322,7 +1319,7 @@
*/ */
// //
// This option reverses the encoder direction everywhere // This option reverses the encoder direction everywhere.
// //
// Set this option if CLOCKWISE causes values to DECREASE // Set this option if CLOCKWISE causes values to DECREASE
// //

@ -1160,23 +1160,17 @@
#define PREHEAT_2_TEMP_BED 100 #define PREHEAT_2_TEMP_BED 100
#define PREHEAT_2_FAN_SPEED 255 // Value from 0 to 255 #define PREHEAT_2_FAN_SPEED 255 // Value from 0 to 255
// /**
// Nozzle Park -- EXPERIMENTAL * Nozzle Park -- EXPERIMENTAL
// *
// When enabled allows the user to define a special XYZ position, inside the * Park the nozzle at the given XYZ position on idle or G27.
// machine's topology, to park the nozzle when idle or when receiving the G27 *
// command. * The "P" parameter controls the action applied to the Z axis:
// *
// The "P" paramenter controls what is the action applied to the Z axis: * P0 (Default) If Z is below park Z raise the nozzle.
// P0: (Default) If current Z-pos is lower than Z-park then the nozzle will * P1 Raise the nozzle always to Z-park height.
// be raised to reach Z-park height. * P2 Raise the nozzle by Z-park amount, limited to Z_MAX_POS.
// */
// P1: No matter the current Z-pos, the nozzle will be raised/lowered to
// reach Z-park height.
//
// P2: The nozzle height will be raised by Z-park amount but never going over
// the machine's limit of Z_MAX_POS.
//
//#define NOZZLE_PARK_FEATURE //#define NOZZLE_PARK_FEATURE
#if ENABLED(NOZZLE_PARK_FEATURE) #if ENABLED(NOZZLE_PARK_FEATURE)
@ -1184,44 +1178,44 @@
#define NOZZLE_PARK_POINT { (X_MIN_POS + 10), (Y_MAX_POS - 10), 20 } #define NOZZLE_PARK_POINT { (X_MIN_POS + 10), (Y_MAX_POS - 10), 20 }
#endif #endif
// /**
// Clean Nozzle Feature -- EXPERIMENTAL * Clean Nozzle Feature -- EXPERIMENTAL
// *
// When enabled allows the user to send G12 to start the nozzle cleaning * Adds the G12 command to perform a nozzle cleaning process.
// process, the G-Code accepts two parameters: *
// "P" for pattern selection * Parameters:
// "S" for defining the number of strokes/repetitions * P Pattern
// * S Strokes / Repetitions
// Available list of patterns: * T Triangles (P1 only)
// P0: This is the default pattern, this process requires a sponge type *
// material at a fixed bed location. S defines "strokes" i.e. * Patterns:
// back-and-forth movements between the starting and end points. * P0 Straight line (default). This process requires a sponge type material
// * at a fixed bed location. "S" specifies strokes (i.e. back-forth motions)
// P1: This starts a zig-zag pattern between (X0, Y0) and (X1, Y1), "T" * between the start / end points.
// defines the number of zig-zag triangles to be done. "S" defines the *
// number of strokes aka one back-and-forth movement. Zig-zags will * P1 Zig-zag pattern between (X0, Y0) and (X1, Y1), "T" specifies the
// be performed in whichever dimension is smallest. As an example, * number of zig-zag triangles to do. "S" defines the number of strokes.
// sending "G12 P1 S1 T3" will execute: * Zig-zags are done in whichever is the narrower dimension.
// * For example, "G12 P1 S1 T3" will execute:
// -- *
// | (X0, Y1) | /\ /\ /\ | (X1, Y1) * --
// | | / \ / \ / \ | * | (X0, Y1) | /\ /\ /\ | (X1, Y1)
// A | | / \ / \ / \ | * | | / \ / \ / \ |
// | | / \ / \ / \ | * A | | / \ / \ / \ |
// | (X0, Y0) | / \/ \/ \ | (X1, Y0) * | | / \ / \ / \ |
// -- +--------------------------------+ * | (X0, Y0) | / \/ \/ \ | (X1, Y0)
// |________|_________|_________| * -- +--------------------------------+
// T1 T2 T3 * |________|_________|_________|
// * T1 T2 T3
// P2: This starts a circular pattern with circle with middle in *
// NOZZLE_CLEAN_CIRCLE_MIDDLE radius of R and stroke count of S. * P2 Circular pattern with middle at NOZZLE_CLEAN_CIRCLE_MIDDLE.
// Before starting the circle nozzle goes to NOZZLE_CLEAN_START_POINT. * "R" specifies the radius. "S" specifies the stroke count.
// * Before starting, the nozzle moves to NOZZLE_CLEAN_START_POINT.
// Caveats: End point Z should use the same value as Start point Z. *
// * Caveats: The ending Z should be the same as starting Z.
// Attention: This is an EXPERIMENTAL feature, in the future the G-code arguments * Attention: EXPERIMENTAL. G-code arguments may change.
// may change to add new functionality like different wipe patterns. *
// */
//#define NOZZLE_CLEAN_FEATURE //#define NOZZLE_CLEAN_FEATURE
#if ENABLED(NOZZLE_CLEAN_FEATURE) #if ENABLED(NOZZLE_CLEAN_FEATURE)
@ -1246,33 +1240,35 @@
#define NOZZLE_CLEAN_GOBACK #define NOZZLE_CLEAN_GOBACK
#endif #endif
// /**
// Print job timer * Print Job Timer
// *
// Enable this option to automatically start and stop the * Automatically start and stop the print job timer on M104/M109/M190.
// print job timer when M104/M109/M190 commands are received. *
// M104 (extruder without wait) - high temp = none, low temp = stop timer * M104 (hotend, no wait) - high temp = none, low temp = stop timer
// M109 (extruder with wait) - high temp = start timer, low temp = stop timer * M109 (hotend, wait) - high temp = start timer, low temp = stop timer
// M190 (bed with wait) - high temp = start timer, low temp = none * M190 (bed, wait) - high temp = start timer, low temp = none
// *
// In all cases the timer can be started and stopped using * The timer can also be controlled with the following commands:
// the following commands: *
// * M75 - Start the print job timer
// - M75 - Start the print job timer * M76 - Pause the print job timer
// - M76 - Pause the print job timer * M77 - Stop the print job timer
// - M77 - Stop the print job timer */
#define PRINTJOB_TIMER_AUTOSTART #define PRINTJOB_TIMER_AUTOSTART
// /**
// Print Counter * Print Counter
// *
// When enabled Marlin will keep track of some print statistical data such as: * Track statistical data such as:
// - Total print jobs *
// - Total successful print jobs * - Total print jobs
// - Total failed print jobs * - Total successful print jobs
// - Total time printing * - Total failed print jobs
// * - Total time printing
// This information can be viewed by the M78 command. *
* View the current statistics with M78.
*/
//#define PRINTCOUNTER //#define PRINTCOUNTER
//============================================================================= //=============================================================================
@ -1281,78 +1277,79 @@
// @section lcd // @section lcd
// /**
// LCD LANGUAGE * LCD LANGUAGE
// *
// Here you may choose the language used by Marlin on the LCD menus, the following * Select the language to display on the LCD. These languages are available:
// list of languages are available: *
// en, an, bg, ca, cn, cz, de, el, el-gr, es, eu, fi, fr, gl, hr, it, * en, an, bg, ca, cn, cz, de, el, el-gr, es, eu, fi, fr, gl, hr, it,
// kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk, test * kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk, test
// *
// :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'test':'TEST' } * :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'test':'TEST' }
// */
#define LCD_LANGUAGE en #define LCD_LANGUAGE en
// /**
// LCD Character Set * LCD Character Set
// *
// Note: This option is NOT applicable to Graphical Displays. * Note: This option is NOT applicable to Graphical Displays.
// *
// All character-based LCD's provide ASCII plus one of these * All character-based LCDs provide ASCII plus one of these
// language extensions: * language extensions:
// *
// - JAPANESE ... the most common * - JAPANESE ... the most common
// - WESTERN ... with more accented characters * - WESTERN ... with more accented characters
// - CYRILLIC ... for the Russian language * - CYRILLIC ... for the Russian language
// *
// To determine the language extension installed on your controller: * To determine the language extension installed on your controller:
// *
// - Compile and upload with LCD_LANGUAGE set to 'test' * - Compile and upload with LCD_LANGUAGE set to 'test'
// - Click the controller to view the LCD menu * - Click the controller to view the LCD menu
// - The LCD will display Japanese, Western, or Cyrillic text * - The LCD will display Japanese, Western, or Cyrillic text
// *
// See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language * See https: *github.com/MarlinFirmware/Marlin/wiki/LCD-Language
// *
// :['JAPANESE', 'WESTERN', 'CYRILLIC'] * :['JAPANESE', 'WESTERN', 'CYRILLIC']
// */
#define DISPLAY_CHARSET_HD44780 JAPANESE #define DISPLAY_CHARSET_HD44780 JAPANESE
// /**
// LCD TYPE * LCD TYPE
// *
// You may choose ULTRA_LCD if you have character based LCD with 16x2, 16x4, 20x2, * Enable ULTRA_LCD for a 16x2, 16x4, 20x2, or 20x4 character-based LCD.
// 20x4 char/lines or DOGLCD for the full graphics display with 128x64 pixels * Enable DOGLCD for a 128x64 (ST7565R) Full Graphical Display.
// (ST7565R family). (This option will be set automatically for certain displays.) * (These options will be enabled automatically for most displays.)
// *
// IMPORTANT NOTE: The U8glib library is required for Full Graphic Display! * IMPORTANT: The U8glib library is required for Full Graphic Display!
// https://github.com/olikraus/U8glib_Arduino * https://github.com/olikraus/U8glib_Arduino
// */
//#define ULTRA_LCD // Character based //#define ULTRA_LCD // Character based
//#define DOGLCD // Full graphics display //#define DOGLCD // Full graphics display
// /**
// SD CARD * SD CARD
// *
// SD Card support is disabled by default. If your controller has an SD slot, * SD Card support is disabled by default. If your controller has an SD slot,
// you must uncomment the following option or it won't work. * you must uncomment the following option or it won't work.
// *
*/
//#define SDSUPPORT //#define SDSUPPORT
// /**
// SD CARD: SPI SPEED * SD CARD: SPI SPEED
// *
// Uncomment ONE of the following items to use a slower SPI transfer * Enable one of the following items for a slower SPI transfer speed.
// speed. This is usually required if you're getting volume init errors. * This may be required to resolve "volume init" errors.
// */
//#define SPI_SPEED SPI_HALF_SPEED //#define SPI_SPEED SPI_HALF_SPEED
//#define SPI_SPEED SPI_QUARTER_SPEED //#define SPI_SPEED SPI_QUARTER_SPEED
//#define SPI_SPEED SPI_EIGHTH_SPEED //#define SPI_SPEED SPI_EIGHTH_SPEED
// /**
// SD CARD: ENABLE CRC * SD CARD: ENABLE CRC
// *
// Use CRC checks and retries on the SD communication. * Use CRC checks and retries on the SD communication.
// */
//#define SD_CHECK_AND_RETRY //#define SD_CHECK_AND_RETRY
// //
@ -1380,7 +1377,7 @@
*/ */
// //
// This option reverses the encoder direction everywhere // This option reverses the encoder direction everywhere.
// //
// Set this option if CLOCKWISE causes values to DECREASE // Set this option if CLOCKWISE causes values to DECREASE
// //

@ -971,23 +971,17 @@
#define PREHEAT_2_TEMP_BED 110 #define PREHEAT_2_TEMP_BED 110
#define PREHEAT_2_FAN_SPEED 0 // Value from 0 to 255 #define PREHEAT_2_FAN_SPEED 0 // Value from 0 to 255
// /**
// Nozzle Park -- EXPERIMENTAL * Nozzle Park -- EXPERIMENTAL
// *
// When enabled allows the user to define a special XYZ position, inside the * Park the nozzle at the given XYZ position on idle or G27.
// machine's topology, to park the nozzle when idle or when receiving the G27 *
// command. * The "P" parameter controls the action applied to the Z axis:
// *
// The "P" paramenter controls what is the action applied to the Z axis: * P0 (Default) If Z is below park Z raise the nozzle.
// P0: (Default) If current Z-pos is lower than Z-park then the nozzle will * P1 Raise the nozzle always to Z-park height.
// be raised to reach Z-park height. * P2 Raise the nozzle by Z-park amount, limited to Z_MAX_POS.
// */
// P1: No matter the current Z-pos, the nozzle will be raised/lowered to
// reach Z-park height.
//
// P2: The nozzle height will be raised by Z-park amount but never going over
// the machine's limit of Z_MAX_POS.
//
//#define NOZZLE_PARK_FEATURE //#define NOZZLE_PARK_FEATURE
#if ENABLED(NOZZLE_PARK_FEATURE) #if ENABLED(NOZZLE_PARK_FEATURE)
@ -995,44 +989,44 @@
#define NOZZLE_PARK_POINT { (X_MIN_POS + 10), (Y_MAX_POS - 10), 20 } #define NOZZLE_PARK_POINT { (X_MIN_POS + 10), (Y_MAX_POS - 10), 20 }
#endif #endif
// /**
// Clean Nozzle Feature -- EXPERIMENTAL * Clean Nozzle Feature -- EXPERIMENTAL
// *
// When enabled allows the user to send G12 to start the nozzle cleaning * Adds the G12 command to perform a nozzle cleaning process.
// process, the G-Code accepts two parameters: *
// "P" for pattern selection * Parameters:
// "S" for defining the number of strokes/repetitions * P Pattern
// * S Strokes / Repetitions
// Available list of patterns: * T Triangles (P1 only)
// P0: This is the default pattern, this process requires a sponge type *
// material at a fixed bed location. S defines "strokes" i.e. * Patterns:
// back-and-forth movements between the starting and end points. * P0 Straight line (default). This process requires a sponge type material
// * at a fixed bed location. "S" specifies strokes (i.e. back-forth motions)
// P1: This starts a zig-zag pattern between (X0, Y0) and (X1, Y1), "T" * between the start / end points.
// defines the number of zig-zag triangles to be done. "S" defines the *
// number of strokes aka one back-and-forth movement. Zig-zags will * P1 Zig-zag pattern between (X0, Y0) and (X1, Y1), "T" specifies the
// be performed in whichever dimension is smallest. As an example, * number of zig-zag triangles to do. "S" defines the number of strokes.
// sending "G12 P1 S1 T3" will execute: * Zig-zags are done in whichever is the narrower dimension.
// * For example, "G12 P1 S1 T3" will execute:
// -- *
// | (X0, Y1) | /\ /\ /\ | (X1, Y1) * --
// | | / \ / \ / \ | * | (X0, Y1) | /\ /\ /\ | (X1, Y1)
// A | | / \ / \ / \ | * | | / \ / \ / \ |
// | | / \ / \ / \ | * A | | / \ / \ / \ |
// | (X0, Y0) | / \/ \/ \ | (X1, Y0) * | | / \ / \ / \ |
// -- +--------------------------------+ * | (X0, Y0) | / \/ \/ \ | (X1, Y0)
// |________|_________|_________| * -- +--------------------------------+
// T1 T2 T3 * |________|_________|_________|
// * T1 T2 T3
// P2: This starts a circular pattern with circle with middle in *
// NOZZLE_CLEAN_CIRCLE_MIDDLE radius of R and stroke count of S. * P2 Circular pattern with middle at NOZZLE_CLEAN_CIRCLE_MIDDLE.
// Before starting the circle nozzle goes to NOZZLE_CLEAN_START_POINT. * "R" specifies the radius. "S" specifies the stroke count.
// * Before starting, the nozzle moves to NOZZLE_CLEAN_START_POINT.
// Caveats: End point Z should use the same value as Start point Z. *
// * Caveats: The ending Z should be the same as starting Z.
// Attention: This is an EXPERIMENTAL feature, in the future the G-code arguments * Attention: EXPERIMENTAL. G-code arguments may change.
// may change to add new functionality like different wipe patterns. *
// */
//#define NOZZLE_CLEAN_FEATURE //#define NOZZLE_CLEAN_FEATURE
#if ENABLED(NOZZLE_CLEAN_FEATURE) #if ENABLED(NOZZLE_CLEAN_FEATURE)
@ -1057,33 +1051,35 @@
#define NOZZLE_CLEAN_GOBACK #define NOZZLE_CLEAN_GOBACK
#endif #endif
// /**
// Print job timer * Print Job Timer
// *
// Enable this option to automatically start and stop the * Automatically start and stop the print job timer on M104/M109/M190.
// print job timer when M104/M109/M190 commands are received. *
// M104 (extruder without wait) - high temp = none, low temp = stop timer * M104 (hotend, no wait) - high temp = none, low temp = stop timer
// M109 (extruder with wait) - high temp = start timer, low temp = stop timer * M109 (hotend, wait) - high temp = start timer, low temp = stop timer
// M190 (bed with wait) - high temp = start timer, low temp = none * M190 (bed, wait) - high temp = start timer, low temp = none
// *
// In all cases the timer can be started and stopped using * The timer can also be controlled with the following commands:
// the following commands: *
// * M75 - Start the print job timer
// - M75 - Start the print job timer * M76 - Pause the print job timer
// - M76 - Pause the print job timer * M77 - Stop the print job timer
// - M77 - Stop the print job timer */
#define PRINTJOB_TIMER_AUTOSTART #define PRINTJOB_TIMER_AUTOSTART
// /**
// Print Counter * Print Counter
// *
// When enabled Marlin will keep track of some print statistical data such as: * Track statistical data such as:
// - Total print jobs *
// - Total successful print jobs * - Total print jobs
// - Total failed print jobs * - Total successful print jobs
// - Total time printing * - Total failed print jobs
// * - Total time printing
// This information can be viewed by the M78 command. *
* View the current statistics with M78.
*/
//#define PRINTCOUNTER //#define PRINTCOUNTER
//============================================================================= //=============================================================================
@ -1092,78 +1088,79 @@
// @section lcd // @section lcd
// /**
// LCD LANGUAGE * LCD LANGUAGE
// *
// Here you may choose the language used by Marlin on the LCD menus, the following * Select the language to display on the LCD. These languages are available:
// list of languages are available: *
// en, an, bg, ca, cn, cz, de, el, el-gr, es, eu, fi, fr, gl, hr, it, * en, an, bg, ca, cn, cz, de, el, el-gr, es, eu, fi, fr, gl, hr, it,
// kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk, test * kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk, test
// *
// :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'test':'TEST' } * :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'test':'TEST' }
// */
#define LCD_LANGUAGE en #define LCD_LANGUAGE en
// /**
// LCD Character Set * LCD Character Set
// *
// Note: This option is NOT applicable to Graphical Displays. * Note: This option is NOT applicable to Graphical Displays.
// *
// All character-based LCD's provide ASCII plus one of these * All character-based LCDs provide ASCII plus one of these
// language extensions: * language extensions:
// *
// - JAPANESE ... the most common * - JAPANESE ... the most common
// - WESTERN ... with more accented characters * - WESTERN ... with more accented characters
// - CYRILLIC ... for the Russian language * - CYRILLIC ... for the Russian language
// *
// To determine the language extension installed on your controller: * To determine the language extension installed on your controller:
// *
// - Compile and upload with LCD_LANGUAGE set to 'test' * - Compile and upload with LCD_LANGUAGE set to 'test'
// - Click the controller to view the LCD menu * - Click the controller to view the LCD menu
// - The LCD will display Japanese, Western, or Cyrillic text * - The LCD will display Japanese, Western, or Cyrillic text
// *
// See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language * See https: *github.com/MarlinFirmware/Marlin/wiki/LCD-Language
// *
// :['JAPANESE', 'WESTERN', 'CYRILLIC'] * :['JAPANESE', 'WESTERN', 'CYRILLIC']
// */
#define DISPLAY_CHARSET_HD44780 JAPANESE #define DISPLAY_CHARSET_HD44780 JAPANESE
// /**
// LCD TYPE * LCD TYPE
// *
// You may choose ULTRA_LCD if you have character based LCD with 16x2, 16x4, 20x2, * Enable ULTRA_LCD for a 16x2, 16x4, 20x2, or 20x4 character-based LCD.
// 20x4 char/lines or DOGLCD for the full graphics display with 128x64 pixels * Enable DOGLCD for a 128x64 (ST7565R) Full Graphical Display.
// (ST7565R family). (This option will be set automatically for certain displays.) * (These options will be enabled automatically for most displays.)
// *
// IMPORTANT NOTE: The U8glib library is required for Full Graphic Display! * IMPORTANT: The U8glib library is required for Full Graphic Display!
// https://github.com/olikraus/U8glib_Arduino * https://github.com/olikraus/U8glib_Arduino
// */
//#define ULTRA_LCD // Character based //#define ULTRA_LCD // Character based
//#define DOGLCD // Full graphics display //#define DOGLCD // Full graphics display
// /**
// SD CARD * SD CARD
// *
// SD Card support is disabled by default. If your controller has an SD slot, * SD Card support is disabled by default. If your controller has an SD slot,
// you must uncomment the following option or it won't work. * you must uncomment the following option or it won't work.
// *
*/
#define SDSUPPORT #define SDSUPPORT
// /**
// SD CARD: SPI SPEED * SD CARD: SPI SPEED
// *
// Uncomment ONE of the following items to use a slower SPI transfer * Enable one of the following items for a slower SPI transfer speed.
// speed. This is usually required if you're getting volume init errors. * This may be required to resolve "volume init" errors.
// */
//#define SPI_SPEED SPI_HALF_SPEED //#define SPI_SPEED SPI_HALF_SPEED
//#define SPI_SPEED SPI_QUARTER_SPEED //#define SPI_SPEED SPI_QUARTER_SPEED
//#define SPI_SPEED SPI_EIGHTH_SPEED //#define SPI_SPEED SPI_EIGHTH_SPEED
// /**
// SD CARD: ENABLE CRC * SD CARD: ENABLE CRC
// *
// Use CRC checks and retries on the SD communication. * Use CRC checks and retries on the SD communication.
// */
#define SD_CHECK_AND_RETRY #define SD_CHECK_AND_RETRY
// //
@ -1191,7 +1188,7 @@
*/ */
// //
// This option reverses the encoder direction everywhere // This option reverses the encoder direction everywhere.
// //
// Set this option if CLOCKWISE causes values to DECREASE // Set this option if CLOCKWISE causes values to DECREASE
// //

@ -989,23 +989,17 @@
#define PREHEAT_2_TEMP_BED 100 #define PREHEAT_2_TEMP_BED 100
#define PREHEAT_2_FAN_SPEED 255 // Value from 0 to 255 #define PREHEAT_2_FAN_SPEED 255 // Value from 0 to 255
// /**
// Nozzle Park -- EXPERIMENTAL * Nozzle Park -- EXPERIMENTAL
// *
// When enabled allows the user to define a special XYZ position, inside the * Park the nozzle at the given XYZ position on idle or G27.
// machine's topology, to park the nozzle when idle or when receiving the G27 *
// command. * The "P" parameter controls the action applied to the Z axis:
// *
// The "P" paramenter controls what is the action applied to the Z axis: * P0 (Default) If Z is below park Z raise the nozzle.
// P0: (Default) If current Z-pos is lower than Z-park then the nozzle will * P1 Raise the nozzle always to Z-park height.
// be raised to reach Z-park height. * P2 Raise the nozzle by Z-park amount, limited to Z_MAX_POS.
// */
// P1: No matter the current Z-pos, the nozzle will be raised/lowered to
// reach Z-park height.
//
// P2: The nozzle height will be raised by Z-park amount but never going over
// the machine's limit of Z_MAX_POS.
//
//#define NOZZLE_PARK_FEATURE //#define NOZZLE_PARK_FEATURE
#if ENABLED(NOZZLE_PARK_FEATURE) #if ENABLED(NOZZLE_PARK_FEATURE)
@ -1013,44 +1007,44 @@
#define NOZZLE_PARK_POINT { (X_MIN_POS + 10), (Y_MAX_POS - 10), 20 } #define NOZZLE_PARK_POINT { (X_MIN_POS + 10), (Y_MAX_POS - 10), 20 }
#endif #endif
// /**
// Clean Nozzle Feature -- EXPERIMENTAL * Clean Nozzle Feature -- EXPERIMENTAL
// *
// When enabled allows the user to send G12 to start the nozzle cleaning * Adds the G12 command to perform a nozzle cleaning process.
// process, the G-Code accepts two parameters: *
// "P" for pattern selection * Parameters:
// "S" for defining the number of strokes/repetitions * P Pattern
// * S Strokes / Repetitions
// Available list of patterns: * T Triangles (P1 only)
// P0: This is the default pattern, this process requires a sponge type *
// material at a fixed bed location. S defines "strokes" i.e. * Patterns:
// back-and-forth movements between the starting and end points. * P0 Straight line (default). This process requires a sponge type material
// * at a fixed bed location. "S" specifies strokes (i.e. back-forth motions)
// P1: This starts a zig-zag pattern between (X0, Y0) and (X1, Y1), "T" * between the start / end points.
// defines the number of zig-zag triangles to be done. "S" defines the *
// number of strokes aka one back-and-forth movement. Zig-zags will * P1 Zig-zag pattern between (X0, Y0) and (X1, Y1), "T" specifies the
// be performed in whichever dimension is smallest. As an example, * number of zig-zag triangles to do. "S" defines the number of strokes.
// sending "G12 P1 S1 T3" will execute: * Zig-zags are done in whichever is the narrower dimension.
// * For example, "G12 P1 S1 T3" will execute:
// -- *
// | (X0, Y1) | /\ /\ /\ | (X1, Y1) * --
// | | / \ / \ / \ | * | (X0, Y1) | /\ /\ /\ | (X1, Y1)
// A | | / \ / \ / \ | * | | / \ / \ / \ |
// | | / \ / \ / \ | * A | | / \ / \ / \ |
// | (X0, Y0) | / \/ \/ \ | (X1, Y0) * | | / \ / \ / \ |
// -- +--------------------------------+ * | (X0, Y0) | / \/ \/ \ | (X1, Y0)
// |________|_________|_________| * -- +--------------------------------+
// T1 T2 T3 * |________|_________|_________|
// * T1 T2 T3
// P2: This starts a circular pattern with circle with middle in *
// NOZZLE_CLEAN_CIRCLE_MIDDLE radius of R and stroke count of S. * P2 Circular pattern with middle at NOZZLE_CLEAN_CIRCLE_MIDDLE.
// Before starting the circle nozzle goes to NOZZLE_CLEAN_START_POINT. * "R" specifies the radius. "S" specifies the stroke count.
// * Before starting, the nozzle moves to NOZZLE_CLEAN_START_POINT.
// Caveats: End point Z should use the same value as Start point Z. *
// * Caveats: The ending Z should be the same as starting Z.
// Attention: This is an EXPERIMENTAL feature, in the future the G-code arguments * Attention: EXPERIMENTAL. G-code arguments may change.
// may change to add new functionality like different wipe patterns. *
// */
//#define NOZZLE_CLEAN_FEATURE //#define NOZZLE_CLEAN_FEATURE
#if ENABLED(NOZZLE_CLEAN_FEATURE) #if ENABLED(NOZZLE_CLEAN_FEATURE)
@ -1075,33 +1069,35 @@
#define NOZZLE_CLEAN_GOBACK #define NOZZLE_CLEAN_GOBACK
#endif #endif
// /**
// Print job timer * Print Job Timer
// *
// Enable this option to automatically start and stop the * Automatically start and stop the print job timer on M104/M109/M190.
// print job timer when M104/M109/M190 commands are received. *
// M104 (extruder without wait) - high temp = none, low temp = stop timer * M104 (hotend, no wait) - high temp = none, low temp = stop timer
// M109 (extruder with wait) - high temp = start timer, low temp = stop timer * M109 (hotend, wait) - high temp = start timer, low temp = stop timer
// M190 (bed with wait) - high temp = start timer, low temp = none * M190 (bed, wait) - high temp = start timer, low temp = none
// *
// In all cases the timer can be started and stopped using * The timer can also be controlled with the following commands:
// the following commands: *
// * M75 - Start the print job timer
// - M75 - Start the print job timer * M76 - Pause the print job timer
// - M76 - Pause the print job timer * M77 - Stop the print job timer
// - M77 - Stop the print job timer */
#define PRINTJOB_TIMER_AUTOSTART #define PRINTJOB_TIMER_AUTOSTART
// /**
// Print Counter * Print Counter
// *
// When enabled Marlin will keep track of some print statistical data such as: * Track statistical data such as:
// - Total print jobs *
// - Total successful print jobs * - Total print jobs
// - Total failed print jobs * - Total successful print jobs
// - Total time printing * - Total failed print jobs
// * - Total time printing
// This information can be viewed by the M78 command. *
* View the current statistics with M78.
*/
//#define PRINTCOUNTER //#define PRINTCOUNTER
//============================================================================= //=============================================================================
@ -1110,78 +1106,79 @@
// @section lcd // @section lcd
// /**
// LCD LANGUAGE * LCD LANGUAGE
// *
// Here you may choose the language used by Marlin on the LCD menus, the following * Select the language to display on the LCD. These languages are available:
// list of languages are available: *
// en, an, bg, ca, cn, cz, de, el, el-gr, es, eu, fi, fr, gl, hr, it, * en, an, bg, ca, cn, cz, de, el, el-gr, es, eu, fi, fr, gl, hr, it,
// kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk, test * kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk, test
// *
// :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'test':'TEST' } * :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'test':'TEST' }
// */
//#define LCD_LANGUAGE en //#define LCD_LANGUAGE en
// /**
// LCD Character Set * LCD Character Set
// *
// Note: This option is NOT applicable to Graphical Displays. * Note: This option is NOT applicable to Graphical Displays.
// *
// All character-based LCD's provide ASCII plus one of these * All character-based LCDs provide ASCII plus one of these
// language extensions: * language extensions:
// *
// - JAPANESE ... the most common * - JAPANESE ... the most common
// - WESTERN ... with more accented characters * - WESTERN ... with more accented characters
// - CYRILLIC ... for the Russian language * - CYRILLIC ... for the Russian language
// *
// To determine the language extension installed on your controller: * To determine the language extension installed on your controller:
// *
// - Compile and upload with LCD_LANGUAGE set to 'test' * - Compile and upload with LCD_LANGUAGE set to 'test'
// - Click the controller to view the LCD menu * - Click the controller to view the LCD menu
// - The LCD will display Japanese, Western, or Cyrillic text * - The LCD will display Japanese, Western, or Cyrillic text
// *
// See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language * See https: *github.com/MarlinFirmware/Marlin/wiki/LCD-Language
// *
// :['JAPANESE', 'WESTERN', 'CYRILLIC'] * :['JAPANESE', 'WESTERN', 'CYRILLIC']
// */
#define DISPLAY_CHARSET_HD44780 JAPANESE #define DISPLAY_CHARSET_HD44780 JAPANESE
// /**
// LCD TYPE * LCD TYPE
// *
// You may choose ULTRA_LCD if you have character based LCD with 16x2, 16x4, 20x2, * Enable ULTRA_LCD for a 16x2, 16x4, 20x2, or 20x4 character-based LCD.
// 20x4 char/lines or DOGLCD for the full graphics display with 128x64 pixels * Enable DOGLCD for a 128x64 (ST7565R) Full Graphical Display.
// (ST7565R family). (This option will be set automatically for certain displays.) * (These options will be enabled automatically for most displays.)
// *
// IMPORTANT NOTE: The U8glib library is required for Full Graphic Display! * IMPORTANT: The U8glib library is required for Full Graphic Display!
// https://github.com/olikraus/U8glib_Arduino * https://github.com/olikraus/U8glib_Arduino
// */
//#define ULTRA_LCD // Character based //#define ULTRA_LCD // Character based
//#define DOGLCD // Full graphics display //#define DOGLCD // Full graphics display
// /**
// SD CARD * SD CARD
// *
// SD Card support is disabled by default. If your controller has an SD slot, * SD Card support is disabled by default. If your controller has an SD slot,
// you must uncomment the following option or it won't work. * you must uncomment the following option or it won't work.
// *
*/
#define SDSUPPORT #define SDSUPPORT
// /**
// SD CARD: SPI SPEED * SD CARD: SPI SPEED
// *
// Uncomment ONE of the following items to use a slower SPI transfer * Enable one of the following items for a slower SPI transfer speed.
// speed. This is usually required if you're getting volume init errors. * This may be required to resolve "volume init" errors.
// */
#define SPI_SPEED SPI_HALF_SPEED #define SPI_SPEED SPI_HALF_SPEED
//#define SPI_SPEED SPI_QUARTER_SPEED //#define SPI_SPEED SPI_QUARTER_SPEED
//#define SPI_SPEED SPI_EIGHTH_SPEED //#define SPI_SPEED SPI_EIGHTH_SPEED
// /**
// SD CARD: ENABLE CRC * SD CARD: ENABLE CRC
// *
// Use CRC checks and retries on the SD communication. * Use CRC checks and retries on the SD communication.
// */
//#define SD_CHECK_AND_RETRY //#define SD_CHECK_AND_RETRY
// //
@ -1209,7 +1206,7 @@
*/ */
// //
// This option reverses the encoder direction everywhere // This option reverses the encoder direction everywhere.
// //
// Set this option if CLOCKWISE causes values to DECREASE // Set this option if CLOCKWISE causes values to DECREASE
// //

@ -982,23 +982,17 @@
#define PREHEAT_2_TEMP_BED 100 #define PREHEAT_2_TEMP_BED 100
#define PREHEAT_2_FAN_SPEED 255 // Value from 0 to 255 #define PREHEAT_2_FAN_SPEED 255 // Value from 0 to 255
// /**
// Nozzle Park -- EXPERIMENTAL * Nozzle Park -- EXPERIMENTAL
// *
// When enabled allows the user to define a special XYZ position, inside the * Park the nozzle at the given XYZ position on idle or G27.
// machine's topology, to park the nozzle when idle or when receiving the G27 *
// command. * The "P" parameter controls the action applied to the Z axis:
// *
// The "P" paramenter controls what is the action applied to the Z axis: * P0 (Default) If Z is below park Z raise the nozzle.
// P0: (Default) If current Z-pos is lower than Z-park then the nozzle will * P1 Raise the nozzle always to Z-park height.
// be raised to reach Z-park height. * P2 Raise the nozzle by Z-park amount, limited to Z_MAX_POS.
// */
// P1: No matter the current Z-pos, the nozzle will be raised/lowered to
// reach Z-park height.
//
// P2: The nozzle height will be raised by Z-park amount but never going over
// the machine's limit of Z_MAX_POS.
//
//#define NOZZLE_PARK_FEATURE //#define NOZZLE_PARK_FEATURE
#if ENABLED(NOZZLE_PARK_FEATURE) #if ENABLED(NOZZLE_PARK_FEATURE)
@ -1006,44 +1000,44 @@
#define NOZZLE_PARK_POINT { (X_MIN_POS + 10), (Y_MAX_POS - 10), 20 } #define NOZZLE_PARK_POINT { (X_MIN_POS + 10), (Y_MAX_POS - 10), 20 }
#endif #endif
// /**
// Clean Nozzle Feature -- EXPERIMENTAL * Clean Nozzle Feature -- EXPERIMENTAL
// *
// When enabled allows the user to send G12 to start the nozzle cleaning * Adds the G12 command to perform a nozzle cleaning process.
// process, the G-Code accepts two parameters: *
// "P" for pattern selection * Parameters:
// "S" for defining the number of strokes/repetitions * P Pattern
// * S Strokes / Repetitions
// Available list of patterns: * T Triangles (P1 only)
// P0: This is the default pattern, this process requires a sponge type *
// material at a fixed bed location. S defines "strokes" i.e. * Patterns:
// back-and-forth movements between the starting and end points. * P0 Straight line (default). This process requires a sponge type material
// * at a fixed bed location. "S" specifies strokes (i.e. back-forth motions)
// P1: This starts a zig-zag pattern between (X0, Y0) and (X1, Y1), "T" * between the start / end points.
// defines the number of zig-zag triangles to be done. "S" defines the *
// number of strokes aka one back-and-forth movement. Zig-zags will * P1 Zig-zag pattern between (X0, Y0) and (X1, Y1), "T" specifies the
// be performed in whichever dimension is smallest. As an example, * number of zig-zag triangles to do. "S" defines the number of strokes.
// sending "G12 P1 S1 T3" will execute: * Zig-zags are done in whichever is the narrower dimension.
// * For example, "G12 P1 S1 T3" will execute:
// -- *
// | (X0, Y1) | /\ /\ /\ | (X1, Y1) * --
// | | / \ / \ / \ | * | (X0, Y1) | /\ /\ /\ | (X1, Y1)
// A | | / \ / \ / \ | * | | / \ / \ / \ |
// | | / \ / \ / \ | * A | | / \ / \ / \ |
// | (X0, Y0) | / \/ \/ \ | (X1, Y0) * | | / \ / \ / \ |
// -- +--------------------------------+ * | (X0, Y0) | / \/ \/ \ | (X1, Y0)
// |________|_________|_________| * -- +--------------------------------+
// T1 T2 T3 * |________|_________|_________|
// * T1 T2 T3
// P2: This starts a circular pattern with circle with middle in *
// NOZZLE_CLEAN_CIRCLE_MIDDLE radius of R and stroke count of S. * P2 Circular pattern with middle at NOZZLE_CLEAN_CIRCLE_MIDDLE.
// Before starting the circle nozzle goes to NOZZLE_CLEAN_START_POINT. * "R" specifies the radius. "S" specifies the stroke count.
// * Before starting, the nozzle moves to NOZZLE_CLEAN_START_POINT.
// Caveats: End point Z should use the same value as Start point Z. *
// * Caveats: The ending Z should be the same as starting Z.
// Attention: This is an EXPERIMENTAL feature, in the future the G-code arguments * Attention: EXPERIMENTAL. G-code arguments may change.
// may change to add new functionality like different wipe patterns. *
// */
//#define NOZZLE_CLEAN_FEATURE //#define NOZZLE_CLEAN_FEATURE
#if ENABLED(NOZZLE_CLEAN_FEATURE) #if ENABLED(NOZZLE_CLEAN_FEATURE)
@ -1068,33 +1062,35 @@
#define NOZZLE_CLEAN_GOBACK #define NOZZLE_CLEAN_GOBACK
#endif #endif
// /**
// Print job timer * Print Job Timer
// *
// Enable this option to automatically start and stop the * Automatically start and stop the print job timer on M104/M109/M190.
// print job timer when M104/M109/M190 commands are received. *
// M104 (extruder without wait) - high temp = none, low temp = stop timer * M104 (hotend, no wait) - high temp = none, low temp = stop timer
// M109 (extruder with wait) - high temp = start timer, low temp = stop timer * M109 (hotend, wait) - high temp = start timer, low temp = stop timer
// M190 (bed with wait) - high temp = start timer, low temp = none * M190 (bed, wait) - high temp = start timer, low temp = none
// *
// In all cases the timer can be started and stopped using * The timer can also be controlled with the following commands:
// the following commands: *
// * M75 - Start the print job timer
// - M75 - Start the print job timer * M76 - Pause the print job timer
// - M76 - Pause the print job timer * M77 - Stop the print job timer
// - M77 - Stop the print job timer */
#define PRINTJOB_TIMER_AUTOSTART #define PRINTJOB_TIMER_AUTOSTART
// /**
// Print Counter * Print Counter
// *
// When enabled Marlin will keep track of some print statistical data such as: * Track statistical data such as:
// - Total print jobs *
// - Total successful print jobs * - Total print jobs
// - Total failed print jobs * - Total successful print jobs
// - Total time printing * - Total failed print jobs
// * - Total time printing
// This information can be viewed by the M78 command. *
* View the current statistics with M78.
*/
//#define PRINTCOUNTER //#define PRINTCOUNTER
//============================================================================= //=============================================================================
@ -1103,78 +1099,79 @@
// @section lcd // @section lcd
// /**
// LCD LANGUAGE * LCD LANGUAGE
// *
// Here you may choose the language used by Marlin on the LCD menus, the following * Select the language to display on the LCD. These languages are available:
// list of languages are available: *
// en, an, bg, ca, cn, cz, de, el, el-gr, es, eu, fi, fr, gl, hr, it, * en, an, bg, ca, cn, cz, de, el, el-gr, es, eu, fi, fr, gl, hr, it,
// kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk, test * kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk, test
// *
// :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'test':'TEST' } * :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'test':'TEST' }
// */
//#define LCD_LANGUAGE en //#define LCD_LANGUAGE en
// /**
// LCD Character Set * LCD Character Set
// *
// Note: This option is NOT applicable to Graphical Displays. * Note: This option is NOT applicable to Graphical Displays.
// *
// All character-based LCD's provide ASCII plus one of these * All character-based LCDs provide ASCII plus one of these
// language extensions: * language extensions:
// *
// - JAPANESE ... the most common * - JAPANESE ... the most common
// - WESTERN ... with more accented characters * - WESTERN ... with more accented characters
// - CYRILLIC ... for the Russian language * - CYRILLIC ... for the Russian language
// *
// To determine the language extension installed on your controller: * To determine the language extension installed on your controller:
// *
// - Compile and upload with LCD_LANGUAGE set to 'test' * - Compile and upload with LCD_LANGUAGE set to 'test'
// - Click the controller to view the LCD menu * - Click the controller to view the LCD menu
// - The LCD will display Japanese, Western, or Cyrillic text * - The LCD will display Japanese, Western, or Cyrillic text
// *
// See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language * See https: *github.com/MarlinFirmware/Marlin/wiki/LCD-Language
// *
// :['JAPANESE', 'WESTERN', 'CYRILLIC'] * :['JAPANESE', 'WESTERN', 'CYRILLIC']
// */
#define DISPLAY_CHARSET_HD44780 JAPANESE #define DISPLAY_CHARSET_HD44780 JAPANESE
// /**
// LCD TYPE * LCD TYPE
// *
// You may choose ULTRA_LCD if you have character based LCD with 16x2, 16x4, 20x2, * Enable ULTRA_LCD for a 16x2, 16x4, 20x2, or 20x4 character-based LCD.
// 20x4 char/lines or DOGLCD for the full graphics display with 128x64 pixels * Enable DOGLCD for a 128x64 (ST7565R) Full Graphical Display.
// (ST7565R family). (This option will be set automatically for certain displays.) * (These options will be enabled automatically for most displays.)
// *
// IMPORTANT NOTE: The U8glib library is required for Full Graphic Display! * IMPORTANT: The U8glib library is required for Full Graphic Display!
// https://github.com/olikraus/U8glib_Arduino * https://github.com/olikraus/U8glib_Arduino
// */
//#define ULTRA_LCD // Character based //#define ULTRA_LCD // Character based
//#define DOGLCD // Full graphics display //#define DOGLCD // Full graphics display
// /**
// SD CARD * SD CARD
// *
// SD Card support is disabled by default. If your controller has an SD slot, * SD Card support is disabled by default. If your controller has an SD slot,
// you must uncomment the following option or it won't work. * you must uncomment the following option or it won't work.
// *
*/
//#define SDSUPPORT //#define SDSUPPORT
// /**
// SD CARD: SPI SPEED * SD CARD: SPI SPEED
// *
// Uncomment ONE of the following items to use a slower SPI transfer * Enable one of the following items for a slower SPI transfer speed.
// speed. This is usually required if you're getting volume init errors. * This may be required to resolve "volume init" errors.
// */
//#define SPI_SPEED SPI_HALF_SPEED //#define SPI_SPEED SPI_HALF_SPEED
//#define SPI_SPEED SPI_QUARTER_SPEED //#define SPI_SPEED SPI_QUARTER_SPEED
//#define SPI_SPEED SPI_EIGHTH_SPEED //#define SPI_SPEED SPI_EIGHTH_SPEED
// /**
// SD CARD: ENABLE CRC * SD CARD: ENABLE CRC
// *
// Use CRC checks and retries on the SD communication. * Use CRC checks and retries on the SD communication.
// */
//#define SD_CHECK_AND_RETRY //#define SD_CHECK_AND_RETRY
// //
@ -1202,7 +1199,7 @@
*/ */
// //
// This option reverses the encoder direction everywhere // This option reverses the encoder direction everywhere.
// //
// Set this option if CLOCKWISE causes values to DECREASE // Set this option if CLOCKWISE causes values to DECREASE
// //

@ -991,23 +991,17 @@
#define PREHEAT_2_TEMP_BED 110 #define PREHEAT_2_TEMP_BED 110
#define PREHEAT_2_FAN_SPEED 0 // Value from 0 to 255 #define PREHEAT_2_FAN_SPEED 0 // Value from 0 to 255
// /**
// Nozzle Park -- EXPERIMENTAL * Nozzle Park -- EXPERIMENTAL
// *
// When enabled allows the user to define a special XYZ position, inside the * Park the nozzle at the given XYZ position on idle or G27.
// machine's topology, to park the nozzle when idle or when receiving the G27 *
// command. * The "P" parameter controls the action applied to the Z axis:
// *
// The "P" paramenter controls what is the action applied to the Z axis: * P0 (Default) If Z is below park Z raise the nozzle.
// P0: (Default) If current Z-pos is lower than Z-park then the nozzle will * P1 Raise the nozzle always to Z-park height.
// be raised to reach Z-park height. * P2 Raise the nozzle by Z-park amount, limited to Z_MAX_POS.
// */
// P1: No matter the current Z-pos, the nozzle will be raised/lowered to
// reach Z-park height.
//
// P2: The nozzle height will be raised by Z-park amount but never going over
// the machine's limit of Z_MAX_POS.
//
//#define NOZZLE_PARK_FEATURE //#define NOZZLE_PARK_FEATURE
#if ENABLED(NOZZLE_PARK_FEATURE) #if ENABLED(NOZZLE_PARK_FEATURE)
@ -1015,44 +1009,44 @@
#define NOZZLE_PARK_POINT { (X_MIN_POS + 10), (Y_MAX_POS - 10), 20 } #define NOZZLE_PARK_POINT { (X_MIN_POS + 10), (Y_MAX_POS - 10), 20 }
#endif #endif
// /**
// Clean Nozzle Feature -- EXPERIMENTAL * Clean Nozzle Feature -- EXPERIMENTAL
// *
// When enabled allows the user to send G12 to start the nozzle cleaning * Adds the G12 command to perform a nozzle cleaning process.
// process, the G-Code accepts two parameters: *
// "P" for pattern selection * Parameters:
// "S" for defining the number of strokes/repetitions * P Pattern
// * S Strokes / Repetitions
// Available list of patterns: * T Triangles (P1 only)
// P0: This is the default pattern, this process requires a sponge type *
// material at a fixed bed location. S defines "strokes" i.e. * Patterns:
// back-and-forth movements between the starting and end points. * P0 Straight line (default). This process requires a sponge type material
// * at a fixed bed location. "S" specifies strokes (i.e. back-forth motions)
// P1: This starts a zig-zag pattern between (X0, Y0) and (X1, Y1), "T" * between the start / end points.
// defines the number of zig-zag triangles to be done. "S" defines the *
// number of strokes aka one back-and-forth movement. Zig-zags will * P1 Zig-zag pattern between (X0, Y0) and (X1, Y1), "T" specifies the
// be performed in whichever dimension is smallest. As an example, * number of zig-zag triangles to do. "S" defines the number of strokes.
// sending "G12 P1 S1 T3" will execute: * Zig-zags are done in whichever is the narrower dimension.
// * For example, "G12 P1 S1 T3" will execute:
// -- *
// | (X0, Y1) | /\ /\ /\ | (X1, Y1) * --
// | | / \ / \ / \ | * | (X0, Y1) | /\ /\ /\ | (X1, Y1)
// A | | / \ / \ / \ | * | | / \ / \ / \ |
// | | / \ / \ / \ | * A | | / \ / \ / \ |
// | (X0, Y0) | / \/ \/ \ | (X1, Y0) * | | / \ / \ / \ |
// -- +--------------------------------+ * | (X0, Y0) | / \/ \/ \ | (X1, Y0)
// |________|_________|_________| * -- +--------------------------------+
// T1 T2 T3 * |________|_________|_________|
// * T1 T2 T3
// P2: This starts a circular pattern with circle with middle in *
// NOZZLE_CLEAN_CIRCLE_MIDDLE radius of R and stroke count of S. * P2 Circular pattern with middle at NOZZLE_CLEAN_CIRCLE_MIDDLE.
// Before starting the circle nozzle goes to NOZZLE_CLEAN_START_POINT. * "R" specifies the radius. "S" specifies the stroke count.
// * Before starting, the nozzle moves to NOZZLE_CLEAN_START_POINT.
// Caveats: End point Z should use the same value as Start point Z. *
// * Caveats: The ending Z should be the same as starting Z.
// Attention: This is an EXPERIMENTAL feature, in the future the G-code arguments * Attention: EXPERIMENTAL. G-code arguments may change.
// may change to add new functionality like different wipe patterns. *
// */
//#define NOZZLE_CLEAN_FEATURE //#define NOZZLE_CLEAN_FEATURE
#if ENABLED(NOZZLE_CLEAN_FEATURE) #if ENABLED(NOZZLE_CLEAN_FEATURE)
@ -1077,33 +1071,35 @@
#define NOZZLE_CLEAN_GOBACK #define NOZZLE_CLEAN_GOBACK
#endif #endif
// /**
// Print job timer * Print Job Timer
// *
// Enable this option to automatically start and stop the * Automatically start and stop the print job timer on M104/M109/M190.
// print job timer when M104/M109/M190 commands are received. *
// M104 (extruder without wait) - high temp = none, low temp = stop timer * M104 (hotend, no wait) - high temp = none, low temp = stop timer
// M109 (extruder with wait) - high temp = start timer, low temp = stop timer * M109 (hotend, wait) - high temp = start timer, low temp = stop timer
// M190 (bed with wait) - high temp = start timer, low temp = none * M190 (bed, wait) - high temp = start timer, low temp = none
// *
// In all cases the timer can be started and stopped using * The timer can also be controlled with the following commands:
// the following commands: *
// * M75 - Start the print job timer
// - M75 - Start the print job timer * M76 - Pause the print job timer
// - M76 - Pause the print job timer * M77 - Stop the print job timer
// - M77 - Stop the print job timer */
#define PRINTJOB_TIMER_AUTOSTART #define PRINTJOB_TIMER_AUTOSTART
// /**
// Print Counter * Print Counter
// *
// When enabled Marlin will keep track of some print statistical data such as: * Track statistical data such as:
// - Total print jobs *
// - Total successful print jobs * - Total print jobs
// - Total failed print jobs * - Total successful print jobs
// - Total time printing * - Total failed print jobs
// * - Total time printing
// This information can be viewed by the M78 command. *
* View the current statistics with M78.
*/
#define PRINTCOUNTER #define PRINTCOUNTER
//============================================================================= //=============================================================================
@ -1112,78 +1108,79 @@
// @section lcd // @section lcd
// /**
// LCD LANGUAGE * LCD LANGUAGE
// *
// Here you may choose the language used by Marlin on the LCD menus, the following * Select the language to display on the LCD. These languages are available:
// list of languages are available: *
// en, an, bg, ca, cn, cz, de, el, el-gr, es, eu, fi, fr, gl, hr, it, * en, an, bg, ca, cn, cz, de, el, el-gr, es, eu, fi, fr, gl, hr, it,
// kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk, test * kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk, test
// *
// :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'test':'TEST' } * :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'test':'TEST' }
// */
#define LCD_LANGUAGE en #define LCD_LANGUAGE en
// /**
// LCD Character Set * LCD Character Set
// *
// Note: This option is NOT applicable to Graphical Displays. * Note: This option is NOT applicable to Graphical Displays.
// *
// All character-based LCD's provide ASCII plus one of these * All character-based LCDs provide ASCII plus one of these
// language extensions: * language extensions:
// *
// - JAPANESE ... the most common * - JAPANESE ... the most common
// - WESTERN ... with more accented characters * - WESTERN ... with more accented characters
// - CYRILLIC ... for the Russian language * - CYRILLIC ... for the Russian language
// *
// To determine the language extension installed on your controller: * To determine the language extension installed on your controller:
// *
// - Compile and upload with LCD_LANGUAGE set to 'test' * - Compile and upload with LCD_LANGUAGE set to 'test'
// - Click the controller to view the LCD menu * - Click the controller to view the LCD menu
// - The LCD will display Japanese, Western, or Cyrillic text * - The LCD will display Japanese, Western, or Cyrillic text
// *
// See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language * See https: *github.com/MarlinFirmware/Marlin/wiki/LCD-Language
// *
// :['JAPANESE', 'WESTERN', 'CYRILLIC'] * :['JAPANESE', 'WESTERN', 'CYRILLIC']
// */
#define DISPLAY_CHARSET_HD44780 JAPANESE #define DISPLAY_CHARSET_HD44780 JAPANESE
// /**
// LCD TYPE * LCD TYPE
// *
// You may choose ULTRA_LCD if you have character based LCD with 16x2, 16x4, 20x2, * Enable ULTRA_LCD for a 16x2, 16x4, 20x2, or 20x4 character-based LCD.
// 20x4 char/lines or DOGLCD for the full graphics display with 128x64 pixels * Enable DOGLCD for a 128x64 (ST7565R) Full Graphical Display.
// (ST7565R family). (This option will be set automatically for certain displays.) * (These options will be enabled automatically for most displays.)
// *
// IMPORTANT NOTE: The U8glib library is required for Full Graphic Display! * IMPORTANT: The U8glib library is required for Full Graphic Display!
// https://github.com/olikraus/U8glib_Arduino * https://github.com/olikraus/U8glib_Arduino
// */
//#define ULTRA_LCD // Character based //#define ULTRA_LCD // Character based
//#define DOGLCD // Full graphics display //#define DOGLCD // Full graphics display
// /**
// SD CARD * SD CARD
// *
// SD Card support is disabled by default. If your controller has an SD slot, * SD Card support is disabled by default. If your controller has an SD slot,
// you must uncomment the following option or it won't work. * you must uncomment the following option or it won't work.
// *
*/
#define SDSUPPORT #define SDSUPPORT
// /**
// SD CARD: SPI SPEED * SD CARD: SPI SPEED
// *
// Uncomment ONE of the following items to use a slower SPI transfer * Enable one of the following items for a slower SPI transfer speed.
// speed. This is usually required if you're getting volume init errors. * This may be required to resolve "volume init" errors.
// */
//#define SPI_SPEED SPI_HALF_SPEED //#define SPI_SPEED SPI_HALF_SPEED
//#define SPI_SPEED SPI_QUARTER_SPEED //#define SPI_SPEED SPI_QUARTER_SPEED
//#define SPI_SPEED SPI_EIGHTH_SPEED //#define SPI_SPEED SPI_EIGHTH_SPEED
// /**
// SD CARD: ENABLE CRC * SD CARD: ENABLE CRC
// *
// Use CRC checks and retries on the SD communication. * Use CRC checks and retries on the SD communication.
// */
//#define SD_CHECK_AND_RETRY //#define SD_CHECK_AND_RETRY
// //
@ -1211,7 +1208,7 @@
*/ */
// //
// This option reverses the encoder direction everywhere // This option reverses the encoder direction everywhere.
// //
// Set this option if CLOCKWISE causes values to DECREASE // Set this option if CLOCKWISE causes values to DECREASE
// //

@ -0,0 +1,60 @@
## Marlin Github Helper Scripts
### Introduction
A Pull Request is often just the start of a longer process of patching and refining the code until it's ready to merge. In that process it's common to accumulate a lot of commits, some of which are non-functional. Before merging any PR, excess commits need to be "squashed" and sometimes rearranged or reworked to produce a well-packaged set of changes and keep the commit history relatively clean.
In addition, while a PR is being worked on other commits may be merged, leading to conflicts that need resolution. For this reason, it's a best practice to periodically refresh the PR so the working copy closely reflects the final merge.
#### Merge vs Rebase
I recommend not using Github Desktop to sync and merge. Use the command line instead. Github Desktop provides a "merge" option, but for best results "`git rebase`" is recommended. Merge applies new work after your commits. This buries them and makes it hard to bring them together as a final packaged unit. Rebase moves your commits to the end of the branch, ensuring that your commits will be adapted to the current code. This makes it easier to keep revising the commits in-place.
### The Scripts
The following scripts can be used on macOS or Linux to speed up the process of working with Marlin and submitting changes to the project.
#### Remotes
File|Description
----|-----------
mfadd [user]|Add Remote - Add another Github user's fork of Marlin as a remote, then fetch it. After this you can check out one of their branches and either make a PR targeted at their fork or targeted at `bugfix-1.1.x`.
mfinit|Init Working Copy - Creates a remote named '`upstream`' (for use by the other scripts) pointing to the '`MarlinFirmware`' fork. Use once after checking out your fork.
#### Branches
File|Description
----|-----------
mfnew [branch]|New Branch - Creates a new branch based on `upstream/[PR-target]`. All new work should start here.
firstpush|Push the current branch to 'origin' -your fork on Github- and set it to track '`origin`'. The branch needs to reside on Github before you can use it to make a PR.
#### Making / Amending PRs
File|Description
----|-----------
mfpr|Pull Request - Open the Compare / Pull Request page on Github for the current branch.
mfrb|Do a `git rebase` then `git rebase -i` of the current branch onto `upstream/[PR-target]`. Use this to edit your commits anytime.
mfqp|Quick Patch - Commit all current changes as "patch", `mfrb`, and `git push -f`.
#### Documentation
File|Description
----|-----------
mfdoc|Build the documentation and preview it locally.
mfpub|Build the documentation and publish it to marlinfw.org via Github.
#### Utilities
File|Description
----|-----------
ghtp -[h/s]|Set the protocol to use for all remotes. -h for HTTPS, -s for SSL.
mfinfo|This utility script is used by the other scripts to get:<br/>- The upstream project ('`MarlinFirmware`')<br/>- the '`origin`' project (i.e., your Github username),<br/>- the repository name ('`Marlin`'),<br/>- the PR target branch ('`bugfix-1.1.x`'), and<br/>- the current branch (or the first command-line argument).<br/><br/>By itself, `mfinfo` simply prints these values to the console.
mfclean&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|Prune your merged and remotely-deleted branches.
---
### Examples
Coming Soon!

@ -1,22 +1,24 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# #
# mfprune # mfclean
# #
# Prune all your merged branches and any branches whose remotes are gone # Prune all your merged branches and any branches whose remotes are gone
# Great way to clean up your branches after messing around a lot # Great way to clean up your branches after messing around a lot
# #
KEEP="RC|RCBugFix|dev|master|bugfix-1"
echo "Fetching latest upstream and origin..." echo "Fetching latest upstream and origin..."
git fetch upstream git fetch upstream
git fetch origin git fetch origin
echo echo
echo "Pruning Merged Branches..." echo "Pruning Merged Branches..."
git branch --merged | egrep -v "^\*|RC|RCBugFix|dev" | xargs -n 1 git branch -d git branch --merged | egrep -v "^\*|$KEEP" | xargs -n 1 git branch -d
echo echo
echo "Pruning Remotely-deleted Branches..." echo "Pruning Remotely-deleted Branches..."
git branch -vv | egrep -v "^\*|RC|RCBugFix|dev" | grep ': gone]' | gawk '{print $1}' | xargs -n 1 git branch -D git branch -vv | egrep -v "^\*|$KEEP" | grep ': gone]' | gawk '{print $1}' | xargs -n 1 git branch -D
echo echo
echo "You may want to remove (or checkout) these refs..." echo "You may want to remove (or checkout) these refs..."

@ -15,4 +15,5 @@ case "$#" in
* ) echo "Usage: `basename $0` [branch]" 1>&2 ; exit 1 ;; * ) echo "Usage: `basename $0` [branch]" 1>&2 ; exit 1 ;;
esac esac
git checkout $TARG -b $BRANCH git fetch upstream
git checkout upstream/$TARG -b $BRANCH

@ -2,7 +2,11 @@
# #
# mfpub # mfpub
# #
# Use Jekyll to publish Marlin Documentation to the HTML site # Use Jekyll to generate Marlin Documentation, which is then
# git-pushed to Github to publish it to the live site.
# This publishes the current branch, and doesn't force
# changes to be pushed to the 'master' branch. Be sure to push
# any permanent changes to 'master'.
# #
MFINFO=$(mfinfo "$@") || exit MFINFO=$(mfinfo "$@") || exit
@ -19,23 +23,22 @@ if [[ $ORG != "MarlinFirmware" || $REPO != "MarlinDocumentation" ]]; then
fi fi
if [[ $BRANCH == "gh-pages" ]]; then if [[ $BRANCH == "gh-pages" ]]; then
echo "Can't build from 'gh-pages.' Only the Jekyll branches." echo "Can't build from 'gh-pages.' Only the Jekyll branches (based on 'master')."
bundle exec jekyll serve --watch bundle exec jekyll serve --watch
exit exit
fi fi
if [[ $BRANCH != "master" ]]; then if [[ $BRANCH != "master" ]]; then
echo "Don't forget to update and push 'master'!" echo "Don't forget to update and push 'master'!"
# GOJF Card
git stash
fi fi
# Check out the named branch (or stay in current)
git checkout $BRANCH git checkout $BRANCH
echo "Generating MarlinDocumentation..." echo "Generating MarlinDocumentation..."
# GOJF Card
git stash
TMPFOLDER=$( mktemp -d )
COMMIT=$( git log --format="%H" -n 1 ) COMMIT=$( git log --format="%H" -n 1 )
# Clean out changes and other junk in the branch # Clean out changes and other junk in the branch
@ -45,6 +48,13 @@ git clean -d -f
# Push 'master' to the fork and make a proper PR... # Push 'master' to the fork and make a proper PR...
if [[ $BRANCH == "master" ]]; then if [[ $BRANCH == "master" ]]; then
if [[ $$FORK == "MarlinFirmware" ]]; then
# Allow working directly with the main fork
git push -f upstream
else
if [ -z "$(git branch -vv | grep ^\* | grep \\[origin)" ]; then firstpush; fi if [ -z "$(git branch -vv | grep ^\* | grep \\[origin)" ]; then firstpush; fi
git push -f origin git push -f origin
@ -62,13 +72,18 @@ if [[ $BRANCH == "master" ]]; then
fi fi
fi
# Uncomment to compress the final html files # Uncomment to compress the final html files
# mv ./_plugins/jekyll-press.rb-disabled ./_plugins/jekyll-press.rb # mv ./_plugins/jekyll-press.rb-disabled ./_plugins/jekyll-press.rb
# bundle install # bundle install
# build the site statically and proof it
bundle exec jekyll build --profile --trace --no-watch bundle exec jekyll build --profile --trace --no-watch
bundle exec htmlproofer ./_site --only-4xx --allow-hash-href --check-favicon --check-html --url-swap ".*marlinfw.org/:/" bundle exec htmlproofer ./_site --only-4xx --allow-hash-href --check-favicon --check-html --url-swap ".*marlinfw.org/:/"
# Sync the built site into a temporary folder
TMPFOLDER=$( mktemp -d )
rsync -av _site/ ${TMPFOLDER}/ rsync -av _site/ ${TMPFOLDER}/
# Clean out changes and other junk in the branch # Clean out changes and other junk in the branch
@ -84,6 +99,7 @@ git add --all
git commit --message "Built from ${COMMIT}" git commit --message "Built from ${COMMIT}"
git push upstream git push upstream
# remove the temporary folder
rm -rf ${TMPFOLDER} rm -rf ${TMPFOLDER}
# Go back to the branch we started from # Go back to the branch we started from

@ -13,4 +13,8 @@ case "$#" in
* ) echo "Usage: `basename $0`" 1>&2 ; exit 1 ;; * ) echo "Usage: `basename $0`" 1>&2 ; exit 1 ;;
esac esac
git rebase -i ${INFO[3]} # If the branch isn't currently the PR target
if [[ ${INFO[4]} != ${INFO[5]} ]]; then
git fetch upstream
git rebase upstream/${INFO[3]} && git rebase -i upstream/${INFO[3]}
fi

Loading…
Cancel
Save