Compare commits

..

28 Commits

Author SHA1 Message Date
InsanityAutomation 03a0226ae3 Bump 2019-01-10 17:35:20 -05:00
InsanityAutomation 9c94691688 Fix typo 2018-12-02 10:10:48 -05:00
InsanityAutomation c52bac8bab Bump to head, update config files 2018-11-08 21:47:08 -05:00
InsanityAutomation 98a79c9ab8 Update Configuration.h 2018-11-08 21:08:02 -05:00
InsanityAutomation 3f42b06bc2 Bump to head and add new filament runout option 2018-09-30 15:32:14 -04:00
InsanityAutomation 1ab0d240b9 Bump to head with panner and ubl fixes 2018-07-08 16:48:40 -04:00
InsanityAutomation 5a4a107711 Move config to top 2018-07-01 00:13:37 -04:00
InsanityAutomation afa6a0c993 Catchup to Bugfix 20180526 2018-05-28 11:21:30 -04:00
InsanityAutomation 7429a39278 Add TMC2208 Spreadcycle and Extruder options 2018-05-26 15:43:50 -04:00
InsanityAutomation 156ed96649 Set UBL off by default to match stock 2018-05-09 13:32:10 -04:00
InsanityAutomation b018fb59d7 Slow nozzle park to help prevent shifting 2018-05-09 12:52:26 -04:00
InsanityAutomation 4d9190598b Bump config version and remove nozzle preheat to avoid runaway 2018-05-09 12:48:57 -04:00
InsanityAutomation 5dfec58d7b Couple tweaks
Turn on multiple probing, off power save recovery, bump version
2018-05-09 12:45:15 -04:00
InsanityAutomation 6d84ca7671 Merge branch 'bugfix-1.1.x' into TM_Raptor 2018-05-09 12:39:12 -04:00
InsanityAutomation d66afdc244 Replace stock pins file 2018-04-24 12:56:26 -04:00
InsanityAutomation 242cda28f6 Add all metal pid 2018-04-24 12:31:30 -04:00
InsanityAutomation 0dc4a5d928 Merge branch 'TM_Raptor' of https://github.com/InsanityAutomation/Marlin into TM_Raptor 2018-04-24 12:30:28 -04:00
InsanityAutomation 612ca52676 Disable brightness and rename menu 2018-04-24 11:03:41 -04:00
InsanityAutomation d1be569466 Version bump 2018-04-24 10:58:38 -04:00
InsanityAutomation 95e0ab52d6 Enable power loss recovery 2018-04-24 10:18:47 -04:00
InsanityAutomation e9214cf1fb Merge branch 'bugfix-1.1.x' into TM_Raptor 2018-04-24 10:11:30 -04:00
InsanityAutomation d46ba9e969 Merge pull request #2 from InsanityAutomation/bugfix-1.1.x
Catch up
2018-04-24 09:51:51 -04:00
InsanityAutomation b2d32227aa Fix AC bed temp limit 2018-04-24 09:38:10 -04:00
InsanityAutomation c1e14d6db7 Change instance of Light to LED 2018-04-24 09:32:40 -04:00
InsanityAutomation 7ef484be7e Re-enable fans and heaters when probing 2018-04-24 09:31:36 -04:00
InsanityAutomation 410b25d4e9 More featurefull config 2018-04-17 16:21:27 -04:00
InsanityAutomation 8c22e7710c Define case light as led to match stock 2018-04-17 15:32:17 -04:00
InsanityAutomation b4d2c19723 Update park position 2018-04-17 15:29:20 -04:00
139 changed files with 1797 additions and 51817 deletions
+2 -2
View File
@@ -1,6 +1,6 @@
<!-- <!--
Have you read Marlin's Code of Conduct? By filing an Issue, you are expected to comply with it, including treating everyone with respect: https://github.com/MarlinFirmware/Marlin/blob/1.1.x/.github/code_of_conduct.md Have you read Marlin's Code of Conduct? By filing an Issue, you are expected to comply with it, including treating everyone with respect: https://github.com/MarlinFirmware/Marlin/blob/master/.github/code_of_conduct.md
Do you want to ask a question? Are you looking for support? Please don't post here. Instead please use the Marlin Firmware forum at http://forums.reprap.org/list.php?415 or the Marlin Facebook Group https://www.facebook.com/groups/1049718498464482/. Do you want to ask a question? Are you looking for support? Please don't post here. Instead please use the Marlin Firmware forum at http://forums.reprap.org/list.php?415 or the Marlin Facebook Group https://www.facebook.com/groups/1049718498464482/.
@@ -28,4 +28,4 @@ Before filing an issue be sure to test the 1.1 and/or 2.0 "bugfix" branches to s
* Include a ZIP file containing your `Configuration.h` and `Configuration_adv.h` files. * Include a ZIP file containing your `Configuration.h` and `Configuration_adv.h` files.
* Provide pictures or links to videos that clearly demonstrate the issue. * Provide pictures or links to videos that clearly demonstrate the issue.
* See [How Can I Contribute](https://github.com/MarlinFirmware/Marlin/blob/1.1.x/.github/contributing.md#how-can-i-contribute) for additional guidelines. * See [How Can I Contribute](#how-can-i-contribute) for additional guidelines.
+1 -2
View File
@@ -125,7 +125,6 @@ lib/readme.txt
#Visual Studio #Visual Studio
*.sln *.sln
*.vcxproj *.vcxproj
*.vcxproj.user
*.vcxproj.filters *.vcxproj.filters
Release/ Release/
Debug/ Debug/
@@ -133,7 +132,7 @@ __vm/
.vs/ .vs/
vc-fileutils.settings vc-fileutils.settings
#Visual Studio Code #VScode
.vscode .vscode
.vscode/.browse.c_cpp.db* .vscode/.browse.c_cpp.db*
.vscode/c_cpp_properties.json .vscode/c_cpp_properties.json
+62 -78
View File
@@ -92,10 +92,10 @@ script:
- opt_set TEMP_SENSOR_BED 1 - opt_set TEMP_SENSOR_BED 1
- opt_set POWER_SUPPLY 1 - opt_set POWER_SUPPLY 1
- opt_enable PIDTEMPBED FIX_MOUNTED_PROBE Z_SAFE_HOMING - opt_enable PIDTEMPBED FIX_MOUNTED_PROBE Z_SAFE_HOMING
- opt_enable REPRAP_DISCOUNT_SMART_CONTROLLER SDSUPPORT EEPROM_SETTINGS PINS_DEBUGGING - opt_enable REPRAP_DISCOUNT_SMART_CONTROLLER SDSUPPORT EEPROM_SETTINGS
- opt_enable BLINKM PCA9632 RGB_LED NEOPIXEL_LED AUTO_POWER_CONTROL NOZZLE_PARK_FEATURE FILAMENT_RUNOUT_SENSOR - opt_enable BLINKM PCA9632 RGB_LED NEOPIXEL_LED AUTO_POWER_CONTROL NOZZLE_PARK_FEATURE FILAMENT_RUNOUT_SENSOR
- opt_enable AUTO_BED_LEVELING_LINEAR Z_MIN_PROBE_REPEATABILITY_TEST DEBUG_LEVELING_FEATURE SKEW_CORRECTION SKEW_CORRECTION_FOR_Z SKEW_CORRECTION_GCODE - opt_enable AUTO_BED_LEVELING_LINEAR Z_MIN_PROBE_REPEATABILITY_TEST DEBUG_LEVELING_FEATURE SKEW_CORRECTION SKEW_CORRECTION_FOR_Z SKEW_CORRECTION_GCODE
- opt_enable_adv ARC_P_CIRCLES ADVANCED_PAUSE_FEATURE CNC_WORKSPACE_PLANES CNC_COORDINATE_SYSTEMS POWER_LOSS_RECOVERY POWER_LOSS_PIN POWER_LOSS_STATE - opt_enable_adv ARC_P_CIRCLES ADVANCED_PAUSE_FEATURE CNC_WORKSPACE_PLANES CNC_COORDINATE_SYSTEMS POWER_LOSS_RECOVERY
- opt_enable_adv FWRETRACT MAX7219_DEBUG LED_CONTROL_MENU CASE_LIGHT_ENABLE CASE_LIGHT_USE_NEOPIXEL CODEPENDENT_XY_HOMING - opt_enable_adv FWRETRACT MAX7219_DEBUG LED_CONTROL_MENU CASE_LIGHT_ENABLE CASE_LIGHT_USE_NEOPIXEL CODEPENDENT_XY_HOMING
- opt_set GRID_MAX_POINTS_X 16 - opt_set GRID_MAX_POINTS_X 16
- opt_set_adv FANMUX0_PIN 53 - opt_set_adv FANMUX0_PIN 53
@@ -111,16 +111,14 @@ script:
- opt_set TEMP_SENSOR_3 20 - opt_set TEMP_SENSOR_3 20
- opt_set TEMP_SENSOR_4 999 - opt_set TEMP_SENSOR_4 999
- opt_set TEMP_SENSOR_BED 1 - opt_set TEMP_SENSOR_BED 1
- opt_enable AUTO_BED_LEVELING_UBL RESTORE_LEVELING_AFTER_G28 DEBUG_LEVELING_FEATURE G26_MESH_EDITING ENABLE_LEVELING_FADE_HEIGHT SKEW_CORRECTION - opt_enable AUTO_BED_LEVELING_UBL RESTORE_LEVELING_AFTER_G28 DEBUG_LEVELING_FEATURE G26_MESH_EDITING ENABLE_LEVELING_FADE_HEIGHT EEPROM_SETTINGS EEPROM_CHITCHAT G3D_PANEL SKEW_CORRECTION
- opt_enable EEPROM_SETTINGS EEPROM_CHITCHAT REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER - opt_enable_adv CUSTOM_USER_MENUS I2C_POSITION_ENCODERS BABYSTEPPING BABYSTEP_XY LIN_ADVANCE NANODLP_Z_SYNC QUICK_HOME
- opt_enable_adv CUSTOM_USER_MENUS I2C_POSITION_ENCODERS BABYSTEPPING BABYSTEP_XY LIN_ADVANCE NANODLP_Z_SYNC QUICK_HOME JUNCTION_DEVIATION MAX7219_DEBUG
- opt_set_adv MAX7219_ROTATE 270
- build_marlin - build_marlin
# #
# Add a Sled Z Probe, use UBL Cartesian moves, use Japanese language # Add a Sled Z Probe, use UBL Cartesian moves, use Japanese language
# #
- opt_enable Z_PROBE_SLED SKEW_CORRECTION SKEW_CORRECTION_FOR_Z SKEW_CORRECTION_GCODE S_CURVE_ACCELERATION - opt_set LANGUAGE kana_utf8
- opt_set LCD_LANGUAGE kana_utf8 - opt_enable Z_PROBE_SLED SKEW_CORRECTION SKEW_CORRECTION_FOR_Z SKEW_CORRECTION_GCODE BEZIER_JERK_CONTROL
- opt_disable SEGMENT_LEVELED_MOVES - opt_disable SEGMENT_LEVELED_MOVES
- opt_enable_adv BABYSTEP_ZPROBE_OFFSET DOUBLECLICK_FOR_Z_BABYSTEPPING - opt_enable_adv BABYSTEP_ZPROBE_OFFSET DOUBLECLICK_FOR_Z_BABYSTEPPING
- build_marlin - build_marlin
@@ -162,13 +160,25 @@ script:
- opt_set_adv I2C_SLAVE_ADDRESS 63 - opt_set_adv I2C_SLAVE_ADDRESS 63
- build_marlin - build_marlin
# #
# Mixing Extruder with 5 steppers, Cyrillic # Test 5 extruders on AZTEEG_X3_PRO (can use any board with >=5 extruders defined)
# Include a test for LIN_ADVANCE here also
#
- opt_set MOTHERBOARD BOARD_AZTEEG_X3_PRO
- opt_set EXTRUDERS 5
- opt_set TEMP_SENSOR_1 1
- opt_set TEMP_SENSOR_2 5
- opt_set TEMP_SENSOR_3 20
- opt_set TEMP_SENSOR_4 999
- opt_set TEMP_SENSOR_BED 1
- opt_enable_adv LIN_ADVANCE
- build_marlin
#
# Mixing Extruder with 5 steppers
# #
- restore_configs - restore_configs
- opt_set MOTHERBOARD BOARD_AZTEEG_X3_PRO - opt_set MOTHERBOARD BOARD_AZTEEG_X3_PRO
- opt_enable MIXING_EXTRUDER CR10_STOCKDISPLAY - opt_enable MIXING_EXTRUDER
- opt_set MIXING_STEPPERS 5 - opt_set MIXING_STEPPERS 5
- opt_set LCD_LANGUAGE ru
- build_marlin - build_marlin
# #
# Test DUAL_X_CARRIAGE # Test DUAL_X_CARRIAGE
@@ -183,11 +193,11 @@ script:
# #
# Test SPEAKER with BOARD_BQ_ZUM_MEGA_3D and BQ_LCD_SMART_CONTROLLER # Test SPEAKER with BOARD_BQ_ZUM_MEGA_3D and BQ_LCD_SMART_CONTROLLER
# #
#- restore_configs - restore_configs
#- opt_set MOTHERBOARD BOARD_BQ_ZUM_MEGA_3D - opt_set MOTHERBOARD BOARD_BQ_ZUM_MEGA_3D
#- opt_set LCD_FEEDBACK_FREQUENCY_DURATION_MS 10 - opt_set LCD_FEEDBACK_FREQUENCY_DURATION_MS 10
#- opt_set LCD_FEEDBACK_FREQUENCY_HZ 100 - opt_set LCD_FEEDBACK_FREQUENCY_HZ 100
#- opt_enable BQ_LCD_SMART_CONTROLLER SPEAKER - opt_enable BQ_LCD_SMART_CONTROLLER SPEAKER
# #
# Test SWITCHING_EXTRUDER # Test SWITCHING_EXTRUDER
# #
@@ -196,14 +206,15 @@ script:
- opt_set EXTRUDERS 2 - opt_set EXTRUDERS 2
- opt_enable NUM_SERVOS - opt_enable NUM_SERVOS
- opt_set NUM_SERVOS 1 - opt_set NUM_SERVOS 1
- opt_set TEMP_SENSOR_1 1
- opt_enable SWITCHING_EXTRUDER ULTIMAKERCONTROLLER - opt_enable SWITCHING_EXTRUDER ULTIMAKERCONTROLLER
- build_marlin - build_marlin
# #
# Enable COREXY # Enable COREXY
# #
#- restore_configs - restore_configs
#- opt_enable COREXY - opt_enable COREXY
#- build_marlin - build_marlin
# #
# Test many less common options # Test many less common options
# #
@@ -217,7 +228,7 @@ script:
- opt_enable_adv VOLUMETRIC_DEFAULT_ON NO_WORKSPACE_OFFSETS ACTION_ON_KILL - opt_enable_adv VOLUMETRIC_DEFAULT_ON NO_WORKSPACE_OFFSETS ACTION_ON_KILL
- opt_enable_adv EXTRA_FAN_SPEED FWERETRACT Z_DUAL_STEPPER_DRIVERS Z_DUAL_ENDSTOPS - opt_enable_adv EXTRA_FAN_SPEED FWERETRACT Z_DUAL_STEPPER_DRIVERS Z_DUAL_ENDSTOPS
- opt_enable_adv MENU_ADDAUTOSTART SDCARD_SORT_ALPHA - opt_enable_adv MENU_ADDAUTOSTART SDCARD_SORT_ALPHA
- opt_enable REPRAP_DISCOUNT_SMART_CONTROLLER BABYSTEPPING DAC_MOTOR_CURRENT_DEFAULT - opt_enable REPRAP_DISCOUNT_SMART_CONTROLLER
- opt_enable FILAMENT_LCD_DISPLAY FILAMENT_WIDTH_SENSOR - opt_enable FILAMENT_LCD_DISPLAY FILAMENT_WIDTH_SENSOR
- opt_enable ENDSTOP_INTERRUPTS_FEATURE FAN_SOFT_PWM SDSUPPORT - opt_enable ENDSTOP_INTERRUPTS_FEATURE FAN_SOFT_PWM SDSUPPORT
- opt_enable USE_XMAX_PLUG - opt_enable USE_XMAX_PLUG
@@ -227,15 +238,15 @@ script:
# #
# ULTRA_LCD # ULTRA_LCD
# #
#- restore_configs - restore_configs
#- opt_enable ULTRA_LCD - opt_enable ULTRA_LCD
#- build_marlin - build_marlin
# #
# DOGLCD # DOGLCD
# #
#- restore_configs - restore_configs
#- opt_enable DOGLCD - opt_enable DOGLCD
#- build_marlin - build_marlin
# #
# MAKRPANEL # MAKRPANEL
# Needs to use Melzi and Sanguino hardware # Needs to use Melzi and Sanguino hardware
@@ -246,26 +257,15 @@ script:
# #
# REPRAP_DISCOUNT_SMART_CONTROLLER, SDSUPPORT, BABYSTEPPING, RIGIDBOARD_V2, and DAC_MOTOR_CURRENT_DEFAULT # REPRAP_DISCOUNT_SMART_CONTROLLER, SDSUPPORT, BABYSTEPPING, RIGIDBOARD_V2, and DAC_MOTOR_CURRENT_DEFAULT
# #
#- restore_configs - restore_configs
#- opt_set MOTHERBOARD BOARD_RIGIDBOARD_V2 - opt_set MOTHERBOARD BOARD_RIGIDBOARD_V2
#- opt_enable REPRAP_DISCOUNT_SMART_CONTROLLER SDSUPPORT BABYSTEPPING DAC_MOTOR_CURRENT_DEFAULT - opt_enable REPRAP_DISCOUNT_SMART_CONTROLLER SDSUPPORT BABYSTEPPING DAC_MOTOR_CURRENT_DEFAULT
#- build_marlin - build_marlin
# # #
# G3D_PANEL with SDCARD_SORT_ALPHA and STATUS_MESSAGE_SCROLLING # G3D_PANEL with SDCARD_SORT_ALPHA and STATUS_MESSAGE_SCROLLING
# #
#- restore_configs
#- opt_enable G3D_PANEL SDSUPPORT
#- opt_enable_adv SDCARD_SORT_ALPHA STATUS_MESSAGE_SCROLLING SCROLL_LONG_FILENAMES
#- opt_set_adv SDSORT_GCODE true
#- opt_set_adv SDSORT_USES_RAM true
#- opt_set_adv SDSORT_USES_STACK true
#- opt_set_adv SDSORT_CACHE_NAMES true
#- build_marlin
#
# REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER with LIGHTWEIGHT_UI
#
- restore_configs - restore_configs
- opt_enable REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER SDSUPPORT - opt_enable G3D_PANEL SDSUPPORT
- opt_enable_adv SDCARD_SORT_ALPHA STATUS_MESSAGE_SCROLLING SCROLL_LONG_FILENAMES LIGHTWEIGHT_UI - opt_enable_adv SDCARD_SORT_ALPHA STATUS_MESSAGE_SCROLLING SCROLL_LONG_FILENAMES LIGHTWEIGHT_UI
- opt_set_adv SDSORT_GCODE true - opt_set_adv SDSORT_GCODE true
- opt_set_adv SDSORT_USES_RAM true - opt_set_adv SDSORT_USES_RAM true
@@ -273,6 +273,13 @@ script:
- opt_set_adv SDSORT_CACHE_NAMES true - opt_set_adv SDSORT_CACHE_NAMES true
- build_marlin - build_marlin
# #
# REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER with SDCARD_SORT_ALPHA and STATUS_MESSAGE_SCROLLING
#
- restore_configs
- opt_enable REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER SDSUPPORT
- opt_enable_adv SDCARD_SORT_ALPHA STATUS_MESSAGE_SCROLLING SCROLL_LONG_FILENAMES
- build_marlin
#
# REPRAPWORLD_KEYPAD # REPRAPWORLD_KEYPAD
# #
# Cant find configuration details to get it to compile # Cant find configuration details to get it to compile
@@ -282,9 +289,9 @@ script:
# #
# RA_CONTROL_PANEL # RA_CONTROL_PANEL
# #
#- restore_configs - restore_configs
#- opt_enable RA_CONTROL_PANEL PINS_DEBUGGING - opt_enable RA_CONTROL_PANEL PINS_DEBUGGING
#- build_marlin - build_marlin
# #
######## I2C LCD/PANELS ############## ######## I2C LCD/PANELS ##############
# #
@@ -312,19 +319,9 @@ script:
# #
# LCM1602 # LCM1602
# #
#- restore_configs - restore_configs
#- opt_enable LCM1602 - opt_enable LCM1602
#- build_marlin - build_marlin
#
# Language files test with REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER
#
#- restore_configs
#- opt_enable REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER SDSUPPORT
#- for lang in an bg ca zh_CN zh_TW cz da de el el-gr en es eu fi fr gl hr it jp-kana nl pl pt pt-br ru sk tr uk test; do opt_set LCD_LANGUAGE $lang; echo "compile with language $lang ..."; build_marlin
#
#- restore_configs
#- opt_enable REPRAP_DISCOUNT_SMART_CONTROLLER SDSUPPORT
#- for lang in an bg ca zh_CN zh_TW cz da de el el-gr en es eu fi fr gl hr it jp-kana nl pl pt pt-br ru sk tr uk test; do opt_set LCD_LANGUAGE $lang; echo "compile with language $lang ..."; build_marlin
# #
# #
######## Example Configurations ############## ######## Example Configurations ##############
@@ -342,8 +339,8 @@ script:
# Delta Config (generic) + UBL + ALLEN_KEY + OLED_PANEL_TINYBOY2 + EEPROM_SETTINGS # Delta Config (generic) + UBL + ALLEN_KEY + OLED_PANEL_TINYBOY2 + EEPROM_SETTINGS
# #
- use_example_configs delta/generic - use_example_configs delta/generic
- opt_enable AUTO_BED_LEVELING_UBL RESTORE_LEVELING_AFTER_G28 Z_PROBE_ALLEN_KEY EEPROM_SETTINGS EEPROM_CHITCHAT - opt_disable DISABLE_MIN_ENDSTOPS
- opt_enable OLED_PANEL_TINYBOY2 MESH_EDIT_GFX_OVERLAY - opt_enable AUTO_BED_LEVELING_UBL RESTORE_LEVELING_AFTER_G28 Z_PROBE_ALLEN_KEY EEPROM_SETTINGS EEPROM_CHITCHAT OLED_PANEL_TINYBOY2 MESH_EDIT_GFX_OVERLAY
- build_marlin - build_marlin
# #
# Delta Config (FLSUN AC because it's complex) # Delta Config (FLSUN AC because it's complex)
@@ -356,25 +353,12 @@ script:
#- use_example_configs makibox #- use_example_configs makibox
#- build_marlin #- build_marlin
# #
# SCARA with TMC2130 # SCARA with TMC2130 and TMC2208
# #
- use_example_configs SCARA - use_example_configs SCARA
- opt_enable AUTO_BED_LEVELING_BILINEAR FIX_MOUNTED_PROBE USE_ZMIN_PLUG EEPROM_SETTINGS EEPROM_CHITCHAT ULTIMAKERCONTROLLER - opt_enable AUTO_BED_LEVELING_BILINEAR FIX_MOUNTED_PROBE USE_ZMIN_PLUG EEPROM_SETTINGS EEPROM_CHITCHAT ULTIMAKERCONTROLLER SCARA_FEEDRATE_SCALING
- opt_set X_DRIVER_TYPE TMC2130 - opt_enable_adv HAVE_TMC2130 HAVE_TMC2208 X_IS_TMC2130 Y_IS_TMC2130 Z_IS_TMC2208 E0_IS_TMC2208
- opt_set Y_DRIVER_TYPE TMC2130 - opt_enable_adv MONITOR_DRIVER_STATUS STEALTHCHOP HYBRID_THRESHOLD TMC_DEBUG SENSORLESS_HOMING TMC_Z_CALIBRATION
- opt_set Z_DRIVER_TYPE TMC2130
- opt_set E0_DRIVER_TYPE TMC2130
- opt_enable_adv MONITOR_DRIVER_STATUS STEALTHCHOP HYBRID_THRESHOLD SENSORLESS_HOMING
- build_marlin
#
# TMC2208 Config
#
- restore_configs
- opt_set X_DRIVER_TYPE TMC2208
- opt_set Y_DRIVER_TYPE TMC2208
- opt_set Z_DRIVER_TYPE TMC2208
- opt_set E0_DRIVER_TYPE TMC2208
- opt_enable_adv MONITOR_DRIVER_STATUS STEALTHCHOP HYBRID_THRESHOLD TMC_DEBUG
- build_marlin - build_marlin
# #
# tvrrug Config need to check board type for sanguino atmega644p # tvrrug Config need to check board type for sanguino atmega644p
-1
View File
@@ -479,7 +479,6 @@
#define Z_SERVO_ANGLES { BLTOUCH_DEPLOY, BLTOUCH_STOW } #define Z_SERVO_ANGLES { BLTOUCH_DEPLOY, BLTOUCH_STOW }
#define BLTOUCH_DEPLOY 10 #define BLTOUCH_DEPLOY 10
#define BLTOUCH_ALARM 60
#define BLTOUCH_STOW 90 #define BLTOUCH_STOW 90
#define BLTOUCH_SELFTEST 120 #define BLTOUCH_SELFTEST 120
#define BLTOUCH_RESET 160 #define BLTOUCH_RESET 160
+2 -8
View File
@@ -190,17 +190,11 @@
* Safe Homing Options * Safe Homing Options
*/ */
#if ENABLED(Z_SAFE_HOMING) #if ENABLED(Z_SAFE_HOMING)
#if ENABLED(AUTO_BED_LEVELING_UBL)
// Home close to center so grid points have z heights very close to 0
#define _SAFE_POINT(A) (((GRID_MAX_POINTS_##A) / 2) * (A##_BED_SIZE - 2 * (MESH_INSET)) / (GRID_MAX_POINTS_##A - 1) + MESH_INSET)
#else
#define _SAFE_POINT(A) A##_CENTER
#endif
#ifndef Z_SAFE_HOMING_X_POINT #ifndef Z_SAFE_HOMING_X_POINT
#define Z_SAFE_HOMING_X_POINT _SAFE_POINT(X) #define Z_SAFE_HOMING_X_POINT X_CENTER
#endif #endif
#ifndef Z_SAFE_HOMING_Y_POINT #ifndef Z_SAFE_HOMING_Y_POINT
#define Z_SAFE_HOMING_Y_POINT _SAFE_POINT(Y) #define Z_SAFE_HOMING_Y_POINT Y_CENTER
#endif #endif
#define X_TILT_FULCRUM Z_SAFE_HOMING_X_POINT #define X_TILT_FULCRUM Z_SAFE_HOMING_X_POINT
#define Y_TILT_FULCRUM Z_SAFE_HOMING_Y_POINT #define Y_TILT_FULCRUM Z_SAFE_HOMING_Y_POINT
+258 -103
View File
@@ -1,3 +1,55 @@
// CUSTOMIZE FOR YOUR MACHINE BELOW
// CUSTOMIZE FOR YOUR MACHINE BELOW
// CUSTOMIZE FOR YOUR MACHINE BELOW
// CUSTOMIZE FOR YOUR MACHINE BELOW
// CUSTOMIZE FOR YOUR MACHINE BELOW
/**
* Enable if you replace the stepper drivers with TMC 2208. Be sure to remove MS3 jumper
* underneath the stepper driver! Plug and Play will result in Stealth Chop 2 Mode enabled
* Stealthchop with 2208 on E will disabe inear Advance! Please enable stealthchop if
* you require Linear Advance with a TMC2208 on the extruder!
* If you have used a UART connection to program the driver to SpreadCycle mode, pease seect that as well
*/
//#define X_2208
//#define X_SpreadCycle
//#define Y_2208
//#define Y_SpreadCycle // Highly recommended as large prints with high mass can cause layer shifts with stealthchop at high speed
//#define Y_4988 // Some machines shipped with 4988 drivers across the board. Set this if you arent sure what you have and all the drivers look identical
//#define Z_2208 // NOT Recommended! Dual stepper current draw is above the recommended limit for this driver
//#define Z_SpreadCycle
#define Z_4988 // Some machines shipped with 4988 drivers across the board. Set this if you arent sure what you have and all the drivers look identical
//#define E_2208 // Not Recommended! Stealthchop mode faults with linear advance
//#define E_SpreadCycle
/**
* Enable if you install a KEENOVO AC BED with Solid State Relay
*/
//#define BED_AC
//#define HotendAllMetal
/**
* Enable if you install a filament runout sensor from www.formbotusa.com
*/
//#define RunoutSensor
//#define ledgeFilSensor //Modify filament sensor contact type for TM3D V2 sensors
/**
* Enable if you wish to change the auto level strategy to Unified Bed Leveling. Under CUSTOM COMMANDS, run Step 1 and 2 before setting Z Offset
*/
//#define UBL
//ONLY MAKE CHANGES ABOVE FOR RELIABLE FUNCTION
//ONLY MAKE CHANGES ABOVE FOR RELIABLE FUNCTION
//ONLY MAKE CHANGES ABOVE FOR RELIABLE FUNCTION
//ONLY MAKE CHANGES ABOVE FOR RELIABLE FUNCTION
//ONLY MAKE CHANGES ABOVE FOR RELIABLE FUNCTION
/** /**
* Marlin 3D Printer Firmware * Marlin 3D Printer Firmware
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] * Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
@@ -81,7 +133,7 @@
// User-specified version info of this build to display in [Pronterface, etc] terminal window during // User-specified version info of this build to display in [Pronterface, etc] terminal window during
// startup. Implementation of an idea by Prof Braino to inform user that any changes made to this // startup. Implementation of an idea by Prof Braino to inform user that any changes made to this
// build by the user have been successfully uploaded into firmware. // build by the user have been successfully uploaded into firmware.
#define STRING_CONFIG_H_AUTHOR "(none, default config)" // Who made the changes. #define STRING_CONFIG_H_AUTHOR "Tinymachines3D" // Who made the changes.
#define SHOW_BOOTSCREEN #define SHOW_BOOTSCREEN
#define STRING_SPLASH_LINE1 SHORT_BUILD_VERSION // will be shown during bootup in line 1 #define STRING_SPLASH_LINE1 SHORT_BUILD_VERSION // will be shown during bootup in line 1
#define STRING_SPLASH_LINE2 WEBSITE_URL // will be shown during bootup in line 2 #define STRING_SPLASH_LINE2 WEBSITE_URL // will be shown during bootup in line 2
@@ -98,10 +150,10 @@
*/ */
// Enable to show the bitmap in Marlin/_Bootscreen.h on startup. // Enable to show the bitmap in Marlin/_Bootscreen.h on startup.
//#define SHOW_CUSTOM_BOOTSCREEN #define SHOW_CUSTOM_BOOTSCREEN
// Enable to show the bitmap in Marlin/_Statusscreen.h on the status screen. // Enable to show the bitmap in Marlin/_Statusscreen.h on the status screen.
//#define CUSTOM_STATUS_SCREEN_IMAGE #define CUSTOM_STATUS_SCREEN_IMAGE
// @section machine // @section machine
@@ -123,7 +175,7 @@
* *
* :[2400, 9600, 19200, 38400, 57600, 115200, 250000, 500000, 1000000] * :[2400, 9600, 19200, 38400, 57600, 115200, 250000, 500000, 1000000]
*/ */
#define BAUDRATE 250000 #define BAUDRATE 115200
// Enable the Bluetooth serial interface on AT90USB devices // Enable the Bluetooth serial interface on AT90USB devices
//#define BLUETOOTH //#define BLUETOOTH
@@ -131,12 +183,12 @@
// The following define selects which electronics board you have. // The following define selects which electronics board you have.
// Please choose the name from boards.h that matches your setup // Please choose the name from boards.h that matches your setup
#ifndef MOTHERBOARD #ifndef MOTHERBOARD
#define MOTHERBOARD BOARD_RAMPS_14_EFB #define MOTHERBOARD BOARD_RUMBA
#endif #endif
// Optional custom name for your RepStrap or other custom machine // Optional custom name for your RepStrap or other custom machine
// Displayed in the LCD "Ready" message // Displayed in the LCD "Ready" message
//#define CUSTOM_MACHINE_NAME "3D Printer" #define CUSTOM_MACHINE_NAME "TM3D RaPtOr"
// Define this to set a unique identifier for this printer, (Used by some programs to differentiate between machines) // Define this to set a unique identifier for this printer, (Used by some programs to differentiate between machines)
// You can use an online service to generate a random UUID. (eg http://www.uuidgenerator.net/version4) // You can use an online service to generate a random UUID. (eg http://www.uuidgenerator.net/version4)
@@ -149,7 +201,7 @@
#define EXTRUDERS 1 #define EXTRUDERS 1
// Generally expected filament diameter (1.75, 2.85, 3.0, ...). Used for Volumetric, Filament Width Sensor, etc. // Generally expected filament diameter (1.75, 2.85, 3.0, ...). Used for Volumetric, Filament Width Sensor, etc.
#define DEFAULT_NOMINAL_FILAMENT_DIA 3.0 #define DEFAULT_NOMINAL_FILAMENT_DIA 1.75
// For Cyclops or any "multi-extruder" that shares a single nozzle. // For Cyclops or any "multi-extruder" that shares a single nozzle.
//#define SINGLENOZZLE //#define SINGLENOZZLE
@@ -315,7 +367,11 @@
#define TEMP_SENSOR_2 0 #define TEMP_SENSOR_2 0
#define TEMP_SENSOR_3 0 #define TEMP_SENSOR_3 0
#define TEMP_SENSOR_4 0 #define TEMP_SENSOR_4 0
#define TEMP_SENSOR_BED 0 #if(ENABLED(BED_AC))
#define TEMP_SENSOR_BED 11
#else
#define TEMP_SENSOR_BED 1
#endif
#define TEMP_SENSOR_CHAMBER 0 #define TEMP_SENSOR_CHAMBER 0
// Dummy thermistor constant temperature readings, for use with 998 and 999 // Dummy thermistor constant temperature readings, for use with 998 and 999
@@ -350,12 +406,16 @@
// When temperature exceeds max temp, your heater will be switched off. // When temperature exceeds max temp, your heater will be switched off.
// This feature exists to protect your hotend from overheating accidentally, but *NOT* from thermistor short/failure! // This feature exists to protect your hotend from overheating accidentally, but *NOT* from thermistor short/failure!
// You should use MINTEMP for thermistor short/failure protection. // You should use MINTEMP for thermistor short/failure protection.
#define HEATER_0_MAXTEMP 275 #define HEATER_0_MAXTEMP 290
#define HEATER_1_MAXTEMP 275 #define HEATER_1_MAXTEMP 275
#define HEATER_2_MAXTEMP 275 #define HEATER_2_MAXTEMP 275
#define HEATER_3_MAXTEMP 275 #define HEATER_3_MAXTEMP 275
#define HEATER_4_MAXTEMP 275 #define HEATER_4_MAXTEMP 275
#define BED_MAXTEMP 150 #if(ENABLED(BED_AC))
#define BED_MAXTEMP 150
#else
#define BED_MAXTEMP 100
#endif
//=========================================================================== //===========================================================================
//============================= PID Settings ================================ //============================= PID Settings ================================
@@ -368,7 +428,7 @@
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current #define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
#define PID_K1 0.95 // Smoothing factor within any PID loop #define PID_K1 0.95 // Smoothing factor within any PID loop
#if ENABLED(PIDTEMP) #if ENABLED(PIDTEMP)
//#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result. #define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
//#define PID_DEBUG // Sends debug data to the serial port. //#define PID_DEBUG // Sends debug data to the serial port.
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX //#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
//#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay //#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
@@ -380,19 +440,24 @@
// If you are using a pre-configured hotend then you can use one of the value sets by uncommenting it // If you are using a pre-configured hotend then you can use one of the value sets by uncommenting it
// Ultimaker // Ultimaker
#define DEFAULT_Kp 22.2 #if(ENABLED(HotendAllMetal))
#define DEFAULT_Ki 1.08 #define DEFAULT_Kp 21.9
#define DEFAULT_Kd 114 #define DEFAULT_Ki 1.5
#define DEFAULT_Kd 79.88
#else
#define DEFAULT_Kp 22.2
#define DEFAULT_Ki 1.08
#define DEFAULT_Kd 114
#endif
// MakerGear // MakerGear
//#define DEFAULT_Kp 7.0 //#define DEFAULT_Kp 7.0
//#define DEFAULT_Ki 0.1 //#define DEFAULT_Ki 0.1
//#define DEFAULT_Kd 12 //#define DEFAULT_Kd 12
// Mendel Parts V9 on 12V // Mendel Parts V9 on 12V
//#define DEFAULT_Kp 63.0 //#define DEFAULT_Kp 63.0
//#define DEFAULT_Ki 2.25 //#define DEFAULT_Ki 2.25
//#define DEFAULT_Kd 440 //#define DEFAULT_Kd 440
#endif // PIDTEMP #endif // PIDTEMP
@@ -413,7 +478,7 @@
* heater. If your configuration is significantly different than this and you don't understand * heater. If your configuration is significantly different than this and you don't understand
* the issues involved, don't use bed PID until someone else verifies that your hardware works. * the issues involved, don't use bed PID until someone else verifies that your hardware works.
*/ */
//#define PIDTEMPBED #define PIDTEMPBED
//#define BED_LIMIT_SWITCHING //#define BED_LIMIT_SWITCHING
@@ -431,9 +496,9 @@
//120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+) //120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)
//from FOPDT model - kp=.39 Tp=405 Tdead=66, Tc set to 79.2, aggressive factor of .15 (vs .1, 1, 10) //from FOPDT model - kp=.39 Tp=405 Tdead=66, Tc set to 79.2, aggressive factor of .15 (vs .1, 1, 10)
#define DEFAULT_bedKp 10.00 #define DEFAULT_bedKp 100.0
#define DEFAULT_bedKi .023 #define DEFAULT_bedKi 15.0
#define DEFAULT_bedKd 305.4 #define DEFAULT_bedKd 200.0
//120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+) //120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)
//from pidautotune //from pidautotune
@@ -508,10 +573,10 @@
// Almost all printers will be using one per axis. Probes will use one or more of the // Almost all printers will be using one per axis. Probes will use one or more of the
// extra connectors. Leave undefined any used for non-endstop and non-probe purposes. // extra connectors. Leave undefined any used for non-endstop and non-probe purposes.
#define USE_XMIN_PLUG #define USE_XMIN_PLUG
#define USE_YMIN_PLUG //#define USE_YMIN_PLUG
#define USE_ZMIN_PLUG #define USE_ZMIN_PLUG
//#define USE_XMAX_PLUG //#define USE_XMAX_PLUG
//#define USE_YMAX_PLUG #define USE_YMAX_PLUG
//#define USE_ZMAX_PLUG //#define USE_ZMAX_PLUG
// Enable pullup for all endstops to prevent a floating state // Enable pullup for all endstops to prevent a floating state
@@ -528,12 +593,12 @@
#endif #endif
// Mechanical endstop with COM to ground and NC to Signal uses "false" here (most common setup). // Mechanical endstop with COM to ground and NC to Signal uses "false" here (most common setup).
#define X_MIN_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop. #define X_MIN_ENDSTOP_INVERTING true // set to true to invert the logic of the endstop.
#define Y_MIN_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop. #define Y_MIN_ENDSTOP_INVERTING true // set to true to invert the logic of the endstop.
#define Z_MIN_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop. #define Z_MIN_ENDSTOP_INVERTING true // set to true to invert the logic of the endstop.
#define X_MAX_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop. #define X_MAX_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
#define Y_MAX_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop. #define Y_MAX_ENDSTOP_INVERTING true // set to true to invert the logic of the endstop.
#define Z_MAX_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop. #define Z_MAX_ENDSTOP_INVERTING true // set to true to invert the logic of the endstop.
#define Z_MIN_PROBE_ENDSTOP_INVERTING false // set to true to invert the logic of the probe. #define Z_MIN_PROBE_ENDSTOP_INVERTING false // set to true to invert the logic of the probe.
/** /**
@@ -550,17 +615,41 @@
* TMC5130, TMC5130_STANDALONE * TMC5130, TMC5130_STANDALONE
* :['A4988', 'DRV8825', 'LV8729', 'L6470', 'TB6560', 'TB6600', 'TMC2100', 'TMC2130', 'TMC2130_STANDALONE', 'TMC2208', 'TMC2208_STANDALONE', 'TMC26X', 'TMC26X_STANDALONE', 'TMC2660', 'TMC2660_STANDALONE', 'TMC5130', 'TMC5130_STANDALONE'] * :['A4988', 'DRV8825', 'LV8729', 'L6470', 'TB6560', 'TB6600', 'TMC2100', 'TMC2130', 'TMC2130_STANDALONE', 'TMC2208', 'TMC2208_STANDALONE', 'TMC26X', 'TMC26X_STANDALONE', 'TMC2660', 'TMC2660_STANDALONE', 'TMC5130', 'TMC5130_STANDALONE']
*/ */
//#define X_DRIVER_TYPE A4988 #if ENABLED(X_2208)
//#define Y_DRIVER_TYPE A4988 #define X_DRIVER_TYPE TMC2208_STANDALONE
//#define Z_DRIVER_TYPE A4988 #define X2_DRIVER_TYPE TMC2208_STANDALONE
//#define X2_DRIVER_TYPE A4988 #else
#define X_DRIVER_TYPE A4988
#define X2_DRIVER_TYPE A4988
#endif
#if ENABLED(Y_2208)
#define Y_DRIVER_TYPE TMC2208_STANDALONE
#elif ENABLED(Y_4988)
#define Y_DRIVER_TYPE A4988
#else
#define Y_DRIVER_TYPE DRV8825
#endif
#if ENABLED(Z_2208)
#define Z_DRIVER_TYPE TMC2208_STANDALONE
#elif ENABLED(Z_4988)
#define Z_DRIVER_TYPE A4988
#else
#define Z_DRIVER_TYPE DRV8825
#endif
//#define Y2_DRIVER_TYPE A4988 //#define Y2_DRIVER_TYPE A4988
//#define Z2_DRIVER_TYPE A4988 //#define Z2_DRIVER_TYPE A4988
//#define E0_DRIVER_TYPE A4988 //#define Z3_DRIVER_TYPE A4988
//#define E1_DRIVER_TYPE A4988 #if ENABLED(E_2208)
#define E0_DRIVER_TYPE TMC2208_STANDALONE
#define E1_DRIVER_TYPE TMC2208_STANDALONE
#else
#define E0_DRIVER_TYPE DRV8825
#define E1_DRIVER_TYPE DRV8825
#endif
//#define E2_DRIVER_TYPE A4988 //#define E2_DRIVER_TYPE A4988
//#define E3_DRIVER_TYPE A4988 //#define E3_DRIVER_TYPE A4988
//#define E4_DRIVER_TYPE A4988 //#define E4_DRIVER_TYPE A4988
//#define E5_DRIVER_TYPE A4988
// Enable this feature if all enabled endstop pins are interrupt-capable. // Enable this feature if all enabled endstop pins are interrupt-capable.
// This will remove the need to poll the interrupt pins, saving many CPU cycles. // This will remove the need to poll the interrupt pins, saving many CPU cycles.
@@ -608,14 +697,26 @@
* Override with M92 * Override with M92
* X, Y, Z, E0 [, E1[, E2[, E3[, E4]]]] * X, Y, Z, E0 [, E1[, E2[, E3[, E4]]]]
*/ */
#define DEFAULT_AXIS_STEPS_PER_UNIT { 80, 80, 4000, 500 } #if(ENABLED(Y_2208) || ENABLED(Y_4988))
#define Y_STEPSMM 80
#else
#define Y_STEPSMM 160
#endif
#if(ENABLED(Z_2208) || ENABLED(Z_4988))
#define Z_STEPSMM 800
#else
#define Z_STEPSMM 1600
#endif
#define DEFAULT_AXIS_STEPS_PER_UNIT { 80,Y_STEPSMM , Z_STEPSMM, 96 }
/** /**
* Default Max Feed Rate (mm/s) * Default Max Feed Rate (mm/s)
* Override with M203 * Override with M203
* X, Y, Z, E0 [, E1[, E2[, E3[, E4]]]] * X, Y, Z, E0 [, E1[, E2[, E3[, E4]]]]
*/ */
#define DEFAULT_MAX_FEEDRATE { 300, 300, 5, 25 } #define DEFAULT_MAX_FEEDRATE { 250, 150, 5, 25 }
/** /**
* Default Max Acceleration (change/s) change = mm/s * Default Max Acceleration (change/s) change = mm/s
@@ -623,7 +724,26 @@
* Override with M201 * Override with M201
* X, Y, Z, E0 [, E1[, E2[, E3[, E4]]]] * X, Y, Z, E0 [, E1[, E2[, E3[, E4]]]]
*/ */
#define DEFAULT_MAX_ACCELERATION { 3000, 3000, 100, 10000 } #if(ENABLED(X_2208))
#if(ENABLED(X_SpreadCycle))
#define x_accel 1750
#else
#define x_accel 1000
#endif
#else
#define x_accel 1500
#endif
#if(ENABLED(Y_2208))
#if(ENABLED(Y_SpreadCycle))
#define y_accel 500
#else
#define y_accel 300
#endif
#else
#define y_accel 500
#endif
#define DEFAULT_MAX_ACCELERATION { x_accel, y_accel, 400, 4000 }
/** /**
* Default Acceleration (change/s) change = mm/s * Default Acceleration (change/s) change = mm/s
@@ -645,9 +765,18 @@
* When changing speed and direction, if the difference is less than the * When changing speed and direction, if the difference is less than the
* value set here, it may happen instantaneously. * value set here, it may happen instantaneously.
*/ */
#define DEFAULT_XJERK 10.0 #if(ENABLED(X_SpreadCycle) || !ENABLED(X_2208))
#define DEFAULT_YJERK 10.0 #define DEFAULT_XJERK 20.0
#define DEFAULT_ZJERK 0.3 #else
#define DEFAULT_XJERK 10.0
#endif
#if(ENABLED(Y_SpreadCycle) || !ENABLED(Y_2208))
#define DEFAULT_YJERK 10.0
#else
#define DEFAULT_YJERK 5.0
#endif
#define DEFAULT_ZJERK 0.4
#define DEFAULT_EJERK 5.0 #define DEFAULT_EJERK 5.0
/** /**
@@ -727,10 +856,9 @@
/** /**
* The BLTouch probe uses a Hall effect sensor and emulates a servo. * The BLTouch probe uses a Hall effect sensor and emulates a servo.
*/ */
//#define BLTOUCH #define BLTOUCH
#if ENABLED(BLTOUCH) #if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed //#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif #endif
/** /**
@@ -777,11 +905,9 @@
* O-- FRONT --+ * O-- FRONT --+
* (0,0) * (0,0)
*/ */
#define X_PROBE_OFFSET_FROM_EXTRUDER 10 // X offset: -left +right [of the nozzle] #define X_PROBE_OFFSET_FROM_EXTRUDER -22 // X offset: -left +right [of the nozzle]
#define Y_PROBE_OFFSET_FROM_EXTRUDER 10 // Y offset: -front +behind [the nozzle] #define Y_PROBE_OFFSET_FROM_EXTRUDER 0 // Y offset: -front +behind [the nozzle]
#define Z_PROBE_OFFSET_FROM_EXTRUDER 0 // Z offset: -below +above [the nozzle] #define Z_PROBE_OFFSET_FROM_EXTRUDER -1.5 // Z offset: -below +above [the nozzle]
// Certain types of probes need to stay away from edges
#define MIN_PROBE_EDGE 10 #define MIN_PROBE_EDGE 10
// X and Y axis travel speed (mm/m) between probes // X and Y axis travel speed (mm/m) between probes
@@ -796,7 +922,7 @@
// The number of probes to perform at each point. // The number of probes to perform at each point.
// Set to 2 for a fast/slow probe, using the second probe result. // Set to 2 for a fast/slow probe, using the second probe result.
// Set to 3 or more for slow probes, averaging the results. // Set to 3 or more for slow probes, averaging the results.
//#define MULTIPLE_PROBING 2 #define MULTIPLE_PROBING 2
/** /**
* Z probes require clearance when deploying, stowing, and moving between * Z probes require clearance when deploying, stowing, and moving between
@@ -812,7 +938,7 @@
* Example: `M851 Z-5` with a CLEARANCE of 4 => 9mm from bed to nozzle. * Example: `M851 Z-5` with a CLEARANCE of 4 => 9mm from bed to nozzle.
* But: `M851 Z+1` with a CLEARANCE of 2 => 2mm from bed to nozzle. * But: `M851 Z+1` with a CLEARANCE of 2 => 2mm from bed to nozzle.
*/ */
#define Z_CLEARANCE_DEPLOY_PROBE 10 // Z Clearance for Deploy/Stow #define Z_CLEARANCE_DEPLOY_PROBE 5 // Z Clearance for Deploy/Stow
#define Z_CLEARANCE_BETWEEN_PROBES 5 // Z Clearance between probe points #define Z_CLEARANCE_BETWEEN_PROBES 5 // Z Clearance between probe points
#define Z_CLEARANCE_MULTI_PROBE 5 // Z Clearance between multiple probes #define Z_CLEARANCE_MULTI_PROBE 5 // Z Clearance between multiple probes
//#define Z_AFTER_PROBING 5 // Z position after probing is done //#define Z_AFTER_PROBING 5 // Z position after probing is done
@@ -824,7 +950,7 @@
#define Z_PROBE_OFFSET_RANGE_MAX 20 #define Z_PROBE_OFFSET_RANGE_MAX 20
// Enable the M48 repeatability test to test probe accuracy // Enable the M48 repeatability test to test probe accuracy
//#define Z_MIN_PROBE_REPEATABILITY_TEST #define Z_MIN_PROBE_REPEATABILITY_TEST
// For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1 // For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1
// :{ 0:'Low', 1:'High' } // :{ 0:'Low', 1:'High' }
@@ -849,15 +975,32 @@
// @section machine // @section machine
// Invert the stepper direction. Change (or reverse the motor connector) if an axis goes the wrong way. // Invert the stepper direction. Change (or reverse the motor connector) if an axis goes the wrong way.
#define INVERT_X_DIR false #if(ENABLED(X_2208))
#define INVERT_Y_DIR true #define INVERT_X_DIR true
#define INVERT_Z_DIR false #else
#define INVERT_X_DIR false
#endif
#if(ENABLED(Y_2208))
#define INVERT_Y_DIR true
#else
#define INVERT_Y_DIR false
#endif
#if(ENABLED(Z_2208))
#define INVERT_Z_DIR false
#else
#define INVERT_Z_DIR true
#endif
// @section extruder // @section extruder
// For direct drive extruder v9 set to true, for geared extruder set to false. // For direct drive extruder v9 set to true, for geared extruder set to false.
#define INVERT_E0_DIR false #if(ENABLED(E_2208))
#define INVERT_E1_DIR false #define INVERT_E0_DIR false
#define INVERT_E1_DIR false
#else
#define INVERT_E0_DIR true
#define INVERT_E1_DIR true
#endif
#define INVERT_E2_DIR false #define INVERT_E2_DIR false
#define INVERT_E3_DIR false #define INVERT_E3_DIR false
#define INVERT_E4_DIR false #define INVERT_E4_DIR false
@@ -868,20 +1011,20 @@
//#define UNKNOWN_Z_NO_RAISE // Don't raise Z (lower the bed) if Z is "unknown." For beds that fall when Z is powered off. //#define UNKNOWN_Z_NO_RAISE // Don't raise Z (lower the bed) if Z is "unknown." For beds that fall when Z is powered off.
//#define Z_HOMING_HEIGHT 4 // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ... #define Z_HOMING_HEIGHT 4 // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ...
// Be sure you have this distance over your Z_MAX_POS in case. // Be sure you have this distance over your Z_MAX_POS in case.
// Direction of endstops when homing; 1=MAX, -1=MIN // Direction of endstops when homing; 1=MAX, -1=MIN
// :[-1,1] // :[-1,1]
#define X_HOME_DIR -1 #define X_HOME_DIR -1
#define Y_HOME_DIR -1 #define Y_HOME_DIR 1
#define Z_HOME_DIR -1 #define Z_HOME_DIR -1
// @section machine // @section machine
// The size of the print bed // The size of the print bed
#define X_BED_SIZE 200 #define X_BED_SIZE 400
#define Y_BED_SIZE 200 #define Y_BED_SIZE 400
// Travel limits (mm) after homing, corresponding to endstop positions. // Travel limits (mm) after homing, corresponding to endstop positions.
#define X_MIN_POS 0 #define X_MIN_POS 0
@@ -889,7 +1032,7 @@
#define Z_MIN_POS 0 #define Z_MIN_POS 0
#define X_MAX_POS X_BED_SIZE #define X_MAX_POS X_BED_SIZE
#define Y_MAX_POS Y_BED_SIZE #define Y_MAX_POS Y_BED_SIZE
#define Z_MAX_POS 200 #define Z_MAX_POS 500
/** /**
* Software Endstops * Software Endstops
@@ -917,7 +1060,7 @@
#endif #endif
#if ENABLED(MIN_SOFTWARE_ENDSTOPS) || ENABLED(MAX_SOFTWARE_ENDSTOPS) #if ENABLED(MIN_SOFTWARE_ENDSTOPS) || ENABLED(MAX_SOFTWARE_ENDSTOPS)
//#define SOFT_ENDSTOPS_MENU_ITEM // Enable/Disable software endstops from the LCD #define SOFT_ENDSTOPS_MENU_ITEM // Enable/Disable software endstops from the LCD
#endif #endif
/** /**
@@ -928,10 +1071,17 @@
* For other boards you may need to define FIL_RUNOUT_PIN, FIL_RUNOUT2_PIN, etc. * For other boards you may need to define FIL_RUNOUT_PIN, FIL_RUNOUT2_PIN, etc.
* By default the firmware assumes HIGH=FILAMENT PRESENT. * By default the firmware assumes HIGH=FILAMENT PRESENT.
*/ */
//#define FILAMENT_RUNOUT_SENSOR #if(ENABLED(RunoutSensor))
#define FILAMENT_RUNOUT_SENSOR
#endif
#if ENABLED(FILAMENT_RUNOUT_SENSOR) #if ENABLED(FILAMENT_RUNOUT_SENSOR)
#define NUM_RUNOUT_SENSORS 1 // Number of sensors, up to one per extruder. Define a FIL_RUNOUT#_PIN for each. #define NUM_RUNOUT_SENSORS 1 // Number of sensors, up to one per extruder. Define a FIL_RUNOUT#_PIN for each.
#define FIL_RUNOUT_INVERTING false // set to true to invert the logic of the sensor. #define FIL_RUNOUT_PIN 57
#if ENABLED(ledgeFilSensor)
#define FIL_RUNOUT_INVERTING false // set to true to invert the logic of the sensor.
#else
#define FIL_RUNOUT_INVERTING true // set to true to invert the logic of the sensor.
#endif
#define FIL_RUNOUT_PULLUP // Use internal pullup for filament runout pins. #define FIL_RUNOUT_PULLUP // Use internal pullup for filament runout pins.
#define FILAMENT_RUNOUT_SCRIPT "M600" #define FILAMENT_RUNOUT_SCRIPT "M600"
#endif #endif
@@ -976,15 +1126,19 @@
*/ */
//#define AUTO_BED_LEVELING_3POINT //#define AUTO_BED_LEVELING_3POINT
//#define AUTO_BED_LEVELING_LINEAR //#define AUTO_BED_LEVELING_LINEAR
//#define AUTO_BED_LEVELING_BILINEAR #if(ENABLED(UBL))
//#define AUTO_BED_LEVELING_UBL #define AUTO_BED_LEVELING_UBL
#else
#define AUTO_BED_LEVELING_BILINEAR
#endif
//#define MESH_BED_LEVELING //#define MESH_BED_LEVELING
/** /**
* Normally G28 leaves leveling disabled on completion. Enable * Normally G28 leaves leveling disabled on completion. Enable
* this option to have G28 restore the prior leveling state. * this option to have G28 restore the prior leveling state.
*/ */
//#define RESTORE_LEVELING_AFTER_G28 #define RESTORE_LEVELING_AFTER_G28
/** /**
* Enable detailed logging of G28, G29, M48, etc. * Enable detailed logging of G28, G29, M48, etc.
@@ -1008,7 +1162,7 @@
/** /**
* Enable the G26 Mesh Validation Pattern tool. * Enable the G26 Mesh Validation Pattern tool.
*/ */
//#define G26_MESH_VALIDATION #define G26_MESH_VALIDATION
#if ENABLED(G26_MESH_VALIDATION) #if ENABLED(G26_MESH_VALIDATION)
#define MESH_TEST_NOZZLE_SIZE 0.4 // (mm) Diameter of primary nozzle. #define MESH_TEST_NOZZLE_SIZE 0.4 // (mm) Diameter of primary nozzle.
#define MESH_TEST_LAYER_HEIGHT 0.2 // (mm) Default layer height for the G26 Mesh Validation Tool. #define MESH_TEST_LAYER_HEIGHT 0.2 // (mm) Default layer height for the G26 Mesh Validation Tool.
@@ -1021,14 +1175,17 @@
#if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR) #if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
// Set the number of grid points per dimension. // Set the number of grid points per dimension.
#define GRID_MAX_POINTS_X 3 #define GRID_MAX_POINTS_X 6
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X #define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
// Set the boundaries for probing (where the probe can reach). // Set the boundaries for probing (where the probe can reach).
//#define LEFT_PROBE_BED_POSITION MIN_PROBE_EDGE #define LEFT_PROBE_BED_POSITION 30
//#define RIGHT_PROBE_BED_POSITION (X_BED_SIZE - MIN_PROBE_EDGE) #define RIGHT_PROBE_BED_POSITION 365
//#define FRONT_PROBE_BED_POSITION MIN_PROBE_EDGE #define FRONT_PROBE_BED_POSITION 30
//#define BACK_PROBE_BED_POSITION (Y_BED_SIZE - MIN_PROBE_EDGE) #define BACK_PROBE_BED_POSITION 365
// The Z probe minimum outer margin (to validate G29 parameters).
#define MIN_PROBE_EDGE 10
// Probe along the Y axis, advancing X after each column // Probe along the Y axis, advancing X after each column
//#define PROBE_Y_FIRST //#define PROBE_Y_FIRST
@@ -1037,7 +1194,7 @@
// Beyond the probed grid, continue the implied tilt? // Beyond the probed grid, continue the implied tilt?
// Default is to maintain the height of the nearest edge. // Default is to maintain the height of the nearest edge.
//#define EXTRAPOLATE_BEYOND_GRID #define EXTRAPOLATE_BEYOND_GRID
// //
// Experimental Subdivision of the grid by Catmull-Rom method. // Experimental Subdivision of the grid by Catmull-Rom method.
@@ -1059,14 +1216,14 @@
//#define MESH_EDIT_GFX_OVERLAY // Display a graphics overlay while editing the mesh //#define MESH_EDIT_GFX_OVERLAY // Display a graphics overlay while editing the mesh
#define MESH_INSET 1 // Set Mesh bounds as an inset region of the bed #define MESH_INSET 35 // Set Mesh bounds as an inset region of the bed
#define GRID_MAX_POINTS_X 10 // Don't use more than 15 points per axis, implementation limited. #define GRID_MAX_POINTS_X 10 // Don't use more than 15 points per axis, implementation limited.
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X #define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
#define UBL_MESH_EDIT_MOVES_Z // Sophisticated users prefer no movement of nozzle #define UBL_MESH_EDIT_MOVES_Z // Sophisticated users prefer no movement of nozzle
#define UBL_SAVE_ACTIVE_ON_M500 // Save the currently active mesh in the current slot on M500 #define UBL_SAVE_ACTIVE_ON_M500 // Save the currently active mesh in the current slot on M500
//#define UBL_Z_RAISE_WHEN_OFF_MESH 2.5 // When the nozzle is off the mesh, this value is used #define UBL_Z_RAISE_WHEN_OFF_MESH 0.0 // When the nozzle is off the mesh, this value is used
// as the Z-Height correction value. // as the Z-Height correction value.
#elif ENABLED(MESH_BED_LEVELING) #elif ENABLED(MESH_BED_LEVELING)
@@ -1088,12 +1245,12 @@
* Override if the automatically selected points are inadequate. * Override if the automatically selected points are inadequate.
*/ */
#if ENABLED(AUTO_BED_LEVELING_3POINT) || ENABLED(AUTO_BED_LEVELING_UBL) #if ENABLED(AUTO_BED_LEVELING_3POINT) || ENABLED(AUTO_BED_LEVELING_UBL)
//#define PROBE_PT_1_X 15 #define PROBE_PT_1_X 50
//#define PROBE_PT_1_Y 180 #define PROBE_PT_1_Y 350
//#define PROBE_PT_2_X 15 #define PROBE_PT_2_X 50
//#define PROBE_PT_2_Y 20 #define PROBE_PT_2_Y 50
//#define PROBE_PT_3_X 170 #define PROBE_PT_3_X 350
//#define PROBE_PT_3_Y 20 #define PROBE_PT_3_Y 50
#endif #endif
/** /**
@@ -1111,8 +1268,7 @@
//#define LEVEL_BED_CORNERS //#define LEVEL_BED_CORNERS
#if ENABLED(LEVEL_BED_CORNERS) #if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling #define LEVEL_CORNERS_INSET 20 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner //#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif #endif
@@ -1120,7 +1276,7 @@
* Commands to execute at the end of G29 probing. * Commands to execute at the end of G29 probing.
* Useful to retract or move the Z probe out of the way. * Useful to retract or move the Z probe out of the way.
*/ */
//#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10" //#define Z_PROBE_END_SCRIPT "M280 P0 S90"
// @section homing // @section homing
@@ -1142,12 +1298,11 @@
// - If stepper drivers time out, it will need X and Y homing again before Z homing. // - If stepper drivers time out, it will need X and Y homing again before Z homing.
// - Move the Z probe (or nozzle) to a defined XY point before Z Homing when homing all axes (G28). // - Move the Z probe (or nozzle) to a defined XY point before Z Homing when homing all axes (G28).
// - Prevent Z homing when the Z probe is outside bed area. // - Prevent Z homing when the Z probe is outside bed area.
// #define Z_SAFE_HOMING
//#define Z_SAFE_HOMING
#if ENABLED(Z_SAFE_HOMING) #if ENABLED(Z_SAFE_HOMING)
#define Z_SAFE_HOMING_X_POINT ((X_BED_SIZE) / 2) // X point for Z homing when homing all axes (G28). #define Z_SAFE_HOMING_X_POINT 50 // X point for Z homing when homing all axis (G28).
#define Z_SAFE_HOMING_Y_POINT ((Y_BED_SIZE) / 2) // Y point for Z homing when homing all axes (G28). #define Z_SAFE_HOMING_Y_POINT 50 // Y point for Z homing when homing all axis (G28).
#endif #endif
// Homing speeds (mm/m) // Homing speeds (mm/m)
@@ -1225,7 +1380,7 @@
// M501 - reads parameters from EEPROM (if you need reset them after you changed them temporarily). // M501 - reads parameters from EEPROM (if you need reset them after you changed them temporarily).
// M502 - reverts to the default "factory settings". You still need to store them in EEPROM afterwards if you want to. // M502 - reverts to the default "factory settings". You still need to store them in EEPROM afterwards if you want to.
// //
//#define EEPROM_SETTINGS // Enable for M500 and M501 commands #define EEPROM_SETTINGS // Enable for M500 and M501 commands
//#define DISABLE_M503 // Saves ~2700 bytes of PROGMEM. Disable for release! //#define DISABLE_M503 // Saves ~2700 bytes of PROGMEM. Disable for release!
#define EEPROM_CHITCHAT // Give feedback on EEPROM commands. Disable to save PROGMEM. #define EEPROM_CHITCHAT // Give feedback on EEPROM commands. Disable to save PROGMEM.
@@ -1257,12 +1412,12 @@
// @section temperature // @section temperature
// Preheat Constants // Preheat Constants
#define PREHEAT_1_TEMP_HOTEND 180 #define PREHEAT_1_TEMP_HOTEND 200
#define PREHEAT_1_TEMP_BED 70 #define PREHEAT_1_TEMP_BED 60
#define PREHEAT_1_FAN_SPEED 0 // Value from 0 to 255 #define PREHEAT_1_FAN_SPEED 0 // Value from 0 to 255
#define PREHEAT_2_TEMP_HOTEND 240 #define PREHEAT_2_TEMP_HOTEND 220
#define PREHEAT_2_TEMP_BED 110 #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
/** /**
@@ -1276,12 +1431,12 @@
* P1 Raise the nozzle always to Z-park height. * P1 Raise the nozzle always to Z-park height.
* P2 Raise the nozzle by Z-park amount, limited to Z_MAX_POS. * P2 Raise the nozzle by Z-park amount, limited to Z_MAX_POS.
*/ */
//#define NOZZLE_PARK_FEATURE #define NOZZLE_PARK_FEATURE
#if ENABLED(NOZZLE_PARK_FEATURE) #if ENABLED(NOZZLE_PARK_FEATURE)
// Specify a park position as { X, Y, Z } // Specify a park position as { X, Y, Z }
#define NOZZLE_PARK_POINT { (X_MIN_POS + 10), (Y_MAX_POS - 10), 20 } #define NOZZLE_PARK_POINT { 10, 10, 20}
#define NOZZLE_PARK_XY_FEEDRATE 100 // X and Y axes feedrate in mm/s (also used for delta printers Z axis) #define NOZZLE_PARK_XY_FEEDRATE 70 // X and Y axes feedrate in mm/s (also used for delta printers Z axis)
#define NOZZLE_PARK_Z_FEEDRATE 5 // Z axis feedrate in mm/s (not used for delta printers) #define NOZZLE_PARK_Z_FEEDRATE 5 // Z axis feedrate in mm/s (not used for delta printers)
#endif #endif
@@ -1428,7 +1583,7 @@
* 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
@@ -1500,7 +1655,7 @@
// //
// Add individual axis homing items (Home X, Home Y, and Home Z) to the LCD menu. // Add individual axis homing items (Home X, Home Y, and Home Z) to the LCD menu.
// //
//#define INDIVIDUAL_AXIS_HOMING_MENU #define INDIVIDUAL_AXIS_HOMING_MENU
// //
// SPEAKER/BUZZER // SPEAKER/BUZZER
@@ -1658,7 +1813,7 @@
// RepRapDiscount FULL GRAPHIC Smart Controller // RepRapDiscount FULL GRAPHIC Smart Controller
// http://reprap.org/wiki/RepRapDiscount_Full_Graphic_Smart_Controller // http://reprap.org/wiki/RepRapDiscount_Full_Graphic_Smart_Controller
// //
//#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER #define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER
// //
// ReprapWorld Graphical LCD // ReprapWorld Graphical LCD
+55 -51
View File
@@ -75,8 +75,8 @@
* THERMAL_PROTECTION_HYSTERESIS and/or THERMAL_PROTECTION_PERIOD * THERMAL_PROTECTION_HYSTERESIS and/or THERMAL_PROTECTION_PERIOD
*/ */
#if ENABLED(THERMAL_PROTECTION_HOTENDS) #if ENABLED(THERMAL_PROTECTION_HOTENDS)
#define THERMAL_PROTECTION_PERIOD 40 // Seconds #define THERMAL_PROTECTION_PERIOD 180 // Seconds
#define THERMAL_PROTECTION_HYSTERESIS 4 // Degrees Celsius #define THERMAL_PROTECTION_HYSTERESIS 2 // Degrees Celsius
/** /**
* Whenever an M104, M109, or M303 increases the target temperature, the * Whenever an M104, M109, or M303 increases the target temperature, the
@@ -90,7 +90,7 @@
* and/or decrease WATCH_TEMP_INCREASE. WATCH_TEMP_INCREASE should not be set * and/or decrease WATCH_TEMP_INCREASE. WATCH_TEMP_INCREASE should not be set
* below 2. * below 2.
*/ */
#define WATCH_TEMP_PERIOD 20 // Seconds #define WATCH_TEMP_PERIOD 180 // Seconds
#define WATCH_TEMP_INCREASE 2 // Degrees Celsius #define WATCH_TEMP_INCREASE 2 // Degrees Celsius
#endif #endif
@@ -98,7 +98,7 @@
* Thermal Protection parameters for the bed are just as above for hotends. * Thermal Protection parameters for the bed are just as above for hotends.
*/ */
#if ENABLED(THERMAL_PROTECTION_BED) #if ENABLED(THERMAL_PROTECTION_BED)
#define THERMAL_PROTECTION_BED_PERIOD 20 // Seconds #define THERMAL_PROTECTION_BED_PERIOD 300 // Seconds
#define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius #define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius
/** /**
@@ -134,7 +134,7 @@
#endif #endif
// Show extra position information in M114 // Show extra position information in M114
//#define M114_DETAIL #define M114_DETAIL
// Show Temperature ADC value // Show Temperature ADC value
// Enable for M105 to include ADC values read from temperature sensors. // Enable for M105 to include ADC values read from temperature sensors.
@@ -206,7 +206,7 @@
// When first starting the main fan, run it at full speed for the // When first starting the main fan, run it at full speed for the
// given number of milliseconds. This gets the fan spinning reliably // given number of milliseconds. This gets the fan spinning reliably
// before setting a PWM value. (Does not work with software PWM for fan on Sanguinololu) // before setting a PWM value. (Does not work with software PWM for fan on Sanguinololu)
//#define FAN_KICKSTART_TIME 100 #define FAN_KICKSTART_TIME 100
/** /**
* PWM Fan Scaling * PWM Fan Scaling
@@ -260,13 +260,13 @@
/** /**
* M355 Case Light on-off / brightness * M355 Case Light on-off / brightness
*/ */
//#define CASE_LIGHT_ENABLE #define CASE_LIGHT_ENABLE
#if ENABLED(CASE_LIGHT_ENABLE) #if ENABLED(CASE_LIGHT_ENABLE)
//#define CASE_LIGHT_PIN 4 // Override the default pin if needed #define CASE_LIGHT_PIN 5 // Override the default pin if needed
#define INVERT_CASE_LIGHT false // Set true if Case Light is ON when pin is LOW #define INVERT_CASE_LIGHT false // Set true if Case Light is ON when pin is LOW
#define CASE_LIGHT_DEFAULT_ON true // Set default power-up state on #define CASE_LIGHT_DEFAULT_ON true // Set default power-up state on
#define CASE_LIGHT_DEFAULT_BRIGHTNESS 105 // Set default power-up brightness (0-255, requires PWM pin) #define CASE_LIGHT_DEFAULT_BRIGHTNESS 255 // Set default power-up brightness (0-255, requires PWM pin)
//#define MENU_ITEM_CASE_LIGHT // Add a Case Light option to the LCD main menu #define MENU_ITEM_CASE_LIGHT // Add a Case Light option to the LCD main menu
//#define CASE_LIGHT_USE_NEOPIXEL // Use Neopixel LED as case light, requires NEOPIXEL_LED. //#define CASE_LIGHT_USE_NEOPIXEL // Use Neopixel LED as case light, requires NEOPIXEL_LED.
#if ENABLED(CASE_LIGHT_USE_NEOPIXEL) #if ENABLED(CASE_LIGHT_USE_NEOPIXEL)
#define CASE_LIGHT_NEOPIXEL_COLOR { 255, 255, 255, 255 } // { Red, Green, Blue, White } #define CASE_LIGHT_NEOPIXEL_COLOR { 255, 255, 255, 255 } // { Red, Green, Blue, White }
@@ -386,7 +386,7 @@
#define Y_HOME_BUMP_MM 5 #define Y_HOME_BUMP_MM 5
#define Z_HOME_BUMP_MM 2 #define Z_HOME_BUMP_MM 2
#define HOMING_BUMP_DIVISOR { 2, 2, 4 } // Re-Bump Speed Divisor (Divides the Homing Feedrate) #define HOMING_BUMP_DIVISOR { 2, 2, 4 } // Re-Bump Speed Divisor (Divides the Homing Feedrate)
//#define QUICK_HOME // If homing includes X and Y, do a diagonal move initially #define QUICK_HOME // If homing includes X and Y, do a diagonal move initially
// When G28 is called, this option will make Y home before X // When G28 is called, this option will make Y home before X
//#define HOME_Y_BEFORE_X //#define HOME_Y_BEFORE_X
@@ -524,19 +524,19 @@
// @section lcd // @section lcd
// Include a page of printer information in the LCD Main Menu // Include a page of printer information in the LCD Main Menu
//#define LCD_INFO_MENU #define LCD_INFO_MENU
// Scroll a longer status message into view // Scroll a longer status message into view
//#define STATUS_MESSAGE_SCROLLING #define STATUS_MESSAGE_SCROLLING
// On the Info Screen, display XY with one decimal place when possible // On the Info Screen, display XY with one decimal place when possible
//#define LCD_DECIMAL_SMALL_XY #define LCD_DECIMAL_SMALL_XY
// The timeout (in ms) to return to the status screen from sub-menus // The timeout (in ms) to return to the status screen from sub-menus
//#define LCD_TIMEOUT_TO_STATUS 15000 #define LCD_TIMEOUT_TO_STATUS 15000
// Add an 'M73' G-code to set the current percentage // Add an 'M73' G-code to set the current percentage
//#define LCD_SET_PROGRESS_MANUALLY #define LCD_SET_PROGRESS_MANUALLY
#if ENABLED(SDSUPPORT) || ENABLED(LCD_SET_PROGRESS_MANUALLY) #if ENABLED(SDSUPPORT) || ENABLED(LCD_SET_PROGRESS_MANUALLY)
//#define LCD_PROGRESS_BAR // Show a progress bar on HD44780 LCDs for SD printing //#define LCD_PROGRESS_BAR // Show a progress bar on HD44780 LCDs for SD printing
@@ -638,10 +638,10 @@
#endif #endif
// This allows hosts to request long names for files and folders with M33 // This allows hosts to request long names for files and folders with M33
//#define LONG_FILENAME_HOST_SUPPORT #define LONG_FILENAME_HOST_SUPPORT
// Enable this option to scroll long filenames in the SD card menu // Enable this option to scroll long filenames in the SD card menu
//#define SCROLL_LONG_FILENAMES #define SCROLL_LONG_FILENAMES
/** /**
* This option allows you to abort SD printing when any endstop is triggered. * This option allows you to abort SD printing when any endstop is triggered.
@@ -660,7 +660,7 @@
/** /**
* Auto-report SdCard status with M27 S<seconds> * Auto-report SdCard status with M27 S<seconds>
*/ */
//#define AUTO_REPORT_SD_STATUS #define AUTO_REPORT_SD_STATUS
#endif // SDSUPPORT #endif // SDSUPPORT
@@ -678,7 +678,7 @@
*/ */
#if ENABLED(DOGLCD) #if ENABLED(DOGLCD)
// Show SD percentage next to the progress bar // Show SD percentage next to the progress bar
//#define DOGM_SD_PERCENT #define DOGM_SD_PERCENT
// Enable to save many cycles by drawing a hollow frame on the Info Screen // Enable to save many cycles by drawing a hollow frame on the Info Screen
#define XYZ_HOLLOW_FRAME #define XYZ_HOLLOW_FRAME
@@ -688,7 +688,7 @@
// A bigger font is available for edit items. Costs 3120 bytes of PROGMEM. // A bigger font is available for edit items. Costs 3120 bytes of PROGMEM.
// Western only. Not available for Cyrillic, Kana, Turkish, Greek, or Chinese. // Western only. Not available for Cyrillic, Kana, Turkish, Greek, or Chinese.
//#define USE_BIG_EDIT_FONT #define USE_BIG_EDIT_FONT
// A smaller font may be used on the Info Screen. Costs 2300 bytes of PROGMEM. // A smaller font may be used on the Info Screen. Costs 2300 bytes of PROGMEM.
// Western only. Not available for Cyrillic, Kana, Turkish, Greek, or Chinese. // Western only. Not available for Cyrillic, Kana, Turkish, Greek, or Chinese.
@@ -744,16 +744,16 @@
* *
* Warning: Does not respect endstops! * Warning: Does not respect endstops!
*/ */
//#define BABYSTEPPING #define BABYSTEPPING
#if ENABLED(BABYSTEPPING) #if ENABLED(BABYSTEPPING)
//#define BABYSTEP_XY // Also enable X/Y Babystepping. Not supported on DELTA! //#define BABYSTEP_XY // Also enable X/Y Babystepping. Not supported on DELTA!
#define BABYSTEP_INVERT_Z false // Change if Z babysteps should go the other way #define BABYSTEP_INVERT_Z false // Change if Z babysteps should go the other way
#define BABYSTEP_MULTIPLICATOR 1 // Babysteps are very small. Increase for faster motion. #define BABYSTEP_MULTIPLICATOR 25 // Babysteps are very small. Increase for faster motion.
//#define BABYSTEP_ZPROBE_OFFSET // Enable to combine M851 and Babystepping #define BABYSTEP_ZPROBE_OFFSET // Enable to combine M851 and Babystepping
//#define DOUBLECLICK_FOR_Z_BABYSTEPPING // Double-click on the Status Screen for Z Babystepping. #define DOUBLECLICK_FOR_Z_BABYSTEPPING // Double-click on the Status Screen for Z Babystepping.
#define DOUBLECLICK_MAX_INTERVAL 1250 // Maximum interval between clicks, in milliseconds. #define DOUBLECLICK_MAX_INTERVAL 1250 // Maximum interval between clicks, in milliseconds.
// Note: Extra time may be added to mitigate controller latency. // Note: Extra time may be added to mitigate controller latency.
//#define BABYSTEP_ZPROBE_GFX_OVERLAY // Enable graphical overlay on Z-offset editor #define BABYSTEP_ZPROBE_GFX_OVERLAY // Enable graphical overlay on Z-offset editor
#endif #endif
// @section extruder // @section extruder
@@ -774,7 +774,9 @@
* See http://marlinfw.org/docs/features/lin_advance.html for full instructions. * See http://marlinfw.org/docs/features/lin_advance.html for full instructions.
* Mention @Sebastianv650 on GitHub to alert the author of any issues. * Mention @Sebastianv650 on GitHub to alert the author of any issues.
*/ */
//#define LIN_ADVANCE #if(ENABLED(E_2208) && !ENABLED(E_SpreadCycle))
#define LIN_ADVANCE
#endif
#if ENABLED(LIN_ADVANCE) #if ENABLED(LIN_ADVANCE)
#define LIN_ADVANCE_K 0.22 // Unit: mm compression per 1mm/s extruder speed #define LIN_ADVANCE_K 0.22 // Unit: mm compression per 1mm/s extruder speed
//#define LA_DEBUG // If enabled, this will generate debug information output over USB. //#define LA_DEBUG // If enabled, this will generate debug information output over USB.
@@ -804,7 +806,7 @@
#endif #endif
// Support for G5 with XYZE destination and IJPQ offsets. Requires ~2666 bytes. // Support for G5 with XYZE destination and IJPQ offsets. Requires ~2666 bytes.
//#define BEZIER_CURVE_SUPPORT #define BEZIER_CURVE_SUPPORT
// G38.2 and G38.3 Probe Target // G38.2 and G38.3 Probe Target
// Set MULTIPLE_PROBING if you want G38 to double touch // Set MULTIPLE_PROBING if you want G38 to double touch
@@ -917,7 +919,7 @@
// enter the serial receive buffer, so they cannot be blocked. // enter the serial receive buffer, so they cannot be blocked.
// Currently handles M108, M112, M410 // Currently handles M108, M112, M410
// Does not work on boards using AT90USB (USBCON) processors! // Does not work on boards using AT90USB (USBCON) processors!
//#define EMERGENCY_PARSER #define EMERGENCY_PARSER
// Bad Serial-connections can miss a received command by sending an 'ok' // Bad Serial-connections can miss a received command by sending an 'ok'
// Therefore some clients abort after 30 seconds in a timeout. // Therefore some clients abort after 30 seconds in a timeout.
@@ -926,7 +928,7 @@
//#define NO_TIMEOUTS 1000 // Milliseconds //#define NO_TIMEOUTS 1000 // Milliseconds
// Some clients will have this feature soon. This could make the NO_TIMEOUTS unnecessary. // Some clients will have this feature soon. This could make the NO_TIMEOUTS unnecessary.
//#define ADVANCED_OK #define ADVANCED_OK
// @section extras // @section extras
@@ -945,7 +947,7 @@
* Note that M207 / M208 / M209 settings are saved to EEPROM. * Note that M207 / M208 / M209 settings are saved to EEPROM.
* *
*/ */
//#define FWRETRACT // ONLY PARTIALLY TESTED #define FWRETRACT // ONLY PARTIALLY TESTED
#if ENABLED(FWRETRACT) #if ENABLED(FWRETRACT)
#define MIN_AUTORETRACT 0.1 // When auto-retract is on, convert E moves of this length and over #define MIN_AUTORETRACT 0.1 // When auto-retract is on, convert E moves of this length and over
#define MAX_AUTORETRACT 10.0 // Upper limit for auto-retract conversion #define MAX_AUTORETRACT 10.0 // Upper limit for auto-retract conversion
@@ -978,7 +980,7 @@
* Requires NOZZLE_PARK_FEATURE. * Requires NOZZLE_PARK_FEATURE.
* This feature is required for the default FILAMENT_RUNOUT_SCRIPT. * This feature is required for the default FILAMENT_RUNOUT_SCRIPT.
*/ */
//#define ADVANCED_PAUSE_FEATURE #define ADVANCED_PAUSE_FEATURE
#if ENABLED(ADVANCED_PAUSE_FEATURE) #if ENABLED(ADVANCED_PAUSE_FEATURE)
#define PAUSE_PARK_RETRACT_FEEDRATE 60 // (mm/s) Initial retract feedrate. #define PAUSE_PARK_RETRACT_FEEDRATE 60 // (mm/s) Initial retract feedrate.
#define PAUSE_PARK_RETRACT_LENGTH 2 // (mm) Initial retract. #define PAUSE_PARK_RETRACT_LENGTH 2 // (mm) Initial retract.
@@ -1010,11 +1012,11 @@
#define FILAMENT_UNLOAD_PURGE_LENGTH 8 // (mm) An unretract is done, then this length is purged. #define FILAMENT_UNLOAD_PURGE_LENGTH 8 // (mm) An unretract is done, then this length is purged.
#define PAUSE_PARK_NOZZLE_TIMEOUT 45 // (seconds) Time limit before the nozzle is turned off for safety. #define PAUSE_PARK_NOZZLE_TIMEOUT 45 // (seconds) Time limit before the nozzle is turned off for safety.
#define FILAMENT_CHANGE_ALERT_BEEPS 10 // Number of alert beeps to play when a response is needed. #define FILAMENT_CHANGE_ALERT_BEEPS 2 // Number of alert beeps to play when a response is needed.
#define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable for XYZ steppers to stay powered on during filament change. #define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable for XYZ steppers to stay powered on during filament change.
//#define PARK_HEAD_ON_PAUSE // Park the nozzle during pause and filament change. #define PARK_HEAD_ON_PAUSE // Park the nozzle during pause and filament change.
//#define HOME_BEFORE_FILAMENT_CHANGE // Ensure homing has been completed prior to parking for filament change #define HOME_BEFORE_FILAMENT_CHANGE // Ensure homing has been completed prior to parking for filament change
//#define FILAMENT_LOAD_UNLOAD_GCODES // Add M701/M702 Load/Unload G-codes, plus Load/Unload in the LCD Prepare menu. //#define FILAMENT_LOAD_UNLOAD_GCODES // Add M701/M702 Load/Unload G-codes, plus Load/Unload in the LCD Prepare menu.
//#define FILAMENT_UNLOAD_ALL_EXTRUDERS // Allow M702 to unload all extruders above a minimum target temp (as set by M302) //#define FILAMENT_UNLOAD_ALL_EXTRUDERS // Allow M702 to unload all extruders above a minimum target temp (as set by M302)
@@ -1430,7 +1432,7 @@
/** /**
* M43 - display pin status, watch pins for changes, watch endstops & toggle LED, Z servo probe test, toggle pins * M43 - display pin status, watch pins for changes, watch endstops & toggle LED, Z servo probe test, toggle pins
*/ */
//#define PINS_DEBUGGING #define PINS_DEBUGGING
/** /**
* Auto-report temperatures with M155 S<seconds> * Auto-report temperatures with M155 S<seconds>
@@ -1484,26 +1486,28 @@
/** /**
* User-defined menu items that execute custom GCode * User-defined menu items that execute custom GCode
*/ */
//#define CUSTOM_USER_MENUS #if(ENABLED(UBL))
#define CUSTOM_USER_MENUS
#endif
#if ENABLED(CUSTOM_USER_MENUS) #if ENABLED(CUSTOM_USER_MENUS)
#define USER_SCRIPT_DONE "M117 User Script Done" //#define USER_SCRIPT_DONE "M117 User Script Done"
#define USER_SCRIPT_AUDIBLE_FEEDBACK #define USER_SCRIPT_AUDIBLE_FEEDBACK
//#define USER_SCRIPT_RETURN // Return to status screen after a script #define USER_SCRIPT_RETURN // Return to status screen after a script
#define USER_DESC_1 "Home & UBL Info" #define USER_DESC_1 "UBL Commission Step 1"
#define USER_GCODE_1 "G28\nG29 W" #define USER_GCODE_1 "M502 \n M500 \n M501 \n M190 S75 \n G28 \n G29 P1 \n G29 S1 \n M117 Run Step 2 \n"
#define USER_DESC_2 "Preheat for PLA" #define USER_DESC_2 "UBL Commission Step 2"
#define USER_GCODE_2 "M140 S" STRINGIFY(PREHEAT_1_TEMP_BED) "\nM104 S" STRINGIFY(PREHEAT_1_TEMP_HOTEND) #define USER_GCODE_2 "G29 S1 \n G29 S0 \n G29 F 10.0 \n G29 A \n M500 \n G28 \n G29 L1 \n M109 S225 \n G1 X150 Y 150 \n G1 Z0 \n M117 Set Z Offset \n"
#define USER_DESC_3 "Preheat for ABS" #define USER_DESC_3 "Prep for Z Adjust"
#define USER_GCODE_3 "M140 S" STRINGIFY(PREHEAT_2_TEMP_BED) "\nM104 S" STRINGIFY(PREHEAT_2_TEMP_HOTEND) #define USER_GCODE_3 "M190 75 \n M104 235 \n G28 \n G29 L1 \n G1 X150 Y 150 \n G1 Z0 \n"
#define USER_DESC_4 "Heat Bed/Home/Level" #define USER_DESC_4 "Fill Mesh Points"
#define USER_GCODE_4 "M140 S" STRINGIFY(PREHEAT_2_TEMP_BED) "\nG28\nG29" #define USER_GCODE_4 "G29 P3 \n G29 P3 \n G29 P3 \n G29 T \n"
#define USER_DESC_5 "Home & Info" #define USER_DESC_5 "Run Mesh Validation"
#define USER_GCODE_5 "G28\nM503" #define USER_GCODE_5 "G26 \n"
#endif #endif
/** /**
@@ -1518,8 +1522,8 @@
* Will be sent in the form '//action:ACTION_ON_PAUSE', e.g. '//action:pause'. * Will be sent in the form '//action:ACTION_ON_PAUSE', e.g. '//action:pause'.
* The host must be configured to handle the action command. * The host must be configured to handle the action command.
*/ */
//#define ACTION_ON_PAUSE "pause" #define ACTION_ON_PAUSE "pause"
//#define ACTION_ON_RESUME "resume" #define ACTION_ON_RESUME "resume"
//=========================================================================== //===========================================================================
//====================== I2C Position Encoder Settings ====================== //====================== I2C Position Encoder Settings ======================
+84 -49
View File
@@ -601,7 +601,13 @@ uint8_t target_extruder;
#endif #endif
#if HAS_POWER_SWITCH #if HAS_POWER_SWITCH
bool powersupply_on; bool powersupply_on = (
#if ENABLED(PS_DEFAULT_OFF)
false
#else
true
#endif
);
#if ENABLED(AUTO_POWER_CONTROL) #if ENABLED(AUTO_POWER_CONTROL)
#define PSU_ON() powerManager.power_on() #define PSU_ON() powerManager.power_on()
#define PSU_OFF() powerManager.power_off() #define PSU_OFF() powerManager.power_off()
@@ -937,9 +943,9 @@ void setup_powerhold() {
#endif #endif
#if HAS_POWER_SWITCH #if HAS_POWER_SWITCH
#if ENABLED(PS_DEFAULT_OFF) #if ENABLED(PS_DEFAULT_OFF)
powersupply_on = true; PSU_OFF(); PSU_OFF();
#else #else
powersupply_on = false; PSU_ON(); PSU_ON();
#endif #endif
#endif #endif
} }
@@ -1377,11 +1383,7 @@ bool get_target_extruder_from_command(const uint16_t code) {
} }
#elif ENABLED(DELTA) #elif ENABLED(DELTA)
soft_endstop_min[axis] = base_min_pos(axis); soft_endstop_min[axis] = base_min_pos(axis);
soft_endstop_max[axis] = axis == Z_AXIS ? delta_height soft_endstop_max[axis] = axis == Z_AXIS ? delta_height : base_max_pos(axis);
#if HAS_BED_PROBE
- zprobe_zoffset
#endif
: base_max_pos(axis);
#else #else
soft_endstop_min[axis] = base_min_pos(axis); soft_endstop_min[axis] = base_min_pos(axis);
soft_endstop_max[axis] = base_max_pos(axis); soft_endstop_max[axis] = base_max_pos(axis);
@@ -1510,14 +1512,13 @@ static void set_axis_is_at_home(const AxisEnum axis) {
} }
else else
#elif ENABLED(DELTA) #elif ENABLED(DELTA)
current_position[axis] = (axis == Z_AXIS ? delta_height if (axis == Z_AXIS)
#if HAS_BED_PROBE current_position[axis] = delta_height;
- zprobe_zoffset else
#endif
: base_home_pos(axis));
#else
current_position[axis] = base_home_pos(axis);
#endif #endif
{
current_position[axis] = base_home_pos(axis);
}
/** /**
* Z Probe Z Homing? Account for the probe's Z offset. * Z Probe Z Homing? Account for the probe's Z offset.
@@ -2093,11 +2094,6 @@ void clean_up_after_endstop_or_probe_move() {
} }
bltouch_command(deploy ? BLTOUCH_DEPLOY : BLTOUCH_STOW); bltouch_command(deploy ? BLTOUCH_DEPLOY : BLTOUCH_STOW);
#if ENABLED(BLTOUCH_V3)
// The version 3 of BlTouch needs to switch to Alarm & Test mode after deploy
// or it keeps on pushing the probes out and ends up in error mode (collision).
if (deploy) bltouch_command(BLTOUCH_ALARM);
#endif
#if ENABLED(DEBUG_LEVELING_FEATURE) #if ENABLED(DEBUG_LEVELING_FEATURE)
if (DEBUGGING(LEVELING)) { if (DEBUGGING(LEVELING)) {
@@ -4066,11 +4062,7 @@ inline void gcode_G4() {
#endif #endif
// Move all carriages together linearly until an endstop is hit. // Move all carriages together linearly until an endstop is hit.
current_position[X_AXIS] = current_position[Y_AXIS] = current_position[Z_AXIS] = (delta_height + 10 current_position[X_AXIS] = current_position[Y_AXIS] = current_position[Z_AXIS] = (delta_height + 10);
#if HAS_BED_PROBE
- zprobe_zoffset
#endif
);
feedrate_mm_s = homing_feedrate(X_AXIS); feedrate_mm_s = homing_feedrate(X_AXIS);
buffer_line_to_current_position(); buffer_line_to_current_position();
planner.synchronize(); planner.synchronize();
@@ -4599,7 +4591,7 @@ void home_all_axes() { gcode_G28(true); }
if (parser.seenval('X')) { if (parser.seenval('X')) {
px = parser.value_int() - 1; px = parser.value_int() - 1;
if (!WITHIN(px, 0, GRID_MAX_POINTS_X - 1)) { if (!WITHIN(px, 0, GRID_MAX_POINTS_X - 1)) {
SERIAL_PROTOCOLPAIR("X out of range (1-", int(GRID_MAX_POINTS_X)); SERIAL_PROTOCOLPAIR("X out of range (0-", int(GRID_MAX_POINTS_X));
SERIAL_PROTOCOLLNPGM(")"); SERIAL_PROTOCOLLNPGM(")");
return; return;
} }
@@ -4612,7 +4604,7 @@ void home_all_axes() { gcode_G28(true); }
if (parser.seenval('Y')) { if (parser.seenval('Y')) {
py = parser.value_int() - 1; py = parser.value_int() - 1;
if (!WITHIN(py, 0, GRID_MAX_POINTS_Y - 1)) { if (!WITHIN(py, 0, GRID_MAX_POINTS_Y - 1)) {
SERIAL_PROTOCOLPAIR("Y out of range (1-", int(GRID_MAX_POINTS_Y)); SERIAL_PROTOCOLPAIR("Y out of range (0-", int(GRID_MAX_POINTS_Y));
SERIAL_PROTOCOLLNPGM(")"); SERIAL_PROTOCOLLNPGM(")");
return; return;
} }
@@ -5758,6 +5750,12 @@ void home_all_axes() { gcode_G28(true); }
if ((!end_stops && tower_angles) || (end_stops && !tower_angles)) { // XOR if ((!end_stops && tower_angles) || (end_stops && !tower_angles)) { // XOR
SERIAL_PROTOCOLPAIR(" Radius:", delta_radius); SERIAL_PROTOCOLPAIR(" Radius:", delta_radius);
} }
#if HAS_BED_PROBE
if (!end_stops && !tower_angles) {
SERIAL_PROTOCOL_SP(30);
print_signed_float(PSTR("Offset"), zprobe_zoffset);
}
#endif
SERIAL_EOL(); SERIAL_EOL();
} }
@@ -5806,19 +5804,30 @@ void home_all_axes() { gcode_G28(true); }
/** /**
* - Probe a point * - Probe a point
*/ */
static float calibration_probe(const float &nx, const float &ny, const bool stow) { static float calibration_probe(const float &nx, const float &ny, const bool stow, const bool set_up) {
#if HAS_BED_PROBE #if HAS_BED_PROBE
return probe_pt(nx, ny, stow ? PROBE_PT_STOW : PROBE_PT_RAISE, 0, false); return probe_pt(nx, ny, set_up ? PROBE_PT_BIG_RAISE : stow ? PROBE_PT_STOW : PROBE_PT_RAISE, 0, false);
#else #else
UNUSED(stow); UNUSED(stow);
UNUSED(set_up);
return lcd_probe_pt(nx, ny); return lcd_probe_pt(nx, ny);
#endif #endif
} }
#if HAS_BED_PROBE && ENABLED(ULTIPANEL)
static float probe_z_shift(const float center) {
STOW_PROBE();
endstops.enable_z_probe(false);
float z_shift = lcd_probe_pt(0, 0) - center;
endstops.enable_z_probe(true);
return z_shift;
}
#endif
/** /**
* - Probe a grid * - Probe a grid
*/ */
static bool probe_calibration_points(float z_pt[NPP + 1], const int8_t probe_points, const bool towers_set, const bool stow_after_each) { static bool probe_calibration_points(float z_pt[NPP + 1], const int8_t probe_points, const bool towers_set, const bool stow_after_each, const bool set_up) {
const bool _0p_calibration = probe_points == 0, const bool _0p_calibration = probe_points == 0,
_1p_calibration = probe_points == 1 || probe_points == -1, _1p_calibration = probe_points == 1 || probe_points == -1,
_4p_calibration = probe_points == 2, _4p_calibration = probe_points == 2,
@@ -5841,7 +5850,7 @@ void home_all_axes() { gcode_G28(true); }
if (!_0p_calibration) { if (!_0p_calibration) {
if (!_7p_no_intermediates && !_7p_4_intermediates && !_7p_11_intermediates) { // probe the center if (!_7p_no_intermediates && !_7p_4_intermediates && !_7p_11_intermediates) { // probe the center
z_pt[CEN] += calibration_probe(0, 0, stow_after_each); z_pt[CEN] += calibration_probe(0, 0, stow_after_each, set_up);
if (isnan(z_pt[CEN])) return false; if (isnan(z_pt[CEN])) return false;
} }
@@ -5851,7 +5860,7 @@ void home_all_axes() { gcode_G28(true); }
I_LOOP_CAL_PT(rad, start, steps) { I_LOOP_CAL_PT(rad, start, steps) {
const float a = RADIANS(210 + (360 / NPP) * (rad - 1)), const float a = RADIANS(210 + (360 / NPP) * (rad - 1)),
r = delta_calibration_radius * 0.1; r = delta_calibration_radius * 0.1;
z_pt[CEN] += calibration_probe(cos(a) * r, sin(a) * r, stow_after_each); z_pt[CEN] += calibration_probe(cos(a) * r, sin(a) * r, stow_after_each, set_up);
if (isnan(z_pt[CEN])) return false; if (isnan(z_pt[CEN])) return false;
} }
z_pt[CEN] /= float(_7p_2_intermediates ? 7 : probe_points); z_pt[CEN] /= float(_7p_2_intermediates ? 7 : probe_points);
@@ -5875,7 +5884,7 @@ void home_all_axes() { gcode_G28(true); }
const float a = RADIANS(210 + (360 / NPP) * (rad - 1)), const float a = RADIANS(210 + (360 / NPP) * (rad - 1)),
r = delta_calibration_radius * (1 - 0.1 * (zig_zag ? offset - circle : circle)), r = delta_calibration_radius * (1 - 0.1 * (zig_zag ? offset - circle : circle)),
interpol = fmod(rad, 1); interpol = fmod(rad, 1);
const float z_temp = calibration_probe(cos(a) * r, sin(a) * r, stow_after_each); const float z_temp = calibration_probe(cos(a) * r, sin(a) * r, stow_after_each, set_up);
if (isnan(z_temp)) return false; if (isnan(z_temp)) return false;
// split probe point to neighbouring calibration points // split probe point to neighbouring calibration points
z_pt[uint8_t(LROUND(rad - interpol + NPP - 1)) % NPP + 1] += z_temp * sq(cos(RADIANS(interpol * 90))); z_pt[uint8_t(LROUND(rad - interpol + NPP - 1)) % NPP + 1] += z_temp * sq(cos(RADIANS(interpol * 90)));
@@ -6004,7 +6013,10 @@ void home_all_axes() { gcode_G28(true); }
* *
* Parameters: * Parameters:
* *
* S Setup mode; disables probe protection
*
* Pn Number of probe points: * Pn Number of probe points:
* P-1 Checks the z_offset with a center probe and paper test.
* P0 Normalizes calibration. * P0 Normalizes calibration.
* P1 Calibrates height only with center probe. * P1 Calibrates height only with center probe.
* P2 Probe center and towers. Calibrate height, endstops and delta radius. * P2 Probe center and towers. Calibrate height, endstops and delta radius.
@@ -6027,15 +6039,22 @@ void home_all_axes() { gcode_G28(true); }
*/ */
inline void gcode_G33() { inline void gcode_G33() {
const int8_t probe_points = parser.intval('P', DELTA_CALIBRATION_DEFAULT_POINTS); const bool set_up =
if (!WITHIN(probe_points, 0, 10)) { #if HAS_BED_PROBE
SERIAL_PROTOCOLLNPGM("?(P)oints is implausible (0-10)."); parser.seen('S');
#else
false;
#endif
const int8_t probe_points = set_up ? 2 : parser.intval('P', DELTA_CALIBRATION_DEFAULT_POINTS);
if (!WITHIN(probe_points, -1, 10)) {
SERIAL_PROTOCOLLNPGM("?(P)oints is implausible (-1 - 10).");
return; return;
} }
const bool towers_set = !parser.seen('T'); const bool towers_set = !parser.seen('T');
const float calibration_precision = parser.floatval('C', 0.0); const float calibration_precision = set_up ? Z_CLEARANCE_BETWEEN_PROBES / 5.0 : parser.floatval('C', 0.0);
if (calibration_precision < 0) { if (calibration_precision < 0) {
SERIAL_PROTOCOLLNPGM("?(C)alibration precision is implausible (>=0)."); SERIAL_PROTOCOLLNPGM("?(C)alibration precision is implausible (>=0).");
return; return;
@@ -6043,18 +6062,26 @@ void home_all_axes() { gcode_G28(true); }
const int8_t force_iterations = parser.intval('F', 0); const int8_t force_iterations = parser.intval('F', 0);
if (!WITHIN(force_iterations, 0, 30)) { if (!WITHIN(force_iterations, 0, 30)) {
SERIAL_PROTOCOLLNPGM("?(F)orce iteration is implausible (0-30)."); SERIAL_PROTOCOLLNPGM("?(F)orce iteration is implausible (0 - 30).");
return; return;
} }
const int8_t verbose_level = parser.byteval('V', 1); const int8_t verbose_level = parser.byteval('V', 1);
if (!WITHIN(verbose_level, 0, 3)) { if (!WITHIN(verbose_level, 0, 3)) {
SERIAL_PROTOCOLLNPGM("?(V)erbose level is implausible (0-3)."); SERIAL_PROTOCOLLNPGM("?(V)erbose level is implausible (0 - 3).");
return; return;
} }
const bool stow_after_each = parser.seen('E'); const bool stow_after_each = parser.seen('E');
if (set_up) {
delta_height = 999.99;
delta_radius = DELTA_PRINTABLE_RADIUS;
ZERO(delta_endstop_adj);
ZERO(delta_tower_angle_trim);
recalc_delta_settings();
}
const bool _0p_calibration = probe_points == 0, const bool _0p_calibration = probe_points == 0,
_1p_calibration = probe_points == 1 || probe_points == -1, _1p_calibration = probe_points == 1 || probe_points == -1,
_4p_calibration = probe_points == 2, _4p_calibration = probe_points == 2,
@@ -6103,6 +6130,7 @@ void home_all_axes() { gcode_G28(true); }
const char *checkingac = PSTR("Checking... AC"); const char *checkingac = PSTR("Checking... AC");
serialprintPGM(checkingac); serialprintPGM(checkingac);
if (verbose_level == 0) SERIAL_PROTOCOLPGM(" (DRY-RUN)"); if (verbose_level == 0) SERIAL_PROTOCOLPGM(" (DRY-RUN)");
if (set_up) SERIAL_PROTOCOLPGM(" (SET-UP)");
SERIAL_EOL(); SERIAL_EOL();
lcd_setstatusPGM(checkingac); lcd_setstatusPGM(checkingac);
@@ -6121,7 +6149,7 @@ void home_all_axes() { gcode_G28(true); }
// Probe the points // Probe the points
zero_std_dev_old = zero_std_dev; zero_std_dev_old = zero_std_dev;
if (!probe_calibration_points(z_at_pt, probe_points, towers_set, stow_after_each)) { if (!probe_calibration_points(z_at_pt, probe_points, towers_set, stow_after_each, set_up)) {
SERIAL_PROTOCOLLNPGM("Correct delta settings with M665 and M666"); SERIAL_PROTOCOLLNPGM("Correct delta settings with M665 and M666");
return AC_CLEANUP(); return AC_CLEANUP();
} }
@@ -6169,6 +6197,11 @@ void home_all_axes() { gcode_G28(true); }
delta_calibration_radius = cr_old; delta_calibration_radius = cr_old;
switch (probe_points) { switch (probe_points) {
case -1:
#if HAS_BED_PROBE && ENABLED(ULTIPANEL)
zprobe_zoffset += probe_z_shift(z_at_pt[CEN]);
#endif
case 0: case 0:
test_precision = 0.00; // forced end test_precision = 0.00; // forced end
break; break;
@@ -10072,7 +10105,7 @@ inline void gcode_M226() {
NOLESS(thermalManager.lpq_len, 0); NOLESS(thermalManager.lpq_len, 0);
#endif #endif
thermalManager.update_pid(); thermalManager.updatePID();
SERIAL_ECHO_START(); SERIAL_ECHO_START();
#if ENABLED(PID_PARAMS_PER_HOTEND) #if ENABLED(PID_PARAMS_PER_HOTEND)
SERIAL_ECHOPAIR(" e:", e); // specify extruder in serial output SERIAL_ECHOPAIR(" e:", e); // specify extruder in serial output
@@ -10218,7 +10251,7 @@ inline void gcode_M303() {
KEEPALIVE_STATE(NOT_BUSY); KEEPALIVE_STATE(NOT_BUSY);
#endif #endif
thermalManager.pid_autotune(temp, e, c, u); thermalManager.PID_autotune(temp, e, c, u);
#if DISABLED(BUSY_WHILE_HEATING) #if DISABLED(BUSY_WHILE_HEATING)
KEEPALIVE_STATE(IN_HANDLER); KEEPALIVE_STATE(IN_HANDLER);
@@ -14605,7 +14638,7 @@ void prepare_move_to_destination() {
#if ENABLED(TEMP_STAT_LEDS) #if ENABLED(TEMP_STAT_LEDS)
static uint8_t red_led = -1; // Invalid value to force leds initializzation on startup static bool red_led = false;
static millis_t next_status_led_update_ms = 0; static millis_t next_status_led_update_ms = 0;
void handle_status_leds(void) { void handle_status_leds(void) {
@@ -14613,18 +14646,20 @@ void prepare_move_to_destination() {
next_status_led_update_ms += 500; // Update every 0.5s next_status_led_update_ms += 500; // Update every 0.5s
float max_temp = 0.0; float max_temp = 0.0;
#if HAS_HEATED_BED #if HAS_HEATED_BED
max_temp = MAX(thermalManager.degTargetBed(), thermalManager.degBed()); max_temp = MAX3(max_temp, thermalManager.degTargetBed(), thermalManager.degBed());
#endif #endif
HOTEND_LOOP() HOTEND_LOOP()
max_temp = MAX3(max_temp, thermalManager.degHotend(e), thermalManager.degTargetHotend(e)); max_temp = MAX3(max_temp, thermalManager.degHotend(e), thermalManager.degTargetHotend(e));
const uint8_t new_led = (max_temp > 55.0) ? HIGH : (max_temp < 54.0 || red_led == -1) ? LOW : red_led; const bool new_led = (max_temp > 55.0) ? true : (max_temp < 54.0) ? false : red_led;
if (new_led != red_led) { if (new_led != red_led) {
red_led = new_led; red_led = new_led;
#if PIN_EXISTS(STAT_LED_RED) #if PIN_EXISTS(STAT_LED_RED)
WRITE(STAT_LED_RED_PIN, new_led); WRITE(STAT_LED_RED_PIN, new_led ? HIGH : LOW);
#endif #if PIN_EXISTS(STAT_LED_BLUE)
#if PIN_EXISTS(STAT_LED_BLUE) WRITE(STAT_LED_BLUE_PIN, new_led ? LOW : HIGH);
WRITE(STAT_LED_BLUE_PIN, !new_led); #endif
#else
WRITE(STAT_LED_BLUE_PIN, new_led ? HIGH : LOW);
#endif #endif
} }
} }
+4 -4
View File
@@ -35,7 +35,7 @@
/** /**
* Marlin release version identifier * Marlin release version identifier
*/ */
#define SHORT_BUILD_VERSION "bugfix-1.1.x" #define SHORT_BUILD_VERSION "1.1.9-R4"
/** /**
* Verbose version identifier which should contain a reference to the location * Verbose version identifier which should contain a reference to the location
@@ -48,7 +48,7 @@
* here we define this default string as the date where the latest release * here we define this default string as the date where the latest release
* version was tagged. * version was tagged.
*/ */
#define STRING_DISTRIBUTION_DATE "2018-07-31" #define STRING_DISTRIBUTION_DATE "2019-01-10"
/** /**
* Required minimum Configuration.h and Configuration_adv.h file versions. * Required minimum Configuration.h and Configuration_adv.h file versions.
@@ -70,7 +70,7 @@
/** /**
* Defines a generic printer name to be output to the LCD after booting Marlin. * Defines a generic printer name to be output to the LCD after booting Marlin.
*/ */
#define MACHINE_NAME "3D Printer" #define MACHINE_NAME "TM3D Raptor"
/** /**
* The SOURCE_CODE_URL is the location where users will find the Marlin Source * The SOURCE_CODE_URL is the location where users will find the Marlin Source
@@ -89,6 +89,6 @@
* The WEBSITE_URL is the location where users can get more information such as * The WEBSITE_URL is the location where users can get more information such as
* documentation about a specific Marlin release. * documentation about a specific Marlin release.
*/ */
#define WEBSITE_URL "http://marlinfw.org" #define WEBSITE_URL "tinymachines3d.com"
#endif // USE_AUTOMATIC_VERSIONING #endif // USE_AUTOMATIC_VERSIONING
+106
View File
@@ -0,0 +1,106 @@
/**
* Marlin 3D Printer Firmware
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/**
* Custom Bitmap for splashscreen
*
* You may use one of the following tools to generate the C++ bitmap array from
* a black and white image:
*
* - http://www.marlinfw.org/tools/u8glib/converter.html
* - http://www.digole.com/tools/PicturetoC_Hex_converter.php
*/
#include <avr/pgmspace.h>
#define CUSTOM_BOOTSCREEN_TIMEOUT 2500
#define CUSTOM_BOOTSCREEN_BMPWIDTH 128
#define CUSTOM_BOOTSCREEN_BMPHEIGHT 64
const unsigned char custom_start_bmp[] PROGMEM = {
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFD, 0x55, 0x55, 0x55, 0x55, 0x55, 0x5F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFD, 0x00, 0x00, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFE, 0x07, 0xC0, 0x05, 0x55, 0x55, 0x55, 0x55, 0x55, 0x5F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFC, 0x0A, 0x20, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFE, 0x14, 0x10, 0x05, 0x00, 0x00, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFC, 0x28, 0x08, 0x06, 0x07, 0xC0, 0x05, 0x55, 0x55, 0x55, 0x55, 0x55, 0x5F, 0xFF, 0xFF, 0xFF,
0xFE, 0x54, 0x04, 0x04, 0x0A, 0x20, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0xFF, 0xFF, 0xFF,
0xFC, 0x60, 0x04, 0x06, 0x14, 0x10, 0x05, 0x00, 0x00, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFE, 0x50, 0x04, 0x04, 0x28, 0x08, 0x06, 0x07, 0xC0, 0x05, 0x55, 0x55, 0x55, 0x55, 0x55, 0x5F,
0xFC, 0x60, 0x04, 0x06, 0x54, 0x04, 0x04, 0x0A, 0x20, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F,
0xFE, 0x54, 0x04, 0x1C, 0x60, 0x04, 0x06, 0x14, 0x10, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F,
0xFC, 0x28, 0x08, 0x2E, 0x50, 0x04, 0x04, 0x28, 0x08, 0x06, 0x07, 0xC0, 0x00, 0x01, 0xF0, 0x3F,
0xFE, 0x14, 0x10, 0x54, 0x60, 0x04, 0x06, 0x54, 0x04, 0x04, 0x0A, 0x20, 0x00, 0x02, 0x08, 0x1F,
0xFC, 0x0A, 0x20, 0x66, 0x54, 0x04, 0x1C, 0x60, 0x04, 0x06, 0x14, 0x10, 0x00, 0x05, 0x04, 0x3F,
0xFE, 0x07, 0xC0, 0x54, 0x28, 0x08, 0x2E, 0x50, 0x04, 0x04, 0x28, 0x08, 0x00, 0x0A, 0x02, 0x1F,
0xFC, 0x00, 0x00, 0x2E, 0x14, 0x10, 0x54, 0x60, 0x04, 0x06, 0x54, 0x04, 0x00, 0x15, 0x01, 0x3F,
0xFE, 0x00, 0x00, 0x1C, 0x0A, 0x20, 0x66, 0x54, 0x04, 0x1C, 0x60, 0x04, 0x00, 0x18, 0x01, 0x1F,
0xFC, 0x00, 0x00, 0x06, 0x07, 0xC0, 0x54, 0x28, 0x08, 0x2E, 0x50, 0x04, 0x00, 0x14, 0x01, 0x3F,
0xFE, 0x00, 0x00, 0x04, 0x00, 0x00, 0x2E, 0x14, 0x10, 0x54, 0x60, 0x04, 0x00, 0x18, 0x01, 0x1F,
0xFC, 0xFF, 0xFF, 0xFE, 0x00, 0x00, 0x1C, 0x0A, 0x20, 0x66, 0x54, 0x04, 0x1C, 0x15, 0x01, 0x3F,
0xFE, 0xD5, 0x55, 0x54, 0x00, 0x00, 0x06, 0x07, 0xC0, 0x54, 0x28, 0x08, 0x2A, 0x0A, 0x02, 0x1F,
0xFC, 0x84, 0x10, 0x46, 0x00, 0x00, 0x04, 0x00, 0x00, 0x2E, 0x14, 0x10, 0x51, 0x05, 0x04, 0x3F,
0xFE, 0xC4, 0x10, 0x44, 0xFF, 0xFF, 0xFE, 0x00, 0x00, 0x1C, 0x0A, 0x20, 0x61, 0x02, 0x88, 0x1F,
0xFC, 0x84, 0x10, 0x46, 0xD5, 0x55, 0x54, 0x00, 0x00, 0x06, 0x07, 0xC0, 0x51, 0x01, 0xF0, 0x3F,
0xFE, 0x84, 0x10, 0x44, 0x84, 0x10, 0x46, 0x00, 0x00, 0x04, 0x00, 0x00, 0x2A, 0x00, 0x00, 0x1F,
0xFC, 0xC4, 0x10, 0x46, 0xC4, 0x10, 0x44, 0xFF, 0xFF, 0xFE, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x3F,
0xFE, 0x84, 0x10, 0x44, 0x84, 0x10, 0x46, 0xD5, 0x55, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F,
0xFC, 0xD5, 0x55, 0x56, 0x84, 0x10, 0x44, 0x84, 0x10, 0x46, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F,
0xFC, 0xFF, 0xFF, 0xFC, 0xC4, 0x10, 0x46, 0xC4, 0x10, 0x44, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x9F,
0xFE, 0x00, 0x00, 0x06, 0x84, 0x10, 0x44, 0x84, 0x10, 0x46, 0xD5, 0x55, 0x55, 0x55, 0x55, 0xBF,
0xFD, 0x55, 0x55, 0x54, 0xD5, 0x55, 0x56, 0x84, 0x10, 0x44, 0x84, 0x10, 0x41, 0x04, 0x10, 0x9F,
0xFF, 0xFF, 0xFF, 0xFC, 0xFF, 0xFF, 0xFC, 0xC4, 0x10, 0x46, 0xC4, 0x10, 0x41, 0x04, 0x11, 0xBF,
0xFF, 0xFF, 0xFF, 0xFE, 0x00, 0x00, 0x06, 0x84, 0x10, 0x44, 0x84, 0x10, 0x41, 0x04, 0x10, 0x9F,
0xFF, 0xFF, 0xFF, 0xFD, 0x55, 0x55, 0x54, 0xD5, 0x55, 0x56, 0x84, 0x10, 0x41, 0x04, 0x10, 0x9F,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0xFF, 0xFF, 0xFC, 0xC4, 0x10, 0x41, 0x04, 0x11, 0xBF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x00, 0x00, 0x06, 0x84, 0x10, 0x41, 0x04, 0x10, 0x9F,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFD, 0x55, 0x55, 0x54, 0xD5, 0x55, 0x55, 0x55, 0x55, 0xBF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x9F,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFD, 0x55, 0x55, 0x55, 0x55, 0x55, 0x5F,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xE0, 0x2E, 0xFB, 0x7D, 0xFB, 0xFB, 0xCF, 0xC1, 0xDF, 0xBB, 0x3E, 0xC0, 0xE1, 0xFE, 0x3C, 0x1F,
0xFD, 0xEE, 0x7B, 0x39, 0xF9, 0xF3, 0xCF, 0x9E, 0xDF, 0xBB, 0x3E, 0xDF, 0xDE, 0xFC, 0xDD, 0xE7,
0xFD, 0xEE, 0x3B, 0xBB, 0xF9, 0xEB, 0xD7, 0xBF, 0x5F, 0xBB, 0x5E, 0xDF, 0xDE, 0xFD, 0xED, 0xF7,
0xFD, 0xEE, 0xBB, 0xD3, 0xFA, 0xEB, 0xB7, 0x3F, 0xDF, 0xBB, 0x4E, 0xDF, 0xDF, 0xFF, 0xCD, 0xF3,
0xFD, 0xEE, 0xDB, 0xC7, 0xFA, 0xEB, 0xBB, 0x7F, 0xC0, 0x3B, 0x6E, 0xC0, 0xE3, 0xFF, 0x1D, 0xF3,
0xFD, 0xEE, 0xCB, 0xEF, 0xFA, 0xDB, 0xBB, 0x7F, 0xDF, 0xBB, 0x66, 0xDF, 0xF8, 0xFF, 0xCD, 0xF3,
0xFD, 0xEE, 0xEB, 0xEF, 0xFB, 0x5B, 0x03, 0x3F, 0x5F, 0xBB, 0x76, 0xDF, 0xFE, 0x7F, 0xED, 0xF3,
0xFD, 0xEE, 0xF3, 0xEF, 0xFB, 0x5B, 0x79, 0xBE, 0xDF, 0xBB, 0x7A, 0xDF, 0xDE, 0x7D, 0xED, 0xF7,
0xFD, 0xEE, 0xF3, 0xEF, 0xFB, 0xBA, 0xFD, 0x9E, 0xDF, 0xBB, 0x7C, 0xDF, 0xDE, 0xFD, 0xCD, 0xE7,
0xFD, 0xEE, 0xFB, 0xEF, 0xFB, 0xBA, 0xFD, 0xC1, 0xDF, 0xBB, 0x7E, 0xC0, 0xE0, 0xFE, 0x1C, 0x1F,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
};
+460
View File
@@ -0,0 +1,460 @@
/**
* Marlin 3D Printer Firmware
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/**
* Custom Status Screen bitmap
*
* Place this file in the root with your configuration files
* and enable CUSTOM_STATUS_SCREEN_IMAGE in Configuration.h.
*
* Use the Marlin Bitmap Converter to make your own:
* http://marlinfw.org/tools/u8glib/converter.html
*/
#include "MarlinConfig.h"
//============================================
#define STATUS_SCREENWIDTH 128
#define STATUS_SCREEN_HOTEND_TEXT_X(E) (41 + (E) * 20)
#define STATUS_SCREEN_BED_TEXT_X (HOTENDS > 1 ? 81 : 73)
#define FAN_ANIM_FRAMES 3
#define STATUS_SCREEN_FAN_TEXT_X (FAN_ANIM_FRAMES == 3 ? 103 : 105)
#define STATUS_SCREEN_FAN_TEXT_Y (FAN_ANIM_FRAMES > 2 ? 28 : 27)
//============================================
#if HOTENDS < 2
#if FAN_ANIM_FRAMES <= 2
const unsigned char status_screen0_bmp[] PROGMEM = {
B11111111,B11111111,B11111111,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111111,B11111111,B11111000,
B10000000,B00000000,B00000001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111110,B00000000,B11111000,
B10001110,B00000000,B11100001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111000,B00111111,B00111000,
B10011111,B00000000,B11110001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00110000,B01111110,B00011000,
B10010011,B10000001,B00111001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00110000,B01111100,B00011000,
B10011111,B10000001,B11111001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00101000,B01111100,B00001000,
B10011111,B10000001,B11111001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00101100,B00111000,B00001000,
B10011111,B10111001,B11110001,B00000000,B00000000,B00011111,B11100000,B00000000,B00000000,B00001000,B00100000,B10000000,B00000000,B00101111,B00111001,B11001000,
B10001111,B00101000,B11110001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00000100,B00010000,B01000000,B00000000,B00101111,B11111111,B11101000,
B10000000,B00111000,B00000001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00000100,B00010000,B01000000,B00000000,B00101111,B11000111,B11101000,
B10000000,B00000000,B00000001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00001000,B00100000,B10000000,B00000000,B00101111,B11111111,B11101000,
B10011111,B11111111,B11111001,B00000000,B00000000,B00011111,B11100000,B00000000,B00000000,B00010000,B01000001,B00000000,B00000000,B00100111,B00111001,B11101000,
B10010001,B01110100,B10011001,B00000000,B00000000,B00011111,B11100000,B00000000,B00000000,B00100000,B10000010,B00000000,B00000000,B00100000,B00111000,B01101000,
B10011011,B00000110,B10101001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00100000,B10000010,B00000000,B00000000,B00100000,B01111100,B00101000,
B10011011,B01010100,B10101001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00010000,B01000001,B00000000,B00000000,B00110000,B01111100,B00011000,
B10011011,B01010110,B10101001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00001000,B00100000,B10000000,B00000000,B00110000,B11111100,B00011000,
B10011011,B01010100,B10011001,B00000000,B00000000,B00001111,B11000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111001,B11111000,B00111000,
B10011111,B11111111,B11111001,B00000000,B00000000,B00000111,B10000000,B00000000,B00000000,B11111111,B11111111,B11000000,B00000000,B00111110,B00000000,B11111000,
B11111111,B11111111,B11111111,B00000000,B00000000,B00000011,B00000000,B00000000,B00000000,B11111111,B11111111,B11000000,B00000000,B00111111,B11111111,B11111000
};
const unsigned char status_screen1_bmp[] PROGMEM = {
B11111111,B11111111,B11111111,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111111,B11111111,B11111000,
B10000000,B00000000,B00000001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111110,B10000000,B11111000,
B10001110,B00000000,B11100001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111001,B10000000,B00111000,
B10011111,B00000000,B11110001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00110111,B10000001,B11011000,
B10010011,B10000001,B00111001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00110111,B11000011,B11011000,
B10011111,B10000001,B11111001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00100111,B11000111,B11101000,
B10011111,B10000001,B11111001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00100011,B11000111,B11111000,
B10011111,B10111001,B11110001,B00000000,B00000000,B00011111,B11100000,B00000000,B00000000,B00001000,B00100000,B10000000,B00000000,B00100001,B11111111,B10001000,
B10001111,B00101000,B11110001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00000100,B00010000,B01000000,B00000000,B00100000,B01101100,B00001000,
B10000000,B00111000,B00000001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00000100,B00010000,B01000000,B00000000,B00100000,B01101100,B00001000,
B10000000,B00000000,B00000001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00001000,B00100000,B10000000,B00000000,B00100000,B01101100,B00001000,
B10011111,B11111111,B11111001,B00000000,B00000000,B00011111,B11100000,B00000000,B00000000,B00010000,B01000001,B00000000,B00000000,B00100011,B11111111,B00001000,
B10010001,B01110100,B10011001,B00000000,B00000000,B00011111,B11100000,B00000000,B00000000,B00100000,B10000010,B00000000,B00000000,B00111111,B11000111,B10001000,
B10011011,B00000110,B10101001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00100000,B10000010,B00000000,B00000000,B00101111,B11000111,B11001000,
B10011011,B01010100,B10101001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00010000,B01000001,B00000000,B00000000,B00110111,B10000111,B11011000,
B10011011,B01010110,B10101001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00001000,B00100000,B10000000,B00000000,B00110111,B00000011,B11011000,
B10011011,B01010100,B10011001,B00000000,B00000000,B00001111,B11000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111000,B00000011,B00111000,
B10011111,B11111111,B11111001,B00000000,B00000000,B00000111,B10000000,B00000000,B00000000,B11111111,B11111111,B11000000,B00000000,B00111110,B00000010,B11111000,
B11111111,B11111111,B11111111,B00000000,B00000000,B00000011,B00000000,B00000000,B00000000,B11111111,B11111111,B11000000,B00000000,B00111111,B11111111,B11111000
};
#elif FAN_ANIM_FRAMES == 3
const unsigned char status_screen0_bmp[] PROGMEM = {
B11111111,B11111111,B11111111,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111111,B11111111,B11111000,
B10000000,B00000000,B00000001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111110,B00000000,B11111000,
B10001110,B00000000,B11100001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111000,B00111111,B00111000,
B10011111,B00000000,B11110001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00110000,B01111110,B00011000,
B10010011,B10000001,B00111001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00110000,B01111100,B00011000,
B10011111,B10000001,B11111001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00101000,B01111100,B00001000,
B10011111,B10000001,B11111001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00101100,B00111000,B00001000,
B10011111,B10111001,B11110001,B00000000,B00000000,B00011111,B11100000,B00000000,B00000000,B00001000,B00100000,B10000000,B00000000,B00101111,B00111001,B11001000,
B10001111,B00101000,B11110001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00000100,B00010000,B01000000,B00000000,B00101111,B11111111,B11101000,
B10000000,B00111000,B00000001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00000100,B00010000,B01000000,B00000000,B00101111,B11000111,B11101000,
B10000000,B00000000,B00000001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00001000,B00100000,B10000000,B00000000,B00101111,B11111111,B11101000,
B10011111,B11111111,B11111001,B00000000,B00000000,B00011111,B11100000,B00000000,B00000000,B00010000,B01000001,B00000000,B00000000,B00100111,B00111001,B11101000,
B10010001,B01110100,B10011001,B00000000,B00000000,B00011111,B11100000,B00000000,B00000000,B00100000,B10000010,B00000000,B00000000,B00100000,B00111000,B01101000,
B10011011,B00000110,B10101001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00100000,B10000010,B00000000,B00000000,B00100000,B01111100,B00101000,
B10011011,B01010100,B10101001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00010000,B01000001,B00000000,B00000000,B00110000,B01111100,B00011000,
B10011011,B01010110,B10101001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00001000,B00100000,B10000000,B00000000,B00110000,B11111100,B00011000,
B10011011,B01010100,B10011001,B00000000,B00000000,B00001111,B11000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111001,B11111000,B00111000,
B10011111,B11111111,B11111001,B00000000,B00000000,B00000111,B10000000,B00000000,B00000000,B11111111,B11111111,B11000000,B00000000,B00111110,B00000000,B11111000,
B11111111,B11111111,B11111111,B00000000,B00000000,B00000011,B00000000,B00000000,B00000000,B11111111,B11111111,B11000000,B00000000,B00111111,B11111111,B11111000
};
const unsigned char status_screen1_bmp[] PROGMEM = {
B11111111,B11111111,B11111111,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111111,B11111111,B11111000,
B10000000,B00000000,B00000001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111110,B00000000,B11111000,
B10001110,B00000000,B11100001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111000,B00001111,B00111000,
B10011111,B00000000,B11110001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00110100,B00011111,B11011000,
B10010011,B10000001,B00111001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00110110,B00011111,B10011000,
B10011111,B10000001,B11111001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00101111,B00011111,B00001000,
B10011111,B10000001,B11111001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00101111,B10011110,B00001000,
B10011111,B10111001,B11110001,B00000000,B00000000,B00011111,B11100000,B00000000,B00000000,B00001000,B00100000,B10000000,B00000000,B00101111,B11111100,B00001000,
B10001111,B00101000,B11110001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00000100,B00010000,B01000000,B00000000,B00101111,B11011100,B00001000,
B10000000,B00111000,B00000001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00000100,B00010000,B01000000,B00000000,B00100111,B11101111,B11001000,
B10000000,B00000000,B00000001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00001000,B00100000,B10000000,B00000000,B00100000,B01110111,B11101000,
B10011111,B11111111,B11111001,B00000000,B00000000,B00011111,B11100000,B00000000,B00000000,B00010000,B01000001,B00000000,B00000000,B00100000,B01111111,B11101000,
B10010001,B01110100,B10011001,B00000000,B00000000,B00011111,B11100000,B00000000,B00000000,B00100000,B10000010,B00000000,B00000000,B00100000,B11110011,B11101000,
B10011011,B00000110,B10101001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00100000,B10000010,B00000000,B00000000,B00100001,B11110001,B11101000,
B10011011,B01010100,B10101001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00010000,B01000001,B00000000,B00000000,B00110011,B11110000,B11011000,
B10011011,B01010110,B10101001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00001000,B00100000,B10000000,B00000000,B00110111,B11110000,B01011000,
B10011011,B01010100,B10011001,B00000000,B00000000,B00001111,B11000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111001,B11100000,B00111000,
B10011111,B11111111,B11111001,B00000000,B00000000,B00000111,B10000000,B00000000,B00000000,B11111111,B11111111,B11000000,B00000000,B00111110,B00000000,B11111000,
B11111111,B11111111,B11111111,B00000000,B00000000,B00000011,B00000000,B00000000,B00000000,B11111111,B11111111,B11000000,B00000000,B00111111,B11111111,B11111000
};
const unsigned char status_screen2_bmp[] PROGMEM = {
B11111111,B11111111,B11111111,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111111,B11111111,B11111000,
B10000000,B00000000,B00000001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111110,B10000000,B11111000,
B10001110,B00000000,B11100001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111001,B10000000,B00111000,
B10011111,B00000000,B11110001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00110111,B10000001,B11011000,
B10010011,B10000001,B00111001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00110111,B11000011,B11011000,
B10011111,B10000001,B11111001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00100111,B11000111,B11101000,
B10011111,B10000001,B11111001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00100011,B11000111,B11111000,
B10011111,B10111001,B11110001,B00000000,B00000000,B00011111,B11100000,B00000000,B00000000,B00001000,B00100000,B10000000,B00000000,B00100001,B11111111,B10001000,
B10001111,B00101000,B11110001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00000100,B00010000,B01000000,B00000000,B00100000,B01101100,B00001000,
B10000000,B00111000,B00000001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00000100,B00010000,B01000000,B00000000,B00100000,B01101100,B00001000,
B10000000,B00000000,B00000001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00001000,B00100000,B10000000,B00000000,B00100000,B01101100,B00001000,
B10011111,B11111111,B11111001,B00000000,B00000000,B00011111,B11100000,B00000000,B00000000,B00010000,B01000001,B00000000,B00000000,B00100011,B11111111,B00001000,
B10010001,B01110100,B10011001,B00000000,B00000000,B00011111,B11100000,B00000000,B00000000,B00100000,B10000010,B00000000,B00000000,B00111111,B11000111,B10001000,
B10011011,B00000110,B10101001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00100000,B10000010,B00000000,B00000000,B00101111,B11000111,B11001000,
B10011011,B01010100,B10101001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00010000,B01000001,B00000000,B00000000,B00110111,B10000111,B11011000,
B10011011,B01010110,B10101001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00001000,B00100000,B10000000,B00000000,B00110111,B00000011,B11011000,
B10011011,B01010100,B10011001,B00000000,B00000000,B00001111,B11000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111000,B00000011,B00111000,
B10011111,B11111111,B11111001,B00000000,B00000000,B00000111,B10000000,B00000000,B00000000,B11111111,B11111111,B11000000,B00000000,B00111110,B00000010,B11111000,
B11111111,B11111111,B11111111,B00000000,B00000000,B00000011,B00000000,B00000000,B00000000,B11111111,B11111111,B11000000,B00000000,B00111111,B11111111,B11111000
};
#elif FAN_ANIM_FRAMES == 4
const unsigned char status_screen0_bmp[] PROGMEM = {
B11111111,B11111111,B11111111,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111111,B11111111,B11111000,
B10000000,B00000000,B00000001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111110,B00000000,B11111000,
B10001110,B00000000,B11100001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111000,B00111111,B00111000,
B10011111,B00000000,B11110001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00110000,B01111110,B00011000,
B10010011,B10000001,B00111001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00110000,B01111100,B00011000,
B10011111,B10000001,B11111001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00101000,B01111100,B00001000,
B10011111,B10000001,B11111001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00101100,B00111000,B00001000,
B10011111,B10111001,B11110001,B00000000,B00000000,B00011111,B11100000,B00000000,B00000000,B00001000,B00100000,B10000000,B00000000,B00101111,B00111001,B11001000,
B10001111,B00101000,B11110001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00000100,B00010000,B01000000,B00000000,B00101111,B11111111,B11101000,
B10000000,B00111000,B00000001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00000100,B00010000,B01000000,B00000000,B00101111,B11000111,B11101000,
B10000000,B00000000,B00000001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00001000,B00100000,B10000000,B00000000,B00101111,B11111111,B11101000,
B10011111,B11111111,B11111001,B00000000,B00000000,B00011111,B11100000,B00000000,B00000000,B00010000,B01000001,B00000000,B00000000,B00100111,B00111001,B11101000,
B10010001,B01110100,B10011001,B00000000,B00000000,B00011111,B11100000,B00000000,B00000000,B00100000,B10000010,B00000000,B00000000,B00100000,B00111000,B01101000,
B10011011,B00000110,B10101001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00100000,B10000010,B00000000,B00000000,B00100000,B01111100,B00101000,
B10011011,B01010100,B10101001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00010000,B01000001,B00000000,B00000000,B00110000,B01111100,B00011000,
B10011011,B01010110,B10101001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00001000,B00100000,B10000000,B00000000,B00110000,B11111100,B00011000,
B10011011,B01010100,B10011001,B00000000,B00000000,B00001111,B11000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111001,B11111000,B00111000,
B10011111,B11111111,B11111001,B00000000,B00000000,B00000111,B10000000,B00000000,B00000000,B11111111,B11111111,B11000000,B00000000,B00111110,B00000000,B11111000,
B11111111,B11111111,B11111111,B00000000,B00000000,B00000011,B00000000,B00000000,B00000000,B11111111,B11111111,B11000000,B00000000,B00111111,B11111111,B11111000
};
const unsigned char status_screen1_bmp[] PROGMEM = {
B11111111,B11111111,B11111111,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111111,B11111111,B11111000,
B10000000,B00000000,B00000001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111110,B00000000,B11111000,
B10001110,B00000000,B11100001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111000,B00001111,B00111000,
B10011111,B00000000,B11110001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00110100,B00011111,B11011000,
B10010011,B10000001,B00111001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00110110,B00011111,B10011000,
B10011111,B10000001,B11111001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00101111,B00011111,B00001000,
B10011111,B10000001,B11111001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00101111,B10011110,B00001000,
B10011111,B10111001,B11110001,B00000000,B00000000,B00011111,B11100000,B00000000,B00000000,B00001000,B00100000,B10000000,B00000000,B00101111,B11111100,B00001000,
B10001111,B00101000,B11110001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00000100,B00010000,B01000000,B00000000,B00101111,B11011100,B00001000,
B10000000,B00111000,B00000001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00000100,B00010000,B01000000,B00000000,B00100111,B11101111,B11001000,
B10000000,B00000000,B00000001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00001000,B00100000,B10000000,B00000000,B00100000,B01110111,B11101000,
B10011111,B11111111,B11111001,B00000000,B00000000,B00011111,B11100000,B00000000,B00000000,B00010000,B01000001,B00000000,B00000000,B00100000,B01111111,B11101000,
B10010001,B01110100,B10011001,B00000000,B00000000,B00011111,B11100000,B00000000,B00000000,B00100000,B10000010,B00000000,B00000000,B00100000,B11110011,B11101000,
B10011011,B00000110,B10101001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00100000,B10000010,B00000000,B00000000,B00100001,B11110001,B11101000,
B10011011,B01010100,B10101001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00010000,B01000001,B00000000,B00000000,B00110011,B11110000,B11011000,
B10011011,B01010110,B10101001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00001000,B00100000,B10000000,B00000000,B00110111,B11110000,B01011000,
B10011011,B01010100,B10011001,B00000000,B00000000,B00001111,B11000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111001,B11100000,B00111000,
B10011111,B11111111,B11111001,B00000000,B00000000,B00000111,B10000000,B00000000,B00000000,B11111111,B11111111,B11000000,B00000000,B00111110,B00000000,B11111000,
B11111111,B11111111,B11111111,B00000000,B00000000,B00000011,B00000000,B00000000,B00000000,B11111111,B11111111,B11000000,B00000000,B00111111,B11111111,B11111000
};
const unsigned char status_screen2_bmp[] PROGMEM = {
B11111111,B11111111,B11111111,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111111,B11111111,B11111000,
B10000000,B00000000,B00000001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111110,B10000000,B11111000,
B10001110,B00000000,B11100001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111001,B10000000,B00111000,
B10011111,B00000000,B11110001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00110111,B10000001,B11011000,
B10010011,B10000001,B00111001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00110111,B11000011,B11011000,
B10011111,B10000001,B11111001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00100111,B11000111,B11101000,
B10011111,B10000001,B11111001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00100011,B11000111,B11111000,
B10011111,B10111001,B11110001,B00000000,B00000000,B00011111,B11100000,B00000000,B00000000,B00001000,B00100000,B10000000,B00000000,B00100001,B11111111,B10001000,
B10001111,B00101000,B11110001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00000100,B00010000,B01000000,B00000000,B00100000,B01101100,B00001000,
B10000000,B00111000,B00000001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00000100,B00010000,B01000000,B00000000,B00100000,B01101100,B00001000,
B10000000,B00000000,B00000001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00001000,B00100000,B10000000,B00000000,B00100000,B01101100,B00001000,
B10011111,B11111111,B11111001,B00000000,B00000000,B00011111,B11100000,B00000000,B00000000,B00010000,B01000001,B00000000,B00000000,B00100011,B11111111,B00001000,
B10010001,B01110100,B10011001,B00000000,B00000000,B00011111,B11100000,B00000000,B00000000,B00100000,B10000010,B00000000,B00000000,B00111111,B11000111,B10001000,
B10011011,B00000110,B10101001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00100000,B10000010,B00000000,B00000000,B00101111,B11000111,B11001000,
B10011011,B01010100,B10101001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00010000,B01000001,B00000000,B00000000,B00110111,B10000111,B11011000,
B10011011,B01010110,B10101001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00001000,B00100000,B10000000,B00000000,B00110111,B00000011,B11011000,
B10011011,B01010100,B10011001,B00000000,B00000000,B00001111,B11000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111000,B00000011,B00111000,
B10011111,B11111111,B11111001,B00000000,B00000000,B00000111,B10000000,B00000000,B00000000,B11111111,B11111111,B11000000,B00000000,B00111110,B00000010,B11111000,
B11111111,B11111111,B11111111,B00000000,B00000000,B00000011,B00000000,B00000000,B00000000,B11111111,B11111111,B11000000,B00000000,B00111111,B11111111,B11111000
};
const unsigned char status_screen3_bmp[] PROGMEM = {
B11111111,B11111111,B11111111,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111111,B11111111,B11111000,
B10000000,B00000000,B00000001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111110,B00000000,B11111000,
B10001110,B00000000,B11100001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111001,B11110000,B00111000,
B10011111,B00000000,B11110001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00110001,B11100000,B00011000,
B10010011,B10000001,B00111001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00110001,B11100000,B00011000,
B10011111,B10000001,B11111001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00100001,B11100001,B11101000,
B10011111,B10000001,B11111001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00100000,B11110011,B11101000,
B10011111,B10111001,B11110001,B00000000,B00000000,B00011111,B11100000,B00000000,B00000000,B00001000,B00100000,B10000000,B00000000,B00100000,B01111111,B11101000,
B10001111,B00101000,B11110001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00000100,B00010000,B01000000,B00000000,B00100000,B01110111,B11101000,
B10000000,B00111000,B00000001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00000100,B00010000,B01000000,B00000000,B00101000,B11101110,B00101000,
B10000000,B00000000,B00000001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00001000,B00100000,B10000000,B00000000,B00101111,B11011100,B00001000,
B10011111,B11111111,B11111001,B00000000,B00000000,B00011111,B11100000,B00000000,B00000000,B00010000,B01000001,B00000000,B00000000,B00101111,B11111100,B00001000,
B10010001,B01110100,B10011001,B00000000,B00000000,B00011111,B11100000,B00000000,B00000000,B00100000,B10000010,B00000000,B00000000,B00101111,B10011110,B00001000,
B10011011,B00000110,B10101001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00100000,B10000010,B00000000,B00000000,B00101111,B00001111,B00001000,
B10011011,B01010100,B10101001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00010000,B01000001,B00000000,B00000000,B00110000,B00001111,B00011000,
B10011011,B01010110,B10101001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00001000,B00100000,B10000000,B00000000,B00110000,B00001111,B00011000,
B10011011,B01010100,B10011001,B00000000,B00000000,B00001111,B11000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111000,B00011111,B00111000,
B10011111,B11111111,B11111001,B00000000,B00000000,B00000111,B10000000,B00000000,B00000000,B11111111,B11111111,B11000000,B00000000,B00111110,B00000000,B11111000,
B11111111,B11111111,B11111111,B00000000,B00000000,B00000011,B00000000,B00000000,B00000000,B11111111,B11111111,B11000000,B00000000,B00111111,B11111111,B11111000
};
#endif
#else // HOTENDS >= 2
#if FAN_ANIM_FRAMES <= 2
const unsigned char status_screen0_bmp[] PROGMEM = {
B00111101,B11110000,B00000010,B00111000,B11110000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111111,B11111111,B11110000,
B01000100,B10001000,B00000110,B01000101,B00010000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111000,B00000000,B01110000,
B10000000,B10001000,B00000010,B01000101,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00110000,B11111100,B00110000,
B10000000,B11110000,B00000010,B01000100,B10000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00100000,B11111100,B00010000,
B10000000,B10100011,B11110010,B01000100,B01100000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00100000,B01111000,B00010000,
B10000000,B10010000,B00000010,B01000100,B00010000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00100000,B00110000,B00010000,
B10000000,B10010000,B00000010,B01000100,B00010000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00101100,B00000000,B11010000,
B01000100,B10001000,B00000010,B01000101,B00010000,B00011111,B11100000,B00000001,B11111110,B00000000,B00001000,B00100000,B10000000,B00101110,B00110001,B11010000,
B00111001,B11001100,B00000111,B00111001,B11100000,B00111110,B11110000,B00000011,B11001111,B00000000,B00000100,B00010000,B01000000,B00101111,B01111011,B11010000,
B00000000,B00000000,B00000000,B00000000,B00000000,B00111100,B11110000,B00000011,B10110111,B00000000,B00000100,B00010000,B01000000,B00101111,B01111011,B11010000,
B00000000,B00111000,B01110000,B11100000,B00000000,B00111010,B11110000,B00000011,B11110111,B00000000,B00001000,B00100000,B10000000,B00101110,B00110001,B11010000,
B00000000,B01000100,B10001001,B00010000,B00000000,B00011110,B11100000,B00000001,B11101110,B00000000,B00010000,B01000001,B00000000,B00101100,B00000000,B11010000,
B00000000,B00000100,B10001001,B00010000,B00000000,B00011110,B11100000,B00000001,B11011110,B00000000,B00100000,B10000010,B00000000,B00100000,B00110000,B00010000,
B00000000,B00011000,B10001001,B00010000,B00000000,B00111110,B11110000,B00000011,B10111111,B00000000,B00100000,B10000010,B00000000,B00100000,B01111000,B00010000,
B00000000,B00000100,B10001001,B00010000,B00000000,B00111110,B11110000,B00000011,B10000111,B00000000,B00010000,B01000001,B00000000,B00100000,B11111100,B00010000,
B00000000,B00000100,B10001001,B00010000,B00000000,B00111111,B11110000,B00000011,B11111111,B00000000,B00001000,B00100000,B10000000,B00110000,B11111100,B00110000,
B00000000,B00000100,B10001001,B00010000,B00000000,B00001111,B11000000,B00000000,B11111100,B00000000,B00000000,B00000000,B00000000,B00111000,B00000000,B01110000,
B00000000,B01000100,B10001001,B00010000,B00000000,B00000111,B10000000,B00000000,B01111000,B00000000,B11111111,B11111111,B11000000,B00111111,B11111111,B11110000,
B00000000,B00111000,B01110000,B11100000,B00000000,B00000011,B00000000,B00000000,B00110000,B00000000,B11111111,B11111111,B11000000,B00000000,B00000000,B00000000
};
const unsigned char status_screen1_bmp[] PROGMEM = {
B00111101,B11110000,B00000010,B00111000,B11110000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111111,B11111111,B11110000,
B01000100,B10001000,B00000110,B01000101,B00010000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111000,B00000000,B01110000,
B10000000,B10001000,B00000010,B01000101,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00110011,B10000111,B00110000,
B10000000,B11110000,B00000010,B01000100,B10000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00100111,B10000111,B10010000,
B10000000,B10100011,B11110010,B01000100,B01100000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00101111,B10000111,B11010000,
B10000000,B10010000,B00000010,B01000100,B00010000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00101111,B10000111,B11010000,
B10000000,B10010000,B00000010,B01000100,B00010000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00101111,B00000011,B11010000,
B01000100,B10001000,B00000010,B01000101,B00010000,B00011111,B11100000,B00000001,B11111110,B00000000,B00001000,B00100000,B10000000,B00100000,B00110000,B00010000,
B00111001,B11001100,B00000111,B00111001,B11100000,B00111110,B11110000,B00000011,B11001111,B00000000,B00000100,B00010000,B01000000,B00100000,B01111000,B00010000,
B00000000,B00000000,B00000000,B00000000,B00000000,B00111100,B11110000,B00000011,B10110111,B00000000,B00000100,B00010000,B01000000,B00100000,B01111000,B00010000,
B00000000,B00111000,B01110000,B11100000,B00000000,B00111010,B11110000,B00000011,B11110111,B00000000,B00001000,B00100000,B10000000,B00100000,B00110000,B00010000,
B00000000,B01000100,B10001001,B00010000,B00000000,B00011110,B11100000,B00000001,B11101110,B00000000,B00010000,B01000001,B00000000,B00101111,B00000011,B11010000,
B00000000,B00000100,B10001001,B00010000,B00000000,B00011110,B11100000,B00000001,B11011110,B00000000,B00100000,B10000010,B00000000,B00101111,B10000111,B11010000,
B00000000,B00011000,B10001001,B00010000,B00000000,B00111110,B11110000,B00000011,B10111111,B00000000,B00100000,B10000010,B00000000,B00101111,B10000111,B11010000,
B00000000,B00000100,B10001001,B00010000,B00000000,B00111110,B11110000,B00000011,B10000111,B00000000,B00010000,B01000001,B00000000,B00100111,B10000111,B10010000,
B00000000,B00000100,B10001001,B00010000,B00000000,B00111111,B11110000,B00000011,B11111111,B00000000,B00001000,B00100000,B10000000,B00110011,B10000111,B00110000,
B00000000,B00000100,B10001001,B00010000,B00000000,B00001111,B11000000,B00000000,B11111100,B00000000,B00000000,B00000000,B00000000,B00111000,B00000000,B01110000,
B00000000,B01000100,B10001001,B00010000,B00000000,B00000111,B10000000,B00000000,B01111000,B00000000,B11111111,B11111111,B11000000,B00111111,B11111111,B11110000,
B00000000,B00111000,B01110000,B11100000,B00000000,B00000011,B00000000,B00000000,B00110000,B00000000,B11111111,B11111111,B11000000,B00000000,B00000000,B00000000
};
#elif FAN_ANIM_FRAMES == 3
const unsigned char status_screen0_bmp[] PROGMEM = {
B00111101,B11110000,B00000010,B00111000,B11110000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000111,B11111111,B11111111,
B01000100,B10001000,B00000110,B01000101,B00010000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000111,B11000000,B00011111,
B10000000,B10001000,B00000010,B01000101,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000111,B00100000,B00100111,
B10000000,B11110000,B00000010,B01000100,B10000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000110,B11110000,B01111011,
B10000000,B10100011,B11110010,B01000100,B01100000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000110,B11110000,B01111011,
B10000000,B10010000,B00000010,B01000100,B00010000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000101,B11111000,B11111101,
B10000000,B10010000,B00000010,B01000100,B00010000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000100,B11111000,B11111001,
B01000100,B10001000,B00000010,B01000101,B00010000,B00011111,B11100000,B00000001,B11111110,B00000000,B00001000,B00100000,B10000000,B00000100,B00111111,B11100001,
B00111001,B11001100,B00000111,B00111001,B11100000,B00111110,B11110000,B00000011,B11001111,B00000000,B00000100,B00010000,B01000000,B00000100,B00001111,B10000001,
B00000000,B00000000,B00000000,B00000000,B00000000,B00111100,B11110000,B00000011,B10110111,B00000000,B00000100,B00010000,B01000000,B00000100,B00001111,B10000001,
B00000000,B00111000,B01110000,B11100000,B00000000,B00111010,B11110000,B00000011,B11110111,B00000000,B00001000,B00100000,B10000000,B00000100,B00001111,B10000001,
B00000000,B01000100,B10001001,B00010000,B00000000,B00011110,B11100000,B00000001,B11101110,B00000000,B00010000,B01000001,B00000000,B00000100,B00111111,B11100001,
B00000000,B00000100,B10001001,B00010000,B00000000,B00011110,B11100000,B00000001,B11011110,B00000000,B00100000,B10000010,B00000000,B00000100,B11111000,B11111001,
B00000000,B00011000,B10001001,B00010000,B00000000,B00111110,B11110000,B00000011,B10111111,B00000000,B00100000,B10000010,B00000000,B00000101,B11111000,B11111101,
B00000000,B00000100,B10001001,B00010000,B00000000,B00111110,B11110000,B00000011,B10000111,B00000000,B00010000,B01000001,B00000000,B00000110,B11110000,B01111011,
B00000000,B00000100,B10001001,B00010000,B00000000,B00111111,B11110000,B00000011,B11111111,B00000000,B00001000,B00100000,B10000000,B00000110,B11110000,B01111011,
B00000000,B00000100,B10001001,B00010000,B00000000,B00001111,B11000000,B00000000,B11111100,B00000000,B00000000,B00000000,B00000000,B00000111,B00100000,B00100111,
B00000000,B01000100,B10001001,B00010000,B00000000,B00000111,B10000000,B00000000,B01111000,B00000000,B11111111,B11111111,B11000000,B00000111,B11000000,B00011111,
B00000000,B00111000,B01110000,B11100000,B00000000,B00000011,B00000000,B00000000,B00110000,B00000000,B11111111,B11111111,B11000000,B00000111,B11111111,B11111111
};
const unsigned char status_screen1_bmp[] PROGMEM = {
B00111101,B11110000,B00000010,B00111000,B11110000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000111,B11111111,B11111111,
B01000100,B10001000,B00000110,B01000101,B00010000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000111,B11000110,B00011111,
B10000000,B10001000,B00000010,B01000101,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000111,B00111110,B00000111,
B10000000,B11110000,B00000010,B01000100,B10000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000110,B00111110,B00000011,
B10000000,B10100011,B11110010,B01000100,B01100000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000110,B00011110,B00000011,
B10000000,B10010000,B00000010,B01000100,B00010000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000100,B00011110,B00001101,
B10000000,B10010000,B00000010,B01000100,B00010000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000100,B00000110,B00111101,
B01000100,B10001000,B00000010,B01000101,B00010000,B00011111,B11100000,B00000001,B11111110,B00000000,B00001000,B00100000,B10000000,B00000100,B00000111,B00111101,
B00111001,B11001100,B00000111,B00111001,B11100000,B00111110,B11110000,B00000011,B11001111,B00000000,B00000100,B00010000,B01000000,B00000100,B00001111,B11111111,
B00000000,B00000000,B00000000,B00000000,B00000000,B00111100,B11110000,B00000011,B10110111,B00000000,B00000100,B00010000,B01000000,B00000111,B11111111,B11111111,
B00000000,B00111000,B01110000,B11100000,B00000000,B00111010,B11110000,B00000011,B11110111,B00000000,B00001000,B00100000,B10000000,B00000111,B11111111,B10000001,
B00000000,B01000100,B10001001,B00010000,B00000000,B00011110,B11100000,B00000001,B11101110,B00000000,B00010000,B01000001,B00000000,B00000101,B11100111,B00000001,
B00000000,B00000100,B10001001,B00010000,B00000000,B00011110,B11100000,B00000001,B11011110,B00000000,B00100000,B10000010,B00000000,B00000101,B11000011,B00000001,
B00000000,B00011000,B10001001,B00010000,B00000000,B00111110,B11110000,B00000011,B10111111,B00000000,B00100000,B10000010,B00000000,B00000101,B10000011,B11000001,
B00000000,B00000100,B10001001,B00010000,B00000000,B00111110,B11110000,B00000011,B10000111,B00000000,B00010000,B01000001,B00000000,B00000110,B00000011,B11000011,
B00000000,B00000100,B10001001,B00010000,B00000000,B00111111,B11110000,B00000011,B11111111,B00000000,B00001000,B00100000,B10000000,B00000110,B00000011,B11100011,
B00000000,B00000100,B10001001,B00010000,B00000000,B00001111,B11000000,B00000000,B11111100,B00000000,B00000000,B00000000,B00000000,B00000111,B00000011,B11100111,
B00000000,B01000100,B10001001,B00010000,B00000000,B00000111,B10000000,B00000000,B01111000,B00000000,B11111111,B11111111,B11000000,B00000111,B11000011,B00011111,
B00000000,B00111000,B01110000,B11100000,B00000000,B00000011,B00000000,B00000000,B00110000,B00000000,B11111111,B11111111,B11000000,B00000111,B11111111,B11111111
};
const unsigned char status_screen2_bmp[] PROGMEM = {
B00111101,B11110000,B00000010,B00111000,B11110000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000111,B11111111,B11111111,
B01000100,B10001000,B00000110,B01000101,B00010000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000111,B11000011,B00011111,
B10000000,B10001000,B00000010,B01000101,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000111,B00000011,B11100111,
B10000000,B11110000,B00000010,B01000100,B10000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000110,B00000011,B11110011,
B10000000,B10100011,B11110010,B01000100,B01100000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000110,B10000011,B11100011,
B10000000,B10010000,B00000010,B01000100,B00010000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000101,B11000011,B11000001,
B10000000,B10010000,B00000010,B01000100,B00010000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000101,B11100011,B10000001,
B01000100,B10001000,B00000010,B01000101,B00010000,B00011111,B11100000,B00000001,B11111110,B00000000,B00001000,B00100000,B10000000,B00000101,B11110111,B00000001,
B00111001,B11001100,B00000111,B00111001,B11100000,B00111110,B11110000,B00000011,B11001111,B00000000,B00000100,B00010000,B01000000,B00000111,B11111111,B10000001,
B00000000,B00000000,B00000000,B00000000,B00000000,B00111100,B11110000,B00000011,B10110111,B00000000,B00000100,B00010000,B01000000,B00000111,B11111111,B11111111,
B00000000,B00111000,B01110000,B11100000,B00000000,B00111010,B11110000,B00000011,B11110111,B00000000,B00001000,B00100000,B10000000,B00000100,B00001111,B11111111,
B00000000,B01000100,B10001001,B00010000,B00000000,B00011110,B11100000,B00000001,B11101110,B00000000,B00010000,B01000001,B00000000,B00000100,B00000111,B01111101,
B00000000,B00000100,B10001001,B00010000,B00000000,B00011110,B11100000,B00000001,B11011110,B00000000,B00100000,B10000010,B00000000,B00000100,B00001110,B00111101,
B00000000,B00011000,B10001001,B00010000,B00000000,B00111110,B11110000,B00000011,B10111111,B00000000,B00100000,B10000010,B00000000,B00000100,B00011110,B00011101,
B00000000,B00000100,B10001001,B00010000,B00000000,B00111110,B11110000,B00000011,B10000111,B00000000,B00010000,B01000001,B00000000,B00000110,B00111110,B00001011,
B00000000,B00000100,B10001001,B00010000,B00000000,B00111111,B11110000,B00000011,B11111111,B00000000,B00001000,B00100000,B10000000,B00000110,B01111110,B00000011,
B00000000,B00000100,B10001001,B00010000,B00000000,B00001111,B11000000,B00000000,B11111100,B00000000,B00000000,B00000000,B00000000,B00000111,B00111110,B00000111,
B00000000,B01000100,B10001001,B00010000,B00000000,B00000111,B10000000,B00000000,B01111000,B00000000,B11111111,B11111111,B11000000,B00000111,B11000110,B00011111,
B00000000,B00111000,B01110000,B11100000,B00000000,B00000011,B00000000,B00000000,B00110000,B00000000,B11111111,B11111111,B11000000,B00000111,B11111111,B11111111
};
#elif FAN_ANIM_FRAMES == 4
const unsigned char status_screen0_bmp[] PROGMEM = {
B00111101,B11110000,B00000010,B00111000,B11110000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111111,B11111111,B11111000,
B01000100,B10001000,B00000110,B01000101,B00010000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111110,B00000000,B11111000,
B10000000,B10001000,B00000010,B01000101,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111000,B00111111,B00111000,
B10000000,B11110000,B00000010,B01000100,B10000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00110000,B01111110,B00011000,
B10000000,B10100011,B11110010,B01000100,B01100000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00110000,B01111100,B00011000,
B10000000,B10010000,B00000010,B01000100,B00010000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00101000,B01111100,B00001000,
B10000000,B10010000,B00000010,B01000100,B00010000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00101100,B00111000,B00001000,
B01000100,B10001000,B00000010,B01000101,B00010000,B00011111,B11100000,B00000001,B11111110,B00000000,B00001000,B00100000,B10000000,B00101111,B00111001,B11001000,
B00111001,B11001100,B00000111,B00111001,B11100000,B00111110,B11110000,B00000011,B11001111,B00000000,B00000100,B00010000,B01000000,B00101111,B11111111,B11101000,
B00000000,B00000000,B00000000,B00000000,B00000000,B00111100,B11110000,B00000011,B10110111,B00000000,B00000100,B00010000,B01000000,B00101111,B11000111,B11101000,
B00000000,B00111000,B01110000,B11100000,B00000000,B00111010,B11110000,B00000011,B11110111,B00000000,B00001000,B00100000,B10000000,B00101111,B11111111,B11101000,
B00000000,B01000100,B10001001,B00010000,B00000000,B00011110,B11100000,B00000001,B11101110,B00000000,B00010000,B01000001,B00000000,B00100111,B00111001,B11101000,
B00000000,B00000100,B10001001,B00010000,B00000000,B00011110,B11100000,B00000001,B11011110,B00000000,B00100000,B10000010,B00000000,B00100000,B00111000,B01101000,
B00000000,B00011000,B10001001,B00010000,B00000000,B00111110,B11110000,B00000011,B10111111,B00000000,B00100000,B10000010,B00000000,B00100000,B01111100,B00101000,
B00000000,B00000100,B10001001,B00010000,B00000000,B00111110,B11110000,B00000011,B10000111,B00000000,B00010000,B01000001,B00000000,B00110000,B01111100,B00011000,
B00000000,B00000100,B10001001,B00010000,B00000000,B00111111,B11110000,B00000011,B11111111,B00000000,B00001000,B00100000,B10000000,B00110000,B11111100,B00011000,
B00000000,B00000100,B10001001,B00010000,B00000000,B00001111,B11000000,B00000000,B11111100,B00000000,B00000000,B00000000,B00000000,B00111001,B11111000,B00111000,
B00000000,B01000100,B10001001,B00010000,B00000000,B00000111,B10000000,B00000000,B01111000,B00000000,B11111111,B11111111,B11000000,B00111110,B00000000,B11111000,
B00000000,B00111000,B01110000,B11100000,B00000000,B00000011,B00000000,B00000000,B00110000,B00000000,B11111111,B11111111,B11000000,B00111111,B11111111,B11111000
};
const unsigned char status_screen1_bmp[] PROGMEM = {
B00111101,B11110000,B00000010,B00111000,B11110000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111111,B11111111,B11111000,
B01000100,B10001000,B00000110,B01000101,B00010000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111110,B00000000,B11111000,
B10000000,B10001000,B00000010,B01000101,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111000,B00001111,B00111000,
B10000000,B11110000,B00000010,B01000100,B10000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00110100,B00011111,B11011000,
B10000000,B10100011,B11110010,B01000100,B01100000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00110110,B00011111,B10011000,
B10000000,B10010000,B00000010,B01000100,B00010000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00101111,B00011111,B00001000,
B10000000,B10010000,B00000010,B01000100,B00010000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00101111,B10011110,B00001000,
B01000100,B10001000,B00000010,B01000101,B00010000,B00011111,B11100000,B00000001,B11111110,B00000000,B00001000,B00100000,B10000000,B00101111,B11111100,B00001000,
B00111001,B11001100,B00000111,B00111001,B11100000,B00111110,B11110000,B00000011,B11001111,B00000000,B00000100,B00010000,B01000000,B00101111,B11011100,B00001000,
B00000000,B00000000,B00000000,B00000000,B00000000,B00111100,B11110000,B00000011,B10110111,B00000000,B00000100,B00010000,B01000000,B00100111,B11101111,B11001000,
B00000000,B00111000,B01110000,B11100000,B00000000,B00111010,B11110000,B00000011,B11110111,B00000000,B00001000,B00100000,B10000000,B00100000,B01110111,B11101000,
B00000000,B01000100,B10001001,B00010000,B00000000,B00011110,B11100000,B00000001,B11101110,B00000000,B00010000,B01000001,B00000000,B00100000,B01111111,B11101000,
B00000000,B00000100,B10001001,B00010000,B00000000,B00011110,B11100000,B00000001,B11011110,B00000000,B00100000,B10000010,B00000000,B00100000,B11110011,B11101000,
B00000000,B00011000,B10001001,B00010000,B00000000,B00111110,B11110000,B00000011,B10111111,B00000000,B00100000,B10000010,B00000000,B00100001,B11110001,B11101000,
B00000000,B00000100,B10001001,B00010000,B00000000,B00111110,B11110000,B00000011,B10000111,B00000000,B00010000,B01000001,B00000000,B00110011,B11110000,B11011000,
B00000000,B00000100,B10001001,B00010000,B00000000,B00111111,B11110000,B00000011,B11111111,B00000000,B00001000,B00100000,B10000000,B00110111,B11110000,B01011000,
B00000000,B00000100,B10001001,B00010000,B00000000,B00001111,B11000000,B00000000,B11111100,B00000000,B00000000,B00000000,B00000000,B00111001,B11100000,B00111000,
B00000000,B01000100,B10001001,B00010000,B00000000,B00000111,B10000000,B00000000,B01111000,B00000000,B11111111,B11111111,B11000000,B00111110,B00000000,B11111000,
B00000000,B00111000,B01110000,B11100000,B00000000,B00000011,B00000000,B00000000,B00110000,B00000000,B11111111,B11111111,B11000000,B00111111,B11111111,B11111000
};
const unsigned char status_screen2_bmp[] PROGMEM = {
B00111101,B11110000,B00000010,B00111000,B11110000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111111,B11111111,B11111000,
B01000100,B10001000,B00000110,B01000101,B00010000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111110,B10000000,B11111000,
B10000000,B10001000,B00000010,B01000101,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111001,B10000000,B00111000,
B10000000,B11110000,B00000010,B01000100,B10000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00110111,B10000001,B11011000,
B10000000,B10100011,B11110010,B01000100,B01100000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00110111,B11000011,B11011000,
B10000000,B10010000,B00000010,B01000100,B00010000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00100111,B11000111,B11101000,
B10000000,B10010000,B00000010,B01000100,B00010000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00100011,B11000111,B11111000,
B01000100,B10001000,B00000010,B01000101,B00010000,B00011111,B11100000,B00000001,B11111110,B00000000,B00001000,B00100000,B10000000,B00100001,B11111111,B10001000,
B00111001,B11001100,B00000111,B00111001,B11100000,B00111110,B11110000,B00000011,B11001111,B00000000,B00000100,B00010000,B01000000,B00100000,B01101100,B00001000,
B00000000,B00000000,B00000000,B00000000,B00000000,B00111100,B11110000,B00000011,B10110111,B00000000,B00000100,B00010000,B01000000,B00100000,B01101100,B00001000,
B00000000,B00111000,B01110000,B11100000,B00000000,B00111010,B11110000,B00000011,B11110111,B00000000,B00001000,B00100000,B10000000,B00100000,B01101100,B00001000,
B00000000,B01000100,B10001001,B00010000,B00000000,B00011110,B11100000,B00000001,B11101110,B00000000,B00010000,B01000001,B00000000,B00100011,B11111111,B00001000,
B00000000,B00000100,B10001001,B00010000,B00000000,B00011110,B11100000,B00000001,B11011110,B00000000,B00100000,B10000010,B00000000,B00111111,B11000111,B10001000,
B00000000,B00011000,B10001001,B00010000,B00000000,B00111110,B11110000,B00000011,B10111111,B00000000,B00100000,B10000010,B00000000,B00101111,B11000111,B11001000,
B00000000,B00000100,B10001001,B00010000,B00000000,B00111110,B11110000,B00000011,B10000111,B00000000,B00010000,B01000001,B00000000,B00110111,B10000111,B11011000,
B00000000,B00000100,B10001001,B00010000,B00000000,B00111111,B11110000,B00000011,B11111111,B00000000,B00001000,B00100000,B10000000,B00110111,B00000011,B11011000,
B00000000,B00000100,B10001001,B00010000,B00000000,B00001111,B11000000,B00000000,B11111100,B00000000,B00000000,B00000000,B00000000,B00111000,B00000011,B00111000,
B00000000,B01000100,B10001001,B00010000,B00000000,B00000111,B10000000,B00000000,B01111000,B00000000,B11111111,B11111111,B11000000,B00111110,B00000010,B11111000,
B00000000,B00111000,B01110000,B11100000,B00000000,B00000011,B00000000,B00000000,B00110000,B00000000,B11111111,B11111111,B11000000,B00111111,B11111111,B11111000
};
const unsigned char status_screen3_bmp[] PROGMEM = {
B00111101,B11110000,B00000010,B00111000,B11110000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111111,B11111111,B11111000,
B01000100,B10001000,B00000110,B01000101,B00010000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111110,B00000000,B11111000,
B10000000,B10001000,B00000010,B01000101,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111001,B11110000,B00111000,
B10000000,B11110000,B00000010,B01000100,B10000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00110001,B11100000,B00011000,
B10000000,B10100011,B11110010,B01000100,B01100000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00110001,B11100000,B00011000,
B10000000,B10010000,B00000010,B01000100,B00010000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00100001,B11100001,B11101000,
B10000000,B10010000,B00000010,B01000100,B00010000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00100000,B11110011,B11101000,
B01000100,B10001000,B00000010,B01000101,B00010000,B00011111,B11100000,B00000001,B11111110,B00000000,B00001000,B00100000,B10000000,B00100000,B01111111,B11101000,
B00111001,B11001100,B00000111,B00111001,B11100000,B00111110,B11110000,B00000011,B11001111,B00000000,B00000100,B00010000,B01000000,B00100000,B01110111,B11101000,
B00000000,B00000000,B00000000,B00000000,B00000000,B00111100,B11110000,B00000011,B10110111,B00000000,B00000100,B00010000,B01000000,B00101000,B11101110,B00101000,
B00000000,B00111000,B01110000,B11100000,B00000000,B00111010,B11110000,B00000011,B11110111,B00000000,B00001000,B00100000,B10000000,B00101111,B11011100,B00001000,
B00000000,B01000100,B10001001,B00010000,B00000000,B00011110,B11100000,B00000001,B11101110,B00000000,B00010000,B01000001,B00000000,B00101111,B11111100,B00001000,
B00000000,B00000100,B10001001,B00010000,B00000000,B00011110,B11100000,B00000001,B11011110,B00000000,B00100000,B10000010,B00000000,B00101111,B10011110,B00001000,
B00000000,B00011000,B10001001,B00010000,B00000000,B00111110,B11110000,B00000011,B10111111,B00000000,B00100000,B10000010,B00000000,B00101111,B00001111,B00001000,
B00000000,B00000100,B10001001,B00010000,B00000000,B00111110,B11110000,B00000011,B10000111,B00000000,B00010000,B01000001,B00000000,B00110000,B00001111,B00011000,
B00000000,B00000100,B10001001,B00010000,B00000000,B00111111,B11110000,B00000011,B11111111,B00000000,B00001000,B00100000,B10000000,B00110000,B00001111,B00011000,
B00000000,B00000100,B10001001,B00010000,B00000000,B00001111,B11000000,B00000000,B11111100,B00000000,B00000000,B00000000,B00000000,B00111000,B00011111,B00111000,
B00000000,B01000100,B10001001,B00010000,B00000000,B00000111,B10000000,B00000000,B01111000,B00000000,B11111111,B11111111,B11000000,B00111110,B00000000,B11111000,
B00000000,B00111000,B01110000,B11100000,B00000000,B00000011,B00000000,B00000000,B00110000,B00000000,B11111111,B11111111,B11000000,B00111111,B11111111,B11111000
};
#endif
#endif // HOTENDS >= 2
+1 -1
View File
@@ -308,7 +308,7 @@ void MarlinSettings::postprocess() {
#endif #endif
#if ENABLED(PIDTEMP) #if ENABLED(PIDTEMP)
thermalManager.update_pid(); thermalManager.updatePID();
#endif #endif
#if DISABLED(NO_VOLUMETRICS) #if DISABLED(NO_VOLUMETRICS)
@@ -743,7 +743,6 @@
//#define BLTOUCH //#define BLTOUCH
#if ENABLED(BLTOUCH) #if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed //#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif #endif
/** /**
@@ -1125,7 +1124,6 @@
#if ENABLED(LEVEL_BED_CORNERS) #if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling #define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner //#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif #endif
@@ -723,7 +723,6 @@
//#define BLTOUCH //#define BLTOUCH
#if ENABLED(BLTOUCH) #if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed //#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif #endif
/** /**
@@ -1105,7 +1104,6 @@
#if ENABLED(LEVEL_BED_CORNERS) #if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling #define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner //#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif #endif
@@ -762,7 +762,6 @@
//#define BLTOUCH //#define BLTOUCH
#if ENABLED(BLTOUCH) #if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed //#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif #endif
/** /**
@@ -1180,7 +1179,6 @@
#if ENABLED(LEVEL_BED_CORNERS) #if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling #define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner //#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif #endif
@@ -141,8 +141,8 @@
// :[1, 2, 3, 4, 5] // :[1, 2, 3, 4, 5]
#define EXTRUDERS 1 #define EXTRUDERS 1
// The Anet A6 original extruder is designed for 1.75mm // Generally expected filament diameter (1.75, 2.85, 3.0, ...). Used for Volumetric, Filament Width Sensor, etc.
#define DEFAULT_NOMINAL_FILAMENT_DIA 1.75 #define DEFAULT_NOMINAL_FILAMENT_DIA 3.0
// For Cyclops or any "multi-extruder" that shares a single nozzle. // For Cyclops or any "multi-extruder" that shares a single nozzle.
//#define SINGLENOZZLE //#define SINGLENOZZLE
@@ -771,7 +771,6 @@
//#define BLTOUCH //#define BLTOUCH
#if ENABLED(BLTOUCH) #if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed //#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif #endif
/** /**
@@ -1244,7 +1243,6 @@
#if ENABLED(LEVEL_BED_CORNERS) #if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling #define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner //#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif #endif
@@ -413,9 +413,9 @@
* heater. If your configuration is significantly different than this and you don't understand * heater. If your configuration is significantly different than this and you don't understand
* the issues involved, don't use bed PID until someone else verifies that your hardware works. * the issues involved, don't use bed PID until someone else verifies that your hardware works.
*/ */
#define PIDTEMPBED //#define PIDTEMPBED
//#define BED_LIMIT_SWITCHING #define BED_LIMIT_SWITCHING
/** /**
* Max Bed Power * Max Bed Power
@@ -431,9 +431,9 @@
//120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+) //120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)
//from FOPDT model - kp=.39 Tp=405 Tdead=66, Tc set to 79.2, aggressive factor of .15 (vs .1, 1, 10) //from FOPDT model - kp=.39 Tp=405 Tdead=66, Tc set to 79.2, aggressive factor of .15 (vs .1, 1, 10)
//#define DEFAULT_bedKp 10.00 #define DEFAULT_bedKp 10.00
//#define DEFAULT_bedKi .023 #define DEFAULT_bedKi .023
//#define DEFAULT_bedKd 305.4 #define DEFAULT_bedKd 305.4
//120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+) //120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)
//from pidautotune //from pidautotune
@@ -441,12 +441,6 @@
//#define DEFAULT_bedKi 1.41 //#define DEFAULT_bedKi 1.41
//#define DEFAULT_bedKd 1675.16 //#define DEFAULT_bedKd 1675.16
// ANET A8
// original Bed + 0.3mm Heat conducting into 4mm borosilicate (PID-Autotune: M303 E-1 S60 C5):
#define DEFAULT_bedKp 295.00
#define DEFAULT_bedKi 35.65
#define DEFAULT_bedKd 610.21
// FIND YOUR OWN: "M303 E-1 C8 S90" to run autotune on the bed at 90 degreesC for 8 cycles. // FIND YOUR OWN: "M303 E-1 C8 S90" to run autotune on the bed at 90 degreesC for 8 cycles.
#endif // PIDTEMPBED #endif // PIDTEMPBED
@@ -736,7 +730,6 @@
//#define BLTOUCH //#define BLTOUCH
#if ENABLED(BLTOUCH) #if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed //#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif #endif
/** /**
@@ -1118,7 +1111,6 @@
#if ENABLED(LEVEL_BED_CORNERS) #if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling #define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner //#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif #endif
@@ -723,7 +723,6 @@
//#define BLTOUCH //#define BLTOUCH
#if ENABLED(BLTOUCH) #if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed //#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif #endif
/** /**
@@ -1105,7 +1104,6 @@
#if ENABLED(LEVEL_BED_CORNERS) #if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling #define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner //#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif #endif
@@ -723,7 +723,6 @@
//#define BLTOUCH //#define BLTOUCH
#if ENABLED(BLTOUCH) #if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed //#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif #endif
/** /**
@@ -1105,7 +1104,6 @@
#if ENABLED(LEVEL_BED_CORNERS) #if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling #define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner //#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif #endif
@@ -711,7 +711,6 @@
//#define BLTOUCH //#define BLTOUCH
#if ENABLED(BLTOUCH) #if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed //#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif #endif
/** /**
@@ -1093,7 +1092,6 @@
#if ENABLED(LEVEL_BED_CORNERS) #if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling #define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner //#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif #endif
@@ -724,7 +724,6 @@
//#define BLTOUCH //#define BLTOUCH
#if ENABLED(BLTOUCH) #if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed //#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif #endif
/** /**
@@ -1103,7 +1102,6 @@
#if ENABLED(LEVEL_BED_CORNERS) #if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling #define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner //#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif #endif
@@ -711,7 +711,6 @@
//#define BLTOUCH //#define BLTOUCH
#if ENABLED(BLTOUCH) #if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed //#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif #endif
/** /**
@@ -1093,7 +1092,6 @@
#if ENABLED(LEVEL_BED_CORNERS) #if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling #define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner //#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif #endif
@@ -722,7 +722,6 @@
//#define BLTOUCH //#define BLTOUCH
#if ENABLED(BLTOUCH) #if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed //#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif #endif
/** /**
@@ -1104,7 +1103,6 @@
#if ENABLED(LEVEL_BED_CORNERS) #if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling #define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner //#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif #endif
@@ -733,7 +733,6 @@
//#define BLTOUCH //#define BLTOUCH
#if ENABLED(BLTOUCH) #if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed //#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif #endif
/** /**
@@ -1115,7 +1114,6 @@
#if ENABLED(LEVEL_BED_CORNERS) #if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling #define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner //#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif #endif
@@ -1154,7 +1152,7 @@
#endif #endif
// Homing speeds (mm/m) // Homing speeds (mm/m)
#define HOMING_FEEDRATE_XY (20*60) #define HOMING_FEEDRATE_XY (50*60)
#define HOMING_FEEDRATE_Z (4*60) #define HOMING_FEEDRATE_Z (4*60)
// @section calibrate // @section calibrate
View File
View File
@@ -727,7 +727,6 @@
//#define BLTOUCH //#define BLTOUCH
#if ENABLED(BLTOUCH) #if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed //#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif #endif
/** /**
@@ -1110,7 +1109,6 @@
#if ENABLED(LEVEL_BED_CORNERS) #if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling #define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner //#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif #endif
@@ -1149,7 +1147,7 @@
#endif #endif
// Homing speeds (mm/m) // Homing speeds (mm/m)
#define HOMING_FEEDRATE_XY (20*60) #define HOMING_FEEDRATE_XY (50*60)
#define HOMING_FEEDRATE_Z (4*60) #define HOMING_FEEDRATE_Z (4*60)
// @section calibrate // @section calibrate
@@ -620,7 +620,7 @@
* Override with M92 * Override with M92
* X, Y, Z, E0 [, E1[, E2[, E3[, E4]]]] * X, Y, Z, E0 [, E1[, E2[, E3[, E4]]]]
*/ */
#define DEFAULT_AXIS_STEPS_PER_UNIT { 79.60, 80, 400, 95 } #define DEFAULT_AXIS_STEPS_PER_UNIT { 79.60, 80, 400, 229.4 }
/** /**
* Default Max Feed Rate (mm/s) * Default Max Feed Rate (mm/s)
@@ -742,7 +742,6 @@
//#define BLTOUCH //#define BLTOUCH
#if ENABLED(BLTOUCH) #if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed //#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif #endif
/** /**
@@ -1124,7 +1123,6 @@
#if ENABLED(LEVEL_BED_CORNERS) #if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling #define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner //#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif #endif
@@ -1163,7 +1161,7 @@
#endif #endif
// Homing speeds (mm/m) // Homing speeds (mm/m)
#define HOMING_FEEDRATE_XY (20*60) #define HOMING_FEEDRATE_XY (50*60)
#define HOMING_FEEDRATE_Z (4*60) #define HOMING_FEEDRATE_Z (4*60)
// @section calibrate // @section calibrate
@@ -733,7 +733,6 @@
//#define BLTOUCH //#define BLTOUCH
#if ENABLED(BLTOUCH) #if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed //#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif #endif
/** /**
@@ -1115,7 +1114,6 @@
#if ENABLED(LEVEL_BED_CORNERS) #if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling #define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner //#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif #endif
@@ -1154,7 +1152,7 @@
#endif #endif
// Homing speeds (mm/m) // Homing speeds (mm/m)
#define HOMING_FEEDRATE_XY (20*60) #define HOMING_FEEDRATE_XY (50*60)
#define HOMING_FEEDRATE_Z (4*60) #define HOMING_FEEDRATE_Z (4*60)
// @section calibrate // @section calibrate
@@ -727,7 +727,6 @@
//#define BLTOUCH //#define BLTOUCH
#if ENABLED(BLTOUCH) #if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed //#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif #endif
/** /**
@@ -1109,7 +1108,6 @@
#if ENABLED(LEVEL_BED_CORNERS) #if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling #define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner //#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif #endif
@@ -1148,7 +1146,7 @@
#endif #endif
// Homing speeds (mm/m) // Homing speeds (mm/m)
#define HOMING_FEEDRATE_XY (20*60) #define HOMING_FEEDRATE_XY (50*60)
#define HOMING_FEEDRATE_Z (4*60) #define HOMING_FEEDRATE_Z (4*60)
// @section calibrate // @section calibrate
@@ -727,7 +727,6 @@
//#define BLTOUCH //#define BLTOUCH
#if ENABLED(BLTOUCH) #if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed //#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif #endif
/** /**
@@ -877,8 +876,8 @@
// @section machine // @section machine
// The size of the print bed // The size of the print bed
#define X_BED_SIZE 235 #define X_BED_SIZE 220
#define Y_BED_SIZE 235 #define Y_BED_SIZE 220
// Travel limits (mm) after homing, corresponding to endstop positions. // Travel limits (mm) after homing, corresponding to endstop positions.
#define X_MIN_POS 0 #define X_MIN_POS 0
@@ -1109,7 +1108,6 @@
#if ENABLED(LEVEL_BED_CORNERS) #if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling #define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner //#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif #endif
@@ -733,7 +733,6 @@
//#define BLTOUCH //#define BLTOUCH
#if ENABLED(BLTOUCH) #if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed //#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif #endif
/** /**
@@ -1115,7 +1114,6 @@
#if ENABLED(LEVEL_BED_CORNERS) #if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling #define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner //#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif #endif
@@ -1154,7 +1152,7 @@
#endif #endif
// Homing speeds (mm/m) // Homing speeds (mm/m)
#define HOMING_FEEDRATE_XY (20*60) #define HOMING_FEEDRATE_XY (50*60)
#define HOMING_FEEDRATE_Z (4*60) #define HOMING_FEEDRATE_Z (4*60)
// @section calibrate // @section calibrate
@@ -705,7 +705,6 @@
//#define BLTOUCH //#define BLTOUCH
#if ENABLED(BLTOUCH) #if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed //#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif #endif
/** /**
@@ -1087,7 +1086,6 @@
#if ENABLED(LEVEL_BED_CORNERS) #if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling #define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner //#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif #endif
@@ -705,7 +705,6 @@
//#define BLTOUCH //#define BLTOUCH
#if ENABLED(BLTOUCH) #if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed //#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif #endif
/** /**
@@ -1087,7 +1086,6 @@
#if ENABLED(LEVEL_BED_CORNERS) #if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling #define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner //#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif #endif
@@ -729,7 +729,6 @@
//#define BLTOUCH //#define BLTOUCH
#if ENABLED(BLTOUCH) #if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed //#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif #endif
/** /**
@@ -1111,7 +1110,6 @@
#if ENABLED(LEVEL_BED_CORNERS) #if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling #define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner //#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif #endif
@@ -738,7 +738,6 @@
//#define BLTOUCH //#define BLTOUCH
#if ENABLED(BLTOUCH) #if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed //#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif #endif
/** /**
@@ -1120,7 +1119,6 @@
#if ENABLED(LEVEL_BED_CORNERS) #if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling #define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner //#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif #endif
@@ -723,7 +723,6 @@
//#define BLTOUCH //#define BLTOUCH
#if ENABLED(BLTOUCH) #if ENABLED(BLTOUCH)
#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed #define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif #endif
/** /**
@@ -1105,7 +1104,6 @@
#if ENABLED(LEVEL_BED_CORNERS) #if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling #define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner //#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif #endif
@@ -739,7 +739,6 @@
#define BLTOUCH #define BLTOUCH
#if ENABLED(BLTOUCH) #if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed //#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif #endif
/** /**
@@ -1121,7 +1120,6 @@
#if ENABLED(LEVEL_BED_CORNERS) #if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling #define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner //#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif #endif
@@ -738,7 +738,6 @@
//#define BLTOUCH //#define BLTOUCH
#if ENABLED(BLTOUCH) #if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed //#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif #endif
/** /**
@@ -1120,7 +1119,6 @@
#if ENABLED(LEVEL_BED_CORNERS) #if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling #define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner //#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif #endif
@@ -723,7 +723,6 @@
//#define BLTOUCH //#define BLTOUCH
#if ENABLED(BLTOUCH) #if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed //#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif #endif
/** /**
@@ -1105,7 +1104,6 @@
#if ENABLED(LEVEL_BED_CORNERS) #if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling #define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner //#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif #endif
@@ -723,7 +723,6 @@
//#define BLTOUCH //#define BLTOUCH
#if ENABLED(BLTOUCH) #if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed //#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif #endif
/** /**
@@ -1105,7 +1104,6 @@
#if ENABLED(LEVEL_BED_CORNERS) #if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling #define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner //#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif #endif
@@ -727,7 +727,6 @@
//#define BLTOUCH //#define BLTOUCH
#if ENABLED(BLTOUCH) #if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed //#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif #endif
/** /**
@@ -1109,7 +1108,6 @@
#if ENABLED(LEVEL_BED_CORNERS) #if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling #define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner //#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif #endif
@@ -735,7 +735,6 @@
//#define BLTOUCH //#define BLTOUCH
#if ENABLED(BLTOUCH) #if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed //#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif #endif
/** /**
@@ -1116,7 +1115,6 @@
#if ENABLED(LEVEL_BED_CORNERS) #if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling #define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner //#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif #endif
@@ -743,7 +743,6 @@
//#define BLTOUCH //#define BLTOUCH
#if ENABLED(BLTOUCH) #if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed //#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif #endif
/** /**
@@ -1133,7 +1132,6 @@
#if ENABLED(LEVEL_BED_CORNERS) #if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling #define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner //#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif #endif
@@ -727,7 +727,6 @@
//#define BLTOUCH //#define BLTOUCH
#if ENABLED(BLTOUCH) #if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed //#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif #endif
/** /**
@@ -1109,7 +1108,6 @@
#if ENABLED(LEVEL_BED_CORNERS) #if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling #define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner //#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif #endif
@@ -727,7 +727,6 @@
//#define BLTOUCH //#define BLTOUCH
#if ENABLED(BLTOUCH) #if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed //#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif #endif
/** /**
@@ -1109,7 +1108,6 @@
#if ENABLED(LEVEL_BED_CORNERS) #if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling #define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner //#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif #endif
@@ -763,7 +763,6 @@ Black rubber belt(MXL), 18 - tooth aluminium pulley : 87.489 step per mm (Huxley
//#define BLTOUCH //#define BLTOUCH
#if ENABLED(BLTOUCH) #if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed //#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif #endif
/** /**
@@ -1154,7 +1153,6 @@ Black rubber belt(MXL), 18 - tooth aluminium pulley : 87.489 step per mm (Huxley
#if ENABLED(LEVEL_BED_CORNERS) #if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling #define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner //#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif #endif
@@ -723,7 +723,6 @@
//#define BLTOUCH //#define BLTOUCH
#if ENABLED(BLTOUCH) #if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed //#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif #endif
/** /**
@@ -1105,7 +1104,6 @@
#if ENABLED(LEVEL_BED_CORNERS) #if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling #define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner //#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif #endif
@@ -721,7 +721,6 @@
//#define BLTOUCH //#define BLTOUCH
#if ENABLED(BLTOUCH) #if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed //#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif #endif
/** /**
@@ -1103,7 +1102,6 @@
#if ENABLED(LEVEL_BED_CORNERS) #if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling #define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner //#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif #endif
@@ -736,7 +736,6 @@
//#define BLTOUCH //#define BLTOUCH
#if ENABLED(BLTOUCH) #if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed //#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif #endif
/** /**
@@ -1118,7 +1117,6 @@
#if ENABLED(LEVEL_BED_CORNERS) #if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling #define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner //#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif #endif
@@ -754,7 +754,6 @@
//#define BLTOUCH //#define BLTOUCH
#if ENABLED(BLTOUCH) #if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed //#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif #endif
/** /**
@@ -1136,7 +1135,6 @@
#if ENABLED(LEVEL_BED_CORNERS) #if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling #define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner //#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif #endif
@@ -774,7 +774,6 @@
//#define BLTOUCH //#define BLTOUCH
#if ENABLED(BLTOUCH) #if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed //#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif #endif
/** /**
@@ -1164,7 +1163,6 @@
#if ENABLED(LEVEL_BED_CORNERS) #if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling #define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner //#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif #endif
@@ -723,7 +723,6 @@
//#define BLTOUCH //#define BLTOUCH
#if ENABLED(BLTOUCH) #if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed //#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif #endif
/** /**
@@ -1105,7 +1104,6 @@
#if ENABLED(LEVEL_BED_CORNERS) #if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling #define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner //#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif #endif
@@ -723,7 +723,6 @@
//#define BLTOUCH //#define BLTOUCH
#if ENABLED(BLTOUCH) #if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed //#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif #endif
/** /**
@@ -1109,7 +1108,6 @@
#if ENABLED(LEVEL_BED_CORNERS) #if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling #define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner //#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif #endif
@@ -723,7 +723,6 @@
//#define BLTOUCH //#define BLTOUCH
#if ENABLED(BLTOUCH) #if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed //#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif #endif
/** /**
@@ -1105,7 +1104,6 @@
#if ENABLED(LEVEL_BED_CORNERS) #if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling #define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner //#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif #endif
@@ -734,7 +734,6 @@
//#define BLTOUCH //#define BLTOUCH
#if ENABLED(BLTOUCH) #if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed //#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif #endif
/** /**
@@ -1116,7 +1115,6 @@
#if ENABLED(LEVEL_BED_CORNERS) #if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling #define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner //#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif #endif
@@ -752,7 +752,6 @@
//#define BLTOUCH //#define BLTOUCH
#if ENABLED(BLTOUCH) #if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed //#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif #endif
/** /**
@@ -1135,7 +1134,6 @@
#if ENABLED(LEVEL_BED_CORNERS) #if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling #define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner //#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif #endif
@@ -723,7 +723,6 @@
//#define BLTOUCH //#define BLTOUCH
#if ENABLED(BLTOUCH) #if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed //#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif #endif
/** /**
@@ -1105,7 +1104,6 @@
#if ENABLED(LEVEL_BED_CORNERS) #if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling #define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner //#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif #endif
@@ -723,7 +723,6 @@
//#define BLTOUCH //#define BLTOUCH
#if ENABLED(BLTOUCH) #if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed //#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif #endif
/** /**
@@ -1105,7 +1104,6 @@
#if ENABLED(LEVEL_BED_CORNERS) #if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling #define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner //#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif #endif
@@ -733,7 +733,6 @@
//#define BLTOUCH //#define BLTOUCH
#if ENABLED(BLTOUCH) #if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed //#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif #endif
/** /**
@@ -1115,7 +1114,6 @@
#if ENABLED(LEVEL_BED_CORNERS) #if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling #define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner //#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif #endif
@@ -723,7 +723,6 @@
//#define BLTOUCH //#define BLTOUCH
#if ENABLED(BLTOUCH) #if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed //#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif #endif
/** /**
@@ -1105,7 +1104,6 @@
#if ENABLED(LEVEL_BED_CORNERS) #if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling #define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner //#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif #endif
@@ -862,7 +862,6 @@
//#define BLTOUCH //#define BLTOUCH
#if ENABLED(BLTOUCH) #if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed //#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif #endif
/** /**
@@ -1303,7 +1302,6 @@
#if ENABLED(LEVEL_BED_CORNERS) #if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling #define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner //#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif #endif
@@ -808,7 +808,6 @@
//#define BLTOUCH //#define BLTOUCH
#if ENABLED(BLTOUCH) #if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed //#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif #endif
/** /**
@@ -1241,7 +1240,6 @@
#if ENABLED(LEVEL_BED_CORNERS) #if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling #define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner //#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif #endif
@@ -808,7 +808,6 @@
//#define BLTOUCH //#define BLTOUCH
#if ENABLED(BLTOUCH) #if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed //#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif #endif
/** /**
@@ -1240,7 +1239,6 @@
#if ENABLED(LEVEL_BED_CORNERS) #if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling #define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner //#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif #endif
@@ -808,7 +808,6 @@
//#define BLTOUCH //#define BLTOUCH
#if ENABLED(BLTOUCH) #if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed //#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif #endif
/** /**
@@ -1240,7 +1239,6 @@
#if ENABLED(LEVEL_BED_CORNERS) #if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling #define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner //#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif #endif
@@ -813,7 +813,6 @@
//#define BLTOUCH //#define BLTOUCH
#if ENABLED(BLTOUCH) #if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed //#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif #endif
/** /**
@@ -1243,7 +1242,6 @@
#if ENABLED(LEVEL_BED_CORNERS) #if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling #define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner //#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif #endif
@@ -798,7 +798,6 @@
//#define BLTOUCH //#define BLTOUCH
#if ENABLED(BLTOUCH) #if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed //#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif #endif
/** /**
@@ -1228,7 +1227,6 @@
#if ENABLED(LEVEL_BED_CORNERS) #if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling #define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner //#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif #endif
@@ -798,7 +798,6 @@
//#define BLTOUCH //#define BLTOUCH
#if ENABLED(BLTOUCH) #if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed //#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif #endif
/** /**
@@ -1230,7 +1229,6 @@
#if ENABLED(LEVEL_BED_CORNERS) #if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling #define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner //#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif #endif
@@ -791,7 +791,6 @@
//#define BLTOUCH //#define BLTOUCH
#if ENABLED(BLTOUCH) #if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed //#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif #endif
/** /**
@@ -1231,7 +1230,6 @@
#if ENABLED(LEVEL_BED_CORNERS) #if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling #define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner //#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif #endif
@@ -801,7 +801,6 @@
//#define BLTOUCH //#define BLTOUCH
#if ENABLED(BLTOUCH) #if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed //#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif #endif
/** /**
@@ -1231,7 +1230,6 @@
#if ENABLED(LEVEL_BED_CORNERS) #if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling #define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner //#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif #endif
@@ -736,7 +736,6 @@
#define BLTOUCH #define BLTOUCH
#if ENABLED(BLTOUCH) #if ENABLED(BLTOUCH)
#define BLTOUCH_DELAY 500 // (ms) Enable and increase if needed #define BLTOUCH_DELAY 500 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif #endif
/** /**
@@ -1119,7 +1118,6 @@
#if ENABLED(LEVEL_BED_CORNERS) #if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling #define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner //#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif #endif
@@ -861,7 +861,6 @@
//#define BLTOUCH //#define BLTOUCH
#if ENABLED(BLTOUCH) #if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed //#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif #endif
/** /**
@@ -1276,7 +1275,6 @@
#if ENABLED(LEVEL_BED_CORNERS) #if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling #define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner //#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif #endif
@@ -726,7 +726,6 @@
//#define BLTOUCH //#define BLTOUCH
#if ENABLED(BLTOUCH) #if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed //#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif #endif
/** /**
@@ -1108,7 +1107,6 @@
#if ENABLED(LEVEL_BED_CORNERS) #if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling #define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner //#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif #endif
@@ -718,7 +718,6 @@
//#define BLTOUCH //#define BLTOUCH
#if ENABLED(BLTOUCH) #if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed //#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif #endif
/** /**
@@ -1100,7 +1099,6 @@
#if ENABLED(LEVEL_BED_CORNERS) #if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling #define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner //#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif #endif
@@ -728,7 +728,6 @@
//#define BLTOUCH //#define BLTOUCH
#if ENABLED(BLTOUCH) #if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed //#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
//#define BLTOUCH_V3
#endif #endif
/** /**
@@ -1110,7 +1109,6 @@
#if ENABLED(LEVEL_BED_CORNERS) #if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling #define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
//#define LEVEL_CENTER_TOO // Move to the center after the last corner //#define LEVEL_CENTER_TOO // Move to the center after the last corner
#endif #endif
+37 -58
View File
@@ -41,16 +41,11 @@
#define MSG_SD_INSERTED _UxGT("Karta vlozena") #define MSG_SD_INSERTED _UxGT("Karta vlozena")
#define MSG_SD_REMOVED _UxGT("Karta vyjmuta") #define MSG_SD_REMOVED _UxGT("Karta vyjmuta")
#define MSG_LCD_ENDSTOPS _UxGT("Endstopy") // max 8 znaku #define MSG_LCD_ENDSTOPS _UxGT("Endstopy") // max 8 znaku
#define MSG_LCD_SOFT_ENDSTOPS _UxGT("Soft Endstopy")
#define MSG_MAIN _UxGT("Hlavni nabidka") #define MSG_MAIN _UxGT("Hlavni nabidka")
#define MSG_AUTOSTART _UxGT("Autostart") #define MSG_AUTOSTART _UxGT("Autostart")
#define MSG_DISABLE_STEPPERS _UxGT("Uvolnit motory") #define MSG_DISABLE_STEPPERS _UxGT("Uvolnit motory")
#define MSG_DEBUG_MENU _UxGT("Nabidka ladeni") #define MSG_DEBUG_MENU _UxGT("Nabidka ladeni")
#if LCD_WIDTH >= 20 #define MSG_PROGRESS_BAR_TEST _UxGT("Test uk.prubehu")
#define MSG_PROGRESS_BAR_TEST _UxGT("Test ukaz. prubehu")
#else
#define MSG_PROGRESS_BAR_TEST _UxGT("Test uk. prubehu")
#endif
#define MSG_AUTO_HOME _UxGT("Domovska pozice") #define MSG_AUTO_HOME _UxGT("Domovska pozice")
#define MSG_AUTO_HOME_X _UxGT("Domu osa X") #define MSG_AUTO_HOME_X _UxGT("Domu osa X")
#define MSG_AUTO_HOME_Y _UxGT("Domu osa Y") #define MSG_AUTO_HOME_Y _UxGT("Domu osa Y")
@@ -96,7 +91,7 @@
#define MSG_UBL_BC_INSERT _UxGT("Vlozte kartu, zmerte") #define MSG_UBL_BC_INSERT _UxGT("Vlozte kartu, zmerte")
#define MSG_UBL_BC_INSERT2 _UxGT("Zmerte") #define MSG_UBL_BC_INSERT2 _UxGT("Zmerte")
#define MSG_UBL_BC_REMOVE _UxGT("Odstrante a zmerte") #define MSG_UBL_BC_REMOVE _UxGT("Odstrante a zmerte")
#define MSG_UBL_MOVING_TO_NEXT _UxGT("Presun na dalsi") #define MSG_UBL_MOVING_TO_NEXT _UxGT("Presoun na dalsi")
#define MSG_UBL_ACTIVATE_MESH _UxGT("Aktivovat UBL") #define MSG_UBL_ACTIVATE_MESH _UxGT("Aktivovat UBL")
#define MSG_UBL_DEACTIVATE_MESH _UxGT("Deaktivovat UBL") #define MSG_UBL_DEACTIVATE_MESH _UxGT("Deaktivovat UBL")
#define MSG_UBL_SET_BED_TEMP _UxGT("Teplota podlozky") #define MSG_UBL_SET_BED_TEMP _UxGT("Teplota podlozky")
@@ -130,7 +125,7 @@
#define MSG_UBL_OUTPUT_MAP_CSV _UxGT("Exportovat do CSV") #define MSG_UBL_OUTPUT_MAP_CSV _UxGT("Exportovat do CSV")
#define MSG_UBL_OUTPUT_MAP_BACKUP _UxGT("Zaloha do PC") #define MSG_UBL_OUTPUT_MAP_BACKUP _UxGT("Zaloha do PC")
#define MSG_UBL_INFO_UBL _UxGT("Info o UBL do PC") #define MSG_UBL_INFO_UBL _UxGT("Info o UBL do PC")
#define MSG_UBL_EDIT_MESH_MENU _UxGT("Upravit sit bodu") #define MSG_UBL_EDIT_MESH_MENU _UxGT("Upravit sit dobu")
#define MSG_UBL_FILLIN_AMOUNT _UxGT("Hustota mrizky") #define MSG_UBL_FILLIN_AMOUNT _UxGT("Hustota mrizky")
#define MSG_UBL_MANUAL_FILLIN _UxGT("Rucni hustota") #define MSG_UBL_MANUAL_FILLIN _UxGT("Rucni hustota")
#define MSG_UBL_SMART_FILLIN _UxGT("Chytra hustota") #define MSG_UBL_SMART_FILLIN _UxGT("Chytra hustota")
@@ -144,14 +139,14 @@
#define MSG_UBL_LOAD_MESH _UxGT("Nacist sit bodu") #define MSG_UBL_LOAD_MESH _UxGT("Nacist sit bodu")
#define MSG_UBL_SAVE_MESH _UxGT("Ulozit sit bodu") #define MSG_UBL_SAVE_MESH _UxGT("Ulozit sit bodu")
#define MSG_MESH_LOADED _UxGT("Sit %i nactena") #define MSG_MESH_LOADED _UxGT("Sit %i nactena")
#define MSG_MESH_SAVED _UxGT("Sit %i ulozena")
#define MSG_NO_STORAGE _UxGT("Nedostatek mista") #define MSG_NO_STORAGE _UxGT("Nedostatek mista")
#define MSG_UBL_SAVE_ERROR _UxGT("Ch.: Ulozit UBL") #define MSG_MESH_SAVED _UxGT("Sit %i ulozena")
#define MSG_UBL_RESTORE_ERROR _UxGT("Ch.: Obnovit UBL") #define MSG_UBL_SAVE_ERROR _UxGT("Err: Ulozit UBL")
#define MSG_UBL_RESTORE_ERROR _UxGT("Err: Obnovit UBL")
#define MSG_UBL_Z_OFFSET_STOPPED _UxGT("Konec Z-Offsetu") #define MSG_UBL_Z_OFFSET_STOPPED _UxGT("Konec Z-Offsetu")
#define MSG_UBL_STEP_BY_STEP_MENU _UxGT("UBL Postupne") #define MSG_UBL_STEP_BY_STEP_MENU _UxGT("UBL Postupne")
#define MSG_LED_CONTROL _UxGT("Nastaveni LED") #define MSG_LED_CONTROL _UxGT("LED Nastaveni")
#define MSG_LEDS _UxGT("Svetla") #define MSG_LEDS _UxGT("Svetla")
#define MSG_LED_PRESETS _UxGT("Svetla Predvolby") #define MSG_LED_PRESETS _UxGT("Svetla Predvolby")
#define MSG_SET_LEDS_RED _UxGT("Cervena") #define MSG_SET_LEDS_RED _UxGT("Cervena")
@@ -211,7 +206,6 @@
#define MSG_VC_JERK _UxGT("Vz-jerk") #define MSG_VC_JERK _UxGT("Vz-jerk")
#endif #endif
#define MSG_VE_JERK _UxGT("Ve-jerk") #define MSG_VE_JERK _UxGT("Ve-jerk")
#define MSG_JUNCTION_DEVIATION _UxGT("Odchylka spoje")
#define MSG_VELOCITY _UxGT("Rychlost") #define MSG_VELOCITY _UxGT("Rychlost")
#define MSG_VMAX _UxGT("Vmax ") #define MSG_VMAX _UxGT("Vmax ")
#define MSG_VMIN _UxGT("Vmin") #define MSG_VMIN _UxGT("Vmin")
@@ -256,13 +250,11 @@
#define MSG_PAUSE_PRINT _UxGT("Pozastavit tisk") #define MSG_PAUSE_PRINT _UxGT("Pozastavit tisk")
#define MSG_RESUME_PRINT _UxGT("Obnovit tisk") #define MSG_RESUME_PRINT _UxGT("Obnovit tisk")
#define MSG_STOP_PRINT _UxGT("Zastavit tisk") #define MSG_STOP_PRINT _UxGT("Zastavit tisk")
#define MSG_POWER_LOSS_RECOVERY _UxGT("Obnova vypadku")
#define MSG_CARD_MENU _UxGT("Tisknout z SD") #define MSG_CARD_MENU _UxGT("Tisknout z SD")
#define MSG_NO_CARD _UxGT("Zadna SD karta") #define MSG_NO_CARD _UxGT("Zadna SD karta")
#define MSG_DWELL _UxGT("Uspano...") #define MSG_DWELL _UxGT("Uspano...")
#define MSG_USERWAIT _UxGT("Cekani na uziv...") #define MSG_USERWAIT _UxGT("Cekani na uziv...")
#define MSG_PRINT_PAUSED _UxGT("Tisk pozastaven") #define MSG_PRINT_PAUSED _UxGT("Tisk pozastaven")
#define MSG_PRINTING _UxGT("Tisknu...")
#define MSG_PRINT_ABORTED _UxGT("Tisk zrusen") #define MSG_PRINT_ABORTED _UxGT("Tisk zrusen")
#define MSG_NO_MOVE _UxGT("Zadny pohyb.") #define MSG_NO_MOVE _UxGT("Zadny pohyb.")
#define MSG_KILLED _UxGT("PRERUSENO. ") #define MSG_KILLED _UxGT("PRERUSENO. ")
@@ -298,10 +290,8 @@
#define MSG_BABYSTEP_Z _UxGT("Babystep Z") #define MSG_BABYSTEP_Z _UxGT("Babystep Z")
#define MSG_ENDSTOP_ABORT _UxGT("Endstop abort") #define MSG_ENDSTOP_ABORT _UxGT("Endstop abort")
#define MSG_HEATING_FAILED_LCD _UxGT("Chyba zahrivani") #define MSG_HEATING_FAILED_LCD _UxGT("Chyba zahrivani")
#define MSG_HEATING_FAILED_LCD_BED _UxGT("Chyba zahr.podl.")
#define MSG_ERR_REDUNDANT_TEMP _UxGT("REDUND. TEPLOTA") #define MSG_ERR_REDUNDANT_TEMP _UxGT("REDUND. TEPLOTA")
#define MSG_THERMAL_RUNAWAY _UxGT("TEPLOTNI UNIK") #define MSG_THERMAL_RUNAWAY _UxGT("TEPLOTNI SKOK")
#define MSG_THERMAL_RUNAWAY_BED _UxGT("TEPL. UNIK PODL.")
#define MSG_ERR_MAXTEMP _UxGT("VYSOKA TEPLOTA") #define MSG_ERR_MAXTEMP _UxGT("VYSOKA TEPLOTA")
#define MSG_ERR_MINTEMP _UxGT("NIZKA TEPLOTA") #define MSG_ERR_MINTEMP _UxGT("NIZKA TEPLOTA")
#define MSG_ERR_MAXTEMP_BED _UxGT("VYS. TEPL. PODL.") #define MSG_ERR_MAXTEMP_BED _UxGT("VYS. TEPL. PODL.")
@@ -313,17 +303,7 @@
#define MSG_SHORT_HOUR _UxGT("h") #define MSG_SHORT_HOUR _UxGT("h")
#define MSG_SHORT_MINUTE _UxGT("m") #define MSG_SHORT_MINUTE _UxGT("m")
#define MSG_HEATING _UxGT("Zahrivani...") #define MSG_HEATING _UxGT("Zahrivani...")
#define MSG_COOLING _UxGT("Chlazeni...") #define MSG_BED_HEATING _UxGT("Zahrivani podl...")
#if LCD_WIDTH >= 20
#define MSG_BED_HEATING _UxGT("Zahrivani podlozky")
#else
#define MSG_BED_HEATING _UxGT("Zahrivani podl.")
#endif
#if LCD_WIDTH >= 20
#define MSG_BED_COOLING _UxGT("Chlazeni podlozky")
#else
#define MSG_BED_COOLING _UxGT("Chlazeni podl.")
#endif
#define MSG_DELTA_CALIBRATE _UxGT("Delta Kalibrace") #define MSG_DELTA_CALIBRATE _UxGT("Delta Kalibrace")
#define MSG_DELTA_CALIBRATE_X _UxGT("Kalibrovat X") #define MSG_DELTA_CALIBRATE_X _UxGT("Kalibrovat X")
#define MSG_DELTA_CALIBRATE_Y _UxGT("Kalibrovat Y") #define MSG_DELTA_CALIBRATE_Y _UxGT("Kalibrovat Y")
@@ -332,7 +312,6 @@
#define MSG_DELTA_SETTINGS _UxGT("Delta nastaveni") #define MSG_DELTA_SETTINGS _UxGT("Delta nastaveni")
#define MSG_DELTA_AUTO_CALIBRATE _UxGT("Autokalibrace") #define MSG_DELTA_AUTO_CALIBRATE _UxGT("Autokalibrace")
#define MSG_DELTA_HEIGHT_CALIBRATE _UxGT("Nast.vysku delty") #define MSG_DELTA_HEIGHT_CALIBRATE _UxGT("Nast.vysku delty")
#define MSG_DELTA_Z_OFFSET_CALIBRATE _UxGT("Nast. Z-ofset")
#define MSG_DELTA_DIAG_ROD _UxGT("Diag rameno") #define MSG_DELTA_DIAG_ROD _UxGT("Diag rameno")
#define MSG_DELTA_HEIGHT _UxGT("Vyska") #define MSG_DELTA_HEIGHT _UxGT("Vyska")
#define MSG_DELTA_RADIUS _UxGT("Polomer") #define MSG_DELTA_RADIUS _UxGT("Polomer")
@@ -385,36 +364,36 @@
#if LCD_HEIGHT >= 4 #if LCD_HEIGHT >= 4
// Up to 3 lines allowed // Up to 3 lines allowed
#define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Cekejte prosim") #define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Cekejte prosim")
#define MSG_FILAMENT_CHANGE_INIT_2 _UxGT("na zahajeni") #define MSG_FILAMENT_CHANGE_INIT_2 _UxGT("na zahajeni")
#define MSG_FILAMENT_CHANGE_INIT_3 _UxGT("vymeny filamentu") #define MSG_FILAMENT_CHANGE_INIT_3 _UxGT("vymeny filamentu")
#define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Cekejte prosim") #define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Cekejte prosim")
#define MSG_FILAMENT_CHANGE_UNLOAD_2 _UxGT("na vysunuti") #define MSG_FILAMENT_CHANGE_UNLOAD_2 _UxGT("na vysunuti")
#define MSG_FILAMENT_CHANGE_UNLOAD_3 _UxGT("filamentu") #define MSG_FILAMENT_CHANGE_UNLOAD_3 _UxGT("filamentu")
#define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Vlozte filament") #define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Vlozte filament")
#define MSG_FILAMENT_CHANGE_INSERT_2 _UxGT("a stisknete") #define MSG_FILAMENT_CHANGE_INSERT_2 _UxGT("a stisknete")
#define MSG_FILAMENT_CHANGE_INSERT_3 _UxGT("tlacitko...") #define MSG_FILAMENT_CHANGE_INSERT_3 _UxGT("tlacitko...")
#define MSG_FILAMENT_CHANGE_HEAT_1 _UxGT("Kliknete pro") #define MSG_FILAMENT_CHANGE_HEAT_1 _UxGT("Kliknete pro")
#define MSG_FILAMENT_CHANGE_HEAT_2 _UxGT("nahrati trysky") #define MSG_FILAMENT_CHANGE_HEAT_2 _UxGT("nahrati trysky")
#define MSG_FILAMENT_CHANGE_HEATING_1 _UxGT("Cekejte prosim") #define MSG_FILAMENT_CHANGE_HEATING_1 _UxGT("Cekejte prosim")
#define MSG_FILAMENT_CHANGE_HEATING_2 _UxGT("na nahrati tr.") #define MSG_FILAMENT_CHANGE_HEATING_2 _UxGT("na nahrati tr.")
#define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Cekejte prosim") #define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Cekejte prosim")
#define MSG_FILAMENT_CHANGE_LOAD_2 _UxGT("na zavedeni") #define MSG_FILAMENT_CHANGE_LOAD_2 _UxGT("na zavedeni")
#define MSG_FILAMENT_CHANGE_LOAD_3 _UxGT("filamentu") #define MSG_FILAMENT_CHANGE_LOAD_3 _UxGT("filamentu")
#define MSG_FILAMENT_CHANGE_PURGE_1 _UxGT("Vyckejte na") #define MSG_FILAMENT_CHANGE_PURGE_1 _UxGT("Vyckejte na")
#define MSG_FILAMENT_CHANGE_PURGE_2 _UxGT("vytlaceni") #define MSG_FILAMENT_CHANGE_PURGE_2 _UxGT("vytlaceni")
#define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Cekejte prosim") #define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Cekejte prosim")
#define MSG_FILAMENT_CHANGE_RESUME_2 _UxGT("na pokracovani") #define MSG_FILAMENT_CHANGE_RESUME_2 _UxGT("na pokracovani")
#define MSG_FILAMENT_CHANGE_RESUME_3 _UxGT("tisku") #define MSG_FILAMENT_CHANGE_RESUME_3 _UxGT("tisku")
#else // LCD_HEIGHT < 4 #else // LCD_HEIGHT < 4
// Up to 2 lines allowed // Up to 2 lines allowed
#define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Cekejte...") #define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Cekejte...")
#define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Vysouvani...") #define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Vysouvani...")
#define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Vlozte, kliknete") #define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Vlozte, kliknete")
#define MSG_FILAMENT_CHANGE_HEATING_1 _UxGT("Nahrivani...") #define MSG_FILAMENT_CHANGE_HEATING_1 _UxGT("Nahrivani...")
#define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Zavadeni...") #define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Zavadeni...")
#define MSG_FILAMENT_CHANGE_PURGE_1 _UxGT("Vytlacovani...") #define MSG_FILAMENT_CHANGE_PURGE_1 _UxGT("Vytlacovani...")
#define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Pokracovani...") #define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Pokracovani...")
#endif // LCD_HEIGHT < 4 #endif // LCD_HEIGHT < 4
#endif // LANGUAGE_CZ_H #endif // LANGUAGE_CZ_H
+44 -57
View File
@@ -49,11 +49,7 @@
#define MSG_AUTOSTART _UxGT("Autostart") #define MSG_AUTOSTART _UxGT("Autostart")
#define MSG_DISABLE_STEPPERS _UxGT("Uvolnit motory") #define MSG_DISABLE_STEPPERS _UxGT("Uvolnit motory")
#define MSG_DEBUG_MENU _UxGT("Nabídka ladění") #define MSG_DEBUG_MENU _UxGT("Nabídka ladění")
#if LCD_WIDTH >= 20 #define MSG_PROGRESS_BAR_TEST _UxGT("Test uk. průběhu")
#define MSG_PROGRESS_BAR_TEST _UxGT("Test ukaz. průběhu")
#else
#define MSG_PROGRESS_BAR_TEST _UxGT("Test uk. průběhu")
#endif
#define MSG_AUTO_HOME _UxGT("Domovská pozice") #define MSG_AUTO_HOME _UxGT("Domovská pozice")
#define MSG_AUTO_HOME_X _UxGT("Domů osa X") #define MSG_AUTO_HOME_X _UxGT("Domů osa X")
#define MSG_AUTO_HOME_Y _UxGT("Domů osa Y") #define MSG_AUTO_HOME_Y _UxGT("Domů osa Y")
@@ -112,8 +108,8 @@
#define MSG_UBL_DONE_EDITING_MESH _UxGT("Konec úprav sítě") #define MSG_UBL_DONE_EDITING_MESH _UxGT("Konec úprav sítě")
#define MSG_UBL_BUILD_CUSTOM_MESH _UxGT("Vlastní síť") #define MSG_UBL_BUILD_CUSTOM_MESH _UxGT("Vlastní síť")
#define MSG_UBL_BUILD_MESH_MENU _UxGT("Vytvořit síť") #define MSG_UBL_BUILD_MESH_MENU _UxGT("Vytvořit síť")
#define MSG_UBL_BUILD_PLA_MESH _UxGT("Síť bodů PLA") #define MSG_UBL_BUILD_PLA_MESH _UxGT("Síť bodu PLA")
#define MSG_UBL_BUILD_ABS_MESH _UxGT("Síť bodů ABS") #define MSG_UBL_BUILD_ABS_MESH _UxGT("Síť bodu ABS")
#define MSG_UBL_BUILD_COLD_MESH _UxGT("Studená síť bodů") #define MSG_UBL_BUILD_COLD_MESH _UxGT("Studená síť bodů")
#define MSG_UBL_MESH_HEIGHT_ADJUST _UxGT("Upravit výšku sítě") #define MSG_UBL_MESH_HEIGHT_ADJUST _UxGT("Upravit výšku sítě")
#define MSG_UBL_MESH_HEIGHT_AMOUNT _UxGT("Výška") #define MSG_UBL_MESH_HEIGHT_AMOUNT _UxGT("Výška")
@@ -123,8 +119,8 @@
#define MSG_UBL_VALIDATE_CUSTOM_MESH _UxGT("Kontrola vlast. sítě") #define MSG_UBL_VALIDATE_CUSTOM_MESH _UxGT("Kontrola vlast. sítě")
#define MSG_UBL_CONTINUE_MESH _UxGT("Pokračovat v síťi") #define MSG_UBL_CONTINUE_MESH _UxGT("Pokračovat v síťi")
#define MSG_UBL_MESH_LEVELING _UxGT("Síťové rovnání") #define MSG_UBL_MESH_LEVELING _UxGT("Síťové rovnání")
#define MSG_UBL_3POINT_MESH_LEVELING _UxGT("3-bodové rovnání") #define MSG_UBL_3POINT_MESH_LEVELING _UxGT("3-bodove rovnání")
#define MSG_UBL_GRID_MESH_LEVELING _UxGT("Mřížkové rovnání") #define MSG_UBL_GRID_MESH_LEVELING _UxGT("Mrizkove rovnání")
#define MSG_UBL_MESH_LEVEL _UxGT("Srovnat podložku") #define MSG_UBL_MESH_LEVEL _UxGT("Srovnat podložku")
#define MSG_UBL_SIDE_POINTS _UxGT("Postranní body") #define MSG_UBL_SIDE_POINTS _UxGT("Postranní body")
#define MSG_UBL_MAP_TYPE _UxGT("Typ sítě bodu") #define MSG_UBL_MAP_TYPE _UxGT("Typ sítě bodu")
@@ -149,12 +145,12 @@
#define MSG_MESH_LOADED _UxGT("Síť %i načtena") #define MSG_MESH_LOADED _UxGT("Síť %i načtena")
#define MSG_MESH_SAVED _UxGT("Síť %i uložena") #define MSG_MESH_SAVED _UxGT("Síť %i uložena")
#define MSG_NO_STORAGE _UxGT("Nedostatek místa") #define MSG_NO_STORAGE _UxGT("Nedostatek místa")
#define MSG_UBL_SAVE_ERROR _UxGT("Ch.: Uložit UBL") #define MSG_UBL_SAVE_ERROR _UxGT("Err: Uložit UBL")
#define MSG_UBL_RESTORE_ERROR _UxGT("Ch.: Obnovit UBL") #define MSG_UBL_RESTORE_ERROR _UxGT("Err: Obnovit UBL")
#define MSG_UBL_Z_OFFSET_STOPPED _UxGT("Konec Z-Offsetu") #define MSG_UBL_Z_OFFSET_STOPPED _UxGT("Konec Z-Offsetu")
#define MSG_UBL_STEP_BY_STEP_MENU _UxGT("UBL Postupně") #define MSG_UBL_STEP_BY_STEP_MENU _UxGT("UBL Postupně")
#define MSG_LED_CONTROL _UxGT("Nastavení LED") #define MSG_LED_CONTROL _UxGT("LED Nastavení")
#define MSG_LEDS _UxGT("Světla") #define MSG_LEDS _UxGT("Světla")
#define MSG_LED_PRESETS _UxGT("Světla Předvolby") #define MSG_LED_PRESETS _UxGT("Světla Předvolby")
#define MSG_SET_LEDS_RED _UxGT("Červená") #define MSG_SET_LEDS_RED _UxGT("Červená")
@@ -174,7 +170,7 @@
#define MSG_LED_BRIGHTNESS _UxGT("Jas") #define MSG_LED_BRIGHTNESS _UxGT("Jas")
#define MSG_USER_MENU _UxGT("Vlastní příkazy") #define MSG_USER_MENU _UxGT("Vlastní příkazy")
#define MSG_MOVING _UxGT("Posouvání...") #define MSG_MOVING _UxGT("Posouvani...")
#define MSG_FREE_XY _UxGT("Uvolnit XY") #define MSG_FREE_XY _UxGT("Uvolnit XY")
#define MSG_MOVE_X _UxGT("Posunout X") #define MSG_MOVE_X _UxGT("Posunout X")
#define MSG_MOVE_Y _UxGT("Posunout Y") #define MSG_MOVE_Y _UxGT("Posunout Y")
@@ -214,7 +210,6 @@
#define MSG_VC_JERK _UxGT("Vz-jerk") #define MSG_VC_JERK _UxGT("Vz-jerk")
#endif #endif
#define MSG_VE_JERK _UxGT("Ve-jerk") #define MSG_VE_JERK _UxGT("Ve-jerk")
#define MSG_JUNCTION_DEVIATION _UxGT("Odchylka spoje")
#define MSG_VELOCITY _UxGT("Rychlost") #define MSG_VELOCITY _UxGT("Rychlost")
#define MSG_VMAX _UxGT("Vmax ") #define MSG_VMAX _UxGT("Vmax ")
#define MSG_VMIN _UxGT("Vmin") #define MSG_VMIN _UxGT("Vmin")
@@ -259,7 +254,7 @@
#define MSG_PAUSE_PRINT _UxGT("Pozastavit tisk") #define MSG_PAUSE_PRINT _UxGT("Pozastavit tisk")
#define MSG_RESUME_PRINT _UxGT("Obnovit tisk") #define MSG_RESUME_PRINT _UxGT("Obnovit tisk")
#define MSG_STOP_PRINT _UxGT("Zastavit tisk") #define MSG_STOP_PRINT _UxGT("Zastavit tisk")
#define MSG_POWER_LOSS_RECOVERY _UxGT("Obnova výpadku") #define MSG_POWER_LOSS_RECOVERY _UxGT("Obnova vypadku")
#define MSG_CARD_MENU _UxGT("Tisknout z SD") #define MSG_CARD_MENU _UxGT("Tisknout z SD")
#define MSG_NO_CARD _UxGT("Žádná SD karta") #define MSG_NO_CARD _UxGT("Žádná SD karta")
#define MSG_DWELL _UxGT("Uspáno...") #define MSG_DWELL _UxGT("Uspáno...")
@@ -301,10 +296,10 @@
#define MSG_BABYSTEP_Z _UxGT("Babystep Z") #define MSG_BABYSTEP_Z _UxGT("Babystep Z")
#define MSG_ENDSTOP_ABORT _UxGT("Endstop abort") #define MSG_ENDSTOP_ABORT _UxGT("Endstop abort")
#define MSG_HEATING_FAILED_LCD _UxGT("Chyba zahřívání") #define MSG_HEATING_FAILED_LCD _UxGT("Chyba zahřívání")
#define MSG_HEATING_FAILED_LCD_BED _UxGT("Chyba zahř.podl.") #define MSG_HEATING_FAILED_LCD_BED _UxGT("Chyba zahř. podl.")
#define MSG_ERR_REDUNDANT_TEMP _UxGT("REDUND. TEPLOTA") #define MSG_ERR_REDUNDANT_TEMP _UxGT("REDUND. TEPLOTA")
#define MSG_THERMAL_RUNAWAY _UxGT("TEPLOTNÍ ÚNIK") #define MSG_THERMAL_RUNAWAY _UxGT("TEPLOTNÍ SKOK")
#define MSG_THERMAL_RUNAWAY_BED _UxGT("TEPL. ÚNIK PODL.") #define MSG_THERMAL_RUNAWAY_BED _UxGT("PODL. TEPL. SKOK")
#define MSG_ERR_MAXTEMP _UxGT("VYSOKÁ TEPLOTA") #define MSG_ERR_MAXTEMP _UxGT("VYSOKÁ TEPLOTA")
#define MSG_ERR_MINTEMP _UxGT("NÍZKA TEPLOTA") #define MSG_ERR_MINTEMP _UxGT("NÍZKA TEPLOTA")
#define MSG_ERR_MAXTEMP_BED _UxGT("VYS. TEPL. PODL.") #define MSG_ERR_MAXTEMP_BED _UxGT("VYS. TEPL. PODL.")
@@ -316,17 +311,9 @@
#define MSG_SHORT_HOUR _UxGT("h") #define MSG_SHORT_HOUR _UxGT("h")
#define MSG_SHORT_MINUTE _UxGT("m") #define MSG_SHORT_MINUTE _UxGT("m")
#define MSG_HEATING _UxGT("Zahřívání...") #define MSG_HEATING _UxGT("Zahřívání...")
#define MSG_COOLING _UxGT("Chlazení...") #define MSG_COOLING _UxGT("Chlazení")
#if LCD_WIDTH >= 20 #define MSG_BED_HEATING _UxGT("Zahřívání podl...")
#define MSG_BED_HEATING _UxGT("Zahřívání podložky") #define MSG_BED_COOLING _UxGT("Chlazení podl...")
#else
#define MSG_BED_HEATING _UxGT("Zahřívání podl.")
#endif
#if LCD_WIDTH >= 20
#define MSG_BED_COOLING _UxGT("Chlazení podložky")
#else
#define MSG_BED_COOLING _UxGT("Chlazení podl.")
#endif
#define MSG_DELTA_CALIBRATE _UxGT("Delta Kalibrace") #define MSG_DELTA_CALIBRATE _UxGT("Delta Kalibrace")
#define MSG_DELTA_CALIBRATE_X _UxGT("Kalibrovat X") #define MSG_DELTA_CALIBRATE_X _UxGT("Kalibrovat X")
#define MSG_DELTA_CALIBRATE_Y _UxGT("Kalibrovat Y") #define MSG_DELTA_CALIBRATE_Y _UxGT("Kalibrovat Y")
@@ -388,36 +375,36 @@
#if LCD_HEIGHT >= 4 #if LCD_HEIGHT >= 4
// Up to 3 lines allowed // Up to 3 lines allowed
#define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Čekejte prosím") #define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Čekejte prosím")
#define MSG_FILAMENT_CHANGE_INIT_2 _UxGT("na zahájení") #define MSG_FILAMENT_CHANGE_INIT_2 _UxGT("na zahájení")
#define MSG_FILAMENT_CHANGE_INIT_3 _UxGT("výměny filamentu") #define MSG_FILAMENT_CHANGE_INIT_3 _UxGT("výměny filamentu")
#define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Čekejte prosím") #define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Čekejte prosím")
#define MSG_FILAMENT_CHANGE_UNLOAD_2 _UxGT("na vysunuti") #define MSG_FILAMENT_CHANGE_UNLOAD_2 _UxGT("na vysunuti")
#define MSG_FILAMENT_CHANGE_UNLOAD_3 _UxGT("filamentu") #define MSG_FILAMENT_CHANGE_UNLOAD_3 _UxGT("filamentu")
#define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Vložte filament") #define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Vložte filament")
#define MSG_FILAMENT_CHANGE_INSERT_2 _UxGT("a stiskněte") #define MSG_FILAMENT_CHANGE_INSERT_2 _UxGT("a stiskněte")
#define MSG_FILAMENT_CHANGE_INSERT_3 _UxGT("tlačítko...") #define MSG_FILAMENT_CHANGE_INSERT_3 _UxGT("tlačítko...")
#define MSG_FILAMENT_CHANGE_HEAT_1 _UxGT("Klikněte pro") #define MSG_FILAMENT_CHANGE_HEAT_1 _UxGT("Klikněte pro")
#define MSG_FILAMENT_CHANGE_HEAT_2 _UxGT("nahřátí trysky") #define MSG_FILAMENT_CHANGE_HEAT_2 _UxGT("nahřátí trysky")
#define MSG_FILAMENT_CHANGE_HEATING_1 _UxGT("Čekejte prosím") #define MSG_FILAMENT_CHANGE_HEATING_1 _UxGT("Čekejte prosím")
#define MSG_FILAMENT_CHANGE_HEATING_2 _UxGT("na nahřátí tr.") #define MSG_FILAMENT_CHANGE_HEATING_2 _UxGT("na nahřátí tr.")
#define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Čekejte prosím") #define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Čekejte prosím")
#define MSG_FILAMENT_CHANGE_LOAD_2 _UxGT("na zavedení") #define MSG_FILAMENT_CHANGE_LOAD_2 _UxGT("na zavedení")
#define MSG_FILAMENT_CHANGE_LOAD_3 _UxGT("filamentu") #define MSG_FILAMENT_CHANGE_LOAD_3 _UxGT("filamentu")
#define MSG_FILAMENT_CHANGE_PURGE_1 _UxGT("Vyčkejte na") #define MSG_FILAMENT_CHANGE_PURGE_1 _UxGT("Vyčkejte na")
#define MSG_FILAMENT_CHANGE_PURGE_2 _UxGT("vytlačení") #define MSG_FILAMENT_CHANGE_PURGE_2 _UxGT("vytlačení")
#define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Čekejte prosím") #define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Čekejte prosím")
#define MSG_FILAMENT_CHANGE_RESUME_2 _UxGT("na pokračování") #define MSG_FILAMENT_CHANGE_RESUME_2 _UxGT("na pokračování")
#define MSG_FILAMENT_CHANGE_RESUME_3 _UxGT("tisku") #define MSG_FILAMENT_CHANGE_RESUME_3 _UxGT("tisku")
#else // LCD_HEIGHT < 4 #else // LCD_HEIGHT < 4
// Up to 2 lines allowed // Up to 2 lines allowed
#define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Čekejte...") #define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Čekejte...")
#define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Vysouvání...") #define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Vysouvání...")
#define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Vložte, klikněte") #define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Vložte, klikněte")
#define MSG_FILAMENT_CHANGE_HEATING_1 _UxGT("Nahřívání...") #define MSG_FILAMENT_CHANGE_HEATING_1 _UxGT("Nahřívání...")
#define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Zavádění...") #define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Zavádění...")
#define MSG_FILAMENT_CHANGE_PURGE_1 _UxGT("Vytlačování...") #define MSG_FILAMENT_CHANGE_PURGE_1 _UxGT("Vytlačování...")
#define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Pokračování...") #define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Pokračování...")
#endif // LCD_HEIGHT < 4 #endif // LCD_HEIGHT < 4
#endif // LANGUAGE_CZ_UTF_H #endif // LANGUAGE_CZ_UTF_H
+175 -187
View File
@@ -41,34 +41,33 @@
#define MSG_SD_INSERTED _UxGT("SD-Karte erkannt") #define MSG_SD_INSERTED _UxGT("SD-Karte erkannt")
#define MSG_SD_REMOVED _UxGT("SD-Karte entfernt") #define MSG_SD_REMOVED _UxGT("SD-Karte entfernt")
#define MSG_LCD_ENDSTOPS _UxGT("Endstopp") // Max length 8 characters #define MSG_LCD_ENDSTOPS _UxGT("Endstopp") // Max length 8 characters
#define MSG_LCD_SOFT_ENDSTOPS _UxGT("Soft-Endstopp")
#define MSG_MAIN _UxGT("Hauptmenü") #define MSG_MAIN _UxGT("Hauptmenü")
#define MSG_AUTOSTART _UxGT("Autostart") #define MSG_AUTOSTART _UxGT("Autostart")
#define MSG_DISABLE_STEPPERS _UxGT("Motoren deaktivieren") // M84 #define MSG_DISABLE_STEPPERS _UxGT("Motoren deaktivieren") // M84
#define MSG_DEBUG_MENU _UxGT("Debug-Menü") #define MSG_DEBUG_MENU _UxGT("Debug Menü")
#define MSG_PROGRESS_BAR_TEST _UxGT("Statusbalken-Test") #define MSG_PROGRESS_BAR_TEST _UxGT("Fortschrittsb. Test")
#define MSG_AUTO_HOME _UxGT("Home XYZ") // G28 #define MSG_AUTO_HOME _UxGT("Home") // G28
#define MSG_AUTO_HOME_X _UxGT("Home X") #define MSG_AUTO_HOME_X _UxGT("Home X")
#define MSG_AUTO_HOME_Y _UxGT("Home Y") #define MSG_AUTO_HOME_Y _UxGT("Home Y")
#define MSG_AUTO_HOME_Z _UxGT("Home Z") #define MSG_AUTO_HOME_Z _UxGT("Home Z")
#define MSG_TMC_Z_CALIBRATION _UxGT("Kalibriere Z") #define MSG_TMC_Z_CALIBRATION _UxGT("Kalibriere Z")
#define MSG_LEVEL_BED_HOMING _UxGT("Home XYZ") #define MSG_LEVEL_BED_HOMING _UxGT("Home XYZ")
#define MSG_LEVEL_BED_WAITING _UxGT("Klick zum Starten") #define MSG_LEVEL_BED_WAITING _UxGT("Klick für Start")
#define MSG_LEVEL_BED_NEXT_POINT _UxGT("Nächste Koordinate") #define MSG_LEVEL_BED_NEXT_POINT _UxGT("Nächste Koordinate")
#define MSG_LEVEL_BED_DONE _UxGT("Nivellieren fertig!") #define MSG_LEVEL_BED_DONE _UxGT("Fertig")
#define MSG_Z_FADE_HEIGHT _UxGT("Ausblendhöhe") #define MSG_Z_FADE_HEIGHT _UxGT("Ausblendhöhe")
#define MSG_SET_HOME_OFFSETS _UxGT("Setze Homeversatz") #define MSG_SET_HOME_OFFSETS _UxGT("Setze Homeversatz")
#define MSG_HOME_OFFSETS_APPLIED _UxGT("Homeversatz aktiv") #define MSG_HOME_OFFSETS_APPLIED _UxGT("Homeversatz aktiv")
#define MSG_SET_ORIGIN _UxGT("Setze Nullpunkte") //"G92 X0 Y0 Z0" commented out in ultralcd.cpp #define MSG_SET_ORIGIN _UxGT("Setze Nullpunkt") //"G92 X0 Y0 Z0" commented out in ultralcd.cpp
#define MSG_PREHEAT_1 _UxGT("Vorwärmen PLA") #define MSG_PREHEAT_1 _UxGT("Vorwärmen PLA")
#define MSG_PREHEAT_1_N _UxGT("Vorwärmen PLA ") #define MSG_PREHEAT_1_N _UxGT("Vorwärmen PLA ")
#define MSG_PREHEAT_1_ALL _UxGT("Vorw. PLA Alles") #define MSG_PREHEAT_1_ALL _UxGT("Vorw. PLA Alle")
#define MSG_PREHEAT_1_END _UxGT("Vorw. PLA Extr.") #define MSG_PREHEAT_1_END _UxGT("Vorw. PLA Extr.")
#define MSG_PREHEAT_1_BEDONLY _UxGT("Vorw. PLA Bett") #define MSG_PREHEAT_1_BEDONLY _UxGT("Vorw. PLA Bett")
#define MSG_PREHEAT_1_SETTINGS _UxGT("Vorw. PLA Einst.") #define MSG_PREHEAT_1_SETTINGS _UxGT("Vorw. PLA Einst.")
#define MSG_PREHEAT_2 _UxGT("Vorwärmen ABS") #define MSG_PREHEAT_2 _UxGT("Vorwärmen ABS")
#define MSG_PREHEAT_2_N _UxGT("Vorwärmen ABS ") #define MSG_PREHEAT_2_N _UxGT("Vorwärmen ABS ")
#define MSG_PREHEAT_2_ALL _UxGT("Vorw. ABS Alles") #define MSG_PREHEAT_2_ALL _UxGT("Vorw. ABS Alle")
#define MSG_PREHEAT_2_END _UxGT("Vorw. ABS Extr.") #define MSG_PREHEAT_2_END _UxGT("Vorw. ABS Extr.")
#define MSG_PREHEAT_2_BEDONLY _UxGT("Vorw. ABS Bett") #define MSG_PREHEAT_2_BEDONLY _UxGT("Vorw. ABS Bett")
#define MSG_PREHEAT_2_SETTINGS _UxGT("Vorw. ABS Einst.") #define MSG_PREHEAT_2_SETTINGS _UxGT("Vorw. ABS Einst.")
@@ -76,102 +75,20 @@
#define MSG_SWITCH_PS_ON _UxGT("Netzteil ein") #define MSG_SWITCH_PS_ON _UxGT("Netzteil ein")
#define MSG_SWITCH_PS_OFF _UxGT("Netzteil aus") #define MSG_SWITCH_PS_OFF _UxGT("Netzteil aus")
#define MSG_EXTRUDE _UxGT("Extrudieren") #define MSG_EXTRUDE _UxGT("Extrudieren")
#define MSG_RETRACT _UxGT("Rückzug") #define MSG_RETRACT _UxGT("Retract")
#define MSG_MOVE_AXIS _UxGT("Achse Bewegen") #define MSG_MOVE_AXIS _UxGT("Bewegen")
#define MSG_BED_LEVELING _UxGT("Bett-Nivellierung") #define MSG_BED_LEVELING _UxGT("Bett Nivellierung")
#define MSG_LEVEL_BED _UxGT("Bett nivellieren") #define MSG_LEVEL_BED _UxGT("Bett nivellieren")
#define MSG_LEVEL_CORNERS _UxGT("Ecken nivellieren") #define MSG_LEVEL_CORNERS _UxGT("Ecken nivellieren")
#define MSG_NEXT_CORNER _UxGT("Nächste Ecke") #define MSG_NEXT_CORNER _UxGT("Nächste Ecke")
#define MSG_EDITING_STOPPED _UxGT("Netzbearb. angeh.") #define MSG_EDITING_STOPPED _UxGT("Netzbearb. angeh.")
#define MSG_USER_MENU _UxGT("Benutzer-Menü") #define MSG_USER_MENU _UxGT("Benutzer Menü")
#define MSG_UBL_DOING_G29 _UxGT("G29 ausführen")
#define MSG_UBL_UNHOMED _UxGT("Home XYZ zuerst")
#define MSG_UBL_TOOLS _UxGT("UBL-Werkzeuge")
#define MSG_UBL_LEVEL_BED _UxGT("Unified Bed Leveling")
#define MSG_UBL_MANUAL_MESH _UxGT("Netz manuell erst.")
#define MSG_UBL_BC_INSERT _UxGT("Unterlegen & messen")
#define MSG_UBL_BC_INSERT2 _UxGT("Messen")
#define MSG_UBL_BC_REMOVE _UxGT("Entfernen & messen")
#define MSG_UBL_MOVING_TO_NEXT _UxGT("Nächster Punkt...")
#define MSG_UBL_ACTIVATE_MESH _UxGT("UBL aktivieren")
#define MSG_UBL_DEACTIVATE_MESH _UxGT("UBL deaktivieren")
#define MSG_UBL_SET_BED_TEMP _UxGT("Betttemperatur")
#define MSG_UBL_CUSTOM_BED_TEMP MSG_UBL_SET_BED_TEMP
#define MSG_UBL_SET_HOTEND_TEMP _UxGT("Hotend-Temp.")
#define MSG_UBL_CUSTOM_HOTEND_TEMP MSG_UBL_SET_HOTEND_TEMP
#define MSG_UBL_MESH_EDIT _UxGT("Netz bearbeiten")
#define MSG_UBL_EDIT_CUSTOM_MESH _UxGT("Eigenes Netz bearb.")
#define MSG_UBL_FINE_TUNE_MESH _UxGT("Feineinstellung...")
#define MSG_UBL_DONE_EDITING_MESH _UxGT("Bearbeitung beendet")
#define MSG_UBL_BUILD_CUSTOM_MESH _UxGT("Eigenes Netz erst.")
#define MSG_UBL_BUILD_MESH_MENU _UxGT("Netz erstellen")
#define MSG_UBL_BUILD_PLA_MESH _UxGT("Netz erstellen PLA")
#define MSG_UBL_BUILD_ABS_MESH _UxGT("Netz erstellen ABS")
#define MSG_UBL_BUILD_COLD_MESH _UxGT("Netz erstellen kalt")
#define MSG_UBL_MESH_HEIGHT_ADJUST _UxGT("Netzhöhe einst.")
#define MSG_UBL_MESH_HEIGHT_AMOUNT _UxGT("Höhe")
#define MSG_UBL_VALIDATE_MESH_MENU _UxGT("Netz validieren")
#define MSG_UBL_VALIDATE_PLA_MESH _UxGT("Netz validieren PLA")
#define MSG_UBL_VALIDATE_ABS_MESH _UxGT("Netz validieren ABS")
#define MSG_UBL_VALIDATE_CUSTOM_MESH _UxGT("Eig. Netz validieren")
#define MSG_UBL_CONTINUE_MESH _UxGT("Netzerst. forts.")
#define MSG_UBL_MESH_LEVELING _UxGT("Netz-Nivellierung")
#define MSG_UBL_3POINT_MESH_LEVELING _UxGT("3-Punkt-Nivell.")
#define MSG_UBL_GRID_MESH_LEVELING _UxGT("Gitternetz-Nivell.")
#define MSG_UBL_MESH_LEVEL _UxGT("Netz nivellieren")
#define MSG_UBL_SIDE_POINTS _UxGT("Eckpunkte")
#define MSG_UBL_MAP_TYPE _UxGT("Kartentyp")
#define MSG_UBL_OUTPUT_MAP _UxGT("Karte ausgeben")
#define MSG_UBL_OUTPUT_MAP_HOST _UxGT("Ausgabe für Host")
#define MSG_UBL_OUTPUT_MAP_CSV _UxGT("Ausgabe für CSV")
#define MSG_UBL_OUTPUT_MAP_BACKUP _UxGT("Externe Sicherung")
#define MSG_UBL_INFO_UBL _UxGT("UBL-Info ausgeben")
#define MSG_UBL_EDIT_MESH_MENU _UxGT("Netz bearbeiten")
#define MSG_UBL_FILLIN_AMOUNT _UxGT("Menge an Füllung")
#define MSG_UBL_MANUAL_FILLIN _UxGT("Manuelles Füllung")
#define MSG_UBL_SMART_FILLIN _UxGT("Cleveres Füllen")
#define MSG_UBL_FILLIN_MESH _UxGT("Netz Füllen")
#define MSG_UBL_INVALIDATE_ALL _UxGT("Alles annullieren")
#define MSG_UBL_INVALIDATE_CLOSEST _UxGT("Nächstlieg. ann.")
#define MSG_UBL_FINE_TUNE_ALL _UxGT("Feineinst. Alles")
#define MSG_UBL_FINE_TUNE_CLOSEST _UxGT("Feineinst. Nächstl.")
#define MSG_UBL_STORAGE_MESH_MENU _UxGT("Netz-Speicherplatz")
#define MSG_UBL_STORAGE_SLOT _UxGT("Speicherort")
#define MSG_UBL_LOAD_MESH _UxGT("Bettnetz laden")
#define MSG_UBL_SAVE_MESH _UxGT("Bettnetz speichern")
#define MSG_MESH_LOADED _UxGT("Netz %i geladen")
#define MSG_MESH_SAVED _UxGT("Netz %i gespeichert")
#define MSG_NO_STORAGE _UxGT("Kein Speicher")
#define MSG_UBL_SAVE_ERROR _UxGT("ERR:UBL speichern")
#define MSG_UBL_RESTORE_ERROR _UxGT("ERR:UBL wiederherst.")
#define MSG_UBL_Z_OFFSET_STOPPED _UxGT("Z-Versatz angehalten")
#define MSG_UBL_STEP_BY_STEP_MENU _UxGT("Schrittweises UBL")
#define MSG_LED_CONTROL _UxGT("LED-Steuerung")
#define MSG_LEDS _UxGT("Licht")
#define MSG_LED_PRESETS _UxGT("Licht-Einstellungen")
#define MSG_SET_LEDS_RED _UxGT("Rot")
#define MSG_SET_LEDS_ORANGE _UxGT("Orange")
#define MSG_SET_LEDS_YELLOW _UxGT("Gelb")
#define MSG_SET_LEDS_GREEN _UxGT("Grün")
#define MSG_SET_LEDS_BLUE _UxGT("Blau")
#define MSG_SET_LEDS_INDIGO _UxGT("Indigo")
#define MSG_SET_LEDS_VIOLET _UxGT("Violett")
#define MSG_SET_LEDS_WHITE _UxGT("Weiß")
#define MSG_SET_LEDS_DEFAULT _UxGT("Standard")
#define MSG_CUSTOM_LEDS _UxGT("Benutzerdef.")
#define MSG_INTENSITY_R _UxGT("Intensität Rot")
#define MSG_INTENSITY_G _UxGT("Intensität Grün")
#define MSG_INTENSITY_B _UxGT("Intensität Blau")
#define MSG_INTENSITY_W _UxGT("Intensität Weiß")
#define MSG_LED_BRIGHTNESS _UxGT("Helligkeit")
#define MSG_MOVING _UxGT("In Bewegung...") #define MSG_MOVING _UxGT("In Bewegung...")
#define MSG_FREE_XY _UxGT("Abstand XY") #define MSG_FREE_XY _UxGT("Abstand XY")
#define MSG_MOVE_X _UxGT("Bewege X") #define MSG_MOVE_X _UxGT("X")
#define MSG_MOVE_Y _UxGT("Bewege Y") #define MSG_MOVE_Y _UxGT("Y")
#define MSG_MOVE_Z _UxGT("Bewege Z") #define MSG_MOVE_Z _UxGT("Z")
#define MSG_MOVE_E _UxGT("Bewege Extruder") #define MSG_MOVE_E _UxGT("Extruder ")
#define MSG_MOVE_01MM _UxGT(" 0,1 mm") #define MSG_MOVE_01MM _UxGT(" 0,1 mm")
#define MSG_MOVE_1MM _UxGT(" 1,0 mm") #define MSG_MOVE_1MM _UxGT(" 1,0 mm")
#define MSG_MOVE_10MM _UxGT("10,0 mm") #define MSG_MOVE_10MM _UxGT("10,0 mm")
@@ -180,13 +97,13 @@
#define MSG_NOZZLE _UxGT("Düse") #define MSG_NOZZLE _UxGT("Düse")
#define MSG_BED _UxGT("Bett") #define MSG_BED _UxGT("Bett")
#define MSG_FAN_SPEED _UxGT("Lüfter") #define MSG_FAN_SPEED _UxGT("Lüfter")
#define MSG_EXTRA_FAN_SPEED _UxGT("Geschw. Extralüfter") #define MSG_EXTRA_FAN_SPEED _UxGT("Extra Lüfter")
#define MSG_FLOW _UxGT("Flussrate") #define MSG_FLOW _UxGT("Flussrate")
#define MSG_CONTROL _UxGT("Einstellungen") #define MSG_CONTROL _UxGT("Einstellungen")
#define MSG_MIN LCD_STR_THERMOMETER _UxGT(" min") #define MSG_MIN LCD_STR_THERMOMETER _UxGT(" min")
#define MSG_MAX LCD_STR_THERMOMETER _UxGT(" max") #define MSG_MAX LCD_STR_THERMOMETER _UxGT(" max")
#define MSG_FACTOR LCD_STR_THERMOMETER _UxGT(" Faktor") #define MSG_FACTOR LCD_STR_THERMOMETER _UxGT(" Faktor")
#define MSG_AUTOTEMP _UxGT("Auto Temperatur") #define MSG_AUTOTEMP _UxGT("AutoTemp")
#define MSG_ON _UxGT("Ein") #define MSG_ON _UxGT("Ein")
#define MSG_OFF _UxGT("Aus") #define MSG_OFF _UxGT("Aus")
#define MSG_PID_P _UxGT("PID P") #define MSG_PID_P _UxGT("PID P")
@@ -194,7 +111,7 @@
#define MSG_PID_D _UxGT("PID D") #define MSG_PID_D _UxGT("PID D")
#define MSG_PID_C _UxGT("PID C") #define MSG_PID_C _UxGT("PID C")
#define MSG_SELECT _UxGT("Auswählen") #define MSG_SELECT _UxGT("Auswählen")
#define MSG_ACC _UxGT("Beschleunigung") #define MSG_ACC _UxGT("A")
#define MSG_JERK _UxGT("Jerk") #define MSG_JERK _UxGT("Jerk")
#if IS_KINEMATIC #if IS_KINEMATIC
#define MSG_VA_JERK _UxGT("V A Jerk") #define MSG_VA_JERK _UxGT("V A Jerk")
@@ -206,14 +123,13 @@
#define MSG_VC_JERK _UxGT("V Z Jerk") #define MSG_VC_JERK _UxGT("V Z Jerk")
#endif #endif
#define MSG_VE_JERK _UxGT("V E Jerk") #define MSG_VE_JERK _UxGT("V E Jerk")
#define MSG_JUNCTION_DEVIATION _UxGT("Junction Dev")
#define MSG_VELOCITY _UxGT("Geschwindigkeit") #define MSG_VELOCITY _UxGT("Geschwindigkeit")
#define MSG_VMAX _UxGT("V max ") // space intentional #define MSG_VMAX _UxGT("V max ") // space by purpose
#define MSG_VMIN _UxGT("V min") #define MSG_VMIN _UxGT("V min")
#define MSG_VTRAV_MIN _UxGT("V min Leerfahrt") #define MSG_VTRAV_MIN _UxGT("V min Leerfahrt")
#define MSG_ACCELERATION _UxGT("Beschleunigung") #define MSG_ACCELERATION _UxGT("Beschleunigung")
#define MSG_AMAX _UxGT("A max ") // space intentional #define MSG_AMAX _UxGT("A max ") // space by purpose
#define MSG_A_RETRACT _UxGT("A Rückzug") #define MSG_A_RETRACT _UxGT("A Retract")
#define MSG_A_TRAVEL _UxGT("A Leerfahrt") #define MSG_A_TRAVEL _UxGT("A Leerfahrt")
#define MSG_STEPS_PER_MM _UxGT("Steps/mm") #define MSG_STEPS_PER_MM _UxGT("Steps/mm")
#if IS_KINEMATIC #if IS_KINEMATIC
@@ -235,11 +151,11 @@
#define MSG_MOTION _UxGT("Bewegung") #define MSG_MOTION _UxGT("Bewegung")
#define MSG_FILAMENT _UxGT("Filament") #define MSG_FILAMENT _UxGT("Filament")
#define MSG_VOLUMETRIC_ENABLED _UxGT("E in mm³") #define MSG_VOLUMETRIC_ENABLED _UxGT("E in mm³")
#define MSG_FILAMENT_DIAM _UxGT("Durchm. Filament") #define MSG_FILAMENT_DIAM _UxGT("D Fil.")
#define MSG_FILAMENT_UNLOAD _UxGT("Entladen mm") #define MSG_FILAMENT_UNLOAD _UxGT("Entladen mm")
#define MSG_FILAMENT_LOAD _UxGT("Laden mm") #define MSG_FILAMENT_LOAD _UxGT("Laden mm")
#define MSG_ADVANCE_K _UxGT("Vorschubfaktor") #define MSG_ADVANCE_K _UxGT("Advance Faktor")
#define MSG_CONTRAST _UxGT("LCD-Kontrast") #define MSG_CONTRAST _UxGT("LCD Kontrast")
#define MSG_STORE_EEPROM _UxGT("Konfig. speichern") #define MSG_STORE_EEPROM _UxGT("Konfig. speichern")
#define MSG_LOAD_EEPROM _UxGT("Konfig. laden") #define MSG_LOAD_EEPROM _UxGT("Konfig. laden")
#define MSG_RESTORE_FAILSAFE _UxGT("Standardwerte laden") #define MSG_RESTORE_FAILSAFE _UxGT("Standardwerte laden")
@@ -248,52 +164,49 @@
#define MSG_WATCH _UxGT("Info") #define MSG_WATCH _UxGT("Info")
#define MSG_PREPARE _UxGT("Vorbereitung") #define MSG_PREPARE _UxGT("Vorbereitung")
#define MSG_TUNE _UxGT("Justierung") #define MSG_TUNE _UxGT("Justierung")
#define MSG_PAUSE_PRINT _UxGT("SD-Druck pausieren") #define MSG_PAUSE_PRINT _UxGT("SD-Druck Pause")
#define MSG_RESUME_PRINT _UxGT("SD-Druck fortsetzen") #define MSG_RESUME_PRINT _UxGT("SD-Druck Fortsetzung")
#define MSG_STOP_PRINT _UxGT("SD-Druck abbrechen") #define MSG_STOP_PRINT _UxGT("SD-Druck Abbruch")
#define MSG_POWER_LOSS_RECOVERY _UxGT("Wiederh. n. Stroma.") #define MSG_CARD_MENU _UxGT("SD-Karte")
#define MSG_CARD_MENU _UxGT("Druck v. SD-Karte")
#define MSG_NO_CARD _UxGT("Keine SD-Karte") #define MSG_NO_CARD _UxGT("Keine SD-Karte")
#define MSG_DWELL _UxGT("Warten...") #define MSG_DWELL _UxGT("Warten...")
#define MSG_USERWAIT _UxGT("Klick zum Fortsetzen") #define MSG_USERWAIT _UxGT("Warte auf Nutzer")
#define MSG_PRINT_PAUSED _UxGT("Druck pausiert...") #define MSG_PRINT_PAUSED _UxGT("Druck pausiert")
#define MSG_PRINTING _UxGT("Druckt...")
#define MSG_PRINT_ABORTED _UxGT("Druck abgebrochen") #define MSG_PRINT_ABORTED _UxGT("Druck abgebrochen")
#define MSG_NO_MOVE _UxGT("Motoren angeschaltet") #define MSG_NO_MOVE _UxGT("Motoren eingeschaltet")
#define MSG_KILLED _UxGT("ABGEBROCHEN") #define MSG_KILLED _UxGT("ABGEBROCHEN")
#define MSG_STOPPED _UxGT("ANGEHALTEN") #define MSG_STOPPED _UxGT("ANGEHALTEN")
#define MSG_CONTROL_RETRACT _UxGT("Rückzug mm") #define MSG_CONTROL_RETRACT _UxGT("Retract mm")
#define MSG_CONTROL_RETRACT_SWAP _UxGT("Wechs. Rückzug mm") #define MSG_CONTROL_RETRACT_SWAP _UxGT("Wechs. Retract mm")
#define MSG_CONTROL_RETRACTF _UxGT("Rückzug V") #define MSG_CONTROL_RETRACTF _UxGT("Retract V")
#define MSG_CONTROL_RETRACT_ZLIFT _UxGT("Z-Sprung mm") #define MSG_CONTROL_RETRACT_ZLIFT _UxGT("Z-Hop mm")
#define MSG_CONTROL_RETRACT_RECOVER _UxGT("UnRet mm") #define MSG_CONTROL_RETRACT_RECOVER _UxGT("UnRet mm")
#define MSG_CONTROL_RETRACT_RECOVER_SWAP _UxGT("Wechs. UnRet mm") #define MSG_CONTROL_RETRACT_RECOVER_SWAP _UxGT("Wechs. UnRet mm")
#define MSG_CONTROL_RETRACT_RECOVERF _UxGT("UnRet V") #define MSG_CONTROL_RETRACT_RECOVERF _UxGT("UnRet V")
#define MSG_CONTROL_RETRACT_RECOVER_SWAPF _UxGT("S UnRet V") #define MSG_CONTROL_RETRACT_RECOVER_SWAPF _UxGT("S UnRet V")
#define MSG_AUTORETRACT _UxGT("Autom. Rückzug") #define MSG_AUTORETRACT _UxGT("Autom. Retract")
#define MSG_FILAMENTCHANGE _UxGT("Filament wechseln") #define MSG_FILAMENTCHANGE _UxGT("Filament wechseln")
#define MSG_FILAMENTLOAD _UxGT("Filament laden") #define MSG_FILAMENTLOAD _UxGT("Filament laden")
#define MSG_FILAMENTUNLOAD _UxGT("Filament entladen") #define MSG_FILAMENTUNLOAD _UxGT("Filament entladen")
#define MSG_FILAMENTUNLOAD_ALL _UxGT("Alles entladen") #define MSG_FILAMENTUNLOAD_ALL _UxGT("Alles entladen")
#define MSG_INIT_SDCARD _UxGT("SD-Karte initialisi.") // Manually initialize the SD-card via user interface #define MSG_INIT_SDCARD _UxGT("SD-Karte erkennen") // Manually initialize the SD-card via user interface
#define MSG_CNG_SDCARD _UxGT("SD-Karte getauscht") // SD-card changed by user. For machines with no autocarddetect. Both send "M21" #define MSG_CNG_SDCARD _UxGT("SD-Karte getauscht") // SD-card changed by user. For machines with no autocarddetect. Both send "M21"
#define MSG_ZPROBE_OUT _UxGT("Z-Sonde außerhalb") #define MSG_ZPROBE_OUT _UxGT("Sensor ausserhalb")
#define MSG_SKEW_FACTOR _UxGT("Korrekturfaktor") #define MSG_SKEW_FACTOR _UxGT("Skew Faktor")
#define MSG_BLTOUCH _UxGT("BLTouch") #define MSG_BLTOUCH _UxGT("BLTouch")
#define MSG_BLTOUCH_SELFTEST _UxGT("BLTouch Selbsttest") #define MSG_BLTOUCH_SELFTEST _UxGT("BLTouch Test")
#define MSG_BLTOUCH_RESET _UxGT("BLTouch zurücks.") #define MSG_BLTOUCH_RESET _UxGT("BLTouch Reset")
#define MSG_BLTOUCH_DEPLOY _UxGT("BLTouch ausfahren") #define MSG_BLTOUCH_DEPLOY _UxGT("BLTouch ausfahren")
#define MSG_BLTOUCH_STOW _UxGT("BLTouch einfahren") #define MSG_BLTOUCH_STOW _UxGT("BLTouch einfahren")
#define MSG_HOME _UxGT("Vorher") // Used as MSG_HOME " " MSG_X MSG_Y MSG_Z " " MSG_FIRST #define MSG_HOME _UxGT("Vorher") // Used as MSG_HOME " " MSG_X MSG_Y MSG_Z " " MSG_FIRST
#define MSG_FIRST _UxGT("homen") #define MSG_FIRST _UxGT("homen")
#define MSG_ZPROBE_ZOFFSET _UxGT("Sondenversatz Z") #define MSG_ZPROBE_ZOFFSET _UxGT("Z Versatz")
#define MSG_BABYSTEP_X _UxGT("Babystep X") #define MSG_BABYSTEP_X _UxGT("Babystep X")
#define MSG_BABYSTEP_Y _UxGT("Babystep Y") #define MSG_BABYSTEP_Y _UxGT("Babystep Y")
#define MSG_BABYSTEP_Z _UxGT("Babystep Z") #define MSG_BABYSTEP_Z _UxGT("Babystep Z")
#define MSG_ENDSTOP_ABORT _UxGT("Endstopp Abbr.") #define MSG_ENDSTOP_ABORT _UxGT("Endstopp-Abbr.")
#define MSG_HEATING_FAILED_LCD _UxGT("HEIZEN ERFOLGLOS") #define MSG_HEATING_FAILED_LCD _UxGT("HEIZEN FEHLGESCHLAGEN")
#define MSG_HEATING_FAILED_LCD_BED _UxGT("Bett heizen fehlge.") #define MSG_ERR_REDUNDANT_TEMP _UxGT("REDUND. TEMPERATURABWEICHUNG")
#define MSG_ERR_REDUNDANT_TEMP _UxGT("REDUND. TEMP-ABWEI.")
#define MSG_THERMAL_RUNAWAY LCD_STR_THERMOMETER _UxGT(" NICHT ERREICHT") #define MSG_THERMAL_RUNAWAY LCD_STR_THERMOMETER _UxGT(" NICHT ERREICHT")
#define MSG_THERMAL_RUNAWAY_BED _UxGT("BETT") MSG_THERMAL_RUNAWAY #define MSG_THERMAL_RUNAWAY_BED _UxGT("BETT") MSG_THERMAL_RUNAWAY
#define MSG_ERR_MAXTEMP LCD_STR_THERMOMETER _UxGT(" ÜBERSCHRITTEN") #define MSG_ERR_MAXTEMP LCD_STR_THERMOMETER _UxGT(" ÜBERSCHRITTEN")
@@ -302,14 +215,12 @@
#define MSG_ERR_MINTEMP_BED _UxGT("BETT ") LCD_STR_THERMOMETER _UxGT(" UNTERSCHRITTEN") #define MSG_ERR_MINTEMP_BED _UxGT("BETT ") LCD_STR_THERMOMETER _UxGT(" UNTERSCHRITTEN")
#define MSG_ERR_Z_HOMING MSG_HOME _UxGT(" ") MSG_X MSG_Y _UxGT(" ") MSG_FIRST #define MSG_ERR_Z_HOMING MSG_HOME _UxGT(" ") MSG_X MSG_Y _UxGT(" ") MSG_FIRST
#define MSG_HALTED _UxGT("DRUCKER STOPP") #define MSG_HALTED _UxGT("DRUCKER STOPP")
#define MSG_PLEASE_RESET _UxGT("Bitte neustarten") #define MSG_PLEASE_RESET _UxGT("Bitte Resetten")
#define MSG_SHORT_DAY _UxGT("t") // One character only #define MSG_SHORT_DAY _UxGT("t") // One character only
#define MSG_SHORT_HOUR _UxGT("h") // One character only #define MSG_SHORT_HOUR _UxGT("h") // One character only
#define MSG_SHORT_MINUTE _UxGT("m") // One character only #define MSG_SHORT_MINUTE _UxGT("m") // One character only
#define MSG_HEATING _UxGT("Extr. heizt...") #define MSG_HEATING _UxGT("Extr. heizt...")
#define MSG_COOLING _UxGT("Extr. kühlt...")
#define MSG_BED_HEATING _UxGT("Bett heizt...") #define MSG_BED_HEATING _UxGT("Bett heizt...")
#define MSG_BED_COOLING _UxGT("Bett kühlt...")
#define MSG_DELTA_CALIBRATE _UxGT("Delta kalibrieren") #define MSG_DELTA_CALIBRATE _UxGT("Delta kalibrieren")
#define MSG_DELTA_CALIBRATE_X _UxGT("Kalibriere X") #define MSG_DELTA_CALIBRATE_X _UxGT("Kalibriere X")
#define MSG_DELTA_CALIBRATE_Y _UxGT("Kalibriere Y") #define MSG_DELTA_CALIBRATE_Y _UxGT("Kalibriere Y")
@@ -318,94 +229,171 @@
#define MSG_DELTA_SETTINGS _UxGT("Delta Einst. anzeig.") #define MSG_DELTA_SETTINGS _UxGT("Delta Einst. anzeig.")
#define MSG_DELTA_AUTO_CALIBRATE _UxGT("Autom. Kalibrierung") #define MSG_DELTA_AUTO_CALIBRATE _UxGT("Autom. Kalibrierung")
#define MSG_DELTA_HEIGHT_CALIBRATE _UxGT("Delta Höhe setzen") #define MSG_DELTA_HEIGHT_CALIBRATE _UxGT("Delta Höhe setzen")
#define MSG_DELTA_Z_OFFSET_CALIBRATE _UxGT("Sondenversatz Z")
#define MSG_DELTA_DIAG_ROD _UxGT("Diag Rod") #define MSG_DELTA_DIAG_ROD _UxGT("Diag Rod")
#define MSG_DELTA_HEIGHT _UxGT("Höhe") #define MSG_DELTA_HEIGHT _UxGT("Höhe")
#define MSG_DELTA_RADIUS _UxGT("Radius") #define MSG_DELTA_RADIUS _UxGT("Radius")
#define MSG_INFO_MENU _UxGT("Über den Drucker") #define MSG_INFO_MENU _UxGT("Über den Drucker")
#define MSG_INFO_PRINTER_MENU _UxGT("Drucker-Info") #define MSG_INFO_PRINTER_MENU _UxGT("Drucker Info")
#define MSG_3POINT_LEVELING _UxGT("3-Punkt-Nivellierung") #define MSG_3POINT_LEVELING _UxGT("3-Punkt Nivellierung")
#define MSG_LINEAR_LEVELING _UxGT("Lineare Nivellierung") #define MSG_LINEAR_LEVELING _UxGT("Lineare Nivellierung")
#define MSG_BILINEAR_LEVELING _UxGT("Bilineare Nivell.") #define MSG_BILINEAR_LEVELING _UxGT("Bilineare Nivell.")
#define MSG_UBL_LEVELING _UxGT("Unified Bed Leveling") #define MSG_UBL_LEVELING _UxGT("Unified Bed Leveling")
#define MSG_MESH_LEVELING _UxGT("Netz-Nivellierung") #define MSG_MESH_LEVELING _UxGT("Netz Nivellierung")
#define MSG_INFO_STATS_MENU _UxGT("Drucker-Statistik") #define MSG_INFO_STATS_MENU _UxGT("Drucker Statistik")
#define MSG_INFO_BOARD_MENU _UxGT("Board-Info") #define MSG_INFO_BOARD_MENU _UxGT("Board Info")
#define MSG_INFO_THERMISTOR_MENU _UxGT("Thermistoren") #define MSG_INFO_THERMISTOR_MENU _UxGT("Thermistoren")
#define MSG_INFO_EXTRUDERS _UxGT("Extruder") #define MSG_INFO_EXTRUDERS _UxGT("Extruder")
#define MSG_INFO_BAUDRATE _UxGT("Baudrate") #define MSG_INFO_BAUDRATE _UxGT("Baud")
#define MSG_INFO_PROTOCOL _UxGT("Protokoll") #define MSG_INFO_PROTOCOL _UxGT("Protokoll")
#define MSG_CASE_LIGHT _UxGT("Beleuchtung") #define MSG_CASE_LIGHT _UxGT("Beleuchtung")
#define MSG_CASE_LIGHT_BRIGHTNESS _UxGT("Helligkeit") #define MSG_CASE_LIGHT_BRIGHTNESS _UxGT("Helligkeit")
#define MSG_UBL_DOING_G29 _UxGT("G29 UBL läuft!")
#define MSG_UBL_UNHOMED _UxGT("Erst XYZ homen")
#define MSG_UBL_TOOLS _UxGT("UBL Werkzeuge")
#define MSG_UBL_LEVEL_BED _UxGT("Unified Bed Leveling")
#define MSG_UBL_MANUAL_MESH _UxGT("Netz manuell erst.")
#define MSG_UBL_BC_INSERT _UxGT("Unterlegen & messen")
#define MSG_UBL_BC_INSERT2 _UxGT("Messen")
#define MSG_UBL_BC_REMOVE _UxGT("Entfernen & messen")
#define MSG_UBL_MOVING_TO_NEXT _UxGT("Nächster Punkt...")
#define MSG_UBL_ACTIVATE_MESH _UxGT("UBL aktivieren")
#define MSG_UBL_DEACTIVATE_MESH _UxGT("UBL deaktivieren")
#define MSG_UBL_SET_BED_TEMP _UxGT("Bett Temp.")
#define MSG_UBL_CUSTOM_BED_TEMP MSG_UBL_SET_BED_TEMP
#define MSG_UBL_SET_HOTEND_TEMP _UxGT("Hotend Temp.")
#define MSG_UBL_CUSTOM_HOTEND_TEMP MSG_UBL_SET_HOTEND_TEMP
#define MSG_UBL_MESH_EDIT _UxGT("Netz bearbeiten")
#define MSG_UBL_EDIT_CUSTOM_MESH _UxGT("Eigenes Netz bearb.")
#define MSG_UBL_FINE_TUNE_MESH _UxGT("Feineinstellung...")
#define MSG_UBL_DONE_EDITING_MESH _UxGT("Bearbeitung beendet")
#define MSG_UBL_BUILD_CUSTOM_MESH _UxGT("Eigenes Netz erst.")
#define MSG_UBL_BUILD_MESH_MENU _UxGT("Netz erstellen")
#define MSG_UBL_BUILD_PLA_MESH _UxGT("Netz erstellen PLA")
#define MSG_UBL_BUILD_ABS_MESH _UxGT("Netz erstellen ABS")
#define MSG_UBL_BUILD_COLD_MESH _UxGT("Netz erstellen kalt")
#define MSG_UBL_MESH_HEIGHT_ADJUST _UxGT("Netz Höhe einst.")
#define MSG_UBL_MESH_HEIGHT_AMOUNT _UxGT("Höhe")
#define MSG_UBL_VALIDATE_MESH_MENU _UxGT("Netz validieren")
#define MSG_UBL_VALIDATE_PLA_MESH _UxGT("Netz validieren PLA")
#define MSG_UBL_VALIDATE_ABS_MESH _UxGT("Netz validieren ABS")
#define MSG_UBL_VALIDATE_CUSTOM_MESH _UxGT("Eig. Netz validieren")
#define MSG_UBL_CONTINUE_MESH _UxGT("Netzerst. forts.")
#define MSG_UBL_MESH_LEVELING _UxGT("Netz Nivellierung")
#define MSG_UBL_3POINT_MESH_LEVELING _UxGT("3-Punkt Nivellierung")
#define MSG_UBL_GRID_MESH_LEVELING _UxGT("Gitternetz Nivell.")
#define MSG_UBL_MESH_LEVEL _UxGT("Netz nivellieren")
#define MSG_UBL_SIDE_POINTS _UxGT("Eckpunkte")
#define MSG_UBL_MAP_TYPE _UxGT("Kartentyp")
#define MSG_UBL_OUTPUT_MAP _UxGT("Karte ausgeben")
#define MSG_UBL_OUTPUT_MAP_HOST _UxGT("Ausgabe für Host")
#define MSG_UBL_OUTPUT_MAP_CSV _UxGT("Ausgabe für CSV")
#define MSG_UBL_OUTPUT_MAP_BACKUP _UxGT("Externe Sicherung")
#define MSG_UBL_INFO_UBL _UxGT("UBL Info ausgeben")
#define MSG_UBL_EDIT_MESH_MENU _UxGT("Netz bearbeiten")
#define MSG_UBL_FILLIN_AMOUNT _UxGT("Menge an Fill-in")
#define MSG_UBL_MANUAL_FILLIN _UxGT("Manuelles Fill-in")
#define MSG_UBL_SMART_FILLIN _UxGT("Kluges Fill-in")
#define MSG_UBL_FILLIN_MESH _UxGT("Fill-in Netz")
#define MSG_UBL_INVALIDATE_ALL _UxGT("Alles annullieren")
#define MSG_UBL_INVALIDATE_CLOSEST _UxGT("Nächstlieg. ann.")
#define MSG_UBL_FINE_TUNE_ALL _UxGT("Feineinstellung Alle")
#define MSG_UBL_FINE_TUNE_CLOSEST _UxGT("Feineinst. Nächstl.")
#define MSG_UBL_STORAGE_MESH_MENU _UxGT("Netz Speicherplatz")
#define MSG_UBL_STORAGE_SLOT _UxGT("Memory Slot")
#define MSG_UBL_LOAD_MESH _UxGT("Bett Netz laden")
#define MSG_UBL_SAVE_MESH _UxGT("Bett Netz speichern")
#define MSG_MESH_LOADED _UxGT("Netz %i geladen")
#define MSG_MESH_SAVED _UxGT("Netz %i gespeichert")
#define MSG_NO_STORAGE _UxGT("Kein Speicher")
#define MSG_UBL_SAVE_ERROR _UxGT("ERR:UBL speichern")
#define MSG_UBL_RESTORE_ERROR _UxGT("ERR:UBL wiederherst.")
#define MSG_UBL_Z_OFFSET_STOPPED _UxGT("Z-Versatz angehalten")
#define MSG_UBL_STEP_BY_STEP_MENU _UxGT("Schrittweises UBL")
#define MSG_LED_CONTROL _UxGT("LED Kontrolle")
#define MSG_LEDS _UxGT("Licht")
#define MSG_LED_PRESETS _UxGT("Licht Einstellungen")
#define MSG_SET_LEDS_RED _UxGT("Rot")
#define MSG_SET_LEDS_ORANGE _UxGT("Orange")
#define MSG_SET_LEDS_YELLOW _UxGT("Gelb")
#define MSG_SET_LEDS_GREEN _UxGT("Grün")
#define MSG_SET_LEDS_BLUE _UxGT("Blau")
#define MSG_SET_LEDS_INDIGO _UxGT("Indigo")
#define MSG_SET_LEDS_VIOLET _UxGT("Violett")
#define MSG_SET_LEDS_WHITE _UxGT("Weiß")
#define MSG_SET_LEDS_DEFAULT _UxGT("Standard")
#define MSG_CUSTOM_LEDS _UxGT("Benutzerdef.")
#define MSG_INTENSITY_R _UxGT("Intensität Rot")
#define MSG_INTENSITY_G _UxGT("Intensität Grün")
#define MSG_INTENSITY_B _UxGT("Intensität Blau")
#define MSG_INTENSITY_W _UxGT("Intensität Weiß")
#define MSG_LED_BRIGHTNESS _UxGT("Helligkeit")
#if LCD_WIDTH >= 20 #if LCD_WIDTH >= 20
#define MSG_INFO_PRINT_COUNT _UxGT("Gesamte Drucke") #define MSG_INFO_PRINT_COUNT _UxGT("Gesamte Drucke")
#define MSG_INFO_COMPLETED_PRINTS _UxGT("Komplette Drucke") #define MSG_INFO_COMPLETED_PRINTS _UxGT("Beendete Drucke")
#define MSG_INFO_PRINT_TIME _UxGT("Gesamte Druckzeit") #define MSG_INFO_PRINT_TIME _UxGT("Gesamte Druckzeit")
#define MSG_INFO_PRINT_LONGEST _UxGT("Längste Druckzeit") #define MSG_INFO_PRINT_LONGEST _UxGT("Längster Druckjob")
#define MSG_INFO_PRINT_FILAMENT _UxGT("Gesamt Extrudiert") #define MSG_INFO_PRINT_FILAMENT _UxGT("Gesamt Extrudiert")
#else #else
#define MSG_INFO_PRINT_COUNT _UxGT("Drucke") #define MSG_INFO_PRINT_COUNT _UxGT("Drucke")
#define MSG_INFO_COMPLETED_PRINTS _UxGT("Komplette") #define MSG_INFO_COMPLETED_PRINTS _UxGT("Komplett")
#define MSG_INFO_PRINT_TIME _UxGT("Gesamte") #define MSG_INFO_PRINT_TIME _UxGT("Gesamt ")
#define MSG_INFO_PRINT_LONGEST _UxGT("Längste") #define MSG_INFO_PRINT_LONGEST _UxGT("Längster")
#define MSG_INFO_PRINT_FILAMENT _UxGT("Extrud.") #define MSG_INFO_PRINT_FILAMENT _UxGT("Extrud.")
#endif #endif
#define MSG_INFO_MIN_TEMP _UxGT("Min Temp") #define MSG_INFO_MIN_TEMP _UxGT("Min Temp")
#define MSG_INFO_MAX_TEMP _UxGT("Max Temp") #define MSG_INFO_MAX_TEMP _UxGT("Max Temp")
#define MSG_INFO_PSU _UxGT("Netzteil") #define MSG_INFO_PSU _UxGT("Netzteil")
#define MSG_DRIVE_STRENGTH _UxGT("Motorleistung")
#define MSG_DRIVE_STRENGTH _UxGT("Motorströme")
#define MSG_DAC_PERCENT _UxGT("Treiber %") #define MSG_DAC_PERCENT _UxGT("Treiber %")
#define MSG_DAC_EEPROM_WRITE _UxGT("Werte speichern") #define MSG_DAC_EEPROM_WRITE _UxGT("Werte speichern")
#define MSG_FILAMENT_CHANGE_HEADER_PAUSE _UxGT("DRUCK PAUSIERT") #define MSG_FILAMENT_CHANGE_HEADER_PAUSE _UxGT("DRUCK PAUSIERT")
#define MSG_FILAMENT_CHANGE_HEADER_LOAD _UxGT("FILAMENT LADEN") #define MSG_FILAMENT_CHANGE_HEADER_LOAD _UxGT("FILAMENT LADEN")
#define MSG_FILAMENT_CHANGE_HEADER_UNLOAD _UxGT("FILAMENT ENTLADEN") #define MSG_FILAMENT_CHANGE_HEADER_UNLOAD _UxGT("FILAMENT ENTLADEN")
#define MSG_FILAMENT_CHANGE_OPTION_HEADER _UxGT("FORTS. OPTIONEN:") #define MSG_FILAMENT_CHANGE_OPTION_HEADER _UxGT("FORTS. OPTIONEN:")
#define MSG_FILAMENT_CHANGE_OPTION_PURGE _UxGT("Mehr entladen") #define MSG_FILAMENT_CHANGE_OPTION_PURGE _UxGT("Mehr entleeren")
#define MSG_FILAMENT_CHANGE_OPTION_RESUME _UxGT("Druck weiter") #define MSG_FILAMENT_CHANGE_OPTION_RESUME _UxGT("Drucke weiter")
#define MSG_FILAMENT_CHANGE_NOZZLE _UxGT(" Düse: ") #define MSG_FILAMENT_CHANGE_NOZZLE _UxGT(" Düse: ")
#define MSG_ERR_HOMING_FAILED _UxGT("Homing gescheitert") #define MSG_ERR_HOMING_FAILED _UxGT("Homing gescheitert")
#define MSG_ERR_PROBING_FAILED _UxGT("Probing gescheitert") #define MSG_ERR_PROBING_FAILED _UxGT("Probing gescheitert")
#define MSG_M600_TOO_COLD _UxGT("M600: zu kalt") #define MSG_M600_TOO_COLD _UxGT("M600: Zu kalt")
//
// Die Filament-Change-Bildschirme können bis zu 3 Zeilen auf einem 4-Zeilen-Display anzeigen
// ...oder 2 Zeilen auf einem 3-Zeilen-Display.
#if LCD_HEIGHT >= 4 #if LCD_HEIGHT >= 4
// Up to 3 lines allowed // Up to 3 lines allowed
#define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Warte auf den") #define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Warte auf den")
#define MSG_FILAMENT_CHANGE_INIT_2 _UxGT("Start des") #define MSG_FILAMENT_CHANGE_INIT_2 _UxGT("Start des")
#define MSG_FILAMENT_CHANGE_INIT_3 _UxGT("Filamentwechsels...") #define MSG_FILAMENT_CHANGE_INIT_3 _UxGT("Filamentwechsels")
#define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Filament einlegen") #define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Warte auf")
#define MSG_FILAMENT_CHANGE_INSERT_2 _UxGT("und Knopf drücken") #define MSG_FILAMENT_CHANGE_UNLOAD_2 _UxGT("Herausnahme")
#define MSG_FILAMENT_CHANGE_INSERT_3 _UxGT("um fortzusetzen") #define MSG_FILAMENT_CHANGE_UNLOAD_3 _UxGT("des Filaments...")
#define MSG_FILAMENT_CHANGE_HEAT_1 _UxGT("Knopf drücken um") #define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Filament einlegen")
#define MSG_FILAMENT_CHANGE_HEAT_2 _UxGT("Düse aufzuheizen") #define MSG_FILAMENT_CHANGE_INSERT_2 _UxGT("und Knopf")
#define MSG_FILAMENT_CHANGE_HEATING_1 _UxGT("Düse heizt auf") #define MSG_FILAMENT_CHANGE_INSERT_3 _UxGT("drücken...")
#define MSG_FILAMENT_CHANGE_HEATING_2 _UxGT("bitte warten...") #define MSG_FILAMENT_CHANGE_HEAT_1 _UxGT("Knopf drücken um")
#define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Warte auf") #define MSG_FILAMENT_CHANGE_HEAT_2 _UxGT("Düse aufzuheizen.")
#define MSG_FILAMENT_CHANGE_UNLOAD_2 _UxGT("Herausnahme") #define MSG_FILAMENT_CHANGE_HEATING_1 _UxGT("Düse heizt auf...")
#define MSG_FILAMENT_CHANGE_UNLOAD_3 _UxGT("des Filaments...") #define MSG_FILAMENT_CHANGE_HEATING_2 _UxGT("Bitte warten...")
#define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Warte auf") #define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Warte auf")
#define MSG_FILAMENT_CHANGE_LOAD_2 _UxGT("Laden des") #define MSG_FILAMENT_CHANGE_LOAD_2 _UxGT("Laden des")
#define MSG_FILAMENT_CHANGE_LOAD_3 _UxGT("Filaments...") #define MSG_FILAMENT_CHANGE_LOAD_3 _UxGT("Filaments")
#define MSG_FILAMENT_CHANGE_PURGE_1 _UxGT("Warte auf") #define MSG_FILAMENT_CHANGE_PURGE_1 _UxGT("Warte auf")
#define MSG_FILAMENT_CHANGE_PURGE_2 _UxGT("Entladen des") #define MSG_FILAMENT_CHANGE_PURGE_2 _UxGT("Entleeren des")
#define MSG_FILAMENT_CHANGE_PURGE_3 _UxGT("Filaments...") #define MSG_FILAMENT_CHANGE_PURGE_3 _UxGT("Filaments")
#define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Warte auf") #define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Warte auf")
#define MSG_FILAMENT_CHANGE_RESUME_2 _UxGT("Fortsetzen des") #define MSG_FILAMENT_CHANGE_RESUME_2 _UxGT("Fortsetzung des")
#define MSG_FILAMENT_CHANGE_RESUME_3 _UxGT("Drucks...") #define MSG_FILAMENT_CHANGE_RESUME_3 _UxGT("Druckes...")
#else // LCD_HEIGHT < 4 #else // LCD_HEIGHT < 4
// Up to 2 lines allowed // Up to 2 lines allowed
#define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Bitte warten...") #define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Bitte warten...")
#define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Laden und Klick") #define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Auswerfen...")
#define MSG_FILAMENT_CHANGE_HEAT_1 _UxGT("Klick zum Heizen") #define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Laden und Klick")
#define MSG_FILAMENT_CHANGE_HEATING_1 _UxGT("Heizen...") #define MSG_FILAMENT_CHANGE_HEATING_1 _UxGT("Heizen...")
#define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Entladen...") #define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Laden...")
#define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Laden...") #define MSG_FILAMENT_CHANGE_PURGE_1 _UxGT("Entleeren...")
#define MSG_FILAMENT_CHANGE_PURGE_1 _UxGT("Entladen...") #define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Fortsetzen...")
#define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Fortsetzen...")
#endif // LCD_HEIGHT < 4 #endif // LCD_HEIGHT < 4
#endif // LANGUAGE_DE_H #endif // LANGUAGE_DE_H
+10 -9
View File
@@ -251,25 +251,26 @@
#define MSG_FILAMENT_CHANGE_NOZZLE _UxGT(" Boquilla: ") #define MSG_FILAMENT_CHANGE_NOZZLE _UxGT(" Boquilla: ")
#define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Esperando para") #define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Esperando iniciar")
#define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Inserte el filamento") #define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Inserte filamento")
#define MSG_FILAMENT_CHANGE_INSERT_2 _UxGT("y presione el boton") #define MSG_FILAMENT_CHANGE_INSERT_2 _UxGT("y presione el boton")
#if LCD_HEIGHT >= 4 #if LCD_HEIGHT >= 4
// Up to 3 lines allowed // Up to 3 lines allowed
#define MSG_FILAMENT_CHANGE_INIT_2 _UxGT("iniciar cambio") #define MSG_FILAMENT_CHANGE_INIT_2 _UxGT("del filamento")
#define MSG_FILAMENT_CHANGE_INIT_3 _UxGT("de filamento") #define MSG_FILAMENT_CHANGE_INIT_3 _UxGT("cambiar")
#define MSG_FILAMENT_CHANGE_INSERT_3 _UxGT("para continuar...") #define MSG_FILAMENT_CHANGE_INSERT_3 _UxGT("para continuar...")
#else // LCD_HEIGHT < 4 #else // LCD_HEIGHT < 4
// Up to 2 lines allowed // Up to 2 lines allowed
#define MSG_FILAMENT_CHANGE_INIT_2 _UxGT("iniciar cambio fil.") #define MSG_FILAMENT_CHANGE_INIT_2 _UxGT("del fil. cambiar")
#define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Inserte filamento")
#endif // LCD_HEIGHT < 4 #endif // LCD_HEIGHT < 4
#define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Esperando para") #define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Esperado por")
#define MSG_FILAMENT_CHANGE_UNLOAD_2 _UxGT("expulsar filamento") #define MSG_FILAMENT_CHANGE_UNLOAD_2 _UxGT("filamento expulsado")
#define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Esperado para") #define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Esperado por")
#define MSG_FILAMENT_CHANGE_LOAD_2 _UxGT("cargar el filamento") #define MSG_FILAMENT_CHANGE_LOAD_2 _UxGT("Cargar filamento")
#define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Esperando imp.") #define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Esperando imp.")
#define MSG_FILAMENT_CHANGE_RESUME_2 _UxGT("para resumir") #define MSG_FILAMENT_CHANGE_RESUME_2 _UxGT("para resumir")
#define MSG_FILAMENT_CHANGE_HEAT_1 _UxGT("Oprima boton para") #define MSG_FILAMENT_CHANGE_HEAT_1 _UxGT("Oprima boton para")
+1 -1
View File
@@ -369,7 +369,7 @@
#define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Esperando impressao") #define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Esperando impressao")
#define MSG_FILAMENT_CHANGE_RESUME_2 _UxGT("continuar") #define MSG_FILAMENT_CHANGE_RESUME_2 _UxGT("continuar")
#else // LCD_HEIGHT < 4 #else LCD_HEIGHT < 4
#define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Aguarde...") #define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Aguarde...")
#define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Ejetando...") #define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Ejetando...")
#define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Insira e Clique") #define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Insira e Clique")
+21 -22
View File
@@ -154,32 +154,31 @@
*/ */
#if ENABLED(ULTRA_LCD) #if ENABLED(ULTRA_LCD)
#define LCD_SDSS 28 #define LCD_SDSS 28
#if ENABLED(ADC_KEYPAD) #if ENABLED(ADC_KEYPAD)
#define SERVO0_PIN 27 // free for BLTouch/3D-Touch #define SERVO0_PIN 27 // free for BLTouch/3D-Touch
#ifndef LCD_I2C_TYPE_PCF8575 #define LCD_PINS_RS 28
#define LCD_PINS_RS 28 #define LCD_PINS_ENABLE 29
#define LCD_PINS_ENABLE 29 #define LCD_PINS_D4 10
#define LCD_PINS_D4 10 #define LCD_PINS_D5 11
#define LCD_PINS_D5 11 #define LCD_PINS_D6 16
#define LCD_PINS_D6 16 #define LCD_PINS_D7 17
#define LCD_PINS_D7 17 #define BTN_EN1 -1
#endif #define BTN_EN2 -1
#ifndef ADC_KEYPAD_PIN #define BTN_ENC -1
#define ADC_KEYPAD_PIN 1 // Analog Input #define ADC_KEYPAD_PIN 1
#endif
#elif ENABLED(REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER) || ENABLED(ANET_FULL_GRAPHICS_LCD) #elif ENABLED(REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER) || ENABLED(ANET_FULL_GRAPHICS_LCD)
// Pin definitions for the Anet A6 Full Graphics display and the RepRapDiscount Full Graphics // Pin definitions for the Anet A6 Full Graphics display and the RepRapDiscount Full Graphics
// display using an adapter board // https://go.aisler.net/benlye/anet-lcd-adapter/pcb // display using an adapter board // https://go.aisler.net/benlye/anet-lcd-adapter/pcb
// See below for alternative pin definitions for use with https://www.thingiverse.com/thing:2103748 // See below for alternative pin definitions for use with https://www.thingiverse.com/thing:2103748
#define SERVO0_PIN 29 // free for BLTouch/3D-Touch #define SERVO0_PIN 29 // free for BLTouch/3D-Touch
#define BEEPER_PIN 17 #define BEEPER_PIN 17
#define LCD_PINS_RS 27 #define LCD_PINS_RS 27
#define LCD_PINS_ENABLE 28 #define LCD_PINS_ENABLE 28
#define LCD_PINS_D4 30 #define LCD_PINS_D4 30
#define BTN_EN1 11 #define BTN_EN1 11
#define BTN_EN2 10 #define BTN_EN2 10
#define BTN_ENC 16 #define BTN_ENC 16
#ifndef ST7920_DELAY_1 #ifndef ST7920_DELAY_1
#define ST7920_DELAY_1 DELAY_NS(0) #define ST7920_DELAY_1 DELAY_NS(0)
#endif #endif
@@ -193,7 +192,7 @@
#define STD_ENCODER_STEPS_PER_MENU_ITEM 1 #define STD_ENCODER_STEPS_PER_MENU_ITEM 1
#endif #endif
#else #else
#define SERVO0_PIN 27 #define SERVO0_PIN 27
#endif #endif
/** /**
+1 -1
View File
@@ -509,7 +509,7 @@
#define BTN_ENC 35 #define BTN_ENC 35
#define SD_DETECT_PIN 49 #define SD_DETECT_PIN 49
#define KILL_PIN 41 #define KILL_PIN 64
#elif ENABLED(MINIPANEL) #elif ENABLED(MINIPANEL)
+238 -93
View File
@@ -28,27 +28,39 @@
#error "Oops! Make sure you have 'Arduino Mega' selected from the 'Tools -> Boards' menu." #error "Oops! Make sure you have 'Arduino Mega' selected from the 'Tools -> Boards' menu."
#endif #endif
#if HOTENDS > 3 || E_STEPPERS > 3 #if E_STEPPERS > 3 || HOTENDS > 3
#error "RUMBA supports up to 3 hotends / E-steppers. Comment out this line to continue." #error "RUMBA supports up to 3 hotends / E-steppers. Comment this line to keep going."
#endif #endif
#define DEFAULT_MACHINE_NAME "Rumba" #define DEFAULT_MACHINE_NAME "Rumba"
#define BOARD_NAME "Rumba" #define BOARD_NAME "Rumba"
//#endif
#define LARGE_FLASH true
// //
// Servos // Servos
// //
#define SERVO0_PIN 5 #ifdef IS_RAMPS_13
#define SERVO0_PIN 7 // RAMPS_13 // Will conflict with BTN_EN2 on LCD_I2C_VIKI
#else
#define SERVO0_PIN 11
#endif
#define SERVO1_PIN 6
#define SERVO2_PIN 5
#define SERVO3_PIN -1
// //
// Limit Switches // Limit Switches
// //
#define X_MIN_PIN 37 #define X_MIN_PIN 3
#define X_MAX_PIN 36 #ifndef X_MAX_PIN
#define Y_MIN_PIN 35 #define X_MAX_PIN 2
#define Y_MAX_PIN 34 #endif
#define Z_MIN_PIN 33 #define Y_MIN_PIN 14
#define Z_MAX_PIN 32 #define Y_MAX_PIN 15
#define Z_MIN_PIN 18
#define Z_MAX_PIN 19
// //
// Z Probe (when not Z_MIN_PIN) // Z Probe (when not Z_MIN_PIN)
@@ -57,122 +69,255 @@
#define Z_MIN_PROBE_PIN 32 #define Z_MIN_PROBE_PIN 32
#endif #endif
#define SLED_PIN -1
// //
// Steppers // Steppers
// //
#define X_STEP_PIN 17 #define X_STEP_PIN 54
#define X_DIR_PIN 16 #define X_DIR_PIN 55
#define X_ENABLE_PIN 48 #define X_ENABLE_PIN 38
#define X_CS_PIN 53
#define Y_STEP_PIN 54 #define Y_STEP_PIN 60
#define Y_DIR_PIN 47 #define Y_DIR_PIN 61
#define Y_ENABLE_PIN 55 #define Y_ENABLE_PIN 56
#define Y_CS_PIN 49
#define Z_STEP_PIN 57 #define Z_STEP_PIN 46
#define Z_DIR_PIN 56 #define Z_DIR_PIN 48
#define Z_ENABLE_PIN 62 #define Z_ENABLE_PIN 62
#define Z_CS_PIN 40
#define E0_STEP_PIN 23 #define E0_STEP_PIN 26
#define E0_DIR_PIN 22 #define E0_DIR_PIN 28
#define E0_ENABLE_PIN 24 #define E0_ENABLE_PIN 24
#define E0_CS_PIN 42
#define E1_STEP_PIN 26 #define E1_STEP_PIN 36
#define E1_DIR_PIN 25 #define E1_DIR_PIN 34
#define E1_ENABLE_PIN 27 #define E1_ENABLE_PIN 30
#define E1_CS_PIN 44
#define E2_STEP_PIN 29 #define E2_STEP_PIN 42
#define E2_DIR_PIN 28 #define E2_DIR_PIN 43
#define E2_ENABLE_PIN 39 #define E2_ENABLE_PIN 44
// //
// Temperature Sensors // Temperature Sensors
// //
#if TEMP_SENSOR_0 == -1 #define TEMP_0_PIN 13 // Analog Input
#define TEMP_0_PIN 6 // Analog Input (connector *K1* on RUMBA thermocouple ADD ON is used) #define TEMP_1_PIN 15 // Analog Input
#define TEMP_BED_PIN 14 // Analog Input
// SPI for Max6675 or Max31855 Thermocouple
#if DISABLED(SDSUPPORT)
#define MAX6675_SS 66 // Do not use pin 53 if there is even the remote possibility of using Display/SD card
#else #else
#define TEMP_0_PIN 15 // Analog Input (default connector for thermistor *T0* on rumba board is used) #define MAX6675_SS 66 // Do not use pin 49 as this is tied to the switch inside the SD card socket to detect if there is an SD card present
#endif #endif
#if TEMP_SENSOR_1 == -1 //
#define TEMP_1_PIN 5 // Analog Input (connector *K2* on RUMBA thermocouple ADD ON is used) // Augmentation for auto-assigning RAMPS plugs
#else //
#define TEMP_1_PIN 14 // Analog Input (default connector for thermistor *T1* on rumba board is used) #if DISABLED(IS_RAMPS_EEB) && DISABLED(IS_RAMPS_EEF) && DISABLED(IS_RAMPS_EFB) && DISABLED(IS_RAMPS_EFF) && DISABLED(IS_RAMPS_SF) && !PIN_EXISTS(MOSFET_D)
#endif #if HOTENDS > 1
#if TEMP_SENSOR_BED
#if TEMP_SENSOR_2 == -1 #define IS_RAMPS_EEB
#define TEMP_2_PIN 7 // Analog Input (connector *K3* on RUMBA thermocouple ADD ON is used <-- this can't be used when TEMP_SENSOR_BED is defined as thermocouple) #else
#else #define IS_RAMPS_EEF
#define TEMP_2_PIN 13 // Analog Input (default connector for thermistor *T2* on rumba board is used) #endif
#endif #elif TEMP_SENSOR_BED
#define IS_RAMPS_EFB
// optional for extruder 4 or chamber: #else
//#define TEMP_X_PIN 12 // Analog Input (default connector for thermistor *T3* on rumba board is used) #define IS_RAMPS_EFF
//#define TEMP_CHAMBER_PIN 12 // Analog Input (default connector for thermistor *T3* on rumba board is used) #endif
#if TEMP_SENSOR_BED == -1
#define TEMP_BED_PIN 7 // Analog Input (connector *K3* on RUMBA thermocouple ADD ON is used <-- this can't be used when TEMP_SENSOR_2 is defined as thermocouple)
#else
#define TEMP_BED_PIN 11 // Analog Input (default connector for thermistor *THB* on rumba board is used)
#endif #endif
// //
// Heaters / Fans // Heaters / Fans
// //
#define HEATER_0_PIN 2 #define HEATER_0_PIN 10
#define HEATER_1_PIN 3 #define HEATER_1_PIN 58
#define HEATER_2_PIN 6 //#define HEATER_2_PIN 6
#define HEATER_3_PIN 8 //#define HEATER_3_PIN 8
#define HEATER_BED_PIN 9 #define HEATER_BED_PIN 8
#ifndef FAN_PIN #define LED4_PIN 5
#define FAN_PIN 7 #define LASER_PIN -1
#endif
#define FAN1_PIN 8 #define FAN_PIN 9
#define FAN1_PIN -1
// //
// Misc. Functions // Misc. Functions
// //
#define SDSS 53 #define SDSS 53
#define LED_PIN 13 #define LED_PIN 13
#define PS_ON_PIN 45
#define KILL_PIN 46
#define CASE_LIGHT_PIN 45
// // Use the RAMPS 1.4 Analog input 5 on the AUX2 connector
// M3/M4/M5 - Spindle/Laser Control #define FILWIDTH_PIN 5 // Analog Input
//
#ifndef SPINDLE_LASER_PWM_PIN // define digital pin 4 for the filament runout sensor. Use the RAMPS 1.4 digital input 4 on the servos connector
#define SPINDLE_LASER_PWM_PIN 4 // MUST BE HARDWARE PWM. Pin 4 interrupts OC0* and OC1* always in use? //#define FIL_RUNOUT_PIN 4
#endif
#ifndef SPINDLE_LASER_ENABLE_PIN #define PS_ON_PIN 12
#define SPINDLE_LASER_ENABLE_PIN 14 // Pin should have a pullup!
#endif
#ifndef SPINDLE_DIR_PIN
#define SPINDLE_DIR_PIN 15
#endif
// //
// LCD / Controller // LCD / Controller
// //
#define SD_DETECT_PIN 49 #if ENABLED(ULTRA_LCD)
#define BEEPER_PIN 44
#define LCD_PINS_D7 40 #if ENABLED(REPRAPWORLD_GRAPHICAL_LCD)
#define BTN_EN1 11 #define LCD_PINS_RS 49 // CS chip select /SS chip slave select
#define BTN_EN2 12 #define LCD_PINS_ENABLE 51 // SID (MOSI)
#define BTN_ENC 43 #define LCD_PINS_D4 52 // SCK (CLK) clock
#elif ENABLED(NEWPANEL) && ENABLED(PANEL_ONE)
#define LCD_PINS_RS 40
#define LCD_PINS_ENABLE 42
#define LCD_PINS_D4 65
#define LCD_PINS_D5 66
#define LCD_PINS_D6 44
#define LCD_PINS_D7 64
#else
#define LCD_PINS_RS 16
#define LCD_PINS_ENABLE 17
#define LCD_PINS_D4 23
#define LCD_PINS_D5 25
#define LCD_PINS_D6 27
#define LCD_PINS_D7 29
#if DISABLED(NEWPANEL)
#define BEEPER_PIN 33
// Buttons are attached to a shift register
// Not wired yet
//#define SHIFT_CLK 38
//#define SHIFT_LD 42
//#define SHIFT_OUT 40
//#define SHIFT_EN 17
#endif
#endif
#if ENABLED(NEWPANEL)
#if ENABLED(REPRAP_DISCOUNT_SMART_CONTROLLER)
#define BEEPER_PIN 37
#define BTN_EN1 31
#define BTN_EN2 33
#define BTN_ENC 35
#define SD_DETECT_PIN 49
#define KILL_PIN 41
#if ENABLED(BQ_LCD_SMART_CONTROLLER)
#define LCD_BACKLIGHT_PIN 39
#endif
#elif ENABLED(REPRAPWORLD_GRAPHICAL_LCD)
#define BTN_EN1 64
#define BTN_EN2 59
#define BTN_ENC 63
#define SD_DETECT_PIN 42
#elif ENABLED(LCD_I2C_PANELOLU2)
#define BTN_EN1 47 // reverse if the encoder turns the wrong way.
#define BTN_EN2 43
#define BTN_ENC 32
#define LCD_SDSS 53
#define SD_DETECT_PIN -1
#define KILL_PIN 41
#elif ENABLED(LCD_I2C_VIKI)
#define BTN_EN1 22 // reverse if the encoder turns the wrong way.
#define BTN_EN2 7 // http://files.panucatt.com/datasheets/viki_wiring_diagram.pdf
// tells about 40/42.
// 22/7 are unused on RAMPS_14. 22 is unused and 7 the SERVO0_PIN on RAMPS_13.
#define BTN_ENC -1
#define LCD_SDSS 53
#define SD_DETECT_PIN 49
#elif ENABLED(VIKI2) || ENABLED(miniVIKI)
#define BEEPER_PIN 33
// Pins for DOGM SPI LCD Support
#define DOGLCD_A0 44
#define DOGLCD_CS 45
#define LCD_SCREEN_ROT_180
#define BTN_EN1 22
#define BTN_EN2 7
#define BTN_ENC 39
#define SDSS 53
#define SD_DETECT_PIN -1 // Pin 49 for display sd interface, 72 for easy adapter board
#define KILL_PIN 31
#define STAT_LED_RED_PIN 32
#define STAT_LED_BLUE_PIN 35
#elif ENABLED(ELB_FULL_GRAPHIC_CONTROLLER)
#define BTN_EN1 35 // reverse if the encoder turns the wrong way.
#define BTN_EN2 37
#define BTN_ENC 31
#define SD_DETECT_PIN 49
#define LCD_SDSS 53
#define KILL_PIN 41
#define BEEPER_PIN 23
#define DOGLCD_CS 29
#define DOGLCD_A0 27
#define LCD_BACKLIGHT_PIN 33
#elif ENABLED(MINIPANEL)
#define BEEPER_PIN 42
// Pins for DOGM SPI LCD Support
#define DOGLCD_A0 44
#define DOGLCD_CS 66
#define LCD_BACKLIGHT_PIN 65 // backlight LED on A11/D65
#define SDSS 53
#define KILL_PIN 64
// GLCD features
//#define LCD_CONTRAST 190
// Uncomment screen orientation
//#define LCD_SCREEN_ROT_90
//#define LCD_SCREEN_ROT_180
//#define LCD_SCREEN_ROT_270
// The encoder and click button
#define BTN_EN1 40
#define BTN_EN2 63
#define BTN_ENC 59
// not connected to a pin
#define SD_DETECT_PIN 49
#else
// Beeper on AUX-4
#define BEEPER_PIN 33
// buttons are directly attached using AUX-2
#if ENABLED(REPRAPWORLD_KEYPAD)
#define BTN_EN1 64 // encoder
#define BTN_EN2 59 // encoder
#define BTN_ENC 63 // enter button
#define SHIFT_OUT 40 // shift register
#define SHIFT_CLK 44 // shift register
#define SHIFT_LD 42 // shift register
#elif ENABLED(PANEL_ONE)
#define BTN_EN1 59 // AUX2 PIN 3
#define BTN_EN2 63 // AUX2 PIN 4
#define BTN_ENC 49 // AUX3 PIN 7
#else
#define BTN_EN1 37
#define BTN_EN2 35
#define BTN_ENC 31 // the click
#endif
#if ENABLED(G3D_PANEL)
#define SD_DETECT_PIN 49
#define KILL_PIN 41
#else
//#define SD_DETECT_PIN -1 // Ramps doesn't use this
#endif
#endif
#endif // NEWPANEL
#endif // ULTRA_LCD
#if ENABLED(MKS_12864OLED) || ENABLED(MKS_12864OLED_SSD1306)
#define LCD_PINS_DC 38 // Set as output on init
#define LCD_PINS_RS 41 // Pull low for 1s to init
// DOGM SPI LCD Support
#define DOGLCD_CS 19
#define DOGLCD_MOSI 42
#define DOGLCD_SCK 18
#define DOGLCD_A0 LCD_PINS_DC
#else
#define LCD_PINS_RS 19
#define LCD_PINS_ENABLE 42
#define LCD_PINS_D4 18
#define LCD_PINS_D5 38
#define LCD_PINS_D6 41
#endif
+1 -1
View File
@@ -276,7 +276,7 @@ void save_job_recovery_info() {
// If power-loss pin was triggered, write just once then kill // If power-loss pin was triggered, write just once then kill
#if PIN_EXISTS(POWER_LOSS) #if PIN_EXISTS(POWER_LOSS)
if (READ(POWER_LOSS_PIN) == POWER_LOSS_STATE) kill(PSTR(MSG_POWER_LOSS_RECOVERY)); if (READ(POWER_LOSS_PIN) == POWER_LOSS_STATE) kill(MSG_POWER_LOSS_RECOVERY);
#endif #endif
} }
} }
+34 -34
View File
@@ -247,7 +247,7 @@ uint8_t Temperature::soft_pwm_amount[HOTENDS];
* Alternately heat and cool the nozzle, observing its behavior to * Alternately heat and cool the nozzle, observing its behavior to
* determine the best PID values to achieve a stable temperature. * determine the best PID values to achieve a stable temperature.
*/ */
void Temperature::pid_autotune(const float &target, const int8_t hotend, const int8_t ncycles, const bool set_result/*=false*/) { void Temperature::PID_autotune(const float &target, const int8_t hotend, const int8_t ncycles, const bool set_result/*=false*/) {
float current = 0.0; float current = 0.0;
int cycles = 0; int cycles = 0;
bool heating = true; bool heating = true;
@@ -308,11 +308,6 @@ uint8_t Temperature::soft_pwm_amount[HOTENDS];
return; return;
} }
if (target > GHV(BED_MAXTEMP, maxttemp[hotend]) - 15) {
SERIAL_ECHOLNPGM(MSG_PID_TEMP_TOO_HIGH);
return;
}
SERIAL_ECHOLNPGM(MSG_PID_AUTOTUNE_START); SERIAL_ECHOLNPGM(MSG_PID_AUTOTUNE_START);
disable_all_heaters(); // switch off all heaters. disable_all_heaters(); // switch off all heaters.
@@ -327,7 +322,7 @@ uint8_t Temperature::soft_pwm_amount[HOTENDS];
const millis_t ms = millis(); const millis_t ms = millis();
if (temp_meas_ready) { // temp sample ready if (temp_meas_ready) { // temp sample ready
calculate_celsius_temperatures(); updateTemperaturesFromRawValues();
// Get the current temperature and constrain it // Get the current temperature and constrain it
current = GHV(current_temperature_bed, current_temperature[hotend]); current = GHV(current_temperature_bed, current_temperature[hotend]);
@@ -336,7 +331,7 @@ uint8_t Temperature::soft_pwm_amount[HOTENDS];
#if HAS_AUTO_FAN #if HAS_AUTO_FAN
if (ELAPSED(ms, next_auto_fan_check_ms)) { if (ELAPSED(ms, next_auto_fan_check_ms)) {
check_extruder_auto_fans(); checkExtruderAutoFans();
next_auto_fan_check_ms = ms + 2500UL; next_auto_fan_check_ms = ms + 2500UL;
} }
#endif #endif
@@ -483,7 +478,7 @@ uint8_t Temperature::soft_pwm_amount[HOTENDS];
PID_PARAM(Kp, hotend) = workKp; \ PID_PARAM(Kp, hotend) = workKp; \
PID_PARAM(Ki, hotend) = scalePID_i(workKi); \ PID_PARAM(Ki, hotend) = scalePID_i(workKi); \
PID_PARAM(Kd, hotend) = scalePID_d(workKd); \ PID_PARAM(Kd, hotend) = scalePID_d(workKd); \
update_pid(); }while(0) updatePID(); }while(0)
// Use the result? (As with "M303 U1") // Use the result? (As with "M303 U1")
if (set_result) { if (set_result) {
@@ -524,7 +519,7 @@ int Temperature::getHeaterPower(const int heater) {
#if HAS_AUTO_FAN #if HAS_AUTO_FAN
void Temperature::check_extruder_auto_fans() { void Temperature::checkExtruderAutoFans() {
static const pin_t fanPin[] PROGMEM = { E0_AUTO_FAN_PIN, E1_AUTO_FAN_PIN, E2_AUTO_FAN_PIN, E3_AUTO_FAN_PIN, E4_AUTO_FAN_PIN, CHAMBER_AUTO_FAN_PIN }; static const pin_t fanPin[] PROGMEM = { E0_AUTO_FAN_PIN, E1_AUTO_FAN_PIN, E2_AUTO_FAN_PIN, E3_AUTO_FAN_PIN, E4_AUTO_FAN_PIN, CHAMBER_AUTO_FAN_PIN };
static const uint8_t fanBit[] PROGMEM = { static const uint8_t fanBit[] PROGMEM = {
0, 0,
@@ -613,20 +608,25 @@ float Temperature::get_pid_output(const int8_t e) {
pid_error[HOTEND_INDEX] = target_temperature[HOTEND_INDEX] - current_temperature[HOTEND_INDEX]; pid_error[HOTEND_INDEX] = target_temperature[HOTEND_INDEX] - current_temperature[HOTEND_INDEX];
dTerm[HOTEND_INDEX] = PID_K2 * PID_PARAM(Kd, HOTEND_INDEX) * (current_temperature[HOTEND_INDEX] - temp_dState[HOTEND_INDEX]) + float(PID_K1) * dTerm[HOTEND_INDEX]; dTerm[HOTEND_INDEX] = PID_K2 * PID_PARAM(Kd, HOTEND_INDEX) * (current_temperature[HOTEND_INDEX] - temp_dState[HOTEND_INDEX]) + float(PID_K1) * dTerm[HOTEND_INDEX];
temp_dState[HOTEND_INDEX] = current_temperature[HOTEND_INDEX]; temp_dState[HOTEND_INDEX] = current_temperature[HOTEND_INDEX];
#if HEATER_IDLE_HANDLER
if (target_temperature[HOTEND_INDEX] == 0 if (heater_idle_timeout_exceeded[HOTEND_INDEX]) {
|| pid_error[HOTEND_INDEX] < -(PID_FUNCTIONAL_RANGE) pid_output = 0;
pid_reset[HOTEND_INDEX] = true;
}
else
#endif
if (pid_error[HOTEND_INDEX] > PID_FUNCTIONAL_RANGE) {
pid_output = BANG_MAX;
pid_reset[HOTEND_INDEX] = true;
}
else if (pid_error[HOTEND_INDEX] < -(PID_FUNCTIONAL_RANGE) || target_temperature[HOTEND_INDEX] == 0
#if HEATER_IDLE_HANDLER #if HEATER_IDLE_HANDLER
|| heater_idle_timeout_exceeded[HOTEND_INDEX] || heater_idle_timeout_exceeded[HOTEND_INDEX]
#endif #endif
) { ) {
pid_output = 0; pid_output = 0;
pid_reset[HOTEND_INDEX] = true; pid_reset[HOTEND_INDEX] = true;
} }
else if (pid_error[HOTEND_INDEX] > PID_FUNCTIONAL_RANGE) {
pid_output = BANG_MAX;
pid_reset[HOTEND_INDEX] = true;
}
else { else {
if (pid_reset[HOTEND_INDEX]) { if (pid_reset[HOTEND_INDEX]) {
temp_iState[HOTEND_INDEX] = 0.0; temp_iState[HOTEND_INDEX] = 0.0;
@@ -759,7 +759,7 @@ void Temperature::manage_heater() {
if (!temp_meas_ready) return; if (!temp_meas_ready) return;
calculate_celsius_temperatures(); // also resets the watchdog updateTemperaturesFromRawValues(); // also resets the watchdog
#if ENABLED(HEATER_0_USES_MAX6675) #if ENABLED(HEATER_0_USES_MAX6675)
if (current_temperature[0] > MIN(HEATER_0_MAXTEMP, MAX6675_TMAX - 1.0)) max_temp_error(0); if (current_temperature[0] > MIN(HEATER_0_MAXTEMP, MAX6675_TMAX - 1.0)) max_temp_error(0);
@@ -804,7 +804,7 @@ void Temperature::manage_heater() {
#if HAS_AUTO_FAN #if HAS_AUTO_FAN
if (ELAPSED(ms, next_auto_fan_check_ms)) { // only need to check fan state very infrequently if (ELAPSED(ms, next_auto_fan_check_ms)) { // only need to check fan state very infrequently
check_extruder_auto_fans(); checkExtruderAutoFans();
next_auto_fan_check_ms = ms + 2500UL; next_auto_fan_check_ms = ms + 2500UL;
} }
#endif #endif
@@ -914,7 +914,7 @@ void Temperature::manage_heater() {
// Derived from RepRap FiveD extruder::getTemperature() // Derived from RepRap FiveD extruder::getTemperature()
// For hot end temperature measurement. // For hot end temperature measurement.
float Temperature::analog_to_celsius_hotend(const int raw, const uint8_t e) { float Temperature::analog2temp(const int raw, const uint8_t e) {
#if ENABLED(TEMP_SENSOR_1_AS_REDUNDANT) #if ENABLED(TEMP_SENSOR_1_AS_REDUNDANT)
if (e > HOTENDS) if (e > HOTENDS)
#else #else
@@ -986,7 +986,7 @@ float Temperature::analog_to_celsius_hotend(const int raw, const uint8_t e) {
#if HAS_HEATED_BED #if HAS_HEATED_BED
// Derived from RepRap FiveD extruder::getTemperature() // Derived from RepRap FiveD extruder::getTemperature()
// For bed temperature measurement. // For bed temperature measurement.
float Temperature::analog_to_celsius_bed(const int raw) { float Temperature::analog2tempBed(const int raw) {
#if ENABLED(HEATER_BED_USES_THERMISTOR) #if ENABLED(HEATER_BED_USES_THERMISTOR)
SCAN_THERMISTOR_TABLE(BEDTEMPTABLE, BEDTEMPTABLE_LEN); SCAN_THERMISTOR_TABLE(BEDTEMPTABLE, BEDTEMPTABLE_LEN);
#elif ENABLED(HEATER_BED_USES_AD595) #elif ENABLED(HEATER_BED_USES_AD595)
@@ -1002,7 +1002,7 @@ float Temperature::analog_to_celsius_hotend(const int raw, const uint8_t e) {
#if HAS_TEMP_CHAMBER #if HAS_TEMP_CHAMBER
// Derived from RepRap FiveD extruder::getTemperature() // Derived from RepRap FiveD extruder::getTemperature()
// For chamber temperature measurement. // For chamber temperature measurement.
float Temperature::analog_to_celsius_chamber(const int raw) { float Temperature::analog2tempChamber(const int raw) {
#if ENABLED(HEATER_CHAMBER_USES_THERMISTOR) #if ENABLED(HEATER_CHAMBER_USES_THERMISTOR)
SCAN_THERMISTOR_TABLE(CHAMBERTEMPTABLE, CHAMBERTEMPTABLE_LEN); SCAN_THERMISTOR_TABLE(CHAMBERTEMPTABLE, CHAMBERTEMPTABLE_LEN);
#elif ENABLED(HEATER_CHAMBER_USES_AD595) #elif ENABLED(HEATER_CHAMBER_USES_AD595)
@@ -1021,22 +1021,22 @@ float Temperature::analog_to_celsius_hotend(const int raw, const uint8_t e) {
* and this function is called from normal context * and this function is called from normal context
* as it would block the stepper routine. * as it would block the stepper routine.
*/ */
void Temperature::calculate_celsius_temperatures() { void Temperature::updateTemperaturesFromRawValues() {
#if ENABLED(HEATER_0_USES_MAX6675) #if ENABLED(HEATER_0_USES_MAX6675)
current_temperature_raw[0] = read_max6675(); current_temperature_raw[0] = read_max6675();
#endif #endif
HOTEND_LOOP() current_temperature[e] = analog_to_celsius_hotend(current_temperature_raw[e], e); HOTEND_LOOP() current_temperature[e] = Temperature::analog2temp(current_temperature_raw[e], e);
#if HAS_HEATED_BED #if HAS_HEATED_BED
current_temperature_bed = analog_to_celsius_bed(current_temperature_bed_raw); current_temperature_bed = Temperature::analog2tempBed(current_temperature_bed_raw);
#endif #endif
#if HAS_TEMP_CHAMBER #if HAS_TEMP_CHAMBER
current_temperature_chamber = analog_to_celsius_chamber(current_temperature_chamber_raw); current_temperature_chamber = Temperature::analog2tempChamber(current_temperature_chamber_raw);
#endif #endif
#if ENABLED(TEMP_SENSOR_1_AS_REDUNDANT) #if ENABLED(TEMP_SENSOR_1_AS_REDUNDANT)
redundant_temperature = analog_to_celsius_hotend(redundant_temperature_raw, 1); redundant_temperature = Temperature::analog2temp(redundant_temperature_raw, 1);
#endif #endif
#if ENABLED(FILAMENT_WIDTH_SENSOR) #if ENABLED(FILAMENT_WIDTH_SENSOR)
filament_width_meas = analog_to_mm_fil_width(); filament_width_meas = analog2widthFil();
#endif #endif
#if ENABLED(USE_WATCHDOG) #if ENABLED(USE_WATCHDOG)
@@ -1051,7 +1051,7 @@ void Temperature::calculate_celsius_temperatures() {
#if ENABLED(FILAMENT_WIDTH_SENSOR) #if ENABLED(FILAMENT_WIDTH_SENSOR)
// Convert raw Filament Width to millimeters // Convert raw Filament Width to millimeters
float Temperature::analog_to_mm_fil_width() { float Temperature::analog2widthFil() {
return current_raw_filwidth * 5.0f * (1.0f / 16383.0); return current_raw_filwidth * 5.0f * (1.0f / 16383.0);
} }
@@ -1251,7 +1251,7 @@ void Temperature::init() {
#define TEMP_MIN_ROUTINE(NR) \ #define TEMP_MIN_ROUTINE(NR) \
minttemp[NR] = HEATER_ ##NR## _MINTEMP; \ minttemp[NR] = HEATER_ ##NR## _MINTEMP; \
while (analog_to_celsius_hotend(minttemp_raw[NR], NR) < HEATER_ ##NR## _MINTEMP) { \ while (analog2temp(minttemp_raw[NR], NR) < HEATER_ ##NR## _MINTEMP) { \
if (HEATER_ ##NR## _RAW_LO_TEMP < HEATER_ ##NR## _RAW_HI_TEMP) \ if (HEATER_ ##NR## _RAW_LO_TEMP < HEATER_ ##NR## _RAW_HI_TEMP) \
minttemp_raw[NR] += OVERSAMPLENR; \ minttemp_raw[NR] += OVERSAMPLENR; \
else \ else \
@@ -1259,7 +1259,7 @@ void Temperature::init() {
} }
#define TEMP_MAX_ROUTINE(NR) \ #define TEMP_MAX_ROUTINE(NR) \
maxttemp[NR] = HEATER_ ##NR## _MAXTEMP; \ maxttemp[NR] = HEATER_ ##NR## _MAXTEMP; \
while (analog_to_celsius_hotend(maxttemp_raw[NR], NR) > HEATER_ ##NR## _MAXTEMP) { \ while (analog2temp(maxttemp_raw[NR], NR) > HEATER_ ##NR## _MAXTEMP) { \
if (HEATER_ ##NR## _RAW_LO_TEMP < HEATER_ ##NR## _RAW_HI_TEMP) \ if (HEATER_ ##NR## _RAW_LO_TEMP < HEATER_ ##NR## _RAW_HI_TEMP) \
maxttemp_raw[NR] -= OVERSAMPLENR; \ maxttemp_raw[NR] -= OVERSAMPLENR; \
else \ else \
@@ -1307,7 +1307,7 @@ void Temperature::init() {
#if HAS_HEATED_BED #if HAS_HEATED_BED
#ifdef BED_MINTEMP #ifdef BED_MINTEMP
while (analog_to_celsius_bed(bed_minttemp_raw) < BED_MINTEMP) { while (analog2tempBed(bed_minttemp_raw) < BED_MINTEMP) {
#if HEATER_BED_RAW_LO_TEMP < HEATER_BED_RAW_HI_TEMP #if HEATER_BED_RAW_LO_TEMP < HEATER_BED_RAW_HI_TEMP
bed_minttemp_raw += OVERSAMPLENR; bed_minttemp_raw += OVERSAMPLENR;
#else #else
@@ -1316,7 +1316,7 @@ void Temperature::init() {
} }
#endif // BED_MINTEMP #endif // BED_MINTEMP
#ifdef BED_MAXTEMP #ifdef BED_MAXTEMP
while (analog_to_celsius_bed(bed_maxttemp_raw) > BED_MAXTEMP) { while (analog2tempBed(bed_maxttemp_raw) > BED_MAXTEMP) {
#if HEATER_BED_RAW_LO_TEMP < HEATER_BED_RAW_HI_TEMP #if HEATER_BED_RAW_LO_TEMP < HEATER_BED_RAW_HI_TEMP
bed_maxttemp_raw -= OVERSAMPLENR; bed_maxttemp_raw -= OVERSAMPLENR;
#else #else
+10 -10
View File
@@ -318,13 +318,13 @@ class Temperature {
/** /**
* Static (class) methods * Static (class) methods
*/ */
static float analog_to_celsius_hotend(const int raw, const uint8_t e); static float analog2temp(const int raw, const uint8_t e);
#if HAS_HEATED_BED #if HAS_HEATED_BED
static float analog_to_celsius_bed(const int raw); static float analog2tempBed(const int raw);
#endif #endif
#if HAS_TEMP_CHAMBER #if HAS_TEMP_CHAMBER
static float analog_to_celsius_chamber(const int raw); static float analog2tempChamber(const int raw);
#endif #endif
/** /**
@@ -365,7 +365,7 @@ class Temperature {
#endif #endif
#if ENABLED(FILAMENT_WIDTH_SENSOR) #if ENABLED(FILAMENT_WIDTH_SENSOR)
static float analog_to_mm_fil_width(); // Convert raw Filament Width to millimeters static float analog2widthFil(); // Convert raw Filament Width to millimeters
static int8_t widthFil_to_size_ratio(); // Convert Filament Width (mm) to an extrusion ratio static int8_t widthFil_to_size_ratio(); // Convert Filament Width (mm) to an extrusion ratio
#endif #endif
@@ -414,7 +414,7 @@ class Temperature {
#if ENABLED(AUTO_POWER_CONTROL) #if ENABLED(AUTO_POWER_CONTROL)
powerManager.power_on(); powerManager.power_on();
#endif #endif
target_temperature[HOTEND_INDEX] = MIN(celsius, maxttemp[HOTEND_INDEX] - 15); target_temperature[HOTEND_INDEX] = celsius;
#if WATCH_HOTENDS #if WATCH_HOTENDS
start_watching_heater(HOTEND_INDEX); start_watching_heater(HOTEND_INDEX);
#endif #endif
@@ -449,7 +449,7 @@ class Temperature {
#endif #endif
target_temperature_bed = target_temperature_bed =
#ifdef BED_MAXTEMP #ifdef BED_MAXTEMP
MIN(celsius, BED_MAXTEMP - 15) MIN(celsius, BED_MAXTEMP)
#else #else
celsius celsius
#endif #endif
@@ -489,13 +489,13 @@ class Temperature {
* Perform auto-tuning for hotend or bed in response to M303 * Perform auto-tuning for hotend or bed in response to M303
*/ */
#if HAS_PID_HEATING #if HAS_PID_HEATING
static void pid_autotune(const float &target, const int8_t hotend, const int8_t ncycles, const bool set_result=false); static void PID_autotune(const float &target, const int8_t hotend, const int8_t ncycles, const bool set_result=false);
/** /**
* Update the temp manager when PID values change * Update the temp manager when PID values change
*/ */
#if ENABLED(PIDTEMP) #if ENABLED(PIDTEMP)
FORCE_INLINE static void update_pid() { FORCE_INLINE static void updatePID() {
#if ENABLED(PID_EXTRUSION_SCALING) #if ENABLED(PID_EXTRUSION_SCALING)
last_e_position = 0; last_e_position = 0;
#endif #endif
@@ -612,13 +612,13 @@ class Temperature {
static void set_current_temp_raw(); static void set_current_temp_raw();
static void calculate_celsius_temperatures(); static void updateTemperaturesFromRawValues();
#if ENABLED(HEATER_0_USES_MAX6675) #if ENABLED(HEATER_0_USES_MAX6675)
static int read_max6675(); static int read_max6675();
#endif #endif
static void check_extruder_auto_fans(); static void checkExtruderAutoFans();
static float get_pid_output(const int8_t e); static float get_pid_output(const int8_t e);
+2 -5
View File
@@ -210,11 +210,8 @@
serialprintPGM(csv ? PSTR("CSV:\n") : PSTR("LCD:\n")); serialprintPGM(csv ? PSTR("CSV:\n") : PSTR("LCD:\n"));
} }
// Add XY_PROBE_OFFSET_FROM_EXTRUDER because probe_pt() subtracts these when const float current_xi = get_cell_index_x(current_position[X_AXIS] + (MESH_X_DIST) / 2.0),
// moving to the xy position to be measured. This ensures better agreement between current_yi = get_cell_index_y(current_position[Y_AXIS] + (MESH_Y_DIST) / 2.0);
// the current Z position after G28 and the mesh values.
const float current_xi = find_closest_x_index(current_position[X_AXIS] + X_PROBE_OFFSET_FROM_EXTRUDER),
current_yi = find_closest_y_index(current_position[Y_AXIS] + Y_PROBE_OFFSET_FROM_EXTRUDER);
if (!lcd) SERIAL_EOL(); if (!lcd) SERIAL_EOL();
for (int8_t j = GRID_MAX_POINTS_Y - 1; j >= 0; j--) { for (int8_t j = GRID_MAX_POINTS_Y - 1; j >= 0; j--) {
+2 -2
View File
@@ -1287,8 +1287,8 @@
out_mesh.distance = -99999.9f; out_mesh.distance = -99999.9f;
// Get our reference position. Either the nozzle or probe location. // Get our reference position. Either the nozzle or probe location.
const float px = rx + (probe_as_reference == USE_PROBE_AS_REFERENCE ? X_PROBE_OFFSET_FROM_EXTRUDER : 0), const float px = rx - (probe_as_reference == USE_PROBE_AS_REFERENCE ? X_PROBE_OFFSET_FROM_EXTRUDER : 0),
py = ry + (probe_as_reference == USE_PROBE_AS_REFERENCE ? Y_PROBE_OFFSET_FROM_EXTRUDER : 0); py = ry - (probe_as_reference == USE_PROBE_AS_REFERENCE ? Y_PROBE_OFFSET_FROM_EXTRUDER : 0);
float best_so_far = 99999.99f; float best_so_far = 99999.99f;
+10 -13
View File
@@ -1824,18 +1824,12 @@ void lcd_quick_feedback(const bool clear_buttons) {
#if ENABLED(LEVEL_BED_CORNERS) #if ENABLED(LEVEL_BED_CORNERS)
#ifndef LEVEL_CORNERS_Z_HOP
#define LEVEL_CORNERS_Z_HOP 4.0
#endif
static_assert(LEVEL_CORNERS_Z_HOP >= 0, "LEVEL_CORNERS_Z_HOP must be >= 0. Please update your configuration.");
/** /**
* Level corners, starting in the front-left corner. * Level corners, starting in the front-left corner.
*/ */
static int8_t bed_corner; static int8_t bed_corner;
void _lcd_goto_next_corner() { void _lcd_goto_next_corner() {
line_to_z(LEVEL_CORNERS_Z_HOP); line_to_z(4.0);
switch (bed_corner) { switch (bed_corner) {
case 0: case 0:
current_position[X_AXIS] = X_MIN_BED + LEVEL_CORNERS_INSET; current_position[X_AXIS] = X_MIN_BED + LEVEL_CORNERS_INSET;
@@ -2891,6 +2885,8 @@ void lcd_quick_feedback(const bool clear_buttons) {
MENU_BACK(MSG_MAIN); MENU_BACK(MSG_MAIN);
#if ENABLED(DELTA_AUTO_CALIBRATION) #if ENABLED(DELTA_AUTO_CALIBRATION)
MENU_ITEM(gcode, MSG_DELTA_AUTO_CALIBRATE, PSTR("G33")); MENU_ITEM(gcode, MSG_DELTA_AUTO_CALIBRATE, PSTR("G33"));
MENU_ITEM(gcode, MSG_DELTA_HEIGHT_CALIBRATE, PSTR("G33 P1"));
MENU_ITEM(gcode, MSG_DELTA_Z_OFFSET_CALIBRATE, PSTR("G33 P-1"));
#if ENABLED(EEPROM_SETTINGS) #if ENABLED(EEPROM_SETTINGS)
MENU_ITEM(function, MSG_STORE_EEPROM, lcd_store_settings); MENU_ITEM(function, MSG_STORE_EEPROM, lcd_store_settings);
MENU_ITEM(function, MSG_LOAD_EEPROM, lcd_load_settings); MENU_ITEM(function, MSG_LOAD_EEPROM, lcd_load_settings);
@@ -3414,14 +3410,14 @@ void lcd_quick_feedback(const bool clear_buttons) {
UNUSED(e); UNUSED(e);
#endif #endif
PID_PARAM(Ki, e) = scalePID_i(raw_Ki); PID_PARAM(Ki, e) = scalePID_i(raw_Ki);
thermalManager.update_pid(); thermalManager.updatePID();
} }
void copy_and_scalePID_d(int16_t e) { void copy_and_scalePID_d(int16_t e) {
#if DISABLED(PID_PARAMS_PER_HOTEND) || HOTENDS == 1 #if DISABLED(PID_PARAMS_PER_HOTEND) || HOTENDS == 1
UNUSED(e); UNUSED(e);
#endif #endif
PID_PARAM(Kd, e) = scalePID_d(raw_Kd); PID_PARAM(Kd, e) = scalePID_d(raw_Kd);
thermalManager.update_pid(); thermalManager.updatePID();
} }
#define _DEFINE_PIDTEMP_BASE_FUNCS(N) \ #define _DEFINE_PIDTEMP_BASE_FUNCS(N) \
void copy_and_scalePID_i_E ## N() { copy_and_scalePID_i(N); } \ void copy_and_scalePID_i_E ## N() { copy_and_scalePID_i(N); } \
@@ -3524,7 +3520,7 @@ void lcd_quick_feedback(const bool clear_buttons) {
MENU_ITEM_EDIT(bool, MSG_AUTOTEMP, &planner.autotemp_enabled); MENU_ITEM_EDIT(bool, MSG_AUTOTEMP, &planner.autotemp_enabled);
MENU_ITEM_EDIT(float3, MSG_MIN, &planner.autotemp_min, 0, float(HEATER_0_MAXTEMP) - 15); MENU_ITEM_EDIT(float3, MSG_MIN, &planner.autotemp_min, 0, float(HEATER_0_MAXTEMP) - 15);
MENU_ITEM_EDIT(float3, MSG_MAX, &planner.autotemp_max, 0, float(HEATER_0_MAXTEMP) - 15); MENU_ITEM_EDIT(float3, MSG_MAX, &planner.autotemp_max, 0, float(HEATER_0_MAXTEMP) - 15);
MENU_ITEM_EDIT(float52, MSG_FACTOR, &planner.autotemp_factor, 0, 10); MENU_ITEM_EDIT(float52, MSG_FACTOR, &planner.autotemp_factor, 0, 1);
#endif #endif
// //
@@ -5606,14 +5602,15 @@ void lcd_reset_alert_level() { lcd_status_message_level = 0; }
#endif // LCD_HAS_DIRECTIONAL_BUTTONS #endif // LCD_HAS_DIRECTIONAL_BUTTONS
#if ENABLED(LCD_HAS_SLOW_BUTTONS)
newbutton |= slow_buttons;
#endif
buttons = newbutton; buttons = newbutton;
#if ENABLED(LCD_HAS_SLOW_BUTTONS)
buttons |= slow_buttons;
#endif
#if ENABLED(ADC_KEYPAD) #if ENABLED(ADC_KEYPAD)
uint8_t newbutton_reprapworld_keypad = 0; uint8_t newbutton_reprapworld_keypad = 0;
buttons = 0;
if (buttons_reprapworld_keypad == 0) { if (buttons_reprapworld_keypad == 0) {
newbutton_reprapworld_keypad = get_ADC_keyValue(); newbutton_reprapworld_keypad = get_ADC_keyValue();
if (WITHIN(newbutton_reprapworld_keypad, 1, 8)) if (WITHIN(newbutton_reprapworld_keypad, 1, 8))
+1 -3
View File
@@ -1,7 +1,5 @@
#!/usr/bin/env bash #!/usr/bin/env bash
SED=$(which gsed || which sed)
for opt in "$@" ; do for opt in "$@" ; do
eval "${SED} -i 's/\([[:blank:]]*\)\(#define \b${opt}\b\)/\1\/\/\2/g' Marlin/Configuration.h" eval "sed -i 's/\([[:blank:]]*\)\(#define \b${opt}\b\)/\1\/\/\2/g' Marlin/Configuration.h"
done done
+1 -3
View File
@@ -1,7 +1,5 @@
#!/usr/bin/env bash #!/usr/bin/env bash
SED=$(which gsed || which sed)
for opt in "$@" ; do for opt in "$@" ; do
eval "${SED} -i 's/\([[:blank:]]*\)\(#define \b${opt}\b\)/\1\/\/\2/g' Marlin/Configuration_adv.h" eval "sed -i 's/\([[:blank:]]*\)\(#define \b${opt}\b\)/\1\/\/\2/g' Marlin/Configuration_adv.h"
done done
+1 -3
View File
@@ -1,7 +1,5 @@
#!/usr/bin/env bash #!/usr/bin/env bash
SED=$(which gsed || which sed)
for opt in "$@" ; do for opt in "$@" ; do
eval "${SED} -i 's/\/\/[[:blank:]]*\(#define \b${opt}\b\)/\1/g' Marlin/Configuration.h" eval "sed -i 's/\/\/[[:blank:]]*\(#define \b${opt}\b\)/\1/g' Marlin/Configuration.h"
done done
+1 -3
View File
@@ -1,7 +1,5 @@
#!/usr/bin/env bash #!/usr/bin/env bash
SED=$(which gsed || which sed)
for opt in "$@" ; do for opt in "$@" ; do
eval "${SED} -i 's/\/\/[[:blank:]]*\(#define \b${opt}\b\)/\1/g' Marlin/Configuration_adv.h" eval "sed -i 's/\/\/[[:blank:]]*\(#define \b${opt}\b\)/\1/g' Marlin/Configuration_adv.h"
done done
+1 -3
View File
@@ -1,5 +1,3 @@
#!/usr/bin/env bash #!/usr/bin/env bash
SED=$(which gsed || which sed) eval "sed -i 's/\(#define \b${1}\b\).*$/\1 ${2}/g' Marlin/Configuration.h"
eval "${SED} -i 's/\(#define \b${1}\b\).*$/\1 ${2}/g' Marlin/Configuration.h"
+1 -3
View File
@@ -1,5 +1,3 @@
#!/usr/bin/env bash #!/usr/bin/env bash
SED=$(which gsed || which sed) eval "sed -i 's/\(#define \b${1}\b\).*$/\1 ${2}/g' Marlin/Configuration_adv.h"
eval "${SED} -i 's/\(#define \b${1}\b\).*$/\1 ${2}/g' Marlin/Configuration_adv.h"
+1 -3
View File
@@ -1,5 +1,3 @@
#!/usr/bin/env bash #!/usr/bin/env bash
SED=$(which gsed || which sed) eval "sed -i 's/\(#define \b${2}\b\).*$/\1 ${3}/g' Marlin/pins_${1}.h"
eval "${SED} -i 's/\(#define \b${2}\b\).*$/\1 ${3}/g' Marlin/src/pins/pins_${1}.h"
-47
View File
@@ -1,47 +0,0 @@
#!/usr/bin/env bash
#
# travis_at_home
#
# Run all Travis test builds at home to save time finding typos
# Make sure to have 'arduino' somewhere in your PATH
#
LOG="travis-out.txt"
cd `dirname "$0"`/../..
TRAVIS_BUILD_DIR=`pwd`
echo $'Tests for '$TRAVIS_BUILD_DIR$' ...\n' >"$LOG"
# Add a temporary execution PATH
export PATH="./buildroot/bin:$PATH"
# Scan .travis.yml and run config/build commands only
X=1
while read P; do
# Command lines start with a hyphen
if [[ $P =~ ^-\ (([^ ]+)(\ .*)?)$ ]]; then
WORD="${BASH_REMATCH[2]}" ; # The first word
CMD="${BASH_REMATCH[1]}" ; # The whole command
RUN=1 ; BUILD=0
case "$WORD" in
cp|opt_*|pins_*|use_*|restore_*|gen*) ;;
build_*) BUILD=1 ;;
*) RUN=0 ;;
esac
# Runnable command
if [[ $RUN == 1 ]]; then
echo "$CMD" >>"$LOG"
RESULT=$( eval "$CMD >>\"$LOG\" 2>&1" )
if [[ $BUILD == 1 ]]; then
echo "--- Build $X done."
echo >>"$LOG"
X=$((X+1))
fi
fi
fi
done <.travis.yml
cd - >/dev/null
@@ -1,20 +0,0 @@
{
"build": {
"core": "teensy",
"extra_flags": "-DTEENSY2PP",
"f_cpu": "16000000L",
"mcu": "at90usb1286"
},
"frameworks": [
"arduino"
],
"name": "at90usb1286.json",
"upload": {
"maximum_ram_size": 8192,
"maximum_size": 122880,
"require_upload_port": true,
"protocol": ""
},
"url": "https://github.com/MarlinFirmware/Marlin",
"vendor": "various"
}
+81 -601
View File
@@ -23,8 +23,6 @@
####################################### #######################################
# #
# Revision: 2.0.1
#
# Description: script to automate PlatformIO builds # Description: script to automate PlatformIO builds
# CLI: python auto_build.py build_option # CLI: python auto_build.py build_option
# build_option (required) # build_option (required)
@@ -71,13 +69,6 @@
import sys import sys
import os import os
pwd = os.getcwd() # make sure we're executing from the correct directory level
pwd = pwd.replace('\\', '/')
if 0 <= pwd.find('buildroot/share/atom'):
pwd = pwd[ : pwd.find('buildroot/share/atom')]
os.chdir(pwd)
print 'pwd: ', pwd
num_args = len(sys.argv) num_args = len(sys.argv)
if num_args > 1: if num_args > 1:
build_type = str(sys.argv[1]) build_type = str(sys.argv[1])
@@ -98,14 +89,6 @@ else:
print "This script only runs under python 2" print "This script only runs under python 2"
exit() exit()
import platform
current_OS = platform.system()
#globals
target_env = ''
board_name = ''
######### #########
# Python 2 error messages: # Python 2 error messages:
# Can't find a usable init.tcl in the following directories ... # Can't find a usable init.tcl in the following directories ...
@@ -118,17 +101,11 @@ board_name = ''
# reboot # reboot
######### #########
# #globals
# data/definitions used by memory check routine to determine if need to target_env = ''
# insert % memory used board_name = ''
#
mem_check_environments = ('at90USB1286_CDC', 'at90USB1286_DFU')
mem_check_builds = ('upload', 'program')
FLASH_MAX = 128 * 1024 - 4 * 1024 # DFU & CDC bootloaders start at word address F800
RAM_MAX = 8 * 1024
FLASH_PERCENT_WARN = 0.90
RAM_SYSTEM = 1024 # assume that 1K bytes is enough for stack, heap. ...
RAM_WARN = RAM_SYSTEM * 1.5
########################################################################################## ##########################################################################################
# #
@@ -214,212 +191,28 @@ def get_answer(board_name, cpu_label_txt, cpu_a_txt, cpu_b_txt):
# end - get answer # end - get answer
#
# move custom board definitions from project folder to PlatformIO
#
def resolve_path(path):
import os
# turn the selection into a partial path def env_name_check(argument):
name_check = {
'teensy35' : True,
'teensy20' : True,
'STM32F4' : True,
'STM32F1' : True,
'sanguino_atmega644p' : True,
'sanguino_atmega1284p' : True,
'rambo' : True,
'melzi_optiboot' : True,
'melzi' : True,
'megaatmega2560' : True,
'megaatmega1280' : True,
'malyanm200' : True,
'LPC1768' : True,
'DUE_debug' : True,
'DUE_USB' : True,
'DUE' : True
}
if 0 <= path.find('"'): return name_check.get(argument, False)
path = path[ path.find('"') : ]
if 0 <= path.find(', line '):
path = path.replace(', line ', ':')
path = path.replace('"', '')
#get line and column numbers
line_num = 1
column_num = 1
line_start = path.find(':', 2) # use 2 here so don't eat Windows full path
column_start = path.find(':', line_start + 1)
if column_start == -1:
column_start = len(path)
column_end = path.find(':', column_start + 1)
if column_end == -1:
column_end = len(path)
if 0 <= line_start:
line_num = path[ line_start + 1 : column_start]
if line_num == '':
line_num = 1
if not(column_start == column_end):
column_num = path[ column_start + 1 : column_end]
if column_num == '':
column_num = 0
index_end = path.find(',')
if 0 <= index_end:
path = path[ : index_end] # delete comma and anything after
index_end = path.find(':', 2)
if 0 <= index_end:
path = path[ : path.find(':', 2)] # delete the line number and anything after
path = path.replace('\\','/')
if 1 == path.find(':') and current_OS == 'Windows':
return path, line_num, column_num # found a full path - no need for further processing
elif 0 == path.find('/') and (current_OS == 'Linux' or current_OS == 'Darwin'):
return path, line_num, column_num # found a full path - no need for further processing
else:
# resolve as many '../' as we can
while 0 <= path.find('../'):
end = path.find('../') - 1
start = path.find('/')
while 0 <= path.find('/',start) and end > path.find('/',start):
start = path.find('/',start) + 1
path = path[0:start] + path[end + 4: ]
# this is an alternative to the above - it just deletes the '../' section
# start_temp = path.find('../')
# while 0 <= path.find('../',start_temp):
# start = path.find('../',start_temp)
# start_temp = start + 1
# if 0 <= start:
# path = path[start + 2 : ]
start = path.find('/')
if not(0 == start): # make sure path starts with '/'
while 0 == path.find(' '): # eat any spaces at the beginning
path = path[ 1 : ]
path = '/' + path
if current_OS == 'Windows':
search_path = path.replace('/', '\\') # os.walk uses '\' in Windows
else:
search_path = path
start_path = os.path.abspath('')
# search project directory for the selection
found = False
full_path = ''
for root, directories, filenames in os.walk(start_path):
for filename in filenames:
if 0 <= root.find('.git'): # don't bother looking in this directory
break
full_path = os.path.join(root,filename)
if 0 <= full_path.find(search_path):
found = True
break
if found:
break
return full_path, line_num, column_num
# end - resolve_path
#
# Opens the file in the preferred editor at the line & column number
# If the preferred editor isn't already running then it tries the next.
# If none are open then the system default is used.
#
# Editor order:
# 1. Notepad++ (Windows only)
# 2. Sublime Text
# 3. Atom
# 4. System default (opens at line 1, column 1 only)
#
def open_file(path):
import subprocess
file_path, line_num, column_num = resolve_path(path)
if file_path == '' :
return
if current_OS == 'Windows':
editor_note = subprocess.check_output('wmic process where "name=' + "'notepad++.exe'" + '" get ExecutablePath')
editor_sublime = subprocess.check_output('wmic process where "name=' + "'sublime_text.exe'" + '" get ExecutablePath')
editor_atom = subprocess.check_output('wmic process where "name=' + "'atom.exe'" + '" get ExecutablePath')
if 0 <= editor_note.find('notepad++.exe'):
start = editor_note.find('\n') + 1
end = editor_note.find('\n',start + 5) -4
editor_note = editor_note[ start : end]
command = file_path , ' -n' + str(line_num) , ' -c' + str(column_num)
subprocess.Popen([editor_note, command])
elif 0 <= editor_sublime.find('sublime_text.exe'):
start = editor_sublime.find('\n') + 1
end = editor_sublime.find('\n',start + 5) -4
editor_sublime = editor_sublime[ start : end]
command = file_path + ':' + line_num + ':' + column_num
subprocess.Popen([editor_sublime, command])
elif 0 <= editor_atom.find('atom.exe'):
start = editor_atom.find('\n') + 1
end = editor_atom.find('\n',start + 5) -4
editor_atom = editor_atom[ start : end]
command = file_path + ':' + str(line_num) + ':' + str(column_num)
subprocess.Popen([editor_atom, command])
else:
os.startfile(resolve_path(path)) # open file with default app
elif current_OS == 'Linux':
command = file_path + ':' + str(line_num) + ':' + str(column_num)
index_end = command.find(',')
if 0 <= index_end:
command = command[ : index_end] # sometimes a comma magically appears, don't want it
running_apps = subprocess.Popen('ps ax -o cmd', stdout=subprocess.PIPE, shell=True)
(output, err) = running_apps.communicate()
temp = output.split('\n')
def find_editor_linux(name, search_obj):
for line in search_obj:
if 0 <= line.find(name):
path = line
return True, path
return False , ''
(success_sublime, editor_path_sublime) = find_editor_linux('sublime_text',temp)
(success_atom, editor_path_atom) = find_editor_linux('atom',temp)
if success_sublime:
subprocess.Popen([editor_path_sublime, command])
elif success_atom:
subprocess.Popen([editor_path_atom, command])
else:
os.system('xdg-open ' + file_path )
elif current_OS == 'Darwin': # MAC
command = file_path + ':' + str(line_num) + ':' + str(column_num)
index_end = command.find(',')
if 0 <= index_end:
command = command[ : index_end] # sometimes a comma magically appears, don't want it
running_apps = subprocess.Popen('ps axwww -o command', stdout=subprocess.PIPE, shell=True)
(output, err) = running_apps.communicate()
temp = output.split('\n')
def find_editor_mac(name, search_obj):
for line in search_obj:
if 0 <= line.find(name):
path = line
if 0 <= path.find('-psn'):
path = path[ : path.find('-psn') - 1 ]
return True, path
return False , ''
(success_sublime, editor_path_sublime) = find_editor_mac('Sublime',temp)
(success_atom, editor_path_atom) = find_editor_mac('Atom',temp)
if success_sublime:
subprocess.Popen([editor_path_sublime, command])
elif success_atom:
subprocess.Popen([editor_path_atom, command])
else:
os.system('open ' + file_path )
# end - open_file
# gets the last build environment # gets the last build environment
@@ -430,16 +223,14 @@ def get_build_last():
date_last = 0.0 date_last = 0.0
DIR__pioenvs = os.listdir('.pioenvs') DIR__pioenvs = os.listdir('.pioenvs')
for name in DIR__pioenvs: for name in DIR__pioenvs:
if 0 <= name.find('.') or 0 <= name.find('-'): # skip files in listing if env_name_check(name):
continue DIR_temp = os.listdir('.pioenvs/' + name)
DIR_temp = os.listdir('.pioenvs/' + name) for names_temp in DIR_temp:
for names_temp in DIR_temp: if 0 == names_temp.find('firmware.'):
date_temp = os.path.getmtime('.pioenvs/' + name + '/' + names_temp)
if 0 == names_temp.find('firmware.'): if date_temp > date_last:
date_temp = os.path.getmtime('.pioenvs/' + name + '/' + names_temp) date_last = date_temp
if date_temp > date_last: env_last = name
date_last = date_temp
env_last = name
return env_last return env_last
@@ -505,10 +296,6 @@ def get_starting_env(board_name_full, version):
with open(path, 'r') as myfile: with open(path, 'r') as myfile:
pins_h = myfile.read() pins_h = myfile.read()
env_A = ''
env_B = ''
env_C = ''
board_name = board_name_full[ 6 : ] # only use the part after "BOARD_" since we're searching the pins.h file board_name = board_name_full[ 6 : ] # only use the part after "BOARD_" since we're searching the pins.h file
pins_h = pins_h.split('\n') pins_h = pins_h.split('\n')
environment = '' environment = ''
@@ -563,10 +350,10 @@ def get_env(board_name, ver_Marlin):
raise SystemExit(0) # quit if unable to find board raise SystemExit(0) # quit if unable to find board
CPU_question = ( ('1280', '2560', " 1280 or 2560 CPU? "), ('644', '1284', " 644 or 1284 CPU? ") ) CPU_question = ( ('1280', '2560', "1280 or 2560 CPU?"), ('644', '1284', "644 or 1284 CPU?") )
if 0 < board_name.find('MELZI') : if 0 < board_name.find('MELZI') :
get_answer(' ' + board_name + ' ', " Which flavor of Melzi? ", "Melzi (Optiboot bootloader)", "Melzi ") get_answer(board_name, "Which flavor of Melzi?", "Melzi (Optiboot bootloader)", "Melzi ")
if 1 == get_answer_val: if 1 == get_answer_val:
target_env = 'melzi_optiboot' target_env = 'melzi_optiboot'
else: else:
@@ -584,7 +371,7 @@ def get_env(board_name, ver_Marlin):
for item in CPU_question: for item in CPU_question:
if CPU_A == item[0]: if CPU_A == item[0]:
get_answer(' ' + board_name + ' ', item[2], item[0], item[1]) get_answer(board_name, item[2], item[0], item[1])
if 2 == get_answer_val: if 2 == get_answer_val:
target_env = env_B target_env = env_B
else: else:
@@ -601,7 +388,7 @@ def get_env(board_name, ver_Marlin):
if build_type == 'traceback' or (build_type == 'clean' and get_build_last() == 'DUE_debug'): if build_type == 'traceback' or (build_type == 'clean' and get_build_last() == 'DUE_debug'):
target_env = 'DUE_debug' target_env = 'DUE_debug'
elif env_B == 'DUE_USB': elif env_B == 'DUE_USB':
get_answer(' ' + board_name + ' ', " DUE: need download port ", "USB (native USB) port", "Programming port ") get_answer(board_name, "DUE: need download port", "USB (native USB) port", "Programming port ")
if 1 == get_answer_val: if 1 == get_answer_val:
target_env = 'DUE_USB' target_env = 'DUE_USB'
else: else:
@@ -621,7 +408,6 @@ def get_env(board_name, ver_Marlin):
# puts screen text into queue so that the parent thread can fetch the data from this thread # puts screen text into queue so that the parent thread can fetch the data from this thread
import Queue import Queue
IO_queue = Queue.Queue() IO_queue = Queue.Queue()
PIO_queue = Queue.Queue()
def write_to_screen_queue(text, format_tag = 'normal'): def write_to_screen_queue(text, format_tag = 'normal'):
double_in = [text, format_tag] double_in = [text, format_tag]
IO_queue.put(double_in, block = False) IO_queue.put(double_in, block = False)
@@ -645,7 +431,6 @@ standard = True
prev_line_COM = False prev_line_COM = False
next_line_warning = False next_line_warning = False
warning_continue = False warning_continue = False
line_counter = 0
def line_print(line_input): def line_print(line_input):
@@ -656,7 +441,6 @@ def line_print(line_input):
global prev_line_COM global prev_line_COM
global next_line_warning global next_line_warning
global warning_continue global warning_continue
global line_counter
@@ -706,19 +490,12 @@ def line_print(line_input):
write_to_screen_queue(text[found_right : ] + '\n') write_to_screen_queue(text[found_right : ] + '\n')
break break
if did_something == False: if did_something == False:
r_loc = text.find('\r') + 1 write_to_screen_queue(text + '\n')
if r_loc > 0 and r_loc < len(text): # need to split this line
text = text.split('\r')
for line in text:
write_to_screen_queue(line + '\n')
else:
write_to_screen_queue(text + '\n')
# end - write_to_screen_with_replace # end - write_to_screen_with_replace
# scan the line # scan the line
line_counter = line_counter + 1
max_search = len(line_input) max_search = len(line_input)
if max_search > 3 : if max_search > 3 :
max_search = 3 max_search = 3
@@ -733,14 +510,7 @@ def line_print(line_input):
prev_line_COM = False prev_line_COM = False
prev_line_COM = False prev_line_COM = False
warning_continue = True warning_continue = True
if 0 < line_input.find('Thank you') or 0 < line_input.find('SUMMARY') : if beginning == 'War' or \
warning = False #standard line found
warning_FROM = False
error = False
standard = True
prev_line_COM = False
warning_continue = False
elif beginning == 'War' or \
beginning == '#er' or \ beginning == '#er' or \
beginning == 'In ' or \ beginning == 'In ' or \
(beginning != 'Com' and prev_line_COM == True and not(beginning == 'Arc' or beginning == 'Lin' or beginning == 'Ind') or \ (beginning != 'Com' and prev_line_COM == True and not(beginning == 'Arc' or beginning == 'Lin' or beginning == 'Ind') or \
@@ -769,6 +539,11 @@ def line_print(line_input):
error = True error = True
standard = False standard = False
prev_line_COM = False prev_line_COM = False
elif beginning == 'fro' and warning == True : # start of warning /error block
warning_FROM = True
prev_line_COM = False
warning_continue = True
elif 0 < line_input.find(': error:') or \ elif 0 < line_input.find(': error:') or \
0 < line_input.find(': fatal error:'): # start of warning /error block 0 < line_input.find(': fatal error:'): # start of warning /error block
warning = False # error found warning = False # error found
@@ -777,14 +552,9 @@ def line_print(line_input):
standard = False standard = False
prev_line_COM = False prev_line_COM = False
warning_continue = True warning_continue = True
elif beginning == 'fro' and warning == True or \
beginning == '.pi' : # start of warning /error block
warning_FROM = True
prev_line_COM = False
warning_continue = True
elif warning_continue == True: elif warning_continue == True:
warning = True warning = True
warning_FROM = False # keep the warning status going until find a standard line or an error warning_FROM = False # keep the warning status going until find a standard line
error = False error = False
standard = False standard = False
prev_line_COM = False prev_line_COM = False
@@ -838,7 +608,6 @@ def run_PIO(dummy):
import subprocess import subprocess
import sys import sys
print 'starting platformio' print 'starting platformio'
if build_type == 'build': if build_type == 'build':
@@ -895,7 +664,7 @@ def run_PIO(dummy):
# stream output from subprocess and split it into lines # stream output from subprocess and split it into lines
for line in iter(pio_subprocess.stdout.readline, ''): for line in iter(pio_subprocess.stdout.readline, ''):
line_print(line.replace('\n', '')) line_print(line.replace('\n', ''))
# append info used to run PlatformIO # append info used to run PlatformIO
@@ -927,19 +696,10 @@ import tkFileDialog
class output_window(Text): class output_window(Text):
# based on Super Text
global continue_updates global continue_updates
continue_updates = True continue_updates = True
global search_position
search_position = '' # start with invalid search position
global error_found
error_found = False # are there any errors?
global memory_check_first_time
memory_check_first_time = True # wants to run memory_check twice
def __init__(self): def __init__(self):
@@ -953,9 +713,7 @@ class output_window(Text):
Text.__init__(self, self.frame, borderwidth=3, relief="sunken") Text.__init__(self, self.frame, borderwidth=3, relief="sunken")
self.config(tabs=(400,)) # configure Text widget tab stops self.config(tabs=(400,)) # configure Text widget tab stops
self.config(background = 'black', foreground = 'white', font= ("consolas", 12), wrap = 'word', undo = 'True') self.config(background = 'black', foreground = 'white', font= ("consolas", 12), wrap = 'word', undo = 'True')
# self.config(background = 'black', foreground = 'white', font= ("consolas", 12), wrap = 'none', undo = 'True') self.config(height = 24, width = 120)
self.config(height = 24, width = 100)
self.config(insertbackground = 'pale green') # keyboard insertion point
self.pack(side='left', fill='both', expand=True) self.pack(side='left', fill='both', expand=True)
self.tag_config('normal', foreground = 'white') self.tag_config('normal', foreground = 'white')
@@ -963,12 +721,8 @@ class output_window(Text):
self.tag_config('error', foreground = 'red') self.tag_config('error', foreground = 'red')
self.tag_config('highlight_green', foreground = 'green') self.tag_config('highlight_green', foreground = 'green')
self.tag_config('highlight_blue', foreground = 'cyan') self.tag_config('highlight_blue', foreground = 'cyan')
self.tag_config('error_highlight_inactive', background = 'dim gray')
self.tag_config('error_highlight_active', background = 'light grey')
self.bind_class("Text","<Control-a>", self.select_all) # required in windows, works in others # self.bind('<Control-Key-a>', self.select_all) # the event happens but the action doesn't
self.bind_all("<Control-Shift-E>", self.scroll_errors)
self.bind_class("<Control-Shift-R>", self.rebuild)
# scrollbar # scrollbar
@@ -976,50 +730,18 @@ class output_window(Text):
self.config(yscrollcommand=scrb.set) self.config(yscrollcommand=scrb.set)
scrb.pack(side='right', fill='y') scrb.pack(side='right', fill='y')
# self.scrb_Y = tk.Scrollbar(self.frame, orient='vertical', command=self.yview)
# self.scrb_Y.config(yscrollcommand=self.scrb_Y.set)
# self.scrb_Y.pack(side='right', fill='y')
#
# self.scrb_X = tk.Scrollbar(self.frame, orient='horizontal', command=self.xview)
# self.scrb_X.config(xscrollcommand=self.scrb_X.set)
# self.scrb_X.pack(side='bottom', fill='x')
# scrb_X = tk.Scrollbar(self, orient=tk.HORIZONTAL, command=self.xview) # tk.HORIZONTAL now have a horizsontal scroll bar BUT... shrinks it to a postage stamp and hides far right behind the vertical scroll bar
# self.config(xscrollcommand=scrb_X.set)
# scrb_X.pack(side='bottom', fill='x')
#
# scrb= tk.Scrollbar(self, orient='vertical', command=self.yview)
# self.config(yscrollcommand=scrb.set)
# scrb.pack(side='right', fill='y')
# self.config(height = 240, width = 1000) # didn't get the size baCK TO NORMAL
# self.pack(side='left', fill='both', expand=True) # didn't get the size baCK TO NORMAL
# pop-up menu # pop-up menu
self.popup = tk.Menu(self, tearoff=0) self.popup = tk.Menu(self, tearoff=0)
self.popup.add_command(label='Cut', command=self._cut)
self.popup.add_command(label='Copy', command=self._copy) self.popup.add_command(label='Copy', command=self._copy)
self.popup.add_command(label='Paste', command=self._paste) self.popup.add_command(label='Paste', command=self._paste)
self.popup.add_separator() self.popup.add_separator()
self.popup.add_command(label='Cut', command=self._cut)
self.popup.add_separator()
self.popup.add_command(label='Select All', command=self._select_all) self.popup.add_command(label='Select All', command=self._select_all)
self.popup.add_command(label='Clear All', command=self._clear_all) self.popup.add_command(label='Clear All', command=self._clear_all)
self.popup.add_separator() self.popup.add_separator()
self.popup.add_command(label='Save As', command=self._file_save_as) self.popup.add_command(label='Save As', command=self._file_save_as)
self.popup.add_separator() self.bind('<Button-3>', self._show_popup)
# self.popup.add_command(label='Repeat Build(CTL-shift-r)', command=self._rebuild)
self.popup.add_command(label='Repeat Build', command=self._rebuild)
self.popup.add_separator()
self.popup.add_command(label='Scroll Errors (CTL-shift-e)', command=self._scroll_errors)
self.popup.add_separator()
self.popup.add_command(label='Open File at Cursor', command=self._open_selected_file)
if current_OS == 'Darwin': # MAC
self.bind('<Button-2>', self._show_popup) # macOS only
else:
self.bind('<Button-3>', self._show_popup) # Windows & Linux
# threading & subprocess section # threading & subprocess section
@@ -1039,19 +761,18 @@ class output_window(Text):
def check_thread(self): # wait for user to kill the window def check_thread(self): # wait for user to kill the window
global continue_updates global continue_updates
if continue_updates == True: if continue_updates == True:
self.root.after(10, self.check_thread) self.root.after(20, self.check_thread)
def update(self): def update(self):
global continue_updates global continue_updates
if continue_updates == True: if continue_updates == True:
self.root.after(10, self.update)#method is called every 50ms self.root.after(20, self.update)#method is called every 50ms
temp_text = ['0','0'] temp_text = ['0','0']
if IO_queue.empty(): if IO_queue.empty():
if not(self.secondary_thread.is_alive()): if not(self.secondary_thread.is_alive()):
continue_updates = False # queue is exhausted and thread is dead so no need for further updates continue_updates = False # queue is exhausted and thread is dead so no need for further updates
self.memory_check() # scan buffer and add percent used if needed self.tag_add('sel', '1.0', 'end')
print 'starting memory check'
else: else:
try: try:
temp_text = IO_queue.get(block = False) temp_text = IO_queue.get(block = False)
@@ -1064,74 +785,6 @@ class output_window(Text):
# text editing section # text editing section
def _scroll_errors(self):
global search_position
global error_found
if search_position == '': # first time so highlight all errors
countVar = tk.IntVar()
search_position = '1.0'
search_count = 0
while not(search_position == '') and search_count < 100:
search_position = self.search("error", search_position, stopindex="end", count=countVar, nocase=1)
search_count = search_count + 1
if not(search_position == ''):
error_found = True
end_pos = '{}+{}c'.format(search_position, 5)
self.tag_add("error_highlight_inactive", search_position, end_pos)
search_position = '{}+{}c'.format(search_position, 1) # point to the next character for new search
else:
break
if error_found:
if search_position == '':
search_position = self.search("error", '1.0', stopindex="end", nocase=1) # new search
else: # remove active highlight
end_pos = '{}+{}c'.format(search_position, 5)
start_pos = '{}+{}c'.format(search_position, -1)
self.tag_remove("error_highlight_active", start_pos, end_pos)
search_position = self.search("error", search_position, stopindex="end", nocase=1) # finds first occurrence AGAIN on the first time through
if search_position == "": # wrap around
search_position = self.search("error", '1.0', stopindex="end", nocase=1)
end_pos = '{}+{}c'.format(search_position, 5)
self.tag_add("error_highlight_active", search_position, end_pos) # add active highlight
self.see(search_position)
search_position = '{}+{}c'.format(search_position, 1) # point to the next character for new search
def scroll_errors(self, event):
self._scroll_errors()
def _rebuild(self):
#global board_name
#global Marlin_ver
#global target_env
#board_name, Marlin_ver = get_board_name()
#target_env = get_env(board_name, Marlin_ver)
self.start_thread()
def rebuild(self, event):
print "event happened"
self._rebuild()
def _open_selected_file(self):
current_line = self.index('insert')
line_start = current_line[ : current_line.find('.')] + '.0'
line_end = current_line[ : current_line.find('.')] + '.200'
self.mark_set("path_start", line_start)
self.mark_set("path_end", line_end)
path = self.get("path_start", "path_end")
from_loc = path.find('from ')
colon_loc = path.find(': ')
if 0 <= from_loc and ((colon_loc == -1) or (from_loc < colon_loc)) :
path = path [ from_loc + 5 : ]
if 0 <= colon_loc:
path = path [ : colon_loc ]
if 0 <= path.find('\\') or 0 <= path.find('/'): # make sure it really contains a path
open_file(path)
def _file_save_as(self): def _file_save_as(self):
self.filename = tkFileDialog.asksaveasfilename(defaultextension = '.txt') self.filename = tkFileDialog.asksaveasfilename(defaultextension = '.txt')
f = open(self.filename, 'w') f = open(self.filename, 'w')
@@ -1180,7 +833,7 @@ class output_window(Text):
pass pass
def cut(self, event): def cut(self, event):
self._cut() _cut(self)
def _copy(self): def _copy(self):
@@ -1192,7 +845,7 @@ class output_window(Text):
pass pass
def copy(self, event): def copy(self, event):
self._copy() _copy(self)
def _paste(self): def _paste(self):
@@ -1214,203 +867,40 @@ class output_window(Text):
if isok: if isok:
self.delete('1.0', 'end') self.delete('1.0', 'end')
# add memory % if needed def _place_cursor(self): # theme: terminal
def memory_check(self): '''check the position of the cursor against the last known position
global memory_check_first_time every 15ms and update the cursorblock tag as needed'''
if not(memory_check_first_time):
return
memory_check_first_time = False
search_position = self.search("Environment used:", "1.0", stopindex="end")
env_line = self.get(search_position, '{}+{}c'.format(search_position, 200))
print 'env_line 1 ', env_line
if 0 <= env_line.find('\n'):
env_line = env_line[ : env_line.find('\n')]
env_end = env_line.find(' ', 18)
if env_end == -1:
env_end = len(env_line)
env_line = env_line[ 18 : env_end ]
print 'env_line 2 ', env_line
env_found = False
for env in mem_check_environments:
if env_line == env:
env_found = True
print 'env ', env
search_position = self.search("Build type:", "1.0", stopindex="end") current_index = self.index('insert')
if search_position == "":
print "didn't find it"
return
build_line = self.get(search_position, '{}+{}c'.format(search_position, 200))
print 'build_line 1 ', build_line
if 0 <= build_line.find('\n'):
build_line = build_line[ : build_line.find('\n')]
build_end = build_line.find(' ', 14)
if build_end == -1:
build_end = len(build_line)
build_line = build_line[ 12 : build_end ]
print 'build_line 2 ', build_line
build_found = False
for build in mem_check_builds:
if build_line == build:
build_found = True
print 'build ', build
if env_found and build_found: # find the memory values if self.cursor != current_index:
search_position = self.search("Checking program size", "1.0", stopindex="end") self.cursor = current_index
if search_position != '': self.tag_delete('cursorblock')
print 'search_position: ' + search_position
line_int = int(search_position[ : search_position.find(".")]) + 1
line_str = str(line_int)
line = self.get(line_str + '.0', line_str + '.200')
print 'line: ', line
while 'text' != line[ : 4 ] :
line_int = line_int + 1
line_str = str(line_int)
line = self.get(line_str + '.0', line_str + '.200')
print 'line: ', line
line_int = line_int + 1
line_str = str(line_int)
print 'line + 3: ' + line_str + '.0'
size_line = self.get(line_str + '.0', line_str + '.200')
print 'size_line ', size_line
data_start = 0 start = self.index('insert')
while ' ' == size_line[ data_start : data_start + 1] : end = self.index('insert+1c')
data_start = data_start + 1 # eat leading blanks
print 'data_start: ', data_start, size_line.find(' ', data_start)
data_end = size_line.find(' ', data_start) - 1
text_str = size_line[ data_start : data_end]
print 'text_str = ', data_start, data_end, text_str + '/////'
text_val = int(text_str)
print 'text_val ', text_val
data_start = size_line.find(' ', data_end) if start[0] != end[0]:
while ' ' == size_line[ data_start : data_start + 1] : self.insert(start, ' ')
data_start = data_start + 1 # eat leading blanks end = self.index('insert')
print 'data_start: ', data_start, size_line.find(' ', data_start)
data_end = size_line.find(' ', data_start) -1
data_val = int(size_line[ data_start : data_end])
print 'data_val ', data_val
data_start = size_line.find(' ', data_end) self.tag_add('cursorblock', start, end)
while ' ' == size_line[ data_start : data_start + 1] : self.mark_set('insert', self.cursor)
data_start = data_start + 1 # eat leading blanks
print 'data_start: ', data_start, size_line.find(' ', data_start)
data_end = size_line.find(' ', data_start) - 1
if data_end == -1:
data_end = len(size_line)
bss_val = int(size_line[ data_start : data_end])
print 'bss_val ', bss_val
FLASH_total = text_val + data_val self.after(15, self._place_cursor)
RAM_total = bss_val + data_val
tag = 'normal' def _blink_cursor(self): # theme: terminal
if FLASH_total >= FLASH_MAX * FLASH_PERCENT_WARN: '''alternate the background color of the cursorblock tagged text
tag = 'warning' every 600 milliseconds'''
if FLASH_total >= FLASH_MAX:
tag = 'error'
line_int = line_int + 1
line_str = str(line_int)
self.insert('end', '\nProgram: ' + str(FLASH_total) + ' bytes (' + str( 100*FLASH_total/FLASH_MAX) + '% of application area)\n', tag)
self.insert(line_str + '.0', '\nProgram: ' + str(FLASH_total) + ' bytes (' + str( 100*FLASH_total/FLASH_MAX) + '% of application area)\n', tag)
if self.switch == self.fg:
self.switch = self.bg
else:
self.switch = self.fg
tag = 'normal' self.tag_config('cursorblock', background=self.switch)
if RAM_total >= RAM_MAX - RAM_WARN:
tag = 'warning'
if RAM_total >= RAM_MAX - RAM_SYSTEM:
tag = 'error'
line_int = line_int + 2
line_str = str(line_int)
self.insert('end', 'Data: ' + str(RAM_total) + ' bytes (' + str( 100*RAM_total/(RAM_MAX-RAM_SYSTEM)) + '% of non-system RAM)\n', tag)
self.insert(line_str + '.0', 'Data: ' + str(RAM_total) + ' bytes (' + str( 100*RAM_total/(RAM_MAX-RAM_SYSTEM)) + '% of non-system RAM)\n\n', tag)
self.see("end") # make the new lines visible (scroll text off the top)
# end - memory_check
#
# error reporting proceedure for copy_boards_dir()
#
def report_failure(self, PIO_path, board_path):
# didn't find the file - user needs to copy it & re-run the script
self.insert('end', 'Unable to move board definition file to destination. User must manually copy the file.\n\n', 'error')
self.insert('end', 'Please copy the following file and re-run the script:\n', 'normal')
self.insert('end', ' FROM:\n')
self.insert('end', ' ' + pwd + '/' + board_path + '/at90usb1286.json\n')
self.insert('end', ' TO:\n')
self.insert('end', ' ' + PIO_path + '/at90usb1286.json\n')
#
# move custom board definitions from project folder to PlatformIO
# returns True if the file ends up in the correct location
#
def copy_boards_dir(self):
temp = os.environ
for key in temp:
if 0 <= os.environ[key].find('.platformio'):
part = os.environ[key].split(';')
for part2 in part:
if 0 <= part2.find('.platformio'):
path = part2
break
path = path.replace("\\", "/")
path = path.replace("//", "/")
path_remaining = path
still_looking = True
PIO_path = ''
while still_looking:
colon_pos = path_remaining.find(':')
if -1 == colon_pos:
still_looking = False
path_maybe = path_remaining
else:
path_maybe = path_remaining[ : colon_pos]
path_remaining = path_remaining[ colon_pos + 1 : ]
if 0 <= path_maybe.find('/.platformio'):
still_looking = False
PIO_path = path_maybe
start_loc = PIO_path.find('/.platformio')
next_loc = PIO_path.find('/', start_loc + 5)
if 0 <= next_loc:
PIO_path = PIO_path[ : next_loc]
PIO_path = PIO_path + '/boards'
board_path = 'buildroot/share/PlatformIO/boards'
from distutils.dir_util import copy_tree
try:
copy_tree(board_path, PIO_path)
except:
pass
# check to see if it's there
# macOS will throw an exception if it can't get to the directory
# Ubuntu doesn't complain if it can't get to the directory
# Windows always succeeds (have not been able to lock it out in testing)
short_path = PIO_path[ : PIO_path.find('/boards')]
try:
PIO_dir = os.listdir(short_path)
except:
self.report_failure(PIO_path, board_path)
return False
if 'boards' in PIO_dir:
try:
boards_dir = os.listdir(PIO_path)
except:
self.report_failure(PIO_path, board_path)
return False
if 'at90usb1286.json' in boards_dir:
return True # it's there so all is well
self.report_failure(PIO_path, board_path)
return False
# end copy_boards_dir
self.after(600, self._blink_cursor)
# end - output_window # end - output_window
@@ -1432,18 +922,8 @@ def main():
target_env = get_env(board_name, Marlin_ver) target_env = get_env(board_name, Marlin_ver)
os.environ["BUILD_TYPE"] = build_type # let sub processes know what is happening
os.environ["TARGET_ENV"] = target_env
os.environ["BOARD_NAME"] = board_name
auto_build = output_window() auto_build = output_window()
auto_build.start_thread() # executes the "run_PIO" function
continue_script = True
if 0 <= target_env.find('USB1286'):
continue_script = auto_build.copy_boards_dir() # copy custom boards over to PlatformIO if using custom board
if continue_script:
auto_build.start_thread() # executes the "run_PIO" function
auto_build.root.mainloop() auto_build.root.mainloop()
File diff suppressed because it is too large Load Diff

Some files were not shown because too many files have changed in this diff Show More