Compare commits
60 Commits
marlin-1.1
...
12864-full
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d5a5a05462 | ||
|
|
625e264dfc | ||
|
|
6deb88102b | ||
|
|
3f19385e03 | ||
|
|
589e972102 | ||
|
|
17635865ca | ||
|
|
a2c47b53c2 | ||
|
|
9c133f5c05 | ||
|
|
fd8f28257f | ||
|
|
bf8b6729b2 | ||
|
|
0ca58ca7a6 | ||
|
|
79f559e9af | ||
|
|
c1c2743452 | ||
|
|
ee6094f39d | ||
|
|
1a5804f260 | ||
|
|
cea54723e7 | ||
|
|
90e27ff21b | ||
|
|
85c32a2bb6 | ||
|
|
223d925160 | ||
|
|
2c53c33d52 | ||
|
|
8fc01144f1 | ||
|
|
8448c67846 | ||
|
|
e822d53f2f | ||
|
|
30bbf59cb0 | ||
|
|
cd9751af41 | ||
|
|
0f5745e281 | ||
|
|
d6f2b7dcf2 | ||
|
|
b25aa626e7 | ||
|
|
afcdb69cee | ||
|
|
b447245ddd | ||
|
|
078678d434 | ||
|
|
b164d593cb | ||
|
|
2bd6f2f23a | ||
|
|
16d6d37096 | ||
|
|
5fbc1b6035 | ||
|
|
76b873baee | ||
|
|
1fe1842a75 | ||
|
|
bfe39a342d | ||
|
|
28e86b95ed | ||
|
|
94c99ff406 | ||
|
|
d3209886ed | ||
|
|
bb06621c6c | ||
|
|
f01026e748 | ||
|
|
06424642ba | ||
|
|
a57103fb29 | ||
|
|
9281686c49 | ||
|
|
01e152b456 | ||
|
|
42f52d34b4 | ||
|
|
574b2f8aed | ||
|
|
3be7677642 | ||
|
|
5f7a252267 | ||
|
|
79d00d560f | ||
|
|
ae98ec4bae | ||
|
|
a40267c4a0 | ||
|
|
0f9b4940c5 | ||
|
|
f8a7e2d0d6 | ||
|
|
c5cc8b2171 | ||
|
|
f01ee75004 | ||
|
|
b3af9708e9 | ||
|
|
ad683fdedc |
19
.gitattributes
vendored
19
.gitattributes
vendored
@@ -1,2 +1,19 @@
|
||||
# Auto detect text files and perform LF normalization
|
||||
# Set the default behavior, in case people don't have core.autocrlf set.
|
||||
* text=auto
|
||||
|
||||
# Files with Unix line endings
|
||||
*.c text eol=lf
|
||||
*.cpp text eol=lf
|
||||
*.h text eol=lf
|
||||
*.ino text eol=lf
|
||||
*.py text eol=lf
|
||||
*.sh text eol=lf
|
||||
*.scad text eol=lf
|
||||
|
||||
# Files with native line endings
|
||||
# *.sln text
|
||||
|
||||
# Binary files
|
||||
*.png binary
|
||||
*.jpg binary
|
||||
*.fon binary
|
||||
|
||||
13
.github/ISSUE_TEMPLATE/bug_report.md
vendored
13
.github/ISSUE_TEMPLATE/bug_report.md
vendored
@@ -7,6 +7,17 @@ assignees: ''
|
||||
|
||||
---
|
||||
|
||||
<!--
|
||||
|
||||
Before posting a bug report, make sure to thoroughly read the readme and Wiki.
|
||||
https://github.com/davidramiro/Marlin-AI3M/wiki/
|
||||
|
||||
I am happy to help everyone as much as I can, but make sure your bug report is only applicable to this specific firmware.
|
||||
Example of a valid bug report: "M600 filament change is not working as expected."
|
||||
Example of an invalid request: "I am powering my printer with a hamster wheel generator. It's not working properly. Fix pls."
|
||||
|
||||
-->
|
||||
|
||||
**Describe the bug**
|
||||
A clear and concise description of what the bug is.
|
||||
|
||||
@@ -24,7 +35,7 @@ A clear and concise description of what you expected to happen.
|
||||
If applicable, add photos or console outputs to help explain your problem.
|
||||
|
||||
**Printer (please complete the following information):**
|
||||
- Firmware: [e.g. 181227]
|
||||
- Firmware version: [e.g. v19.02.08]
|
||||
- Printing method [e.g. SD, USB (OctoPrint, Cura, ...)]
|
||||
- Model [e.g. i3 Mega, Mega-S]
|
||||
|
||||
|
||||
29
.github/ISSUE_TEMPLATE/feature_request.md
vendored
Normal file
29
.github/ISSUE_TEMPLATE/feature_request.md
vendored
Normal file
@@ -0,0 +1,29 @@
|
||||
---
|
||||
name: Feature request
|
||||
about: Suggest an idea for this project
|
||||
title: "[FR]"
|
||||
labels: enhancement
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
<!--
|
||||
|
||||
Suggestions are always welcome! Keep in mind though, this firmware should stay compatible with a stock i3 Mega. Of course support for popular mods can be added.
|
||||
Example of a valid request: "Please enable filament change via M600" or "Add support for the Mega-S upgrade kit"
|
||||
Example of an invalid request: "I have modded my printer with a dual extruder. Can you please add support for this?"
|
||||
|
||||
Feel free to fork this project and customize it to your own needs, a starting point would be this page:
|
||||
https://github.com/davidramiro/Marlin-AI3M/wiki/Customization-&-Compiling
|
||||
|
||||
-->
|
||||
|
||||
**Describe your suggestion.**
|
||||
A clear and concise description of what you want to see added.
|
||||
|
||||
**Reasoning**
|
||||
Why do you think this would be helpful for other users as well?
|
||||
|
||||
**References, context or examples.**
|
||||
Please provide needed information, screenshots or context if applicable.
|
||||
Want to suggest a feature from Marlin or a specific Marlin fork? Please provide a link to an example or the documentation.
|
||||
152
.gitignore
vendored
152
.gitignore
vendored
@@ -1,5 +1,151 @@
|
||||
.pio
|
||||
.pioenvs
|
||||
.piolibdeps
|
||||
#
|
||||
# Marlin 3D Printer Firmware
|
||||
# Copyright (C) 2017 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/>.
|
||||
#
|
||||
|
||||
# Our automatic versioning scheme generates the following file
|
||||
# NEVER put it in the repository
|
||||
_Version.h
|
||||
|
||||
#
|
||||
# OS
|
||||
#
|
||||
applet/
|
||||
*.DS_Store
|
||||
|
||||
|
||||
#
|
||||
# Misc
|
||||
#
|
||||
*~
|
||||
*.orig
|
||||
*.rej
|
||||
*.bak
|
||||
*.idea
|
||||
*.s
|
||||
*.i
|
||||
*.ii
|
||||
*.swp
|
||||
tags
|
||||
|
||||
#
|
||||
# C++
|
||||
#
|
||||
# Compiled Object files
|
||||
*.slo
|
||||
*.lo
|
||||
*.o
|
||||
*.obj
|
||||
*.ino.cpp
|
||||
|
||||
# Precompiled Headers
|
||||
*.gch
|
||||
*.pch
|
||||
|
||||
# Compiled Dynamic libraries
|
||||
*.so
|
||||
*.dylib
|
||||
*.dll
|
||||
|
||||
# Fortran module files
|
||||
*.mod
|
||||
*.smod
|
||||
|
||||
# Compiled Static libraries
|
||||
*.lai
|
||||
*.la
|
||||
*.a
|
||||
*.lib
|
||||
|
||||
# Executables
|
||||
*.exe
|
||||
*.out
|
||||
*.app
|
||||
|
||||
|
||||
#
|
||||
# C
|
||||
#
|
||||
# Object files
|
||||
*.o
|
||||
*.ko
|
||||
*.obj
|
||||
*.elf
|
||||
|
||||
# Precompiled Headers
|
||||
*.gch
|
||||
*.pch
|
||||
|
||||
# Libraries
|
||||
*.lib
|
||||
*.a
|
||||
*.la
|
||||
*.lo
|
||||
|
||||
# Shared objects (inc. Windows DLLs)
|
||||
*.dll
|
||||
*.so
|
||||
*.so.*
|
||||
*.dylib
|
||||
|
||||
# Executables
|
||||
*.exe
|
||||
*.out
|
||||
*.app
|
||||
*.i*86
|
||||
*.x86_64
|
||||
*.hex
|
||||
|
||||
# Debug files
|
||||
*.dSYM/
|
||||
*.su
|
||||
|
||||
# PlatformIO files/dirs
|
||||
.clang_complete
|
||||
.gcc-flags.json
|
||||
.pio*
|
||||
.pioenvs
|
||||
.piolibdeps
|
||||
lib/readme.txt
|
||||
|
||||
#Visual Studio
|
||||
*.sln
|
||||
*.vcxproj
|
||||
*.vcxproj.user
|
||||
*.vcxproj.filters
|
||||
Release/
|
||||
Debug/
|
||||
__vm/
|
||||
.vs/
|
||||
vc-fileutils.settings
|
||||
|
||||
#Visual Studio Code
|
||||
.vscode
|
||||
.vscode/.browse.c_cpp.db*
|
||||
.vscode/c_cpp_properties.json
|
||||
.vscode/launch.json
|
||||
.vscode/*.db
|
||||
|
||||
#cmake
|
||||
CMakeLists.txt
|
||||
Marlin/CMakeLists.txt
|
||||
CMakeListsPrivate.txt
|
||||
|
||||
#CLion
|
||||
cmake-build-*
|
||||
|
||||
309
.travis.yml
309
.travis.yml
@@ -75,315 +75,26 @@ script:
|
||||
#
|
||||
- cp Marlin/Configuration.h Marlin/Configuration.h.backup
|
||||
- cp Marlin/Configuration_adv.h Marlin/Configuration_adv.h.backup
|
||||
- cp Marlin/pins_RAMPS.h Marlin/pins_RAMPS.h.backup
|
||||
- cp Marlin/pins_TRIGORILLA_14.h Marlin/pins_TRIGORILLA_14.h.backup
|
||||
#
|
||||
# Build with the default configurations
|
||||
#
|
||||
- build_marlin
|
||||
#
|
||||
# Test 2 extruders (one MAX6675) and heated bed on basic RAMPS 1.4
|
||||
# Test a "Fix Mounted" Probe with Safe Homing, some arc options,
|
||||
# linear bed leveling, M48, leveling debug, and firmware retraction.
|
||||
#
|
||||
- opt_set MOTHERBOARD BOARD_RAMPS_14_EEB
|
||||
- opt_set EXTRUDERS 2
|
||||
- opt_set TEMP_SENSOR_0 -2
|
||||
- opt_set TEMP_SENSOR_1 1
|
||||
- opt_set TEMP_SENSOR_BED 1
|
||||
- opt_set POWER_SUPPLY 1
|
||||
- opt_enable PIDTEMPBED FIX_MOUNTED_PROBE Z_SAFE_HOMING
|
||||
- opt_enable REPRAP_DISCOUNT_SMART_CONTROLLER SDSUPPORT EEPROM_SETTINGS PINS_DEBUGGING
|
||||
- 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_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 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_adv FANMUX0_PIN 53
|
||||
- build_marlin
|
||||
#
|
||||
# Test a probeless build of AUTO_BED_LEVELING_UBL, with lots of extruders
|
||||
#
|
||||
- restore_configs
|
||||
- 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 AUTO_BED_LEVELING_UBL RESTORE_LEVELING_AFTER_G28 DEBUG_LEVELING_FEATURE G26_MESH_EDITING ENABLE_LEVELING_FADE_HEIGHT 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 JUNCTION_DEVIATION MAX7219_DEBUG
|
||||
- opt_set_adv MAX7219_ROTATE 270
|
||||
- build_marlin
|
||||
#
|
||||
# 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 LCD_LANGUAGE kana_utf8
|
||||
- opt_disable SEGMENT_LEVELED_MOVES
|
||||
- opt_enable_adv BABYSTEP_ZPROBE_OFFSET DOUBLECLICK_FOR_Z_BABYSTEPPING
|
||||
- build_marlin
|
||||
#
|
||||
# Test a Servo Probe
|
||||
# ...with AUTO_BED_LEVELING_3POINT, DEBUG_LEVELING_FEATURE, EEPROM_SETTINGS, EEPROM_CHITCHAT, EXTENDED_CAPABILITIES_REPORT, and AUTO_REPORT_TEMPERATURES
|
||||
#
|
||||
- restore_configs
|
||||
- opt_enable NUM_SERVOS Z_PROBE_SERVO_NR Z_SERVO_ANGLES DEACTIVATE_SERVOS_AFTER_MOVE
|
||||
- opt_set NUM_SERVOS 1
|
||||
- opt_enable AUTO_BED_LEVELING_3POINT DEBUG_LEVELING_FEATURE EEPROM_SETTINGS EEPROM_CHITCHAT
|
||||
- opt_enable_adv NO_VOLUMETRICS EXTENDED_CAPABILITIES_REPORT AUTO_REPORT_TEMPERATURES AUTOTEMP G38_PROBE_TARGET
|
||||
- build_marlin
|
||||
#
|
||||
# Test MESH_BED_LEVELING feature, with LCD
|
||||
#
|
||||
- restore_configs
|
||||
- opt_enable MESH_BED_LEVELING G26_MESH_EDITING MESH_G28_REST_ORIGIN LCD_BED_LEVELING ULTIMAKERCONTROLLER
|
||||
- build_marlin
|
||||
#
|
||||
# Test MINIRAMBO for PWM_MOTOR_CURRENT
|
||||
# PROBE_MANUALLY feature, with LCD support,
|
||||
# ULTIMAKERCONTROLLER, FILAMENT_LCD_DISPLAY, FILAMENT_WIDTH_SENSOR,
|
||||
# PRINTCOUNTER, NOZZLE_PARK_FEATURE, NOZZLE_CLEAN_FEATURE, PCA9632,
|
||||
# Z_DUAL_ENDSTOPS, BEZIER_CURVE_SUPPORT, EXPERIMENTAL_I2CBUS,
|
||||
# ADVANCED_PAUSE_FEATURE, ADVANCED_PAUSE_CONTINUOUS_PURGE, PARK_HEAD_ON_PAUSE, LCD_INFO_MENU, M114_DETAIL
|
||||
# EEPROM_SETTINGS, EEPROM_CHITCHAT, M100_FREE_MEMORY_WATCHER,
|
||||
# INCH_MODE_SUPPORT, TEMPERATURE_UNITS_SUPPORT
|
||||
#
|
||||
- restore_configs
|
||||
- opt_set MOTHERBOARD BOARD_MINIRAMBO
|
||||
- opt_enable PROBE_MANUALLY AUTO_BED_LEVELING_BILINEAR G26_MESH_EDITING LCD_BED_LEVELING ULTIMAKERCONTROLLER
|
||||
- opt_enable EEPROM_SETTINGS EEPROM_CHITCHAT M100_FREE_MEMORY_WATCHER M100_FREE_MEMORY_DUMPER M100_FREE_MEMORY_CORRUPTOR INCH_MODE_SUPPORT TEMPERATURE_UNITS_SUPPORT
|
||||
- opt_enable ULTIMAKERCONTROLLER SDSUPPORT
|
||||
- opt_enable PRINTCOUNTER NOZZLE_PARK_FEATURE NOZZLE_CLEAN_FEATURE PCA9632
|
||||
- opt_enable_adv BEZIER_CURVE_SUPPORT EXPERIMENTAL_I2CBUS
|
||||
- opt_enable_adv ADVANCED_PAUSE_FEATURE ADVANCED_PAUSE_CONTINUOUS_PURGE FILAMENT_LOAD_UNLOAD_GCODES PARK_HEAD_ON_PAUSE LCD_INFO_MENU M114_DETAIL
|
||||
- opt_set_adv PWM_MOTOR_CURRENT {1300,1300,1250}
|
||||
- opt_set_adv I2C_SLAVE_ADDRESS 63
|
||||
- build_marlin
|
||||
#
|
||||
# Mixing Extruder with 5 steppers, Cyrillic
|
||||
#
|
||||
- restore_configs
|
||||
- opt_set MOTHERBOARD BOARD_AZTEEG_X3_PRO
|
||||
- opt_enable MIXING_EXTRUDER CR10_STOCKDISPLAY
|
||||
- opt_set MIXING_STEPPERS 5
|
||||
- opt_set LCD_LANGUAGE ru
|
||||
- build_marlin
|
||||
#
|
||||
# Test DUAL_X_CARRIAGE
|
||||
#
|
||||
- restore_configs
|
||||
- opt_set MOTHERBOARD BOARD_RUMBA
|
||||
- opt_set EXTRUDERS 2
|
||||
- opt_set TEMP_SENSOR_1 1
|
||||
- opt_enable USE_XMAX_PLUG
|
||||
- opt_enable_adv DUAL_X_CARRIAGE
|
||||
- build_marlin
|
||||
#
|
||||
# Test SPEAKER with BOARD_BQ_ZUM_MEGA_3D and BQ_LCD_SMART_CONTROLLER
|
||||
#
|
||||
#- restore_configs
|
||||
#- opt_set MOTHERBOARD BOARD_BQ_ZUM_MEGA_3D
|
||||
#- opt_set LCD_FEEDBACK_FREQUENCY_DURATION_MS 10
|
||||
#- opt_set LCD_FEEDBACK_FREQUENCY_HZ 100
|
||||
#- opt_enable BQ_LCD_SMART_CONTROLLER SPEAKER
|
||||
#
|
||||
# Test SWITCHING_EXTRUDER
|
||||
#
|
||||
- restore_configs
|
||||
- opt_set MOTHERBOARD BOARD_RUMBA
|
||||
- opt_set EXTRUDERS 2
|
||||
- opt_enable NUM_SERVOS
|
||||
- opt_set NUM_SERVOS 1
|
||||
- opt_enable SWITCHING_EXTRUDER ULTIMAKERCONTROLLER
|
||||
- build_marlin
|
||||
#
|
||||
# Enable COREXY
|
||||
#
|
||||
#- restore_configs
|
||||
#- opt_enable COREXY
|
||||
#- build_marlin
|
||||
#
|
||||
# Test many less common options
|
||||
#
|
||||
- restore_configs
|
||||
- opt_enable COREYX
|
||||
- opt_set_adv FAN_MIN_PWM 50
|
||||
- opt_set_adv FAN_KICKSTART_TIME 100
|
||||
- opt_set_adv XY_FREQUENCY_LIMIT 15
|
||||
- opt_enable_adv SHOW_TEMP_ADC_VALUES HOME_Y_BEFORE_X EMERGENCY_PARSER FAN_KICKSTART_TIME
|
||||
- opt_enable_adv ABORT_ON_ENDSTOP_HIT_FEATURE_ENABLED ADVANCED_OK
|
||||
- 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 MENU_ADDAUTOSTART SDCARD_SORT_ALPHA
|
||||
- opt_enable REPRAP_DISCOUNT_SMART_CONTROLLER BABYSTEPPING DAC_MOTOR_CURRENT_DEFAULT
|
||||
- opt_enable FILAMENT_LCD_DISPLAY FILAMENT_WIDTH_SENSOR
|
||||
- opt_enable ENDSTOP_INTERRUPTS_FEATURE FAN_SOFT_PWM SDSUPPORT
|
||||
- opt_enable USE_XMAX_PLUG
|
||||
- build_marlin
|
||||
#
|
||||
######## Other Standard LCD/Panels ##############
|
||||
#
|
||||
# ULTRA_LCD
|
||||
#
|
||||
#- restore_configs
|
||||
#- opt_enable ULTRA_LCD
|
||||
#- build_marlin
|
||||
#
|
||||
# DOGLCD
|
||||
#
|
||||
#- restore_configs
|
||||
#- opt_enable DOGLCD
|
||||
#- build_marlin
|
||||
#
|
||||
# MAKRPANEL
|
||||
# Needs to use Melzi and Sanguino hardware
|
||||
#
|
||||
#- restore_configs
|
||||
#- opt_enable MAKRPANEL
|
||||
#- build_marlin
|
||||
#
|
||||
# REPRAP_DISCOUNT_SMART_CONTROLLER, SDSUPPORT, BABYSTEPPING, RIGIDBOARD_V2, and DAC_MOTOR_CURRENT_DEFAULT
|
||||
#
|
||||
#- restore_configs
|
||||
#- opt_set MOTHERBOARD BOARD_RIGIDBOARD_V2
|
||||
#- opt_enable REPRAP_DISCOUNT_SMART_CONTROLLER SDSUPPORT BABYSTEPPING DAC_MOTOR_CURRENT_DEFAULT
|
||||
#- build_marlin
|
||||
# #
|
||||
# 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
|
||||
- opt_enable REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER SDSUPPORT
|
||||
- opt_enable_adv SDCARD_SORT_ALPHA STATUS_MESSAGE_SCROLLING SCROLL_LONG_FILENAMES LIGHTWEIGHT_UI
|
||||
- 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
|
||||
#
|
||||
# REPRAPWORLD_KEYPAD
|
||||
#
|
||||
# Cant find configuration details to get it to compile
|
||||
#- restore_configs
|
||||
#- opt_enable ULTRA_LCD REPRAPWORLD_KEYPAD REPRAPWORLD_KEYPAD_MOVE_STEP
|
||||
#- build_marlin
|
||||
#
|
||||
# RA_CONTROL_PANEL
|
||||
#
|
||||
#- restore_configs
|
||||
#- opt_enable RA_CONTROL_PANEL PINS_DEBUGGING
|
||||
#- build_marlin
|
||||
#
|
||||
######## I2C LCD/PANELS ##############
|
||||
#
|
||||
# !!!ATTENTION!!!
|
||||
# Most I2C configurations are failing at the moment because they require
|
||||
# a different Liquid Crystal library "LiquidTWI2".
|
||||
#
|
||||
# LCD_SAINSMART_I2C_1602
|
||||
#
|
||||
#- restore_configs
|
||||
#- opt_enable LCD_SAINSMART_I2C_1602
|
||||
#- build_marlin
|
||||
#
|
||||
# LCD_I2C_PANELOLU2
|
||||
#
|
||||
#- restore_configs
|
||||
#- opt_enable LCD_I2C_PANELOLU2
|
||||
#- build_marlin
|
||||
#
|
||||
# LCD_I2C_VIKI
|
||||
#
|
||||
#- restore_configs
|
||||
#- opt_enable LCD_I2C_VIKI
|
||||
#- build_marlin
|
||||
#
|
||||
# LCM1602
|
||||
#
|
||||
#- restore_configs
|
||||
#- opt_enable LCM1602
|
||||
#- 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 ##############
|
||||
#
|
||||
# BQ Hephestos 2
|
||||
#- restore_configs
|
||||
#- use_example_configs Hephestos_2
|
||||
#- build_marlin
|
||||
# Anycubic i3 Mega with BLtouch
|
||||
#
|
||||
# Delta Config (generic) + ABL bilinear + PROBE_MANUALLY
|
||||
- use_example_configs delta/generic
|
||||
- opt_enable REPRAP_DISCOUNT_SMART_CONTROLLER DELTA_CALIBRATION_MENU AUTO_BED_LEVELING_BILINEAR PROBE_MANUALLY
|
||||
#- Test compatibility to https://github.com/MNieddu91/Marlin-AI3M-BLTouch
|
||||
#
|
||||
- use_example_configs Anycubic/Ai3MBLtouch
|
||||
- build_marlin
|
||||
#
|
||||
# Delta Config (generic) + UBL + ALLEN_KEY + OLED_PANEL_TINYBOY2 + EEPROM_SETTINGS
|
||||
# Anycubic i3 Mega with 12864 display
|
||||
#
|
||||
- use_example_configs delta/generic
|
||||
- opt_enable AUTO_BED_LEVELING_UBL RESTORE_LEVELING_AFTER_G28 Z_PROBE_ALLEN_KEY EEPROM_SETTINGS EEPROM_CHITCHAT
|
||||
- opt_enable OLED_PANEL_TINYBOY2 MESH_EDIT_GFX_OVERLAY
|
||||
#- Test compatibility to RepRapDiscount FULL GRAPHIC Smart Controller
|
||||
#
|
||||
- use_example_configs Anycubic/Ai3M12864
|
||||
- build_marlin
|
||||
#
|
||||
# Delta Config (FLSUN AC because it's complex)
|
||||
#
|
||||
- use_example_configs delta/FLSUN/auto_calibrate
|
||||
- build_marlin
|
||||
#
|
||||
# Makibox Config need to check board type for Teensy++ 2.0
|
||||
#
|
||||
#- use_example_configs makibox
|
||||
#- build_marlin
|
||||
#
|
||||
# SCARA with TMC2130
|
||||
#
|
||||
- use_example_configs SCARA
|
||||
- opt_enable AUTO_BED_LEVELING_BILINEAR FIX_MOUNTED_PROBE USE_ZMIN_PLUG EEPROM_SETTINGS EEPROM_CHITCHAT ULTIMAKERCONTROLLER
|
||||
- opt_set X_DRIVER_TYPE TMC2130
|
||||
- opt_set Y_DRIVER_TYPE TMC2130
|
||||
- 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
|
||||
#
|
||||
# tvrrug Config need to check board type for sanguino atmega644p
|
||||
#
|
||||
#- use_example_configs tvrrug/Round2
|
||||
#- build_marlin
|
||||
#
|
||||
#
|
||||
######## Board Types #############
|
||||
#
|
||||
# To be added in nightly test branch
|
||||
#
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,17 +1,17 @@
|
||||
/*
|
||||
AnycubicTFT.h --- Support for Anycubic i3 Mega TFT
|
||||
Created by Christian Hopp on 09.12.17.
|
||||
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
|
||||
This library 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
|
||||
Lesser General Public License for more details.
|
||||
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
@@ -55,7 +55,11 @@ public:
|
||||
void HeatingStart();
|
||||
void FilamentRunout();
|
||||
void KillTFT();
|
||||
|
||||
char TFTstate=ANYCUBIC_TFT_STATE_IDLE;
|
||||
bool PausedByRunout=false;
|
||||
bool PausedByFilamentChange=false;
|
||||
bool PausedByNozzleTimeout=false;
|
||||
|
||||
private:
|
||||
char TFTcmdbuffer[TFTBUFSIZE][TFT_MAX_CMD_SIZE];
|
||||
int TFTbuflen=0;
|
||||
@@ -64,7 +68,6 @@ private:
|
||||
char serial3_char;
|
||||
int serial3_count = 0;
|
||||
char *TFTstrchr_pointer;
|
||||
char TFTstate=ANYCUBIC_TFT_STATE_IDLE;
|
||||
char FlagResumFromOutage=0;
|
||||
uint16_t filenumber=0;
|
||||
unsigned long starttime=0;
|
||||
@@ -72,7 +75,8 @@ private:
|
||||
uint8_t tmp_extruder=0;
|
||||
char LastSDstatus=0;
|
||||
uint16_t HeaterCheckCount=0;
|
||||
|
||||
bool IsParked = false;
|
||||
|
||||
struct OutageDataStruct {
|
||||
char OutageDataVersion;
|
||||
char OutageFlag;
|
||||
@@ -81,10 +85,10 @@ private:
|
||||
float last_hotend_temp;
|
||||
long lastSDposition;
|
||||
} OutageData;
|
||||
|
||||
|
||||
void WriteOutageEEPromData();
|
||||
void ReadOutageEEPromData();
|
||||
|
||||
|
||||
float CodeValue();
|
||||
bool CodeSeen(char);
|
||||
void Ls();
|
||||
@@ -96,14 +100,19 @@ private:
|
||||
void CheckSDCardChange();
|
||||
void CheckHeaterError();
|
||||
void HandleSpecialMenu();
|
||||
|
||||
void FilamentChangePause();
|
||||
void FilamentChangeResume();
|
||||
void ReheatNozzle();
|
||||
void ParkAfterStop();
|
||||
|
||||
char SelectedDirectory[30];
|
||||
uint8_t SpecialMenu=false;
|
||||
|
||||
#if ENABLED(ANYCUBIC_FILAMENT_RUNOUT_SENSOR)
|
||||
char FilamentTestStatus=false;
|
||||
char FilamentTestLastStatus=false;
|
||||
long FilamentRunoutCounter=0;
|
||||
bool FilamentSetMillis=true;
|
||||
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
#include <U8glib.h>
|
||||
|
||||
/**
|
||||
* Marlin 3D Printer Firmware
|
||||
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
|
||||
@@ -81,10 +83,10 @@
|
||||
// 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
|
||||
// build by the user have been successfully uploaded into firmware.
|
||||
#define STRING_CONFIG_H_AUTHOR "(davidramiro, for Anycubic i3 Mega)" // Who made the changes.
|
||||
#define STRING_CONFIG_H_AUTHOR "(davidramiro)" // Who made the changes.
|
||||
#define SHOW_BOOTSCREEN
|
||||
#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_LINE1 SHORT_BUILD_VERSION // will be shown during bootup in line 1
|
||||
#define STRING_SPLASH_LINE2 CUSTOM_BUILD_VERSION // will be shown during bootup in line 2
|
||||
|
||||
/**
|
||||
* *** VENDORS PLEASE READ ***
|
||||
@@ -350,12 +352,12 @@
|
||||
// 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!
|
||||
// You should use MINTEMP for thermistor short/failure protection.
|
||||
#define HEATER_0_MAXTEMP 260
|
||||
#define HEATER_0_MAXTEMP 285
|
||||
#define HEATER_1_MAXTEMP 275
|
||||
#define HEATER_2_MAXTEMP 275
|
||||
#define HEATER_3_MAXTEMP 275
|
||||
#define HEATER_4_MAXTEMP 275
|
||||
#define BED_MAXTEMP 120
|
||||
#define BED_MAXTEMP 135
|
||||
|
||||
//===========================================================================
|
||||
//============================= PID Settings ================================
|
||||
@@ -379,10 +381,10 @@
|
||||
|
||||
// If you are using a pre-configured hotend then you can use one of the value sets by uncommenting it
|
||||
|
||||
// i3 Mega
|
||||
#define DEFAULT_Kp 15.94
|
||||
#define DEFAULT_Ki 1.17
|
||||
#define DEFAULT_Kd 54.19
|
||||
// i3 Mega stock v5 hotend, 40W heater cartridge (3.6Ω @ 22°C)
|
||||
#define DEFAULT_Kp 18.58
|
||||
#define DEFAULT_Ki 1.38
|
||||
#define DEFAULT_Kd 62.40
|
||||
|
||||
// Ultimaker
|
||||
//#define DEFAULT_Kp 22.2
|
||||
@@ -436,10 +438,10 @@
|
||||
|
||||
//#define PID_BED_DEBUG // Sends debug data to the serial port.
|
||||
|
||||
//Anycubic i3 Mega 160W Ultrabase
|
||||
#define DEFAULT_bedKp 251.78
|
||||
#define DEFAULT_bedKi 49.57
|
||||
#define DEFAULT_bedKd 319.73
|
||||
//Anycubic i3 Mega Ultrabase (0.9Ω @ 22°C)
|
||||
#define DEFAULT_bedKp 187.45
|
||||
#define DEFAULT_bedKi 35.75
|
||||
#define DEFAULT_bedKd 245.71
|
||||
|
||||
//120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)
|
||||
//from pidautotune
|
||||
@@ -467,7 +469,7 @@
|
||||
* Note: For Bowden Extruders make this large enough to allow load/unload.
|
||||
*/
|
||||
#define PREVENT_LENGTHY_EXTRUDE
|
||||
#define EXTRUDE_MAXLENGTH 200
|
||||
#define EXTRUDE_MAXLENGTH 600
|
||||
|
||||
//===========================================================================
|
||||
//======================== Thermal Runaway Protection =======================
|
||||
@@ -556,14 +558,14 @@
|
||||
* 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 TMC2208_STANDALONE
|
||||
#define Y_DRIVER_TYPE TMC2208_STANDALONE
|
||||
#define Z_DRIVER_TYPE TMC2208_STANDALONE
|
||||
#define X_DRIVER_TYPE TMC2208_STANDALONE // comment out for stock drivers
|
||||
#define Y_DRIVER_TYPE TMC2208_STANDALONE // comment out for stock drivers
|
||||
#define Z_DRIVER_TYPE TMC2208_STANDALONE // comment out for stock drivers
|
||||
#define X2_DRIVER_TYPE TMC2208_STANDALONE
|
||||
#define Y2_DRIVER_TYPE TMC2208_STANDALONE
|
||||
#define Z2_DRIVER_TYPE TMC2208_STANDALONE
|
||||
#define E0_DRIVER_TYPE TMC2208_STANDALONE
|
||||
#define E1_DRIVER_TYPE TMC2208_STANDALONE
|
||||
#define Z2_DRIVER_TYPE TMC2208_STANDALONE // comment out for stock drivers
|
||||
#define E0_DRIVER_TYPE TMC2208_STANDALONE // comment out for stock drivers
|
||||
#define E1_DRIVER_TYPE TMC2208_STANDALONE // comment out for stock drivers
|
||||
#define E2_DRIVER_TYPE TMC2208_STANDALONE
|
||||
#define E3_DRIVER_TYPE TMC2208_STANDALONE
|
||||
#define E4_DRIVER_TYPE TMC2208_STANDALONE
|
||||
@@ -621,7 +623,7 @@
|
||||
* Override with M203
|
||||
* X, Y, Z, E0 [, E1[, E2[, E3[, E4]]]]
|
||||
*/
|
||||
#define DEFAULT_MAX_FEEDRATE { 500, 500, 6, 60 }
|
||||
#define DEFAULT_MAX_FEEDRATE { 500, 120, 6, 60 }
|
||||
|
||||
/**
|
||||
* Default Max Acceleration (change/s) change = mm/s
|
||||
@@ -629,7 +631,7 @@
|
||||
* Override with M201
|
||||
* X, Y, Z, E0 [, E1[, E2[, E3[, E4]]]]
|
||||
*/
|
||||
#define DEFAULT_MAX_ACCELERATION { 3000, 2000, 60, 10000 }
|
||||
#define DEFAULT_MAX_ACCELERATION { 2000, 1200, 60, 10000 }
|
||||
|
||||
/**
|
||||
* Default Acceleration (change/s) change = mm/s
|
||||
@@ -641,7 +643,7 @@
|
||||
*/
|
||||
#define DEFAULT_ACCELERATION 1200 // X, Y, Z and E acceleration for printing moves
|
||||
#define DEFAULT_RETRACT_ACCELERATION 3000 // E acceleration for retracts
|
||||
#define DEFAULT_TRAVEL_ACCELERATION 3000 // X, Y, Z acceleration for travel (non printing) moves
|
||||
#define DEFAULT_TRAVEL_ACCELERATION 1500 // X, Y, Z acceleration for travel (non printing) moves
|
||||
|
||||
/**
|
||||
* Default Jerk (mm/s)
|
||||
@@ -854,15 +856,15 @@
|
||||
// @section machine
|
||||
|
||||
// Invert the stepper direction. Change (or reverse the motor connector) if an axis goes the wrong way.
|
||||
#define INVERT_X_DIR false
|
||||
#define INVERT_Y_DIR true
|
||||
#define INVERT_Z_DIR true
|
||||
#define INVERT_X_DIR false // set to true for stock drivers or TMC2208 with reversed connectors
|
||||
#define INVERT_Y_DIR true // set to false for stock drivers or TMC2208 with reversed connectors
|
||||
#define INVERT_Z_DIR true // set to false for stock drivers or TMC2208 with reversed connectors
|
||||
|
||||
// @section extruder
|
||||
|
||||
// For direct drive extruder v9 set to true, for geared extruder set to false.
|
||||
#define INVERT_E0_DIR true
|
||||
#define INVERT_E1_DIR true
|
||||
#define INVERT_E0_DIR true // set to false for stock drivers or TMC2208 with reversed connectors
|
||||
#define INVERT_E1_DIR true // set to false for stock drivers or TMC2208 with reversed connectors
|
||||
#define INVERT_E2_DIR false
|
||||
#define INVERT_E3_DIR false
|
||||
#define INVERT_E4_DIR false
|
||||
@@ -1108,7 +1110,7 @@
|
||||
* Add a bed leveling sub-menu for ABL or MBL.
|
||||
* Include a guided procedure if manual probing is enabled.
|
||||
*/
|
||||
//#define LCD_BED_LEVELING
|
||||
#define LCD_BED_LEVELING
|
||||
|
||||
#if ENABLED(LCD_BED_LEVELING)
|
||||
#define MBL_Z_STEP 0.025 // Step size while manually probing Z axis.
|
||||
@@ -1120,6 +1122,7 @@
|
||||
|
||||
#if ENABLED(LEVEL_BED_CORNERS)
|
||||
#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
|
||||
#endif
|
||||
|
||||
@@ -1244,7 +1247,7 @@
|
||||
//
|
||||
#define HOST_KEEPALIVE_FEATURE // Disable this if your host doesn't like keepalive messages
|
||||
#define DEFAULT_KEEPALIVE_INTERVAL 2 // Number of seconds between "busy" messages. Set with M113.
|
||||
//#define BUSY_WHILE_HEATING // Some hosts require "busy" messages even during heating
|
||||
//#define BUSY_WHILE_HEATING // Some hosts require "busy" messages even during heating
|
||||
|
||||
//
|
||||
// M100 Free Memory Watcher
|
||||
@@ -1283,7 +1286,7 @@
|
||||
* P1 Raise the nozzle always to Z-park height.
|
||||
* 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)
|
||||
// Specify a park position as { X, Y, Z }
|
||||
@@ -1402,7 +1405,7 @@
|
||||
*
|
||||
* :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'cz_utf8':'Czech (UTF8)', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'es_utf8':'Spanish (UTF8)', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'fr_utf8':'French (UTF8)', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'sk_utf8':'Slovak (UTF8)', 'tr':'Turkish', 'uk':'Ukrainian', 'zh_CN':'Chinese (Simplified)', 'zh_TW':'Chinese (Taiwan)', 'test':'TEST' }
|
||||
*/
|
||||
//#define LCD_LANGUAGE en
|
||||
#define LCD_LANGUAGE en
|
||||
|
||||
/**
|
||||
* LCD Character Set
|
||||
@@ -1469,13 +1472,13 @@
|
||||
// This option overrides the default number of encoder pulses needed to
|
||||
// produce one step. Should be increased for high-resolution encoders.
|
||||
//
|
||||
//#define ENCODER_PULSES_PER_STEP 4
|
||||
#define ENCODER_PULSES_PER_STEP 4
|
||||
|
||||
//
|
||||
// Use this option to override the number of step signals required to
|
||||
// move between next/prev menu items.
|
||||
//
|
||||
//#define ENCODER_STEPS_PER_MENU_ITEM 1
|
||||
#define ENCODER_STEPS_PER_MENU_ITEM 1
|
||||
|
||||
/**
|
||||
* Encoder Direction Options
|
||||
@@ -1517,6 +1520,21 @@
|
||||
//
|
||||
#define SPEAKER
|
||||
|
||||
//
|
||||
// STARTUP CHIME
|
||||
//
|
||||
// Play a (non-earpiercing) startup chime on startup/serial connection
|
||||
// of the Trigorilla board
|
||||
//
|
||||
//#define STARTUP_CHIME
|
||||
|
||||
//
|
||||
// ENDSTOP BEEP
|
||||
//
|
||||
// Short 2KHz beep when endstops are hit
|
||||
//
|
||||
//#define ENDSTOP_BEEP
|
||||
|
||||
//
|
||||
// The duration and frequency for the UI feedback sound.
|
||||
// Set these to 0 to disable audio feedback in the LCD menus.
|
||||
@@ -1665,7 +1683,7 @@
|
||||
// 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
|
||||
@@ -1818,13 +1836,13 @@
|
||||
// Use software PWM to drive the fan, as for the heaters. This uses a very low frequency
|
||||
// which is not as annoying as with the hardware PWM. On the other hand, if this frequency
|
||||
// is too low, you should also increment SOFT_PWM_SCALE.
|
||||
//#define FAN_SOFT_PWM
|
||||
#define FAN_SOFT_PWM
|
||||
|
||||
// Incrementing this by 1 will double the software PWM frequency,
|
||||
// affecting heaters, and the fan if FAN_SOFT_PWM is enabled.
|
||||
// However, control resolution will be halved for each increment;
|
||||
// at zero value, there are 128 effective control positions.
|
||||
#define SOFT_PWM_SCALE 0
|
||||
#define SOFT_PWM_SCALE 2
|
||||
|
||||
// If SOFT_PWM_SCALE is set to a value higher than 0, dithering can
|
||||
// be used to mitigate the associated resolution loss. If enabled,
|
||||
|
||||
@@ -431,7 +431,7 @@
|
||||
// @section extras
|
||||
|
||||
// minimum time in microseconds that a movement needs to take if the buffer is emptied.
|
||||
#define DEFAULT_MINSEGMENTTIME 20000
|
||||
#define DEFAULT_MINSEGMENTTIME 50000
|
||||
|
||||
// If defined the movements slow down when the look ahead buffer is only half full
|
||||
#define SLOWDOWN
|
||||
@@ -524,13 +524,13 @@
|
||||
// @section lcd
|
||||
|
||||
// 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
|
||||
//#define STATUS_MESSAGE_SCROLLING
|
||||
|
||||
// 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
|
||||
//#define LCD_TIMEOUT_TO_STATUS 15000
|
||||
@@ -804,7 +804,7 @@
|
||||
#endif
|
||||
|
||||
// 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
|
||||
// Set MULTIPLE_PROBING if you want G38 to double touch
|
||||
@@ -917,7 +917,7 @@
|
||||
// enter the serial receive buffer, so they cannot be blocked.
|
||||
// Currently handles M108, M112, M410
|
||||
// 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'
|
||||
// Therefore some clients abort after 30 seconds in a timeout.
|
||||
@@ -978,28 +978,28 @@
|
||||
* Requires NOZZLE_PARK_FEATURE.
|
||||
* This feature is required for the default FILAMENT_RUNOUT_SCRIPT.
|
||||
*/
|
||||
//#define ADVANCED_PAUSE_FEATURE
|
||||
#define ADVANCED_PAUSE_FEATURE
|
||||
#if ENABLED(ADVANCED_PAUSE_FEATURE)
|
||||
#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 4 // (mm) Initial retract.
|
||||
// This short retract is done immediately, before parking the nozzle.
|
||||
#define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // (mm/s) Unload filament feedrate. This can be pretty fast.
|
||||
#define FILAMENT_CHANGE_UNLOAD_FEEDRATE 30 // (mm/s) Unload filament feedrate. This can be pretty fast.
|
||||
#define FILAMENT_CHANGE_UNLOAD_ACCEL 25 // (mm/s^2) Lower acceleration may allow a faster feedrate.
|
||||
#define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // (mm) The length of filament for a complete unload.
|
||||
#define FILAMENT_CHANGE_UNLOAD_LENGTH 555 // (mm) The length of filament for a complete unload.
|
||||
// For Bowden, the full length of the tube and nozzle.
|
||||
// For direct drive, the full length of the nozzle.
|
||||
// Set to 0 for manual unloading.
|
||||
#define FILAMENT_CHANGE_SLOW_LOAD_FEEDRATE 6 // (mm/s) Slow move when starting load.
|
||||
#define FILAMENT_CHANGE_SLOW_LOAD_LENGTH 0 // (mm) Slow length, to allow time to insert material.
|
||||
// 0 to disable start loading and skip to fast load only
|
||||
#define FILAMENT_CHANGE_FAST_LOAD_FEEDRATE 6 // (mm/s) Load filament feedrate. This can be pretty fast.
|
||||
#define FILAMENT_CHANGE_FAST_LOAD_FEEDRATE 30 // (mm/s) Load filament feedrate. This can be pretty fast.
|
||||
#define FILAMENT_CHANGE_FAST_LOAD_ACCEL 25 // (mm/s^2) Lower acceleration may allow a faster feedrate.
|
||||
#define FILAMENT_CHANGE_FAST_LOAD_LENGTH 0 // (mm) Load length of filament, from extruder gear to nozzle.
|
||||
#define FILAMENT_CHANGE_FAST_LOAD_LENGTH 538 // (mm) Load length of filament, from extruder gear to nozzle.
|
||||
// For Bowden, the full length of the tube and nozzle.
|
||||
// For direct drive, the full length of the nozzle.
|
||||
//#define ADVANCED_PAUSE_CONTINUOUS_PURGE // Purge continuously up to the purge length until interrupted.
|
||||
#define ADVANCED_PAUSE_PURGE_FEEDRATE 3 // (mm/s) Extrude feedrate (after loading). Should be slower than load feedrate.
|
||||
#define ADVANCED_PAUSE_PURGE_LENGTH 50 // (mm) Length to extrude after loading.
|
||||
#define ADVANCED_PAUSE_PURGE_FEEDRATE 2 // (mm/s) Extrude feedrate (after loading). Should be slower than load feedrate.
|
||||
#define ADVANCED_PAUSE_PURGE_LENGTH 2 // (mm) Length to extrude after loading.
|
||||
// Set to 0 for manual extrusion.
|
||||
// Filament can be extruded repeatedly from the Filament Change menu
|
||||
// until extrusion is consistent, and to purge old filament.
|
||||
@@ -1009,11 +1009,11 @@
|
||||
#define FILAMENT_UNLOAD_DELAY 5000 // (ms) Delay for the filament to cool after retract.
|
||||
#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 600 // (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 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 FILAMENT_LOAD_UNLOAD_GCODES // Add M701/M702 Load/Unload G-codes, plus Load/Unload in the LCD Prepare menu.
|
||||
|
||||
@@ -44,8 +44,9 @@
|
||||
#endif
|
||||
|
||||
#define EXTRUSION_MULTIPLIER 1.0
|
||||
#define RETRACTION_MULTIPLIER 6
|
||||
#define PRIME_LENGTH 25.0
|
||||
#define RETRACTION_LENGTH 1
|
||||
#define UNRETRACTION_LENGTH 1.2
|
||||
#define PRIME_LENGTH 5
|
||||
#define OOZE_AMOUNT 2.25
|
||||
|
||||
#define INTERSECTION_CIRCLE_RADIUS 5
|
||||
@@ -107,8 +108,9 @@
|
||||
* pliers while holding the LCD Click wheel in a depressed state. If you do not have
|
||||
* an LCD, you must specify a value if you use P.
|
||||
*
|
||||
* Q # Multiplier Retraction Multiplier. Normally not needed. Retraction defaults to 1.0mm and
|
||||
* un-retraction is at 1.2mm These numbers will be scaled by the specified amount
|
||||
* Q # Retract Retraction length. Defaults to 1mm if not specified.
|
||||
* Z # Unretract Unretraction length. Defaults to 1.2mm if not specified.
|
||||
* Note: If Q is specified but Z isn't, Z defaults to Q * 1.2.
|
||||
*
|
||||
* R # Repeat Prints the number of patterns given as a parameter, starting at the current location.
|
||||
* If a parameter isn't given, every point will be printed unless G26 is interrupted.
|
||||
@@ -145,7 +147,8 @@
|
||||
// retracts/recovers won't result in a bad state.
|
||||
|
||||
static float g26_extrusion_multiplier,
|
||||
g26_retraction_multiplier,
|
||||
g26_retraction_length,
|
||||
g26_unretraction_length,
|
||||
g26_layer_height,
|
||||
g26_prime_length,
|
||||
g26_x_pos, g26_y_pos;
|
||||
@@ -223,13 +226,13 @@
|
||||
void retract_filament(const float where[XYZE]) {
|
||||
if (!g26_retracted) { // Only retract if we are not already retracted!
|
||||
g26_retracted = true;
|
||||
move_to(where, -1.0 * g26_retraction_multiplier);
|
||||
move_to(where, -1.0 * g26_retraction_length);
|
||||
}
|
||||
}
|
||||
|
||||
void recover_filament(const float where[XYZE]) {
|
||||
if (g26_retracted) { // Only un-retract if we are retracted.
|
||||
move_to(where, 1.2 * g26_retraction_multiplier);
|
||||
move_to(where, g26_unretraction_length);
|
||||
g26_retracted = false;
|
||||
}
|
||||
}
|
||||
@@ -564,7 +567,8 @@
|
||||
if (axis_unhomed_error()) return;
|
||||
|
||||
g26_extrusion_multiplier = EXTRUSION_MULTIPLIER;
|
||||
g26_retraction_multiplier = RETRACTION_MULTIPLIER;
|
||||
g26_retraction_length = RETRACTION_LENGTH;
|
||||
g26_unretraction_length = UNRETRACTION_LENGTH;
|
||||
g26_layer_height = MESH_TEST_LAYER_HEIGHT;
|
||||
g26_prime_length = PRIME_LENGTH;
|
||||
g26_bed_temp = MESH_TEST_BED_TEMP;
|
||||
@@ -596,14 +600,44 @@
|
||||
|
||||
if (parser.seen('Q')) {
|
||||
if (parser.has_value()) {
|
||||
g26_retraction_multiplier = parser.value_float();
|
||||
if (!WITHIN(g26_retraction_multiplier, 0.05, 15.0)) {
|
||||
SERIAL_PROTOCOLLNPGM("?Specified Retraction Multiplier not plausible.");
|
||||
g26_retraction_length = parser.value_float();
|
||||
if (!WITHIN(g26_retraction_length, 0.05, 15.0)) {
|
||||
SERIAL_PROTOCOLLNPGM("?Specified Retraction length not plausible.");
|
||||
return;
|
||||
}
|
||||
}
|
||||
else {
|
||||
SERIAL_PROTOCOLLNPGM("?Retraction Multiplier must be specified.");
|
||||
SERIAL_PROTOCOLLNPGM("?Retraction length must be specified.");
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (parser.seen('Z')) {
|
||||
if (parser.has_value()) {
|
||||
g26_unretraction_length = parser.value_float();
|
||||
if (!WITHIN(g26_unretraction_length, 0.05, 15.0)) {
|
||||
SERIAL_PROTOCOLLNPGM("?Specified Unretraction length not plausible.");
|
||||
return;
|
||||
}
|
||||
}
|
||||
else {
|
||||
SERIAL_PROTOCOLLNPGM("?Unretraction length must be specified.");
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (!parser.seen('Z') && parser.seen('Q')) {
|
||||
// retraction without unretraction specified, use 1.2 multiplier (preserve Gcode spec)
|
||||
g26_unretraction_length = g26_retraction_length * 1.2;
|
||||
SERIAL_ECHOPAIR(" Unretraction amount automatically set to ", g26_unretraction_length);
|
||||
SERIAL_EOL();
|
||||
}
|
||||
|
||||
if (parser.seen('Z') && parser.seen('Q')) {
|
||||
// consider typos or unreasonable retract/unretract ratios
|
||||
float g26_retract_unretract_delta = g26_unretraction_length - g26_retraction_length;
|
||||
if (!WITHIN(g26_retract_unretract_delta, -5, 5)) {
|
||||
SERIAL_PROTOCOLLNPGM("?Invalid Retraction/Unretraction ratio. Must be within 5mm.");
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -271,6 +271,9 @@ FORCE_INLINE bool all_axes_known() { return (axis_known_position & xyz_bits) ==
|
||||
|
||||
extern volatile bool wait_for_heatup;
|
||||
|
||||
// Making sure this flag can be cleared by the Anycubic display
|
||||
extern volatile bool nozzle_timed_out;
|
||||
|
||||
#if HAS_RESUME_CONTINUE
|
||||
extern volatile bool wait_for_user;
|
||||
#endif
|
||||
|
||||
@@ -228,6 +228,7 @@
|
||||
* M867 - Enable/disable or toggle error correction for position encoder modules.
|
||||
* M868 - Report or set position encoder module error correction threshold.
|
||||
* M869 - Report position encoder module error.
|
||||
* M888 - Ultrabase cooldown: Let the parts cooling fan hover above the finished print to cool down the bed. EXPERIMENTAL FEATURE!
|
||||
* M900 - Get or Set Linear Advance K-factor. (Requires LIN_ADVANCE)
|
||||
* M906 - Set or get motor current in milliamps using axis codes X, Y, Z, E. Report values if no axis codes given. (Requires at least one _DRIVER_TYPE defined as TMC2130/TMC2208/TMC2660)
|
||||
* M907 - Set digital trimpot motor current using axis codes. (Requires a board with digital trimpots)
|
||||
@@ -519,6 +520,9 @@ static bool relative_mode; // = false;
|
||||
// For M109 and M190, this flag may be cleared (by M108) to exit the wait loop
|
||||
volatile bool wait_for_heatup = true;
|
||||
|
||||
// Making sure this flag can be cleared by the Anycubic display
|
||||
volatile bool nozzle_timed_out = false;
|
||||
|
||||
// For M0/M1, this flag may be cleared (by M108) to exit the wait-for-user loop
|
||||
#if HAS_RESUME_CONTINUE
|
||||
volatile bool wait_for_user; // = false;
|
||||
@@ -1387,7 +1391,11 @@ bool get_target_extruder_from_command(const uint16_t code) {
|
||||
}
|
||||
#elif ENABLED(DELTA)
|
||||
soft_endstop_min[axis] = base_min_pos(axis);
|
||||
soft_endstop_max[axis] = axis == Z_AXIS ? delta_height : base_max_pos(axis);
|
||||
soft_endstop_max[axis] = axis == Z_AXIS ? delta_height
|
||||
#if HAS_BED_PROBE
|
||||
- zprobe_zoffset
|
||||
#endif
|
||||
: base_max_pos(axis);
|
||||
#else
|
||||
soft_endstop_min[axis] = base_min_pos(axis);
|
||||
soft_endstop_max[axis] = base_max_pos(axis);
|
||||
@@ -1516,13 +1524,14 @@ static void set_axis_is_at_home(const AxisEnum axis) {
|
||||
}
|
||||
else
|
||||
#elif ENABLED(DELTA)
|
||||
if (axis == Z_AXIS)
|
||||
current_position[axis] = delta_height;
|
||||
else
|
||||
#endif
|
||||
{
|
||||
current_position[axis] = (axis == Z_AXIS ? delta_height
|
||||
#if HAS_BED_PROBE
|
||||
- zprobe_zoffset
|
||||
#endif
|
||||
: base_home_pos(axis));
|
||||
#else
|
||||
current_position[axis] = base_home_pos(axis);
|
||||
}
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Z Probe Z Homing? Account for the probe's Z offset.
|
||||
@@ -4066,7 +4075,11 @@ inline void gcode_G4() {
|
||||
#endif
|
||||
|
||||
// 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);
|
||||
buffer_line_to_current_position();
|
||||
planner.synchronize();
|
||||
@@ -4595,7 +4608,8 @@ void home_all_axes() { gcode_G28(true); }
|
||||
if (parser.seenval('X')) {
|
||||
px = parser.value_int() - 1;
|
||||
if (!WITHIN(px, 0, GRID_MAX_POINTS_X - 1)) {
|
||||
SERIAL_PROTOCOLLNPGM("X out of range (1-" STRINGIFY(GRID_MAX_POINTS_X) ").");
|
||||
SERIAL_PROTOCOLPAIR("X out of range (1-", int(GRID_MAX_POINTS_X));
|
||||
SERIAL_PROTOCOLLNPGM(")");
|
||||
return;
|
||||
}
|
||||
}
|
||||
@@ -4607,7 +4621,8 @@ void home_all_axes() { gcode_G28(true); }
|
||||
if (parser.seenval('Y')) {
|
||||
py = parser.value_int() - 1;
|
||||
if (!WITHIN(py, 0, GRID_MAX_POINTS_Y - 1)) {
|
||||
SERIAL_PROTOCOLLNPGM("Y out of range (1-" STRINGIFY(GRID_MAX_POINTS_Y) ").");
|
||||
SERIAL_PROTOCOLPAIR("Y out of range (1-", int(GRID_MAX_POINTS_Y));
|
||||
SERIAL_PROTOCOLLNPGM(")");
|
||||
return;
|
||||
}
|
||||
}
|
||||
@@ -5752,12 +5767,6 @@ void home_all_axes() { gcode_G28(true); }
|
||||
if ((!end_stops && tower_angles) || (end_stops && !tower_angles)) { // XOR
|
||||
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();
|
||||
}
|
||||
|
||||
@@ -5806,30 +5815,19 @@ void home_all_axes() { gcode_G28(true); }
|
||||
/**
|
||||
* - Probe a point
|
||||
*/
|
||||
static float calibration_probe(const float &nx, const float &ny, const bool stow, const bool set_up) {
|
||||
static float calibration_probe(const float &nx, const float &ny, const bool stow) {
|
||||
#if HAS_BED_PROBE
|
||||
return probe_pt(nx, ny, set_up ? PROBE_PT_BIG_RAISE : stow ? PROBE_PT_STOW : PROBE_PT_RAISE, 0, false);
|
||||
return probe_pt(nx, ny, stow ? PROBE_PT_STOW : PROBE_PT_RAISE, 0, false);
|
||||
#else
|
||||
UNUSED(stow);
|
||||
UNUSED(set_up);
|
||||
return lcd_probe_pt(nx, ny);
|
||||
#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
|
||||
*/
|
||||
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) {
|
||||
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 _0p_calibration = probe_points == 0,
|
||||
_1p_calibration = probe_points == 1 || probe_points == -1,
|
||||
_4p_calibration = probe_points == 2,
|
||||
@@ -5852,7 +5850,7 @@ void home_all_axes() { gcode_G28(true); }
|
||||
if (!_0p_calibration) {
|
||||
|
||||
if (!_7p_no_intermediates && !_7p_4_intermediates && !_7p_11_intermediates) { // probe the center
|
||||
z_pt[CEN] += calibration_probe(0, 0, stow_after_each, set_up);
|
||||
z_pt[CEN] += calibration_probe(0, 0, stow_after_each);
|
||||
if (isnan(z_pt[CEN])) return false;
|
||||
}
|
||||
|
||||
@@ -5862,7 +5860,7 @@ void home_all_axes() { gcode_G28(true); }
|
||||
I_LOOP_CAL_PT(rad, start, steps) {
|
||||
const float a = RADIANS(210 + (360 / NPP) * (rad - 1)),
|
||||
r = delta_calibration_radius * 0.1;
|
||||
z_pt[CEN] += calibration_probe(cos(a) * r, sin(a) * r, stow_after_each, set_up);
|
||||
z_pt[CEN] += calibration_probe(cos(a) * r, sin(a) * r, stow_after_each);
|
||||
if (isnan(z_pt[CEN])) return false;
|
||||
}
|
||||
z_pt[CEN] /= float(_7p_2_intermediates ? 7 : probe_points);
|
||||
@@ -5886,7 +5884,7 @@ void home_all_axes() { gcode_G28(true); }
|
||||
const float a = RADIANS(210 + (360 / NPP) * (rad - 1)),
|
||||
r = delta_calibration_radius * (1 - 0.1 * (zig_zag ? offset - circle : circle)),
|
||||
interpol = fmod(rad, 1);
|
||||
const float z_temp = calibration_probe(cos(a) * r, sin(a) * r, stow_after_each, set_up);
|
||||
const float z_temp = calibration_probe(cos(a) * r, sin(a) * r, stow_after_each);
|
||||
if (isnan(z_temp)) return false;
|
||||
// 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)));
|
||||
@@ -6015,10 +6013,7 @@ void home_all_axes() { gcode_G28(true); }
|
||||
*
|
||||
* Parameters:
|
||||
*
|
||||
* S Setup mode; disables probe protection
|
||||
*
|
||||
* Pn Number of probe points:
|
||||
* P-1 Checks the z_offset with a center probe and paper test.
|
||||
* P0 Normalizes calibration.
|
||||
* P1 Calibrates height only with center probe.
|
||||
* P2 Probe center and towers. Calibrate height, endstops and delta radius.
|
||||
@@ -6041,22 +6036,15 @@ void home_all_axes() { gcode_G28(true); }
|
||||
*/
|
||||
inline void gcode_G33() {
|
||||
|
||||
const bool set_up =
|
||||
#if HAS_BED_PROBE
|
||||
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).");
|
||||
const int8_t probe_points = parser.intval('P', DELTA_CALIBRATION_DEFAULT_POINTS);
|
||||
if (!WITHIN(probe_points, 0, 10)) {
|
||||
SERIAL_PROTOCOLLNPGM("?(P)oints is implausible (0-10).");
|
||||
return;
|
||||
}
|
||||
|
||||
const bool towers_set = !parser.seen('T');
|
||||
|
||||
const float calibration_precision = set_up ? Z_CLEARANCE_BETWEEN_PROBES / 5.0 : parser.floatval('C', 0.0);
|
||||
const float calibration_precision = parser.floatval('C', 0.0);
|
||||
if (calibration_precision < 0) {
|
||||
SERIAL_PROTOCOLLNPGM("?(C)alibration precision is implausible (>=0).");
|
||||
return;
|
||||
@@ -6064,26 +6052,18 @@ void home_all_axes() { gcode_G28(true); }
|
||||
|
||||
const int8_t force_iterations = parser.intval('F', 0);
|
||||
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;
|
||||
}
|
||||
|
||||
const int8_t verbose_level = parser.byteval('V', 1);
|
||||
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;
|
||||
}
|
||||
|
||||
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,
|
||||
_1p_calibration = probe_points == 1 || probe_points == -1,
|
||||
_4p_calibration = probe_points == 2,
|
||||
@@ -6132,7 +6112,6 @@ void home_all_axes() { gcode_G28(true); }
|
||||
const char *checkingac = PSTR("Checking... AC");
|
||||
serialprintPGM(checkingac);
|
||||
if (verbose_level == 0) SERIAL_PROTOCOLPGM(" (DRY-RUN)");
|
||||
if (set_up) SERIAL_PROTOCOLPGM(" (SET-UP)");
|
||||
SERIAL_EOL();
|
||||
lcd_setstatusPGM(checkingac);
|
||||
|
||||
@@ -6151,7 +6130,7 @@ void home_all_axes() { gcode_G28(true); }
|
||||
|
||||
// Probe the points
|
||||
zero_std_dev_old = zero_std_dev;
|
||||
if (!probe_calibration_points(z_at_pt, probe_points, towers_set, stow_after_each, set_up)) {
|
||||
if (!probe_calibration_points(z_at_pt, probe_points, towers_set, stow_after_each)) {
|
||||
SERIAL_PROTOCOLLNPGM("Correct delta settings with M665 and M666");
|
||||
return AC_CLEANUP();
|
||||
}
|
||||
@@ -6199,11 +6178,6 @@ void home_all_axes() { gcode_G28(true); }
|
||||
delta_calibration_radius = cr_old;
|
||||
|
||||
switch (probe_points) {
|
||||
case -1:
|
||||
#if HAS_BED_PROBE && ENABLED(ULTIPANEL)
|
||||
zprobe_zoffset += probe_z_shift(z_at_pt[CEN]);
|
||||
#endif
|
||||
|
||||
case 0:
|
||||
test_precision = 0.00; // forced end
|
||||
break;
|
||||
@@ -7243,7 +7217,11 @@ inline void gcode_M17() {
|
||||
* Used by M125 and M600
|
||||
*/
|
||||
static void wait_for_filament_reload(const int8_t max_beep_count=0) {
|
||||
bool nozzle_timed_out = false;
|
||||
nozzle_timed_out = false;
|
||||
nozzle_timed_out = false;
|
||||
#ifdef ANYCUBIC_TFT_MODEL
|
||||
AnycubicTFT.PausedByNozzleTimeout = false;
|
||||
#endif
|
||||
|
||||
#if ENABLED(ULTIPANEL)
|
||||
lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_INSERT);
|
||||
@@ -7276,6 +7254,14 @@ inline void gcode_M17() {
|
||||
nozzle_timed_out |= thermalManager.is_heater_idle(e);
|
||||
|
||||
if (nozzle_timed_out) {
|
||||
|
||||
#ifdef ANYCUBIC_TFT_MODEL
|
||||
AnycubicTFT.PausedByNozzleTimeout=true;
|
||||
#ifdef ANYCUBIC_TFT_DEBUG
|
||||
SERIAL_ECHOLNPGM("DEBUG: Nozzle timeout flag set");
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if ENABLED(ULTIPANEL)
|
||||
lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_CLICK_TO_HEAT_NOZZLE);
|
||||
#endif
|
||||
@@ -7317,6 +7303,9 @@ inline void gcode_M17() {
|
||||
|
||||
wait_for_user = true; // Wait for user to load filament
|
||||
nozzle_timed_out = false;
|
||||
#ifdef ANYCUBIC_TFT_DEBUG
|
||||
AnycubicTFT.PausedByNozzleTimeout = false;
|
||||
#endif
|
||||
|
||||
#if HAS_BUZZER
|
||||
filament_change_beep(max_beep_count, true);
|
||||
@@ -7350,7 +7339,11 @@ inline void gcode_M17() {
|
||||
if (!did_pause_print) return;
|
||||
|
||||
// Re-enable the heaters if they timed out
|
||||
bool nozzle_timed_out = false;
|
||||
nozzle_timed_out = false;
|
||||
#ifdef ANYCUBIC_TFT_MODEL
|
||||
AnycubicTFT.PausedByNozzleTimeout = false;
|
||||
#endif
|
||||
|
||||
HOTEND_LOOP() {
|
||||
nozzle_timed_out |= thermalManager.is_heater_idle(e);
|
||||
thermalManager.reset_heater_idle_timer(e);
|
||||
@@ -8538,7 +8531,7 @@ inline void gcode_M109() {
|
||||
#ifdef ANYCUBIC_TFT_MODEL
|
||||
AnycubicTFT.CommandScan();
|
||||
#endif
|
||||
|
||||
|
||||
#if TEMP_RESIDENCY_TIME > 0
|
||||
|
||||
const float temp_diff = ABS(target_temp - temp);
|
||||
@@ -8577,10 +8570,14 @@ inline void gcode_M109() {
|
||||
#ifdef ANYCUBIC_TFT_MODEL
|
||||
AnycubicTFT.HeatingDone();
|
||||
#endif
|
||||
|
||||
|
||||
#if DISABLED(BUSY_WHILE_HEATING)
|
||||
KEEPALIVE_STATE(IN_HANDLER);
|
||||
#endif
|
||||
|
||||
// flush the serial buffer after heating to prevent lockup by m105
|
||||
SERIAL_FLUSH();
|
||||
|
||||
}
|
||||
|
||||
#if HAS_HEATED_BED
|
||||
@@ -8691,11 +8688,11 @@ inline void gcode_M109() {
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef ANYCUBIC_TFT_MODEL
|
||||
AnycubicTFT.CommandScan();
|
||||
#endif
|
||||
|
||||
|
||||
#if TEMP_BED_RESIDENCY_TIME > 0
|
||||
|
||||
const float temp_diff = ABS(target_temp - temp);
|
||||
@@ -8723,15 +8720,18 @@ inline void gcode_M109() {
|
||||
}
|
||||
|
||||
} while (wait_for_heatup && TEMP_BED_CONDITIONS);
|
||||
|
||||
|
||||
#ifdef ANYCUBIC_TFT_MODEL
|
||||
AnycubicTFT.BedHeatingDone();
|
||||
#endif
|
||||
|
||||
|
||||
if (wait_for_heatup) lcd_reset_status();
|
||||
#if DISABLED(BUSY_WHILE_HEATING)
|
||||
KEEPALIVE_STATE(IN_HANDLER);
|
||||
#endif
|
||||
|
||||
// flush the serial buffer after heating to prevent lockup by m105
|
||||
SERIAL_FLUSH();
|
||||
}
|
||||
|
||||
#endif // HAS_HEATED_BED
|
||||
@@ -8927,7 +8927,7 @@ inline void gcode_M111() {
|
||||
#if ENABLED(ULTIPANEL)
|
||||
lcd_reset_status();
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef ANYCUBIC_TFT_MODEL
|
||||
AnycubicTFT.CommandScan();
|
||||
#endif
|
||||
@@ -8963,7 +8963,7 @@ inline void gcode_M81() {
|
||||
#if ENABLED(ULTIPANEL)
|
||||
LCD_MESSAGEPGM(MACHINE_NAME " " MSG_OFF ".");
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef ANYCUBIC_TFT_MODEL
|
||||
AnycubicTFT.CommandScan();
|
||||
#endif
|
||||
@@ -11015,6 +11015,24 @@ inline void gcode_M502() {
|
||||
* Default values are used for omitted arguments.
|
||||
*/
|
||||
inline void gcode_M600() {
|
||||
#ifdef ANYCUBIC_TFT_MODEL
|
||||
#ifdef SDSUPPORT
|
||||
if (card.sdprinting) { // are we printing from sd?
|
||||
#ifdef ANYCUBIC_TFT_DEBUG
|
||||
SERIAL_ECHOLNPGM("DEBUG: Enter M600 TFTstate routine");
|
||||
#endif
|
||||
AnycubicTFT.TFTstate=ANYCUBIC_TFT_STATE_SDPAUSE_REQ; // enter correct display state to show resume button
|
||||
#ifdef ANYCUBIC_TFT_DEBUG
|
||||
SERIAL_ECHOLNPGM("DEBUG: Set TFTstate to SDPAUSE_REQ");
|
||||
#endif
|
||||
AnycubicTFT.PausedByFilamentChange=true; // set flag to ensure correct resume routine gets executed
|
||||
#ifdef ANYCUBIC_TFT_DEBUG
|
||||
SERIAL_ECHOLNPGM("DEBUG: Set filament change flag");
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
point_t park_point = NOZZLE_PARK_POINT;
|
||||
|
||||
if (get_target_extruder_from_command(600)) return;
|
||||
@@ -11387,6 +11405,56 @@ inline void gcode_M502() {
|
||||
}
|
||||
#endif // MAX7219_GCODE
|
||||
|
||||
/**
|
||||
* M888: Cooldown routine for the Anycubic Ultrabase (EXPERIMENTAL):
|
||||
* This is meant to be placed at the end Gcode of your slicer.
|
||||
* It hovers over the print bed and does circular movements while
|
||||
* running the fan. Works best with custom fan ducts.
|
||||
*
|
||||
* T<int> Target bed temperature (min 15°C), 30°C if not specified
|
||||
* S<int> Fan speed between 0 and 255, full speed if not specified
|
||||
*/
|
||||
inline void gcode_M888() {
|
||||
// don't do this if the machine is not homed
|
||||
if (axis_unhomed_error()) return;
|
||||
|
||||
const float cooldown_arc[2] = { 50, 50 };
|
||||
const uint8_t cooldown_target = MAX((parser.ushortval('T', 30)), 15);
|
||||
|
||||
// set hotbed temperate to zero
|
||||
thermalManager.setTargetBed(0);
|
||||
SERIAL_PROTOCOLLNPGM("Ultrabase cooldown started");
|
||||
|
||||
// set fan to speed <S>, if undefined blast at full speed
|
||||
uint8_t cooldown_fanspeed = parser.ushortval('S', 255);
|
||||
fanSpeeds[0] = MIN(cooldown_fanspeed, 255U);
|
||||
|
||||
// raise z by 2mm and move to X50, Y50
|
||||
do_blocking_move_to_z(MIN(current_position[Z_AXIS] + 2, Z_MAX_POS), 5);
|
||||
do_blocking_move_to_xy(50, 50, 100);
|
||||
|
||||
while ((thermalManager.degBed() > cooldown_target)) {
|
||||
// queue arc movement
|
||||
gcode_get_destination();
|
||||
plan_arc(destination, cooldown_arc, true);
|
||||
SERIAL_PROTOCOLLNPGM("Target not reached, queued an arc");
|
||||
|
||||
// delay while arc is in progress
|
||||
while (planner.movesplanned()) {
|
||||
idle();
|
||||
}
|
||||
idle();
|
||||
}
|
||||
// the bed should be under <T> now
|
||||
fanSpeeds[0]=0;
|
||||
do_blocking_move_to_xy(MAX(X_MIN_POS, 10), MIN(Y_MAX_POS, 190), 100);
|
||||
BUZZ(100, 659);
|
||||
BUZZ(150, 1318);
|
||||
enqueue_and_echo_commands_P(PSTR("M84"));
|
||||
SERIAL_PROTOCOLLNPGM("M888 cooldown routine done");
|
||||
}
|
||||
|
||||
|
||||
#if ENABLED(LIN_ADVANCE)
|
||||
/**
|
||||
* M900: Get or Set Linear Advance K-factor
|
||||
@@ -13122,6 +13190,8 @@ void process_parsed_command() {
|
||||
case 869: gcode_M869(); break; // M869: Report axis error
|
||||
#endif
|
||||
|
||||
case 888: gcode_M888(); break; // M888: Ultrabase cooldown (EXPERIMENTAL)
|
||||
|
||||
#if ENABLED(LIN_ADVANCE)
|
||||
case 900: gcode_M900(); break; // M900: Set Linear Advance K factor
|
||||
#endif
|
||||
@@ -14746,6 +14816,25 @@ void disable_all_steppers() {
|
||||
disable_e_steppers();
|
||||
}
|
||||
|
||||
#ifdef ENDSTOP_BEEP
|
||||
void EndstopBeep() {
|
||||
static char last_status=((READ(X_MIN_PIN)<<2)|(READ(Y_MIN_PIN)<<1)|READ(X_MAX_PIN));
|
||||
static unsigned char now_status;
|
||||
|
||||
now_status=((READ(X_MIN_PIN)<<2)|(READ(Y_MIN_PIN)<<1)|READ(X_MAX_PIN))&0xff;
|
||||
|
||||
if(now_status<last_status) {
|
||||
static millis_t endstop_ms = millis() + 300UL;
|
||||
if (ELAPSED(millis(), endstop_ms)) {
|
||||
buzzer.tone(60, 2000);
|
||||
}
|
||||
last_status=now_status;
|
||||
} else if(now_status!=last_status) {
|
||||
last_status=now_status;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Manage several activities:
|
||||
* - Check for Filament Runout
|
||||
@@ -14763,7 +14852,7 @@ void manage_inactivity(const bool ignore_stepper_queue/*=false*/) {
|
||||
#if ENABLED(FILAMENT_RUNOUT_SENSOR)
|
||||
runout.run();
|
||||
#endif
|
||||
|
||||
|
||||
#if ENABLED(ANYCUBIC_TFT_MODEL) && ENABLED(ANYCUBIC_FILAMENT_RUNOUT_SENSOR)
|
||||
AnycubicTFT.FilamentRunout();
|
||||
#endif
|
||||
@@ -14971,7 +15060,11 @@ void idle(
|
||||
#ifdef ANYCUBIC_TFT_MODEL
|
||||
AnycubicTFT.CommandScan();
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef ENDSTOP_BEEP
|
||||
EndstopBeep();
|
||||
#endif
|
||||
|
||||
lcd_update();
|
||||
|
||||
host_keepalive();
|
||||
@@ -15028,7 +15121,7 @@ void kill(const char* lcd_msg) {
|
||||
#else
|
||||
UNUSED(lcd_msg);
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef ANYCUBIC_TFT_MODEL
|
||||
// Kill AnycubicTFT
|
||||
AnycubicTFT.KillTFT();
|
||||
@@ -15123,7 +15216,7 @@ void setup() {
|
||||
MYSERIAL0.begin(BAUDRATE);
|
||||
SERIAL_PROTOCOLLNPGM("start");
|
||||
SERIAL_ECHO_START();
|
||||
|
||||
|
||||
#ifdef ANYCUBIC_TFT_MODEL
|
||||
// Setup AnycubicTFT
|
||||
AnycubicTFT.Setup();
|
||||
@@ -15149,6 +15242,9 @@ void setup() {
|
||||
SERIAL_ECHOPGM(MSG_MARLIN);
|
||||
SERIAL_CHAR(' ');
|
||||
SERIAL_ECHOLNPGM(SHORT_BUILD_VERSION);
|
||||
SERIAL_ECHOPGM(MSG_MARLIN_AI3M);
|
||||
SERIAL_CHAR(' ');
|
||||
SERIAL_ECHOLNPGM(CUSTOM_BUILD_VERSION);
|
||||
SERIAL_EOL();
|
||||
|
||||
#if defined(STRING_DISTRIBUTION_DATE) && defined(STRING_CONFIG_H_AUTHOR)
|
||||
|
||||
@@ -37,6 +37,12 @@
|
||||
*/
|
||||
#define SHORT_BUILD_VERSION "1.1.9"
|
||||
|
||||
/**
|
||||
* Defines the version of the Marlin-AI3M build. Not to be confused with
|
||||
* Marlin's own build number, e.g. 1.1.9.
|
||||
*/
|
||||
#define CUSTOM_BUILD_VERSION "v1.4.5"
|
||||
|
||||
/**
|
||||
* Verbose version identifier which should contain a reference to the location
|
||||
* from where the binary was downloaded or the source code was compiled.
|
||||
@@ -48,7 +54,7 @@
|
||||
* here we define this default string as the date where the latest release
|
||||
* version was tagged.
|
||||
*/
|
||||
#define STRING_DISTRIBUTION_DATE "2019-01-22"
|
||||
#define STRING_DISTRIBUTION_DATE "2019-03-24"
|
||||
|
||||
/**
|
||||
* Required minimum Configuration.h and Configuration_adv.h file versions.
|
||||
@@ -78,7 +84,7 @@
|
||||
* has a distinct Github fork— the Source Code URL should just be the main
|
||||
* Marlin repository.
|
||||
*/
|
||||
#define SOURCE_CODE_URL "https://github.com/MarlinFirmware/Marlin"
|
||||
#define SOURCE_CODE_URL "https://github.com/davidramiro/Marlin-AI3M"
|
||||
|
||||
/**
|
||||
* Default generic printer UUID.
|
||||
|
||||
@@ -1124,6 +1124,7 @@
|
||||
|
||||
#if ENABLED(LEVEL_BED_CORNERS)
|
||||
#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
|
||||
#endif
|
||||
|
||||
|
||||
@@ -1104,6 +1104,7 @@
|
||||
|
||||
#if ENABLED(LEVEL_BED_CORNERS)
|
||||
#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
|
||||
#endif
|
||||
|
||||
|
||||
@@ -1179,6 +1179,7 @@
|
||||
|
||||
#if ENABLED(LEVEL_BED_CORNERS)
|
||||
#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
|
||||
#endif
|
||||
|
||||
|
||||
@@ -141,8 +141,8 @@
|
||||
// :[1, 2, 3, 4, 5]
|
||||
#define EXTRUDERS 1
|
||||
|
||||
// Generally expected filament diameter (1.75, 2.85, 3.0, ...). Used for Volumetric, Filament Width Sensor, etc.
|
||||
#define DEFAULT_NOMINAL_FILAMENT_DIA 3.0
|
||||
// The Anet A6 original extruder is designed for 1.75mm
|
||||
#define DEFAULT_NOMINAL_FILAMENT_DIA 1.75
|
||||
|
||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
|
||||
//#define SINGLENOZZLE
|
||||
@@ -1243,6 +1243,7 @@
|
||||
|
||||
#if ENABLED(LEVEL_BED_CORNERS)
|
||||
#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
|
||||
#endif
|
||||
|
||||
|
||||
@@ -413,9 +413,9 @@
|
||||
* 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.
|
||||
*/
|
||||
//#define PIDTEMPBED
|
||||
#define PIDTEMPBED
|
||||
|
||||
#define BED_LIMIT_SWITCHING
|
||||
//#define BED_LIMIT_SWITCHING
|
||||
|
||||
/**
|
||||
* Max Bed Power
|
||||
@@ -431,9 +431,9 @@
|
||||
|
||||
//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)
|
||||
#define DEFAULT_bedKp 10.00
|
||||
#define DEFAULT_bedKi .023
|
||||
#define DEFAULT_bedKd 305.4
|
||||
//#define DEFAULT_bedKp 10.00
|
||||
//#define DEFAULT_bedKi .023
|
||||
//#define DEFAULT_bedKd 305.4
|
||||
|
||||
//120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)
|
||||
//from pidautotune
|
||||
@@ -441,6 +441,12 @@
|
||||
//#define DEFAULT_bedKi 1.41
|
||||
//#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.
|
||||
#endif // PIDTEMPBED
|
||||
|
||||
@@ -1111,6 +1117,7 @@
|
||||
|
||||
#if ENABLED(LEVEL_BED_CORNERS)
|
||||
#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
|
||||
#endif
|
||||
|
||||
|
||||
1959
Marlin/example_configurations/Anycubic/Ai3M12864/Configuration.h
Normal file
1959
Marlin/example_configurations/Anycubic/Ai3M12864/Configuration.h
Normal file
File diff suppressed because it is too large
Load Diff
1654
Marlin/example_configurations/Anycubic/Ai3M12864/Configuration_adv.h
Normal file
1654
Marlin/example_configurations/Anycubic/Ai3M12864/Configuration_adv.h
Normal file
File diff suppressed because it is too large
Load Diff
1957
Marlin/example_configurations/Anycubic/Ai3MBLtouch/Configuration.h
Normal file
1957
Marlin/example_configurations/Anycubic/Ai3MBLtouch/Configuration.h
Normal file
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1104,6 +1104,7 @@
|
||||
|
||||
#if ENABLED(LEVEL_BED_CORNERS)
|
||||
#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
|
||||
#endif
|
||||
|
||||
|
||||
@@ -1104,6 +1104,7 @@
|
||||
|
||||
#if ENABLED(LEVEL_BED_CORNERS)
|
||||
#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
|
||||
#endif
|
||||
|
||||
|
||||
@@ -1092,6 +1092,7 @@
|
||||
|
||||
#if ENABLED(LEVEL_BED_CORNERS)
|
||||
#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
|
||||
#endif
|
||||
|
||||
|
||||
@@ -1102,6 +1102,7 @@
|
||||
|
||||
#if ENABLED(LEVEL_BED_CORNERS)
|
||||
#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
|
||||
#endif
|
||||
|
||||
|
||||
@@ -1092,6 +1092,7 @@
|
||||
|
||||
#if ENABLED(LEVEL_BED_CORNERS)
|
||||
#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
|
||||
#endif
|
||||
|
||||
|
||||
@@ -1103,6 +1103,7 @@
|
||||
|
||||
#if ENABLED(LEVEL_BED_CORNERS)
|
||||
#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
|
||||
#endif
|
||||
|
||||
|
||||
@@ -1114,6 +1114,7 @@
|
||||
|
||||
#if ENABLED(LEVEL_BED_CORNERS)
|
||||
#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
|
||||
#endif
|
||||
|
||||
|
||||
@@ -1109,6 +1109,7 @@
|
||||
|
||||
#if ENABLED(LEVEL_BED_CORNERS)
|
||||
#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
|
||||
#endif
|
||||
|
||||
|
||||
@@ -1123,6 +1123,7 @@
|
||||
|
||||
#if ENABLED(LEVEL_BED_CORNERS)
|
||||
#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
|
||||
#endif
|
||||
|
||||
|
||||
@@ -1114,6 +1114,7 @@
|
||||
|
||||
#if ENABLED(LEVEL_BED_CORNERS)
|
||||
#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
|
||||
#endif
|
||||
|
||||
|
||||
@@ -1108,6 +1108,7 @@
|
||||
|
||||
#if ENABLED(LEVEL_BED_CORNERS)
|
||||
#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
|
||||
#endif
|
||||
|
||||
|
||||
@@ -876,8 +876,8 @@
|
||||
// @section machine
|
||||
|
||||
// The size of the print bed
|
||||
#define X_BED_SIZE 220
|
||||
#define Y_BED_SIZE 220
|
||||
#define X_BED_SIZE 235
|
||||
#define Y_BED_SIZE 235
|
||||
|
||||
// Travel limits (mm) after homing, corresponding to endstop positions.
|
||||
#define X_MIN_POS 0
|
||||
@@ -1108,6 +1108,7 @@
|
||||
|
||||
#if ENABLED(LEVEL_BED_CORNERS)
|
||||
#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
|
||||
#endif
|
||||
|
||||
|
||||
@@ -1114,6 +1114,7 @@
|
||||
|
||||
#if ENABLED(LEVEL_BED_CORNERS)
|
||||
#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
|
||||
#endif
|
||||
|
||||
|
||||
@@ -1086,6 +1086,7 @@
|
||||
|
||||
#if ENABLED(LEVEL_BED_CORNERS)
|
||||
#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
|
||||
#endif
|
||||
|
||||
|
||||
@@ -1086,6 +1086,7 @@
|
||||
|
||||
#if ENABLED(LEVEL_BED_CORNERS)
|
||||
#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
|
||||
#endif
|
||||
|
||||
|
||||
@@ -1110,6 +1110,7 @@
|
||||
|
||||
#if ENABLED(LEVEL_BED_CORNERS)
|
||||
#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
|
||||
#endif
|
||||
|
||||
|
||||
@@ -1119,6 +1119,7 @@
|
||||
|
||||
#if ENABLED(LEVEL_BED_CORNERS)
|
||||
#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
|
||||
#endif
|
||||
|
||||
|
||||
@@ -1104,6 +1104,7 @@
|
||||
|
||||
#if ENABLED(LEVEL_BED_CORNERS)
|
||||
#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
|
||||
#endif
|
||||
|
||||
|
||||
@@ -1120,6 +1120,7 @@
|
||||
|
||||
#if ENABLED(LEVEL_BED_CORNERS)
|
||||
#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
|
||||
#endif
|
||||
|
||||
|
||||
@@ -1119,6 +1119,7 @@
|
||||
|
||||
#if ENABLED(LEVEL_BED_CORNERS)
|
||||
#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
|
||||
#endif
|
||||
|
||||
|
||||
@@ -1104,6 +1104,7 @@
|
||||
|
||||
#if ENABLED(LEVEL_BED_CORNERS)
|
||||
#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
|
||||
#endif
|
||||
|
||||
|
||||
@@ -1104,6 +1104,7 @@
|
||||
|
||||
#if ENABLED(LEVEL_BED_CORNERS)
|
||||
#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
|
||||
#endif
|
||||
|
||||
|
||||
@@ -1108,6 +1108,7 @@
|
||||
|
||||
#if ENABLED(LEVEL_BED_CORNERS)
|
||||
#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
|
||||
#endif
|
||||
|
||||
|
||||
@@ -1115,6 +1115,7 @@
|
||||
|
||||
#if ENABLED(LEVEL_BED_CORNERS)
|
||||
#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
|
||||
#endif
|
||||
|
||||
|
||||
@@ -1132,6 +1132,7 @@
|
||||
|
||||
#if ENABLED(LEVEL_BED_CORNERS)
|
||||
#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
|
||||
#endif
|
||||
|
||||
|
||||
@@ -1108,6 +1108,7 @@
|
||||
|
||||
#if ENABLED(LEVEL_BED_CORNERS)
|
||||
#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
|
||||
#endif
|
||||
|
||||
|
||||
@@ -1108,6 +1108,7 @@
|
||||
|
||||
#if ENABLED(LEVEL_BED_CORNERS)
|
||||
#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
|
||||
#endif
|
||||
|
||||
|
||||
@@ -1153,6 +1153,7 @@ Black rubber belt(MXL), 18 - tooth aluminium pulley : 87.489 step per mm (Huxley
|
||||
|
||||
#if ENABLED(LEVEL_BED_CORNERS)
|
||||
#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
|
||||
#endif
|
||||
|
||||
|
||||
@@ -1104,6 +1104,7 @@
|
||||
|
||||
#if ENABLED(LEVEL_BED_CORNERS)
|
||||
#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
|
||||
#endif
|
||||
|
||||
|
||||
@@ -1102,6 +1102,7 @@
|
||||
|
||||
#if ENABLED(LEVEL_BED_CORNERS)
|
||||
#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
|
||||
#endif
|
||||
|
||||
|
||||
@@ -1117,6 +1117,7 @@
|
||||
|
||||
#if ENABLED(LEVEL_BED_CORNERS)
|
||||
#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
|
||||
#endif
|
||||
|
||||
|
||||
@@ -1135,6 +1135,7 @@
|
||||
|
||||
#if ENABLED(LEVEL_BED_CORNERS)
|
||||
#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
|
||||
#endif
|
||||
|
||||
|
||||
@@ -1163,6 +1163,7 @@
|
||||
|
||||
#if ENABLED(LEVEL_BED_CORNERS)
|
||||
#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
|
||||
#endif
|
||||
|
||||
|
||||
@@ -1104,6 +1104,7 @@
|
||||
|
||||
#if ENABLED(LEVEL_BED_CORNERS)
|
||||
#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
|
||||
#endif
|
||||
|
||||
|
||||
@@ -1108,6 +1108,7 @@
|
||||
|
||||
#if ENABLED(LEVEL_BED_CORNERS)
|
||||
#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
|
||||
#endif
|
||||
|
||||
|
||||
@@ -1104,6 +1104,7 @@
|
||||
|
||||
#if ENABLED(LEVEL_BED_CORNERS)
|
||||
#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
|
||||
#endif
|
||||
|
||||
|
||||
@@ -1115,6 +1115,7 @@
|
||||
|
||||
#if ENABLED(LEVEL_BED_CORNERS)
|
||||
#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
|
||||
#endif
|
||||
|
||||
|
||||
@@ -1134,6 +1134,7 @@
|
||||
|
||||
#if ENABLED(LEVEL_BED_CORNERS)
|
||||
#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
|
||||
#endif
|
||||
|
||||
|
||||
@@ -1104,6 +1104,7 @@
|
||||
|
||||
#if ENABLED(LEVEL_BED_CORNERS)
|
||||
#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
|
||||
#endif
|
||||
|
||||
|
||||
@@ -1104,6 +1104,7 @@
|
||||
|
||||
#if ENABLED(LEVEL_BED_CORNERS)
|
||||
#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
|
||||
#endif
|
||||
|
||||
|
||||
@@ -1114,6 +1114,7 @@
|
||||
|
||||
#if ENABLED(LEVEL_BED_CORNERS)
|
||||
#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
|
||||
#endif
|
||||
|
||||
|
||||
@@ -1104,6 +1104,7 @@
|
||||
|
||||
#if ENABLED(LEVEL_BED_CORNERS)
|
||||
#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
|
||||
#endif
|
||||
|
||||
|
||||
@@ -1302,6 +1302,7 @@
|
||||
|
||||
#if ENABLED(LEVEL_BED_CORNERS)
|
||||
#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
|
||||
#endif
|
||||
|
||||
|
||||
@@ -26,10 +26,10 @@ The Kossel comes in 3 versions:
|
||||
* Pulley
|
||||
* Linear
|
||||
* Linear Plus
|
||||
|
||||
|
||||
Pulley and Linear use the same configuration, the Linear Plus is bigger and uses slightly different configurations.
|
||||
|
||||
Typically the probes for the Anycubic Delta Kossel printers come in two different versions.
|
||||
|
||||
Typically the probes for the Anycubic Delta Kossel printers come in two different versions.
|
||||
|
||||
* Version 1: Z Probe Offset of -19.0mm
|
||||
|
||||
|
||||
@@ -1240,6 +1240,7 @@
|
||||
|
||||
#if ENABLED(LEVEL_BED_CORNERS)
|
||||
#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
|
||||
#endif
|
||||
|
||||
|
||||
@@ -1239,6 +1239,7 @@
|
||||
|
||||
#if ENABLED(LEVEL_BED_CORNERS)
|
||||
#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
|
||||
#endif
|
||||
|
||||
|
||||
@@ -1239,6 +1239,7 @@
|
||||
|
||||
#if ENABLED(LEVEL_BED_CORNERS)
|
||||
#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
|
||||
#endif
|
||||
|
||||
|
||||
@@ -1242,6 +1242,7 @@
|
||||
|
||||
#if ENABLED(LEVEL_BED_CORNERS)
|
||||
#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
|
||||
#endif
|
||||
|
||||
|
||||
@@ -1227,6 +1227,7 @@
|
||||
|
||||
#if ENABLED(LEVEL_BED_CORNERS)
|
||||
#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
|
||||
#endif
|
||||
|
||||
|
||||
@@ -1229,6 +1229,7 @@
|
||||
|
||||
#if ENABLED(LEVEL_BED_CORNERS)
|
||||
#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
|
||||
#endif
|
||||
|
||||
|
||||
@@ -1230,6 +1230,7 @@
|
||||
|
||||
#if ENABLED(LEVEL_BED_CORNERS)
|
||||
#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
|
||||
#endif
|
||||
|
||||
|
||||
@@ -1230,6 +1230,7 @@
|
||||
|
||||
#if ENABLED(LEVEL_BED_CORNERS)
|
||||
#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
|
||||
#endif
|
||||
|
||||
|
||||
@@ -1118,6 +1118,7 @@
|
||||
|
||||
#if ENABLED(LEVEL_BED_CORNERS)
|
||||
#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
|
||||
#endif
|
||||
|
||||
|
||||
@@ -1275,6 +1275,7 @@
|
||||
|
||||
#if ENABLED(LEVEL_BED_CORNERS)
|
||||
#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
|
||||
#endif
|
||||
|
||||
|
||||
@@ -1107,6 +1107,7 @@
|
||||
|
||||
#if ENABLED(LEVEL_BED_CORNERS)
|
||||
#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
|
||||
#endif
|
||||
|
||||
|
||||
@@ -1099,6 +1099,7 @@
|
||||
|
||||
#if ENABLED(LEVEL_BED_CORNERS)
|
||||
#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
|
||||
#endif
|
||||
|
||||
|
||||
@@ -1109,6 +1109,7 @@
|
||||
|
||||
#if ENABLED(LEVEL_BED_CORNERS)
|
||||
#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
|
||||
#endif
|
||||
|
||||
|
||||
@@ -137,7 +137,8 @@
|
||||
#define MSG_INVALID_EXTRUDER "Invalid extruder"
|
||||
#define MSG_INVALID_SOLENOID "Invalid solenoid"
|
||||
#define MSG_ERR_NO_THERMISTORS "No thermistors - no temperature"
|
||||
#define MSG_M115_REPORT "FIRMWARE_NAME:Marlin " DETAILED_BUILD_VERSION " SOURCE_CODE_URL:" SOURCE_CODE_URL " PROTOCOL_VERSION:" PROTOCOL_VERSION " MACHINE_TYPE:" MACHINE_NAME " EXTRUDER_COUNT:" STRINGIFY(EXTRUDERS) " UUID:" MACHINE_UUID
|
||||
#define MSG_M115_REPORT "FIRMWARE_NAME:Marlin " DETAILED_BUILD_VERSION " MARLIN-AI3M_VERSION:" CUSTOM_BUILD_VERSION " SOURCE_CODE_URL:" SOURCE_CODE_URL " PROTOCOL_VERSION:" PROTOCOL_VERSION " MACHINE_TYPE:" MACHINE_NAME " EXTRUDER_COUNT:" STRINGIFY(EXTRUDERS) " UUID:" MACHINE_UUID
|
||||
#define MSG_MARLIN_AI3M "Marlin-AI3M"
|
||||
#define MSG_COUNT_X " Count X:"
|
||||
#define MSG_COUNT_A " Count A:"
|
||||
#define MSG_ERR_KILLED "Printer halted. kill() called!"
|
||||
|
||||
@@ -41,11 +41,16 @@
|
||||
#define MSG_SD_INSERTED _UxGT("Karta vlozena")
|
||||
#define MSG_SD_REMOVED _UxGT("Karta vyjmuta")
|
||||
#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_AUTOSTART _UxGT("Autostart")
|
||||
#define MSG_DISABLE_STEPPERS _UxGT("Uvolnit motory")
|
||||
#define MSG_DEBUG_MENU _UxGT("Nabidka ladeni")
|
||||
#define MSG_PROGRESS_BAR_TEST _UxGT("Test uk.prubehu")
|
||||
#if LCD_WIDTH >= 20
|
||||
#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_X _UxGT("Domu osa X")
|
||||
#define MSG_AUTO_HOME_Y _UxGT("Domu osa Y")
|
||||
@@ -91,7 +96,7 @@
|
||||
#define MSG_UBL_BC_INSERT _UxGT("Vlozte kartu, zmerte")
|
||||
#define MSG_UBL_BC_INSERT2 _UxGT("Zmerte")
|
||||
#define MSG_UBL_BC_REMOVE _UxGT("Odstrante a zmerte")
|
||||
#define MSG_UBL_MOVING_TO_NEXT _UxGT("Presoun na dalsi")
|
||||
#define MSG_UBL_MOVING_TO_NEXT _UxGT("Presun na dalsi")
|
||||
#define MSG_UBL_ACTIVATE_MESH _UxGT("Aktivovat UBL")
|
||||
#define MSG_UBL_DEACTIVATE_MESH _UxGT("Deaktivovat UBL")
|
||||
#define MSG_UBL_SET_BED_TEMP _UxGT("Teplota podlozky")
|
||||
@@ -125,7 +130,7 @@
|
||||
#define MSG_UBL_OUTPUT_MAP_CSV _UxGT("Exportovat do CSV")
|
||||
#define MSG_UBL_OUTPUT_MAP_BACKUP _UxGT("Zaloha do PC")
|
||||
#define MSG_UBL_INFO_UBL _UxGT("Info o UBL do PC")
|
||||
#define MSG_UBL_EDIT_MESH_MENU _UxGT("Upravit sit dobu")
|
||||
#define MSG_UBL_EDIT_MESH_MENU _UxGT("Upravit sit bodu")
|
||||
#define MSG_UBL_FILLIN_AMOUNT _UxGT("Hustota mrizky")
|
||||
#define MSG_UBL_MANUAL_FILLIN _UxGT("Rucni hustota")
|
||||
#define MSG_UBL_SMART_FILLIN _UxGT("Chytra hustota")
|
||||
@@ -139,14 +144,14 @@
|
||||
#define MSG_UBL_LOAD_MESH _UxGT("Nacist sit bodu")
|
||||
#define MSG_UBL_SAVE_MESH _UxGT("Ulozit sit bodu")
|
||||
#define MSG_MESH_LOADED _UxGT("Sit %i nactena")
|
||||
#define MSG_NO_STORAGE _UxGT("Nedostatek mista")
|
||||
#define MSG_MESH_SAVED _UxGT("Sit %i ulozena")
|
||||
#define MSG_UBL_SAVE_ERROR _UxGT("Err: Ulozit UBL")
|
||||
#define MSG_UBL_RESTORE_ERROR _UxGT("Err: Obnovit UBL")
|
||||
#define MSG_NO_STORAGE _UxGT("Nedostatek mista")
|
||||
#define MSG_UBL_SAVE_ERROR _UxGT("Ch.: Ulozit UBL")
|
||||
#define MSG_UBL_RESTORE_ERROR _UxGT("Ch.: Obnovit UBL")
|
||||
#define MSG_UBL_Z_OFFSET_STOPPED _UxGT("Konec Z-Offsetu")
|
||||
#define MSG_UBL_STEP_BY_STEP_MENU _UxGT("UBL Postupne")
|
||||
|
||||
#define MSG_LED_CONTROL _UxGT("LED Nastaveni")
|
||||
#define MSG_LED_CONTROL _UxGT("Nastaveni LED")
|
||||
#define MSG_LEDS _UxGT("Svetla")
|
||||
#define MSG_LED_PRESETS _UxGT("Svetla Predvolby")
|
||||
#define MSG_SET_LEDS_RED _UxGT("Cervena")
|
||||
@@ -206,6 +211,7 @@
|
||||
#define MSG_VC_JERK _UxGT("Vz-jerk")
|
||||
#endif
|
||||
#define MSG_VE_JERK _UxGT("Ve-jerk")
|
||||
#define MSG_JUNCTION_DEVIATION _UxGT("Odchylka spoje")
|
||||
#define MSG_VELOCITY _UxGT("Rychlost")
|
||||
#define MSG_VMAX _UxGT("Vmax ")
|
||||
#define MSG_VMIN _UxGT("Vmin")
|
||||
@@ -250,11 +256,13 @@
|
||||
#define MSG_PAUSE_PRINT _UxGT("Pozastavit tisk")
|
||||
#define MSG_RESUME_PRINT _UxGT("Obnovit 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_NO_CARD _UxGT("Zadna SD karta")
|
||||
#define MSG_DWELL _UxGT("Uspano...")
|
||||
#define MSG_USERWAIT _UxGT("Cekani na uziv...")
|
||||
#define MSG_PRINT_PAUSED _UxGT("Tisk pozastaven")
|
||||
#define MSG_PRINTING _UxGT("Tisknu...")
|
||||
#define MSG_PRINT_ABORTED _UxGT("Tisk zrusen")
|
||||
#define MSG_NO_MOVE _UxGT("Zadny pohyb.")
|
||||
#define MSG_KILLED _UxGT("PRERUSENO. ")
|
||||
@@ -290,8 +298,10 @@
|
||||
#define MSG_BABYSTEP_Z _UxGT("Babystep Z")
|
||||
#define MSG_ENDSTOP_ABORT _UxGT("Endstop abort")
|
||||
#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_THERMAL_RUNAWAY _UxGT("TEPLOTNI SKOK")
|
||||
#define MSG_THERMAL_RUNAWAY _UxGT("TEPLOTNI UNIK")
|
||||
#define MSG_THERMAL_RUNAWAY_BED _UxGT("TEPL. UNIK PODL.")
|
||||
#define MSG_ERR_MAXTEMP _UxGT("VYSOKA TEPLOTA")
|
||||
#define MSG_ERR_MINTEMP _UxGT("NIZKA TEPLOTA")
|
||||
#define MSG_ERR_MAXTEMP_BED _UxGT("VYS. TEPL. PODL.")
|
||||
@@ -303,7 +313,17 @@
|
||||
#define MSG_SHORT_HOUR _UxGT("h")
|
||||
#define MSG_SHORT_MINUTE _UxGT("m")
|
||||
#define MSG_HEATING _UxGT("Zahrivani...")
|
||||
#define MSG_BED_HEATING _UxGT("Zahrivani podl...")
|
||||
#define MSG_COOLING _UxGT("Chlazeni...")
|
||||
#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_X _UxGT("Kalibrovat X")
|
||||
#define MSG_DELTA_CALIBRATE_Y _UxGT("Kalibrovat Y")
|
||||
@@ -312,6 +332,7 @@
|
||||
#define MSG_DELTA_SETTINGS _UxGT("Delta nastaveni")
|
||||
#define MSG_DELTA_AUTO_CALIBRATE _UxGT("Autokalibrace")
|
||||
#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_HEIGHT _UxGT("Vyska")
|
||||
#define MSG_DELTA_RADIUS _UxGT("Polomer")
|
||||
@@ -364,36 +385,36 @@
|
||||
|
||||
#if LCD_HEIGHT >= 4
|
||||
// Up to 3 lines allowed
|
||||
#define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Cekejte prosim")
|
||||
#define MSG_FILAMENT_CHANGE_INIT_2 _UxGT("na zahajeni")
|
||||
#define MSG_FILAMENT_CHANGE_INIT_3 _UxGT("vymeny filamentu")
|
||||
#define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Cekejte prosim")
|
||||
#define MSG_FILAMENT_CHANGE_UNLOAD_2 _UxGT("na vysunuti")
|
||||
#define MSG_FILAMENT_CHANGE_UNLOAD_3 _UxGT("filamentu")
|
||||
#define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Vlozte filament")
|
||||
#define MSG_FILAMENT_CHANGE_INSERT_2 _UxGT("a stisknete")
|
||||
#define MSG_FILAMENT_CHANGE_INSERT_3 _UxGT("tlacitko...")
|
||||
#define MSG_FILAMENT_CHANGE_HEAT_1 _UxGT("Kliknete pro")
|
||||
#define MSG_FILAMENT_CHANGE_HEAT_2 _UxGT("nahrati trysky")
|
||||
#define MSG_FILAMENT_CHANGE_HEATING_1 _UxGT("Cekejte prosim")
|
||||
#define MSG_FILAMENT_CHANGE_HEATING_2 _UxGT("na nahrati tr.")
|
||||
#define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Cekejte prosim")
|
||||
#define MSG_FILAMENT_CHANGE_LOAD_2 _UxGT("na zavedeni")
|
||||
#define MSG_FILAMENT_CHANGE_LOAD_3 _UxGT("filamentu")
|
||||
#define MSG_FILAMENT_CHANGE_PURGE_1 _UxGT("Vyckejte na")
|
||||
#define MSG_FILAMENT_CHANGE_PURGE_2 _UxGT("vytlaceni")
|
||||
#define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Cekejte prosim")
|
||||
#define MSG_FILAMENT_CHANGE_RESUME_2 _UxGT("na pokracovani")
|
||||
#define MSG_FILAMENT_CHANGE_RESUME_3 _UxGT("tisku")
|
||||
#define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Cekejte prosim")
|
||||
#define MSG_FILAMENT_CHANGE_INIT_2 _UxGT("na zahajeni")
|
||||
#define MSG_FILAMENT_CHANGE_INIT_3 _UxGT("vymeny filamentu")
|
||||
#define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Cekejte prosim")
|
||||
#define MSG_FILAMENT_CHANGE_UNLOAD_2 _UxGT("na vysunuti")
|
||||
#define MSG_FILAMENT_CHANGE_UNLOAD_3 _UxGT("filamentu")
|
||||
#define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Vlozte filament")
|
||||
#define MSG_FILAMENT_CHANGE_INSERT_2 _UxGT("a stisknete")
|
||||
#define MSG_FILAMENT_CHANGE_INSERT_3 _UxGT("tlacitko...")
|
||||
#define MSG_FILAMENT_CHANGE_HEAT_1 _UxGT("Kliknete pro")
|
||||
#define MSG_FILAMENT_CHANGE_HEAT_2 _UxGT("nahrati trysky")
|
||||
#define MSG_FILAMENT_CHANGE_HEATING_1 _UxGT("Cekejte prosim")
|
||||
#define MSG_FILAMENT_CHANGE_HEATING_2 _UxGT("na nahrati tr.")
|
||||
#define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Cekejte prosim")
|
||||
#define MSG_FILAMENT_CHANGE_LOAD_2 _UxGT("na zavedeni")
|
||||
#define MSG_FILAMENT_CHANGE_LOAD_3 _UxGT("filamentu")
|
||||
#define MSG_FILAMENT_CHANGE_PURGE_1 _UxGT("Vyckejte na")
|
||||
#define MSG_FILAMENT_CHANGE_PURGE_2 _UxGT("vytlaceni")
|
||||
#define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Cekejte prosim")
|
||||
#define MSG_FILAMENT_CHANGE_RESUME_2 _UxGT("na pokracovani")
|
||||
#define MSG_FILAMENT_CHANGE_RESUME_3 _UxGT("tisku")
|
||||
#else // LCD_HEIGHT < 4
|
||||
// Up to 2 lines allowed
|
||||
#define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Cekejte...")
|
||||
#define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Vysouvani...")
|
||||
#define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Vlozte, kliknete")
|
||||
#define MSG_FILAMENT_CHANGE_HEATING_1 _UxGT("Nahrivani...")
|
||||
#define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Zavadeni...")
|
||||
#define MSG_FILAMENT_CHANGE_PURGE_1 _UxGT("Vytlacovani...")
|
||||
#define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Pokracovani...")
|
||||
#define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Cekejte...")
|
||||
#define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Vysouvani...")
|
||||
#define MSG_FILAMENT_CHANGE_INSERT_1 _UxGT("Vlozte, kliknete")
|
||||
#define MSG_FILAMENT_CHANGE_HEATING_1 _UxGT("Nahrivani...")
|
||||
#define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Zavadeni...")
|
||||
#define MSG_FILAMENT_CHANGE_PURGE_1 _UxGT("Vytlacovani...")
|
||||
#define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Pokracovani...")
|
||||
#endif // LCD_HEIGHT < 4
|
||||
|
||||
#endif // LANGUAGE_CZ_H
|
||||
|
||||
@@ -49,7 +49,11 @@
|
||||
#define MSG_AUTOSTART _UxGT("Autostart")
|
||||
#define MSG_DISABLE_STEPPERS _UxGT("Uvolnit motory")
|
||||
#define MSG_DEBUG_MENU _UxGT("Nabídka ladění")
|
||||
#define MSG_PROGRESS_BAR_TEST _UxGT("Test uk. průběhu")
|
||||
#if LCD_WIDTH >= 20
|
||||
#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_X _UxGT("Domů osa X")
|
||||
#define MSG_AUTO_HOME_Y _UxGT("Domů osa Y")
|
||||
@@ -108,8 +112,8 @@
|
||||
#define MSG_UBL_DONE_EDITING_MESH _UxGT("Konec úprav sítě")
|
||||
#define MSG_UBL_BUILD_CUSTOM_MESH _UxGT("Vlastní síť")
|
||||
#define MSG_UBL_BUILD_MESH_MENU _UxGT("Vytvořit síť")
|
||||
#define MSG_UBL_BUILD_PLA_MESH _UxGT("Síť bodu PLA")
|
||||
#define MSG_UBL_BUILD_ABS_MESH _UxGT("Síť bodu ABS")
|
||||
#define MSG_UBL_BUILD_PLA_MESH _UxGT("Síť bodů PLA")
|
||||
#define MSG_UBL_BUILD_ABS_MESH _UxGT("Síť bodů ABS")
|
||||
#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_AMOUNT _UxGT("Výška")
|
||||
@@ -119,8 +123,8 @@
|
||||
#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_MESH_LEVELING _UxGT("Síťové rovnání")
|
||||
#define MSG_UBL_3POINT_MESH_LEVELING _UxGT("3-bodove rovnání")
|
||||
#define MSG_UBL_GRID_MESH_LEVELING _UxGT("Mrizkove rovnání")
|
||||
#define MSG_UBL_3POINT_MESH_LEVELING _UxGT("3-bodové rovnání")
|
||||
#define MSG_UBL_GRID_MESH_LEVELING _UxGT("Mřížkové rovnání")
|
||||
#define MSG_UBL_MESH_LEVEL _UxGT("Srovnat podložku")
|
||||
#define MSG_UBL_SIDE_POINTS _UxGT("Postranní body")
|
||||
#define MSG_UBL_MAP_TYPE _UxGT("Typ sítě bodu")
|
||||
@@ -145,12 +149,12 @@
|
||||
#define MSG_MESH_LOADED _UxGT("Síť %i načtena")
|
||||
#define MSG_MESH_SAVED _UxGT("Síť %i uložena")
|
||||
#define MSG_NO_STORAGE _UxGT("Nedostatek místa")
|
||||
#define MSG_UBL_SAVE_ERROR _UxGT("Err: Uložit UBL")
|
||||
#define MSG_UBL_RESTORE_ERROR _UxGT("Err: Obnovit UBL")
|
||||
#define MSG_UBL_SAVE_ERROR _UxGT("Ch.: Uložit UBL")
|
||||
#define MSG_UBL_RESTORE_ERROR _UxGT("Ch.: Obnovit UBL")
|
||||
#define MSG_UBL_Z_OFFSET_STOPPED _UxGT("Konec Z-Offsetu")
|
||||
#define MSG_UBL_STEP_BY_STEP_MENU _UxGT("UBL Postupně")
|
||||
|
||||
#define MSG_LED_CONTROL _UxGT("LED Nastavení")
|
||||
#define MSG_LED_CONTROL _UxGT("Nastavení LED")
|
||||
#define MSG_LEDS _UxGT("Světla")
|
||||
#define MSG_LED_PRESETS _UxGT("Světla Předvolby")
|
||||
#define MSG_SET_LEDS_RED _UxGT("Červená")
|
||||
@@ -170,7 +174,7 @@
|
||||
#define MSG_LED_BRIGHTNESS _UxGT("Jas")
|
||||
|
||||
#define MSG_USER_MENU _UxGT("Vlastní příkazy")
|
||||
#define MSG_MOVING _UxGT("Posouvani...")
|
||||
#define MSG_MOVING _UxGT("Posouvání...")
|
||||
#define MSG_FREE_XY _UxGT("Uvolnit XY")
|
||||
#define MSG_MOVE_X _UxGT("Posunout X")
|
||||
#define MSG_MOVE_Y _UxGT("Posunout Y")
|
||||
@@ -210,6 +214,7 @@
|
||||
#define MSG_VC_JERK _UxGT("Vz-jerk")
|
||||
#endif
|
||||
#define MSG_VE_JERK _UxGT("Ve-jerk")
|
||||
#define MSG_JUNCTION_DEVIATION _UxGT("Odchylka spoje")
|
||||
#define MSG_VELOCITY _UxGT("Rychlost")
|
||||
#define MSG_VMAX _UxGT("Vmax ")
|
||||
#define MSG_VMIN _UxGT("Vmin")
|
||||
@@ -254,7 +259,7 @@
|
||||
#define MSG_PAUSE_PRINT _UxGT("Pozastavit tisk")
|
||||
#define MSG_RESUME_PRINT _UxGT("Obnovit tisk")
|
||||
#define MSG_STOP_PRINT _UxGT("Zastavit tisk")
|
||||
#define MSG_POWER_LOSS_RECOVERY _UxGT("Obnova vypadku")
|
||||
#define MSG_POWER_LOSS_RECOVERY _UxGT("Obnova výpadku")
|
||||
#define MSG_CARD_MENU _UxGT("Tisknout z SD")
|
||||
#define MSG_NO_CARD _UxGT("Žádná SD karta")
|
||||
#define MSG_DWELL _UxGT("Uspáno...")
|
||||
@@ -296,10 +301,10 @@
|
||||
#define MSG_BABYSTEP_Z _UxGT("Babystep Z")
|
||||
#define MSG_ENDSTOP_ABORT _UxGT("Endstop abort")
|
||||
#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_THERMAL_RUNAWAY _UxGT("TEPLOTNÍ SKOK")
|
||||
#define MSG_THERMAL_RUNAWAY_BED _UxGT("PODL. TEPL. SKOK")
|
||||
#define MSG_THERMAL_RUNAWAY _UxGT("TEPLOTNÍ ÚNIK")
|
||||
#define MSG_THERMAL_RUNAWAY_BED _UxGT("TEPL. ÚNIK PODL.")
|
||||
#define MSG_ERR_MAXTEMP _UxGT("VYSOKÁ TEPLOTA")
|
||||
#define MSG_ERR_MINTEMP _UxGT("NÍZKA TEPLOTA")
|
||||
#define MSG_ERR_MAXTEMP_BED _UxGT("VYS. TEPL. PODL.")
|
||||
@@ -311,9 +316,17 @@
|
||||
#define MSG_SHORT_HOUR _UxGT("h")
|
||||
#define MSG_SHORT_MINUTE _UxGT("m")
|
||||
#define MSG_HEATING _UxGT("Zahřívání...")
|
||||
#define MSG_COOLING _UxGT("Chlazení")
|
||||
#define MSG_BED_HEATING _UxGT("Zahřívání podl...")
|
||||
#define MSG_BED_COOLING _UxGT("Chlazení podl...")
|
||||
#define MSG_COOLING _UxGT("Chlazení...")
|
||||
#if LCD_WIDTH >= 20
|
||||
#define MSG_BED_HEATING _UxGT("Zahřívání podložky")
|
||||
#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_X _UxGT("Kalibrovat X")
|
||||
#define MSG_DELTA_CALIBRATE_Y _UxGT("Kalibrovat Y")
|
||||
@@ -375,36 +388,36 @@
|
||||
|
||||
#if LCD_HEIGHT >= 4
|
||||
// Up to 3 lines allowed
|
||||
#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_3 _UxGT("výměny filamentu")
|
||||
#define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Čekejte prosím")
|
||||
#define MSG_FILAMENT_CHANGE_UNLOAD_2 _UxGT("na vysunuti")
|
||||
#define MSG_FILAMENT_CHANGE_UNLOAD_3 _UxGT("filamentu")
|
||||
#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_3 _UxGT("tlačítko...")
|
||||
#define MSG_FILAMENT_CHANGE_HEAT_1 _UxGT("Klikněte pro")
|
||||
#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_2 _UxGT("na nahřátí tr.")
|
||||
#define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Čekejte prosím")
|
||||
#define MSG_FILAMENT_CHANGE_LOAD_2 _UxGT("na zavedení")
|
||||
#define MSG_FILAMENT_CHANGE_LOAD_3 _UxGT("filamentu")
|
||||
#define MSG_FILAMENT_CHANGE_PURGE_1 _UxGT("Vyčkejte na")
|
||||
#define MSG_FILAMENT_CHANGE_PURGE_2 _UxGT("vytlačení")
|
||||
#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_3 _UxGT("tisku")
|
||||
#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_3 _UxGT("výměny filamentu")
|
||||
#define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Čekejte prosím")
|
||||
#define MSG_FILAMENT_CHANGE_UNLOAD_2 _UxGT("na vysunuti")
|
||||
#define MSG_FILAMENT_CHANGE_UNLOAD_3 _UxGT("filamentu")
|
||||
#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_3 _UxGT("tlačítko...")
|
||||
#define MSG_FILAMENT_CHANGE_HEAT_1 _UxGT("Klikněte pro")
|
||||
#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_2 _UxGT("na nahřátí tr.")
|
||||
#define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Čekejte prosím")
|
||||
#define MSG_FILAMENT_CHANGE_LOAD_2 _UxGT("na zavedení")
|
||||
#define MSG_FILAMENT_CHANGE_LOAD_3 _UxGT("filamentu")
|
||||
#define MSG_FILAMENT_CHANGE_PURGE_1 _UxGT("Vyčkejte na")
|
||||
#define MSG_FILAMENT_CHANGE_PURGE_2 _UxGT("vytlačení")
|
||||
#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_3 _UxGT("tisku")
|
||||
#else // LCD_HEIGHT < 4
|
||||
// Up to 2 lines allowed
|
||||
#define MSG_FILAMENT_CHANGE_INIT_1 _UxGT("Čekejte...")
|
||||
#define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Vysouvání...")
|
||||
#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_LOAD_1 _UxGT("Zavádě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_INIT_1 _UxGT("Čekejte...")
|
||||
#define MSG_FILAMENT_CHANGE_UNLOAD_1 _UxGT("Vysouvání...")
|
||||
#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_LOAD_1 _UxGT("Zavádění...")
|
||||
#define MSG_FILAMENT_CHANGE_PURGE_1 _UxGT("Vytlačování...")
|
||||
#define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Pokračování...")
|
||||
#endif // LCD_HEIGHT < 4
|
||||
|
||||
#endif // LANGUAGE_CZ_UTF_H
|
||||
|
||||
@@ -34,26 +34,26 @@
|
||||
#define DISPLAY_CHARSET_ISO10646_GREEK
|
||||
#define CHARSIZE 2
|
||||
|
||||
#define WELCOME_MSG MACHINE_NAME _UxGT(" έτοιμο.")
|
||||
#define MSG_SD_INSERTED _UxGT("Εισαγωγή κάρτας")
|
||||
#define MSG_SD_REMOVED _UxGT("Αφαίρεση κάρτας")
|
||||
#define WELCOME_MSG MACHINE_NAME _UxGT(" πανέτοιμος.")
|
||||
#define MSG_SD_INSERTED _UxGT("Έχω καρτούλα")
|
||||
#define MSG_SD_REMOVED _UxGT("Ωχ! Δεν εχω καρτα")
|
||||
#define MSG_LCD_ENDSTOPS _UxGT("Endstops") // Max length 8 characters
|
||||
#define MSG_MAIN _UxGT("Βασική Οθόνη")
|
||||
#define MSG_AUTOSTART _UxGT("Αυτόματη εκκίνηση")
|
||||
#define MSG_DISABLE_STEPPERS _UxGT("Απενεργοποίηση βηματιστή")
|
||||
#define MSG_AUTO_HOME _UxGT("Αυτομ. επαναφορά στο αρχικό σημείο")
|
||||
#define MSG_AUTO_HOME_X _UxGT("Αρχικό σημείο X")
|
||||
#define MSG_AUTO_HOME_Y _UxGT("Αρχικό σημείο Y")
|
||||
#define MSG_AUTO_HOME_Z _UxGT("Αρχικό σημείο Z")
|
||||
#define MSG_DISABLE_STEPPERS _UxGT("Ελευθέρωσέ με")
|
||||
#define MSG_AUTO_HOME _UxGT("Πάω σπίτι")
|
||||
#define MSG_AUTO_HOME_X _UxGT("Αρχικό X")
|
||||
#define MSG_AUTO_HOME_Y _UxGT("Αρχικό Y")
|
||||
#define MSG_AUTO_HOME_Z _UxGT("Αρχικό Z")
|
||||
#define MSG_TMC_Z_CALIBRATION _UxGT("Βαθμονόμηση Z")
|
||||
#define MSG_LEVEL_BED_HOMING _UxGT("Επαναφορά στο αρχικό σημείο ΧΥΖ")
|
||||
#define MSG_LEVEL_BED_WAITING _UxGT("Κάντε κλικ για να ξεκινήσετε")
|
||||
#define MSG_LEVEL_BED_NEXT_POINT _UxGT("Επόμενο σημείο")
|
||||
#define MSG_LEVEL_BED_DONE _UxGT("Ολοκλήρωση επιπεδοποίησης!")
|
||||
#define MSG_LEVEL_BED_WAITING _UxGT("Πάτα το κουμπί και ΦΥΓΑΜΕ!!!")
|
||||
#define MSG_LEVEL_BED_NEXT_POINT _UxGT("Πιο πέρα")
|
||||
#define MSG_LEVEL_BED_DONE _UxGT("Τελείωσα, αδερφέ")
|
||||
#define MSG_SET_HOME_OFFSETS _UxGT("Ορισμός βασικών μετατοπίσεων")
|
||||
#define MSG_HOME_OFFSETS_APPLIED _UxGT("Εφαρμόστηκαν οι μετατοπίσεις")
|
||||
#define MSG_SET_ORIGIN _UxGT("Ορισμός προέλευσης")
|
||||
#define MSG_PREHEAT_1 _UxGT("Προθέρμανση PLA")
|
||||
#define MSG_PREHEAT_1 _UxGT("Ζεσταίνω PLA")
|
||||
#define MSG_PREHEAT_1_N MSG_PREHEAT_1 _UxGT(" ")
|
||||
#define MSG_PREHEAT_1_ALL MSG_PREHEAT_1 _UxGT(" όλα")
|
||||
#define MSG_PREHEAT_1_BEDONLY MSG_PREHEAT_1 _UxGT(" κλίνη")
|
||||
@@ -69,19 +69,19 @@
|
||||
#define MSG_EXTRUDE _UxGT("Εξώθηση")
|
||||
#define MSG_RETRACT _UxGT("Ανάσυρση")
|
||||
#define MSG_MOVE_AXIS _UxGT("Μετακίνηση άξονα")
|
||||
#define MSG_BED_LEVELING _UxGT("Επιπεδοποίηση κλίνης")
|
||||
#define MSG_LEVEL_BED _UxGT("Επιπεδοποίηση κλίνης")
|
||||
#define MSG_BED_LEVELING _UxGT("Σου ισιώνω κρεβάτι")
|
||||
#define MSG_LEVEL_BED _UxGT("Εδω το καλό κρεβάτι")
|
||||
#define MSG_MOVE_X _UxGT("Μετακίνηση X")
|
||||
#define MSG_MOVE_Y _UxGT("Μετακίνηση Y")
|
||||
#define MSG_MOVE_Z _UxGT("Μετακίνηση Z")
|
||||
#define MSG_MOVE_E _UxGT("Εξωθητήρας")
|
||||
#define MSG_MOVE_01MM _UxGT("Μετακίνηση 0,1 μμ")
|
||||
#define MSG_MOVE_1MM _UxGT("Μετακίνηση 1 μμ")
|
||||
#define MSG_MOVE_10MM _UxGT("Μετακίνηση 10 μμ")
|
||||
#define MSG_MOVE_01MM _UxGT("Μετακίνηση 0,1μμ")
|
||||
#define MSG_MOVE_1MM _UxGT("Μετακίνηση 1μμ")
|
||||
#define MSG_MOVE_10MM _UxGT("Μετακίνηση 10μμ")
|
||||
#define MSG_SPEED _UxGT("Ταχύτητα")
|
||||
#define MSG_BED_Z _UxGT("Κλίνη Z")
|
||||
#define MSG_NOZZLE _UxGT("Ακροφύσιο")
|
||||
#define MSG_BED _UxGT("Κλίνη")
|
||||
#define MSG_BED_Z _UxGT("Κρεβάτι Z")
|
||||
#define MSG_NOZZLE _UxGT("Μύτη")
|
||||
#define MSG_BED _UxGT("Κρεβάτι")
|
||||
#define MSG_FAN_SPEED _UxGT("Ταχύτητα ανεμιστήρα")
|
||||
#define MSG_FLOW _UxGT("Ροή")
|
||||
#define MSG_CONTROL _UxGT("Έλεγχος")
|
||||
@@ -132,9 +132,9 @@
|
||||
#define MSG_E5STEPS _UxGT("Bήματα Ε5 ανά μμ")
|
||||
#define MSG_TEMPERATURE _UxGT("Θερμοκρασία")
|
||||
#define MSG_MOTION _UxGT("Κίνηση")
|
||||
#define MSG_FILAMENT _UxGT("Νήμα")
|
||||
#define MSG_FILAMENT _UxGT("Φιλαμεντ")
|
||||
#define MSG_VOLUMETRIC_ENABLED _UxGT("Ε σε μμ3")
|
||||
#define MSG_FILAMENT_DIAM _UxGT("Διάμετρος νήματος")
|
||||
#define MSG_FILAMENT_DIAM _UxGT("Διάμετρος φιλαμεντ")
|
||||
#define MSG_CONTRAST _UxGT("Κοντράστ LCD")
|
||||
#define MSG_STORE_EEPROM _UxGT("Αποθήκευση")
|
||||
#define MSG_LOAD_EEPROM _UxGT("Φόρτωση")
|
||||
@@ -142,15 +142,15 @@
|
||||
#define MSG_REFRESH _UxGT("Ανανέωση")
|
||||
#define MSG_WATCH _UxGT("Οθόνη πληροφόρησης")
|
||||
#define MSG_PREPARE _UxGT("Προετοιμασία")
|
||||
#define MSG_TUNE _UxGT("Συντονισμός")
|
||||
#define MSG_PAUSE_PRINT _UxGT("Παύση εκτύπωσης")
|
||||
#define MSG_RESUME_PRINT _UxGT("Συνέχιση εκτύπωσης")
|
||||
#define MSG_STOP_PRINT _UxGT("Διακοπή εκτύπωσης")
|
||||
#define MSG_CARD_MENU _UxGT("Εκτύπωση από SD")
|
||||
#define MSG_NO_CARD _UxGT("Δεν βρέθηκε SD")
|
||||
#define MSG_TUNE _UxGT("Ρύθμιση OTF")
|
||||
#define MSG_PAUSE_PRINT _UxGT("Διάλειμα")
|
||||
#define MSG_RESUME_PRINT _UxGT("Συνεχίζω")
|
||||
#define MSG_STOP_PRINT _UxGT("ΑΝΤΕ ΓΕΙΑ!!!")
|
||||
#define MSG_CARD_MENU _UxGT("φτιάχνω από κάρτα")
|
||||
#define MSG_NO_CARD _UxGT("Αδερφέ, δεν έχω κάρτα")
|
||||
#define MSG_DWELL _UxGT("Αναστολή λειτουργίας…")
|
||||
#define MSG_USERWAIT _UxGT("Αναμονή για χρήστη…")
|
||||
#define MSG_PRINT_ABORTED _UxGT("Διακόπτεται η εκτύπωση")
|
||||
#define MSG_PRINT_ABORTED _UxGT("Ως εδώ με έχεις φέρει!!")
|
||||
#define MSG_NO_MOVE _UxGT("Καμία κίνηση.")
|
||||
#define MSG_KILLED _UxGT("ΤΕΡΜΑΤΙΣΜΟΣ. ")
|
||||
#define MSG_STOPPED _UxGT("ΔΙΑΚΟΠΗ. ")
|
||||
@@ -174,14 +174,14 @@
|
||||
#define MSG_BABYSTEP_Z _UxGT("Μικρό βήμα Ζ")
|
||||
#define MSG_ENDSTOP_ABORT _UxGT("Ματαίωση endstop ")
|
||||
#define MSG_HEATING_FAILED_LCD _UxGT("Ανεπιτυχής θέρμανση")
|
||||
#define MSG_ERR_REDUNDANT_TEMP _UxGT("Λάθος: ΠΛΕΟΝΑΖΟΥΣΑ ΘΕΡΜΟΤΗΤΑ")
|
||||
#define MSG_ERR_REDUNDANT_TEMP _UxGT("Λάθος: ΘΑ ΜΕ ΚΑΨΕΙΣ ΗΛΗΘΙΕ")
|
||||
#define MSG_THERMAL_RUNAWAY _UxGT("ΔΙΑΦΥΓΗ ΘΕΡΜΟΤΗΤΑΣ")
|
||||
#define MSG_ERR_MAXTEMP _UxGT("Λάθος: ΜΕΓΙΣΤΗ ΘΕΡΜΟΤΗΤΑ")
|
||||
#define MSG_ERR_MINTEMP _UxGT("Λάθος: ΕΛΑΧΙΣΤΗ ΘΕΡΜΟΤΗΤΑ")
|
||||
#define MSG_ERR_MAXTEMP_BED _UxGT("Λάθος: ΜΕΓΙΣΤΗ ΘΕΡΜΟΤΗΤΑ ΚΛΙΝΗΣ")
|
||||
#define MSG_ERR_MINTEMP_BED _UxGT("Λάθος: ΕΛΑΧΙΣΤΗ ΘΕΡΜΟΤΗΤΑ ΚΛΙΝΗΣ")
|
||||
#define MSG_HEATING _UxGT("Θερμαίνεται…")
|
||||
#define MSG_BED_HEATING _UxGT("Θέρμανση κλίνης…")
|
||||
#define MSG_ERR_MAXTEMP_BED _UxGT("Λάθος: ΜΕΓΙΣΤΗ ΘΕΡΜΟΤΗΤΑ ΚΡΕΒΑΤΙΟΥ")
|
||||
#define MSG_ERR_MINTEMP_BED _UxGT("Λάθος: ΕΛΑΧΙΣΤΗ ΘΕΡΜΟΤΗΤΑ ΚΡΕΒΑΤΙΟΥ")
|
||||
#define MSG_HEATING _UxGT("Ανάβω…")
|
||||
#define MSG_BED_HEATING _UxGT("Ανάβω το κρεβάτι…")
|
||||
#define MSG_DELTA_CALIBRATE _UxGT("Βαθμονόμηση Delta")
|
||||
#define MSG_DELTA_CALIBRATE_X _UxGT("Βαθμονόμηση X")
|
||||
#define MSG_DELTA_CALIBRATE_Y _UxGT("Βαθμονόμηση Y")
|
||||
|
||||
@@ -111,9 +111,12 @@
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if defined(ANYCUBIC_TFT_MODEL)
|
||||
#if defined(ANYCUBIC_TFT_MODEL) || defined(REPRAP_DISCOUNT_SMART_CONTROLLER)
|
||||
#define BEEPER_PIN 31
|
||||
#define SD_DETECT_PIN 49
|
||||
#else
|
||||
#define BEEPER_PIN 31
|
||||
#define SD_DETECT_PIN -1
|
||||
#endif
|
||||
|
||||
// LCD
|
||||
@@ -133,13 +136,11 @@
|
||||
#define LCD_PINS_D7 29
|
||||
|
||||
#ifdef REPRAP_DISCOUNT_SMART_CONTROLLER
|
||||
#define BEEPER_PIN 37
|
||||
|
||||
#define BTN_EN1 31
|
||||
#define BTN_EN2 33
|
||||
#define BTN_EN1 33
|
||||
#define BTN_EN2 31
|
||||
#define BTN_ENC 35
|
||||
|
||||
#define SD_DETECT_PIN 49
|
||||
#elif defined(LCD_I2C_PANELOLU2)
|
||||
#define BTN_EN1 47 //reverse if the encoder turns the wrong way.
|
||||
#define BTN_EN2 43
|
||||
|
||||
@@ -276,7 +276,7 @@ void save_job_recovery_info() {
|
||||
|
||||
// If power-loss pin was triggered, write just once then kill
|
||||
#if PIN_EXISTS(POWER_LOSS)
|
||||
if (READ(POWER_LOSS_PIN) == POWER_LOSS_STATE) kill(MSG_POWER_LOSS_RECOVERY);
|
||||
if (READ(POWER_LOSS_PIN) == POWER_LOSS_STATE) kill(PSTR(MSG_POWER_LOSS_RECOVERY));
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
@@ -308,6 +308,11 @@ uint8_t Temperature::soft_pwm_amount[HOTENDS];
|
||||
return;
|
||||
}
|
||||
|
||||
if (target > GHV(BED_MAXTEMP, maxttemp[hotend]) - 10) {
|
||||
SERIAL_ECHOLNPGM(MSG_PID_TEMP_TOO_HIGH);
|
||||
return;
|
||||
}
|
||||
|
||||
SERIAL_ECHOLNPGM(MSG_PID_AUTOTUNE_START);
|
||||
|
||||
disable_all_heaters(); // switch off all heaters.
|
||||
|
||||
@@ -414,7 +414,7 @@ class Temperature {
|
||||
#if ENABLED(AUTO_POWER_CONTROL)
|
||||
powerManager.power_on();
|
||||
#endif
|
||||
target_temperature[HOTEND_INDEX] = celsius;
|
||||
target_temperature[HOTEND_INDEX] = MIN(celsius, maxttemp[HOTEND_INDEX] - 10);
|
||||
#if WATCH_HOTENDS
|
||||
start_watching_heater(HOTEND_INDEX);
|
||||
#endif
|
||||
@@ -449,7 +449,7 @@ class Temperature {
|
||||
#endif
|
||||
target_temperature_bed =
|
||||
#ifdef BED_MAXTEMP
|
||||
MIN(celsius, BED_MAXTEMP)
|
||||
MIN(celsius, BED_MAXTEMP - 10)
|
||||
#else
|
||||
celsius
|
||||
#endif
|
||||
|
||||
@@ -1824,12 +1824,18 @@ void lcd_quick_feedback(const bool clear_buttons) {
|
||||
|
||||
#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.
|
||||
*/
|
||||
static int8_t bed_corner;
|
||||
void _lcd_goto_next_corner() {
|
||||
line_to_z(4.0);
|
||||
line_to_z(LEVEL_CORNERS_Z_HOP);
|
||||
switch (bed_corner) {
|
||||
case 0:
|
||||
current_position[X_AXIS] = X_MIN_BED + LEVEL_CORNERS_INSET;
|
||||
@@ -2885,8 +2891,6 @@ void lcd_quick_feedback(const bool clear_buttons) {
|
||||
MENU_BACK(MSG_MAIN);
|
||||
#if ENABLED(DELTA_AUTO_CALIBRATION)
|
||||
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)
|
||||
MENU_ITEM(function, MSG_STORE_EEPROM, lcd_store_settings);
|
||||
MENU_ITEM(function, MSG_LOAD_EEPROM, lcd_load_settings);
|
||||
|
||||
202
README.md
202
README.md
@@ -1,34 +1,46 @@
|
||||
# Anycubic i3 Mega Marlin 1.1.9 by davidramiro
|
||||
# Anycubic i3 Mega / Mega-S Marlin 1.1.9 by davidramiro
|
||||
|
||||
This is my slightly customized version of the [Marlin Firmware](https://github.com/MarlinFirmware/Marlin), gratefully based on [derhopp's repo](https://github.com/derhopp/Marlin-with-Anycubic-i3-Mega-TFT) with his remarkable efforts to get the Anycubic i3 Mega TFT screen to work.
|
||||
[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=3MFT8QMP5ZRCE&source=url) [](https://github.com/davidramiro/Marlin-AI3M/releases) [](https://github.com/davidramiro/Marlin-AI3M/issues?q=is%3Aopen+is%3Aissue) [](https://github.com/davidramiro/Marlin-AI3M/blob/master/LICENSE) [](https://github.com/davidramiro/Marlin-AI3M/releases/latest/) [](https://github.com/davidramiro/Marlin-Ai3M/commits/) [](https://travis-ci.org/davidramiro/Marlin-Ai3M)
|
||||
|
||||
Feel free to discuss issues and work with me further optimizing this firmware!
|
||||
This is a custom version of the [Marlin Firmware](https://github.com/MarlinFirmware/Marlin) for the i3 Mega/Mega-S, gratefully based on [derhopp's repo](https://github.com/derhopp/Marlin-with-Anycubic-i3-Mega-TFT) with his remarkable efforts to get the Anycubic TFT screen to work with the latest versions of Marlin.
|
||||
|
||||
I am running this version on an i3 Mega Ultrabase V3 (for distinction of the different versions, check [this Thingiverse thread](https://www.thingiverse.com/groups/anycubic-i3-mega/forums/general/topic:27064)).
|
||||
Basically, this should work on every Ultrabase version that has two Z-axis endstops. The new Mega-S could work too but is not thoroughly tested. E-steps need to be set to 384 (`M92 E384.00` + `M500`), and calibration is recommended as per the instructions below.
|
||||
## RepRapDiscount Full Graphic Smart Controller branch
|
||||
**This branch is prepared to be used with a 12864 display like the [RepRapDiscount Full Graphic Smart Controller](https://reprap.org/wiki/RepRapDiscount_Full_Graphic_Smart_Controller).**
|
||||
|
||||
Note: This is just a firmware, not magic. A big part of print quality still depends on your slicer settings and mechanical condition of your machine. Since I have reduced the acceleration and jerk settings a bit, depending on your slicer the estimated print time might be around 20% lower. You can compensate that loss of speed by raising the general print speed without losing quality.
|
||||
|
||||
## Known issues:
|
||||
Looking for a **BLtouch firmware**? Head [this way](https://github.com/MNieddu91/Marlin-AI3M-BLTouch)! Mounting and configuration instructions are included.
|
||||
|
||||
- Special characters on any file or folders name on the SD card will cause the file menu to freeze. Simply replace or remove every special character (Chinese, Arabic, Russian, accents, German & Scandinavian umlauts, ...) from the name. Symbols like dashes or underscores are no problem.
|
||||
**Important note: On the SD card that comes with the printer there is a folder with Chinese characters in it by default. Please rename or remove it.**
|
||||
- The firmware is not reflected on the TFT-display. As the display has its own closed source firmware, you will remain to see the original Anycubic menu showing the old version number (1.1.0).
|
||||
- Cancelling prints via display is buggy sometimes, simply reboot the printer when the menu shows an error. Protip: Switch to OctoPrint.
|
||||
- A few parts cooling fan models (e.g. some Sunon 5015) might have trouble running slower than 100%. If that's the case, use [this release](https://github.com/davidramiro/Marlin-AI3M/releases/tag/v19.01.22-pwm).
|
||||
#### Make sure to take a look at the [Wiki](https://github.com/davidramiro/Marlin-AI3M/wiki/), especially the [FAQ](https://github.com/davidramiro/Marlin-AI3M/wiki/Frequently-Asked-Questions).
|
||||
|
||||
A German translation of the instructions can be found [here](https://kore.cc/i3mega/download/marlin-ai3m_german.pdf).
|
||||
|
||||
## Why use this?
|
||||
|
||||
While the i3 Mega is a great printer for its price and produces fantastic results in stock, there are some issues that are easily addressed:
|
||||
While the i3 Mega is a great printer for its price and produces fantastic results in stock, there are some improvements and additional features that this firmware provides:
|
||||
|
||||
- Many people have issues getting the Ultrabase leveled perfectly, using Manual Mesh Bed Leveling the printer generates a mesh of the flatness of the bed and compensates for it on the Z-axis for perfect prints without having to level with the screws.
|
||||
- Much more efficient bed heating by using PID control. This uses less power and holds the temperature at a steady level. Highly recommended for printing ABS.
|
||||
- Fairly loud fans, while almost every one of them is easily replaced, the stock FW only gives out 9V instead of 12V on the parts cooling fan so some fans like Noctua don't run like they should. This is fixed in this firmware.
|
||||
- Even better print quality by adding Linear Advance, S-Curve Acceleration and some tweaks on jerk and acceleration.
|
||||
- Thermal runaway protection: Reducing fire risk by detecting a faulty or misaligned thermistor.
|
||||
- Thermal runaway protection: Reducing fire risk by detecting a faulty or misaligned thermistor.
|
||||
- Very loud stock stepper motor drivers, easily replaced by Watterott or FYSETC TMC2208. To do that, you'd usually have to flip the connectors on the board, this is not necessary using this firmware.
|
||||
- No need to slice and upload custom bed leveling tests, simply start one with a simple G26 command.
|
||||
- No need to slice and upload custom bed leveling tests, test it with a single GCode command
|
||||
- Easily start an auto PID tune or mesh bed leveling via the special menu (insert SD card, select special menu and press the round arrow)
|
||||
- Filament change feature enabled: Switch colors/material mid print (instructions below) and control it via display.
|
||||
- The filament runout, pause and stop functionality have been overhauled and improved: The hotend now parks and retracts (on pause or stop) and purges automatically (on resume).
|
||||
- Added `M888` cooldown routine for the Anycubic Ultrabase (EXPERIMENTAL): This is meant to be placed at the end Gcode of your slicer. It hovers over the print bed and does circular movements while running the fan. Works best with custom fan ducts.
|
||||
- Optional parameters:
|
||||
- `T<temperature>`: Target bed temperature (min 15°C), 30°C if not specified (do not set this under room temperature)
|
||||
- `S<fan speed>`: Fan speed between 0 and 255, full speed if not specified
|
||||
- e.g. `M888 S191 T25`: run the fan at 75% until the bed has cooled down to 25°C
|
||||
|
||||
|
||||
## Known issues:
|
||||
|
||||
- Power outage support is not included
|
||||
- Estimated print times from your slicer might be slightly off.
|
||||
- Special characters on any file or folders name on the SD card will cause the file menu to freeze. Simply replace or remove every special character (Chinese, Arabic, Russian, accents, German & Scandinavian umlauts, ...) from the name. Symbols like dashes or underscores are no problem.
|
||||
**Important note: On the SD card that comes with the printer there is a folder with Chinese characters in it by default. Please rename or remove it.**
|
||||
|
||||
## How to flash this?
|
||||
|
||||
@@ -38,31 +50,38 @@ I provided three different precompiled hex files: One for no modifications on th
|
||||
|
||||
- Download the precompiled firmware here: [Releases](https://github.com/davidramiro/Marlin-AI3M/releases)
|
||||
- Choose the correct hex file:
|
||||
- For TMC2208 with connectors in original orientation, use `Marlin-AI3M-XXXXXX-TMC2208.hex`
|
||||
- If you use TMC2208 and already reversed your connectors, use `Marlin-AI3M-XXXXXX-TMC2208_reversed.hex`
|
||||
- If you use a newer version of the TMC2208 that doesn't require the connector to be reversed (TMC2208 "v2.0" written on the PCB, chip on the top side), please also use `Marlin-AI3M-XXXXXX-TMC2208_reversed.hex`.
|
||||
- If you use the original stepper motor drivers, use `Marlin-AI3M-XXXXXX-stock_drivers.hex`.
|
||||
- For TMC2208 with connectors in original orientation, use `Marlin-AI3M-vx.x.x-TMC2208.hex`
|
||||
- If you use TMC2208 and already reversed your connectors, use `Marlin-AI3M-vx.x.x-TMC2208_reversed.hex`
|
||||
- If you use a newer version of the TMC2208 that doesn't require the connector to be reversed (TMC2208 "v2.0" written on the PCB, chip on the top side), please also use `Marlin-AI3M-vx.x.x-TMC2208_reversed.hex`.
|
||||
- If you use the original stepper motor drivers, use `Marlin-AI3M-vx.x.x-stock_drivers.hex`.
|
||||
|
||||
### Or compile it yourself:
|
||||
|
||||
- Download Arduino IDE
|
||||
- Download and install [Arduino IDE](https://www.arduino.cc/en/main/software)
|
||||
- Clone or download this repo
|
||||
- Browse into the Marlin folder and run `Marlin.ino`
|
||||
- In the IDE, under `Tools -> Board` select `Genuino Mega 2560` and `ATmega2560`
|
||||
- Open Marlin.ino in the Marlin directory of this repo
|
||||
- Customize if needed and under `Sketch`, select `Export compiled binary`
|
||||
- Look for the .hex file in your temporary directory, e.g. `.../AppData/Local/Temp/arduino_build_xxx/` (only the `Marlin.ino.hex`, not the `Marlin.ino.with_bootloader.hex`!)
|
||||
- [Customize if needed](https://github.com/davidramiro/Marlin-AI3M/wiki/Customization-&-Compiling) (e.g. motor directions and type at line `559` to `566` and line `857` to `865` in `Configuration.h`)
|
||||
- Under `Sketch`, select `Export compiled binary`
|
||||
- Look for the .hex file in the Marlin directory (only use the `Marlin.ino.hex`, not the `Marlin.ino.with_bootloader.hex`!)
|
||||
|
||||
### After obtaining the hex file:
|
||||
### After obtaining the hex file:
|
||||
|
||||
- Flash the hex with Cura, OctoPrint or similar
|
||||
- Use a tool with a terminal (OctoPrint, Pronterface, Repetier Host, ...) to send commands to your printer.
|
||||
- Connect to the printer and send the following commands:
|
||||
- Use a tool with a terminal (OctoPrint, Pronterface, Repetier Host, ...) to send commands to your printer.
|
||||
- **Important** Connect to the printer and send the following commands:
|
||||
- `M502` - load hard coded default values
|
||||
- `M500` - save them to EEPROM
|
||||
|
||||
## Calibration & Tuning
|
||||
**If you are using this on a Mega-S, those two additional commands are necessary:**
|
||||
- `M92 E384` - set correct steps for the new extruder
|
||||
- `M500` - save them
|
||||
- I highly recommend calibrating the extruder.
|
||||
|
||||
### Manual Mesh Bed Leveling
|
||||
#### Calibration and other instructions have been moved to the [Wiki](https://github.com/davidramiro/Marlin-AI3M/wiki/Calibration).
|
||||
|
||||
## Manual Mesh Bed Leveling
|
||||
|
||||
If you have issues with an uneven bed, this is a great feature.
|
||||
|
||||
@@ -71,7 +90,7 @@ If you have issues with an uneven bed, this is a great feature.
|
||||
|
||||
![Special Menu][menu]
|
||||
|
||||
- In this menu, the round arrow is used to execute the command you selected.
|
||||
- In this menu, the round arrow is used to execute the command you selected.
|
||||
- Preheat the bed to 60°C with this entry: (if you usually print with a hotter bed, use the Anycubic menu)
|
||||
|
||||
![Preheat bed][preheat]
|
||||
@@ -84,7 +103,7 @@ If you have issues with an uneven bed, this is a great feature.
|
||||
- Your nozzle will now move to the first calibration position.
|
||||
- Don't adjust the bed itself with screws, only use software from here on!
|
||||
- Use a paper - I recommend using thermopaper like a receipt or baking paper
|
||||
- Use the onscreen controls to lower or raise your nozzle until you feel a light resistance: (If you want to send the same command multiple times, select the item again, even though it is still marked red.)
|
||||
- Use the onscreen controls to lower or raise your nozzle until you feel a light resistance: (**If you want to send the same command multiple times, select the item again, even though it is still marked red.**)
|
||||
|
||||
![Z axis controls][control]
|
||||
|
||||
@@ -93,7 +112,7 @@ If you have issues with an uneven bed, this is a great feature.
|
||||
![Next mesh point][next]
|
||||
|
||||
- Repeat the last two steps until all 25 points are done.
|
||||
- Your printer will beep, wait 20 seconds and then save:
|
||||
- Your printer will beep, wait 20 seconds and then save (the printer will beep once more to confirm):
|
||||
|
||||
|
||||
![Save to EEPROM][save]
|
||||
@@ -110,15 +129,14 @@ If you have issues with an uneven bed, this is a great feature.
|
||||
|
||||
### After leveling:
|
||||
|
||||
- Reboot the printer.
|
||||
- To ensure your mesh gets used on every print from now on, go into your slicer settings and look for the start GCode
|
||||
- Look for the Z-homing (either just `G28` or `G28 Z0`) command and insert these two right underneath it:
|
||||
```
|
||||
M501
|
||||
M420 S1
|
||||
```
|
||||
- Enjoy never having to worry about an uneven bed again!
|
||||
|
||||
- Your printer should now correctly print first layers even on a warped bed.
|
||||
- When working on the printer, installing a new hotend or nozzle or the bed warping over time, a new Mesh Leveling procedure is recommended.
|
||||
|
||||
#### Manual commands for use with OctoPrint etc.:
|
||||
|
||||
@@ -134,49 +152,74 @@ M420 S1
|
||||
- No need to download or create a bed leveling test, simply send those commands to your printer:
|
||||
```
|
||||
G28
|
||||
G26 C H200 P25 R25
|
||||
G26 C H200 P5 R25 Q4.2 Z4
|
||||
```
|
||||
- To adjust your filament's needed temperature, change the number of the `H` parameter
|
||||
- Default bed temperature is 60°C, if you need another temperature, add e.g. `B80`
|
||||
- `Q` parameter sets retraction length in mm, `Z` sets unretraction.
|
||||
- If your leveling is good, you will have a complete pattern of your mesh on your bed that you can peel off in one piece
|
||||
- Don't worry if the test looks a bit messy, the important thing is just that the line width is the same all over the mesh
|
||||
- Optional: Hang it up on a wall to display it as a trophy of how great your leveling skills are.
|
||||
|
||||
|
||||
### Calibrating extruder & PID
|
||||
## M600 Filament Change
|
||||
|
||||
![M600 Demo][m600 demo]
|
||||
|
||||
### Extruder steps
|
||||
[m600 demo]: https://kore.cc/i3mega/img/m600demo.jpg "M600 demo"
|
||||
|
||||
- Get your old E-Steps with `M503`. Look for the line starting with `M92`, the value after the `E` are your current steps.
|
||||
- Preheat the hotend with `M104 S220`
|
||||
- Send `M83` to prepare the extruder
|
||||
- Use a caliper or measuring tape and mark 120 mm (measured downwards from the extruder intake) with a pencil on the filament
|
||||
- Send `G1 E100 F100`
|
||||
- Your extruder will feed 100 mm of filament now (takes 60 seconds)
|
||||
- Measure where your pencil marking is now. If it's exactly 20 mm to the extruder, it's perfectly calibrated
|
||||
- If it's less or more than 20 mm, subtract that value from 120 mm, e.g.:
|
||||
- If you measure 25 mm, your result would be 95 mm. If you measure 15 mm, your result would be 105 mm
|
||||
- Calculate your new value: (100 mm / actually extruded filament) * your current E-Steps (default: 92.6)
|
||||
- For example, if your markings are at 15 mm, you'd calculate: (100/105) * 92.6 = 88.19
|
||||
- Put in the new value like this: `M92 X80.00 Y80.00 Z400.00 Exxx.xx`, replacing `x` with your value
|
||||
**BETA: This now also works without USB printing, via SD & display.**
|
||||
|
||||
#### Configuration (only needed once):
|
||||
- Send `M603 L0 U0` to use manual loading & unloading.
|
||||
- Send `M603 L538 U555` to use automatic loading & unloading
|
||||
- The `L` and `U` paramters define the load and unload length in mm. The values above work well on a stock setup, if you modded your extruder, bowden tube or hotend, you might need to adjust those.
|
||||
- Save with `M500`
|
||||
- Finish with `M82`
|
||||
|
||||
- You can repeat the process if you want to get even more precise, you'd have to replace 92.6 with your newly calibrated value in the next calculation.
|
||||
#### Filament change process (manual loading):
|
||||
- For printing via SD:
|
||||
- Place `M600` in your GCode at the desired layer
|
||||
- For printing via USB:
|
||||
- Place `M600` in your GCode at the desired layer or send it via terminal
|
||||
- Alternatively: Use `FilamentChange Pause` in the Special Menu
|
||||
- The nozzle will park and your printer will beep
|
||||
- For safety reasons, the printer will turn off the hotend after 10 minutes. If you see the temperature being under the target:
|
||||
- SD printing: Click `CONTINUE` **(only once!)** on the screen and wait for the hotend to heat up again.
|
||||
- USB printing: Send `M108` and wait for the hotend to heat up again.
|
||||
- Remove the filament from the bowden tube
|
||||
- Insert the new filament right up to the nozzle, just until a bit of plastic oozes out
|
||||
- Remove the excess filament from the nozzle with tweezers
|
||||
- For printing via SD:
|
||||
- Click `CONTINUE` on the screen
|
||||
- For printing via USB:
|
||||
- Send `M108` via your USB host or use `FilamentChange Resume` in the Special Menu
|
||||
- Note for OctoPrint users: After sending `M108`, enable the advanced options at the bottom of the terminal and press `Fake Acknowledgement`
|
||||
|
||||
### PID tuning
|
||||
#### Filament change process (automatic loading):
|
||||
- For printing via SD:
|
||||
- Place `M600` in your GCode at the desired layer
|
||||
- For printing via USB:
|
||||
- Place `M600` in your GCode at the desired layer or send it via terminal
|
||||
- Alternatively: Use `FilamentChange Pause` in the Special Menu
|
||||
- The nozzle will park
|
||||
- The printer will remove the filament right up to the extruder and beep when finished
|
||||
- For safety reasons, the printer will turn off the hotend after 10 minutes. If you see the temperature being under the target:
|
||||
- SD printing: Click `CONTINUE` **(only once!)** on the screen and wait for the hotend to heat up again.
|
||||
- USB printing: Send `M108` and wait for the hotend to heat up again.
|
||||
- Insert the new filament just up to the end of the bowden fitting, as shown here:
|
||||
|
||||
**PID calibration is only necessary if you experience fluctuating temperatures.**
|
||||
![Load Filament][m600 load]
|
||||
|
||||
- Turn on parts cooling fan If you have a radial blower fan like the original one, I generally recommend running it at 70% because of the 12V mod (`M106 S191`). Remember to also limit it in your slicer.
|
||||
- Send `M303 E0 S210 C6 U1` to start extruder PID auto tuning
|
||||
- Wait for it to finish
|
||||
- Send `M303 E-1 S60 C6 U1` to start heatbed PID auto tuning
|
||||
- Wait for it to finish
|
||||
- Save with `M500`, turn off fan with `M106 S0`
|
||||
[m600 load]: https://kore.cc/i3mega/img/load.jpg "M600 Load"
|
||||
|
||||
Note: These commands are tweaked for PLA printing at up to 210/60 °C. If you run into issues at higher temperatures (e.g. PETG & ABS), simply change the `S` parameter to your desired temperature
|
||||
- For printing via SD:
|
||||
- Click `CONTINUE` on the screen
|
||||
- For printing via USB:
|
||||
- Send `M108` via your USB host or use `FilamentChange Resume` in the Special Menu
|
||||
- Note for OctoPrint users: After sending `M108`, enable the advanced options at the bottom of the terminal and press `Fake Acknowledgement`
|
||||
- The printer will now pull in the new filament, watch out since it might ooze quite a bit from the nozzle
|
||||
- Remove the excess filament from the nozzle with tweezers
|
||||
|
||||
**Reminder**: PID tuning sometimes fails. If you get fluctuating temperatures or the heater even fails to reach your desired temperature after tuning, you can always go back to the stock settings by sending `M301 P15.94 I1.17 D54.19` and save with `M500`.
|
||||
|
||||
## Updating
|
||||
|
||||
@@ -193,10 +236,15 @@ M304
|
||||
|
||||
After flashing the new version, issue a `M502` and `M500`. After that, enter every line you saved before and finish by saving with `M500`.
|
||||
|
||||
## Something went wrong?
|
||||
No worries. You can easily go back to the default firmware and restore the default settings.
|
||||
- Flash the hex file from the [manufacturer's website](http://www.anycubic3d.com/support/show/594016.html) (in case it's offline, I have uploaded the stock firmwares [here](https://kore.cc/i3mega/download/stockFW/) as well).
|
||||
- After flashing, send `M502` and `M500`. Now your machine is exactly as it came out of the box.
|
||||
|
||||
|
||||
## Detailed changes:
|
||||
|
||||
- Thermal runaway protection enabled and tweaked
|
||||
- Thermal runaway protection thresholds tweaked
|
||||
- Manual mesh bed leveling enabled ([check this link](https://github.com/MarlinFirmware/Marlin/wiki/Manual-Mesh-Bed-Leveling) to learn more about it)
|
||||
- Heatbed PID mode enabled
|
||||
- TMC2208 configured in standalone mode
|
||||
@@ -206,7 +254,15 @@ After flashing the new version, issue a `M502` and `M500`. After that, enter eve
|
||||
- G26 Mesh Validation enabled
|
||||
- Some redundant code removed to save memory
|
||||
- Minor tweaks on default jerk and acceleration
|
||||
- Printcounter enabled (`M78`)
|
||||
- Print statistics enabled (send `M78` to read them)
|
||||
- `M600` filament change feature enabled
|
||||
- Implemented easy resume via display
|
||||
- Filament runout behaviour tweaked
|
||||
- Added purge and retract
|
||||
- Move nozzle to park position on runout
|
||||
- Prevent false positives by adding a small delay to the sensor
|
||||
- Pause and stop behaviour tweaked
|
||||
- Added `M888` cooldown routine for the Anycubic Ultrabase
|
||||
|
||||
|
||||
## Changes by [derhopp](https://github.com/derhopp/):
|
||||
@@ -293,3 +349,25 @@ Notable contributors include:
|
||||
|
||||
Marlin is published under the [GPLv3 license](https://github.com/MarlinFirmware/Marlin/blob/1.0.x/COPYING.md) because we believe in open development. The GPL comes with both rights and obligations. Whether you use Marlin firmware as the driver for your open or closed-source product, you must keep Marlin open, and you must provide your compatible Marlin source code to end users upon request. The most straightforward way to comply with the Marlin license is to make a fork of Marlin on Github, perform your modifications, and direct users to your modified fork.
|
||||
|
||||
## Disclaimer
|
||||
|
||||
```
|
||||
/*
|
||||
* Flashing a custom firmware happens at your own risk.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS
|
||||
* AND CONTRIBUTORS “AS IS” AND ANY EXPRESS OR IMPLIED
|
||||
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
|
||||
* PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
|
||||
* THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
||||
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
|
||||
* IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
|
||||
* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
```
|
||||
|
||||
@@ -1337,9 +1337,9 @@ class output_window(Text):
|
||||
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', ' ' + pwd + '/' + board_path + '/at90usb1286.json\n')
|
||||
self.insert('end', ' TO:\n')
|
||||
self.insert('end', ' ' + PIO_path + '/at90USB1286.json\n')
|
||||
self.insert('end', ' ' + PIO_path + '/at90usb1286.json\n')
|
||||
|
||||
|
||||
|
||||
@@ -1405,7 +1405,7 @@ class output_window(Text):
|
||||
except:
|
||||
self.report_failure(PIO_path, board_path)
|
||||
return False
|
||||
if 'at90USB1286.json' in boards_dir:
|
||||
if 'at90usb1286.json' in boards_dir:
|
||||
return True # it's there so all is well
|
||||
self.report_failure(PIO_path, board_path)
|
||||
return False
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0"?>
|
||||
<profile name="davidramiro Default PLA" version="2019-01-06 16:40:07" app="S3D-Software 4.1.1">
|
||||
<profile name="davidramiro Default PLA" version="2019-02-06 18:17:40" app="S3D-Software 4.1.1">
|
||||
<baseProfile>Anycubic i3 Mega</baseProfile>
|
||||
<printMaterial>PLA</printMaterial>
|
||||
<printQuality>Medium</printQuality>
|
||||
@@ -9,7 +9,7 @@
|
||||
<diameter>0.4</diameter>
|
||||
<autoWidth>0</autoWidth>
|
||||
<width>0.4</width>
|
||||
<extrusionMultiplier>1</extrusionMultiplier>
|
||||
<extrusionMultiplier>0.96</extrusionMultiplier>
|
||||
<useRetract>1</useRetract>
|
||||
<retractionDistance>6.5</retractionDistance>
|
||||
<extraRestartDistance>-0.1</extraRestartDistance>
|
||||
@@ -40,7 +40,7 @@
|
||||
<raftBaseLayers>1</raftBaseLayers>
|
||||
<raftOffset>2</raftOffset>
|
||||
<raftSeparationDistance>0.2</raftSeparationDistance>
|
||||
<raftTopInfill>100</raftTopInfill>
|
||||
<raftTopInfill>50</raftTopInfill>
|
||||
<aboveRaftSpeedMultiplier>0.3</aboveRaftSpeedMultiplier>
|
||||
<useSkirt>1</useSkirt>
|
||||
<skirtExtruder>0</skirtExtruder>
|
||||
@@ -61,7 +61,7 @@
|
||||
<oozeShieldSpeedMultiplier>1</oozeShieldSpeedMultiplier>
|
||||
<infillExtruder>0</infillExtruder>
|
||||
<internalInfillPattern>Fast Honeycomb</internalInfillPattern>
|
||||
<externalInfillPattern>Concentric</externalInfillPattern>
|
||||
<externalInfillPattern>Rectilinear</externalInfillPattern>
|
||||
<infillPercentage>15</infillPercentage>
|
||||
<outlineOverlapPercentage>20</outlineOverlapPercentage>
|
||||
<infillExtrusionWidthPercentage>100</infillExtrusionWidthPercentage>
|
||||
@@ -70,7 +70,7 @@
|
||||
<internalInfillAngles>0</internalInfillAngles>
|
||||
<overlapInternalInfillAngles>0</overlapInternalInfillAngles>
|
||||
<externalInfillAngles>45,-45</externalInfillAngles>
|
||||
<generateSupport>1</generateSupport>
|
||||
<generateSupport>0</generateSupport>
|
||||
<supportExtruder>0</supportExtruder>
|
||||
<supportInfillPercentage>25</supportInfillPercentage>
|
||||
<supportExtraInflation>0.2</supportExtraInflation>
|
||||
@@ -91,7 +91,6 @@
|
||||
<isHeatedBed>0</isHeatedBed>
|
||||
<stabilizeAtStartup>1</stabilizeAtStartup>
|
||||
<setpoint layer="1" temperature="200"/>
|
||||
<setpoint layer="2" temperature="195"/>
|
||||
</temperatureController>
|
||||
<temperatureController name="Heated Bed">
|
||||
<temperatureNumber>0</temperatureNumber>
|
||||
@@ -146,7 +145,7 @@
|
||||
<baudRateOverride>250000</baudRateOverride>
|
||||
<overridePrinterModels>1</overridePrinterModels>
|
||||
<printerModelsOverride></printerModelsOverride>
|
||||
<startingGcode>G28 X0 Y0,G28 Z0,M501 ; read EEPROM for MMBL,M420 S1 ; enable MMBL,G91,G1 X5.0 Y5.0 F7200 ; nozzle clean position,G1 Z0.1 ; lower nozzle,G1 X5.0 F7200 ; clean nozzle,G1 Z0.2 ; raise nozzle,G1 Y150 E20 F600 ; prime nozzle,G90,G1 Z15 F1000,M107 ; fan off</startingGcode>
|
||||
<startingGcode>G28 X0 Y0,G28 Z0,M501 ; read EEPROM to get Mesh data,M420 S1 ; enable MMBL,G91,G1 X5.0 Y5.0 F7200 ; nozzle clean position,G1 Z0.1 ; raise nozzle,G1 X5.0 F7200 ; wipe excess filament at the corner,G1 Z0.2 ; raise nozzle further,G1 Y150 E20 F600 ; prime nozzle,G90,G1 Z15 F1000 ; purge 15mm of filament,M107 ; fan off, </startingGcode>
|
||||
<layerChangeGcode></layerChangeGcode>
|
||||
<retractionGcode></retractionGcode>
|
||||
<toolChangeGcode></toolChangeGcode>
|
||||
@@ -156,8 +155,8 @@
|
||||
<celebrationSong>Star Wars</celebrationSong>
|
||||
<postProcessing></postProcessing>
|
||||
<defaultSpeed>3600</defaultSpeed>
|
||||
<outlineUnderspeed>0.8</outlineUnderspeed>
|
||||
<solidInfillUnderspeed>0.8</solidInfillUnderspeed>
|
||||
<outlineUnderspeed>0.75</outlineUnderspeed>
|
||||
<solidInfillUnderspeed>0.75</solidInfillUnderspeed>
|
||||
<supportUnderspeed>0.8</supportUnderspeed>
|
||||
<rapidXYspeed>4800</rapidXYspeed>
|
||||
<rapidZspeed>900</rapidZspeed>
|
||||
@@ -204,7 +203,6 @@
|
||||
<isHeatedBed>0</isHeatedBed>
|
||||
<stabilizeAtStartup>1</stabilizeAtStartup>
|
||||
<setpoint layer="1" temperature="200"/>
|
||||
<setpoint layer="2" temperature="195"/>
|
||||
</temperatureController>
|
||||
<temperatureController name="Heated Bed">
|
||||
<temperatureNumber>0</temperatureNumber>
|
||||
@@ -212,7 +210,7 @@
|
||||
<stabilizeAtStartup>1</stabilizeAtStartup>
|
||||
<setpoint layer="1" temperature="60"/>
|
||||
</temperatureController>
|
||||
<globalExtrusionMultiplier>1</globalExtrusionMultiplier>
|
||||
<globalExtrusionMultiplier>0.96</globalExtrusionMultiplier>
|
||||
<fanSpeed>
|
||||
<setpoint layer="1" speed="0"/>
|
||||
<setpoint layer="2" speed="30"/>
|
||||
|
||||
Reference in New Issue
Block a user