60 Commits

Author SHA1 Message Date
David Ramiro
d5a5a05462 Merge branch 'master' into 12864-full 2019-03-28 12:05:17 +01:00
David Ramiro
625e264dfc Fix for Travis CI and adjust tests 2019-03-28 11:12:57 +01:00
David Ramiro
6deb88102b Add optional endstop beeps
Enable ENDSTOP_BEEP in Configuration.h to enable a 2KHz beep when endstops are hit. Disabled by default.
2019-03-28 00:59:25 +01:00
David Ramiro
3f19385e03 Add unretraction parameter to G26
G26 Gcode:
- Change Q parameter to only specify retraction length
- Add Z parameter for unretraction length
- Preserve fixed multiplier of 1.2 if Z isn't specified
- Add check to avoid implausible retract/unretract ratios
- Change default config values

Referencing #31. Thanks to @BlackMulch for the feedback!
2019-03-28 00:59:25 +01:00
David Ramiro
589e972102 Raise PWM frequency
Adjusting PWM frequencies to better match FDD8780, WSK220N04 and VS40200ATD MOSFET spec.

- Heater PWM frequency increased from 7.6294 Hz to 30.5176 Hz
– Referencing the Forward Bias Safe Area from the MOSFET's datasheets, this value should be safer.
- Use software PWM for fans to reduce whine
– The higher PWM frequency works well with the stock parts cooling fan and might allow for better control of third party fans
2019-03-28 00:57:09 +01:00
David Ramiro
17635865ca Merge branch 'master' into 12864-full 2019-03-27 16:12:07 +01:00
David Ramiro
a2c47b53c2 Add optional endstop beeps
Enable ENDSTOP_BEEP in Configuration.h to enable a 2KHz beep when endstops are hit. Disabled by default.
2019-03-25 19:15:28 +01:00
David Ramiro
9c133f5c05 Add unretraction parameter to G26
G26 Gcode:
- Change Q parameter to only specify retraction length
- Add Z parameter for unretraction length
- Preserve fixed multiplier of 1.2 if Z isn't specified
- Add check to avoid implausible retract/unretract ratios
- Change default config values

Referencing #31. Thanks to @BlackMulch for the feedback!
2019-03-24 21:20:54 +01:00
David Ramiro
fd8f28257f Raise PWM frequency
Adjusting PWM frequencies to better match FDD8780 MOSFET spec.

- Hotend PWM frequency increased from 488.28 Hz to 1953.12 Hz
– Referencing the Forward Bias Safe Area from the hotend MOSFET's datasheet, this value should be safer.
- Hotbed PWM frequency increased from 7.26Hz to 30.48Hz
- Use software PWM for fans to reduce whine
– The higher PWM frequency works well with the stock parts cooling fan and might allow for better control of third party fans
2019-03-24 18:30:53 +01:00
David Ramiro
bf8b6729b2 Add optional startup chime
Enable STARTUP_CHIME in Configuration.h to play a short chime on Trigorilla startup/serial connection, disabled by default
2019-03-24 16:57:31 +01:00
David Ramiro
0ca58ca7a6 Merge branch 'master' into 12864-full 2019-03-13 17:09:00 +01:00
David Ramiro
79f559e9af Implement heatbed cooldown routine
- 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

Thanks to @kulfuerst for the suggestion!
2019-03-13 11:40:25 +01:00
David Ramiro
c1c2743452 Rework pause, filament runout & abort
- Park head with retract on pause and abort
- Use native functions instead of Gcode
- Loud beeps to alert user on runout
- Fix potential looping issues by using flags
- Fix "Stop failed" message on some occasions
2019-03-12 16:23:29 +01:00
David Ramiro
ee6094f39d Cleanup
Improving and adding some comments to the code, updating a few details on the readme
2019-03-10 22:40:35 +01:00
David Ramiro
1a5804f260 Implement nozzle reheating on timeout via display
- Raise nozzle timeout to 10 minutes
- Use continue button as reheat trigger
- Manage nozzle_timed_out variable via display
- Add PausedByNozzleTimeout flag to enter correct routine on display
- Bump version to 1.4.3
2019-03-08 16:30:56 +01:00
David Ramiro
cea54723e7 Use realtime on filament sensor
Instead of incrementing a variable on every iteration on the filament sensor trigger loop, we now use a real time macro that ensure better repeatability and is easier to customize.
2019-03-08 16:05:54 +01:00
David Ramiro
90e27ff21b Fix indentation
Improve readability and fix #ifdef and #endif indentations
2019-03-08 01:25:21 +01:00
David Ramiro
85c32a2bb6 Fix Z movement on abort
- Referencing #29
- Adding audio feedback to special menu M500 and M502
2019-03-06 22:59:46 +01:00
David Ramiro
223d925160 Merge branch 'master' into 12864-full 2019-02-27 20:55:32 +01:00
David Ramiro
2c53c33d52 Tweak M600 display resume
- Add startFileprint(); call to M108 display routine to fix progress and ensure "printing done" gets shown
- Add SD printing check in marlin_main.cpp M600 routine to skip TFTstate if not necessary (e.g. USB printing)
- Move routine to the top again to ensure immediate execution
2019-02-24 15:48:03 +01:00
David Ramiro
8fc01144f1 Set SDPAUSE state on M600 regardless of prior TFTstate
Move the routine to a better position and set the state regardless of SDPRINT status.

This ensures that M600 makes the display show a continue button every time. Before, it was only behaving correctly for the first instance of M600.
2019-02-23 11:16:29 +01:00
David Ramiro
8448c67846 Streamline build identification 2019-02-23 00:31:25 +01:00
David Ramiro
e822d53f2f Merge branch 'master' into dev 2019-02-23 00:26:33 +01:00
David Ramiro
30bbf59cb0 Increase filament rounout trigger delay
In some cases, the filament runout was triggered erratically, we are now waiting for the trigger to last a few moments until we start the routine.
2019-02-22 22:26:58 +01:00
David Ramiro
cd9751af41 Enable 12864 display 2019-02-22 17:06:23 +01:00
David Ramiro
0f5745e281 Update README.md 2019-02-21 10:30:21 +01:00
David Ramiro
d6f2b7dcf2 Update README.md 2019-02-19 19:15:28 +01:00
David Ramiro
b25aa626e7 Update semantic versioning 2019-02-18 20:01:22 +01:00
David Ramiro
afcdb69cee Merge branch 'dev' 2019-02-18 19:35:21 +01:00
David Ramiro
b447245ddd Add screen state to gcode_M600()
- Allowing resume after M600 via on screen button:

- Adding check for TFT state status
- Setting flag when print was started via TFT
2019-02-18 19:34:59 +01:00
David Ramiro
078678d434 Merge branch 'dev' 2019-02-18 19:07:34 +01:00
David Ramiro
b164d593cb Update README.md 2019-02-18 19:07:17 +01:00
David Ramiro
2bd6f2f23a Pause & runout code cleanup
Final changes to pause & filament runout overhaul before release:
- Use booleans instead of chars for cleaner code
- Raised retraction amount
2019-02-18 18:05:37 +01:00
David Ramiro
16d6d37096 Disable TFT debug 2019-02-17 19:57:07 +01:00
David Ramiro
5fbc1b6035 Tweak pause & filament runout
- Check for PausedByFilamentChange flag on pause and resume
- Move stop movements from StateHandler() to StopPrint()
- Retract 1mm on pause (2mm on runout) without feed on resume, preventing ooze
- Fix special menu margin on some buttons
2019-02-16 18:41:22 +01:00
David Ramiro
76b873baee Add M600 and M108 routines to display code 2019-02-15 22:58:42 +01:00
David Ramiro
1fe1842a75 Rework filament runout, pause and stop
Editing display pausing/stopping and using nozzle parking for filament runout
2019-02-15 20:26:54 +01:00
David Ramiro
bfe39a342d Fix buffer issue with S3D USB printing 2019-02-11 22:53:09 +01:00
David Ramiro
28e86b95ed Adjust temperature limits and margins
Lowering the safety margin of MAXTEMP to 10°C and raising MAXTEMP to 285/135.

Resulting in a limit of 275°C for the hotend and 125°C for the heatbed.

Referencing #23
2019-02-11 14:16:30 +01:00
David Ramiro
94c99ff406 Update issue templates 2019-02-10 16:05:26 +01:00
David Ramiro
d3209886ed Move sections to the wiki 2019-02-10 15:14:12 +01:00
David Ramiro
bb06621c6c Tweak feedrate, jerk and acceleration 2019-02-08 16:30:41 +01:00
David Ramiro
f01026e748 Tweak minimum segment time
Improve USB printing by slowing down on certain situations. This prevents the buffer from running empty and removes the need to wait for new serial commands.
2019-02-08 16:28:02 +01:00
David Ramiro
06424642ba Merge branch 'm600' 2019-02-06 19:33:25 +01:00
David Ramiro
a57103fb29 Update S3D profile 2019-02-06 18:18:26 +01:00
David Ramiro
9281686c49 Tweak M600 filament change
Adjust load and unload distances to suit the bowden tube and append instructions
2019-02-06 18:10:39 +01:00
David Ramiro
01e152b456 Bugfix
- Buffer flush added to the the end of M190 loop
- Inverted position polling when canceling print via display
2019-02-06 12:32:58 +01:00
David Ramiro
42f52d34b4 Flush serial buffer after heating
Some hosts like Pronterface use continuous M105 commands to poll temperature, this causes a software halt when the heating via M109 or M190 is finished. Flushing the rx buffer fixes this.

As reported in #15, thanks to @rug156 for the feedback!
2019-02-06 11:42:24 +01:00
David Ramiro
574b2f8aed Enable busy messages on M109/M190 2019-02-06 11:07:31 +01:00
David Ramiro
3be7677642 Update README.md 2019-02-05 16:45:31 +01:00
David Ramiro
5f7a252267 Enable filament change feature
Adding support for headless M600/M108 filament change

Addressing #15
2019-02-05 15:24:00 +01:00
David Ramiro
79d00d560f Update README.md
Mention potential issue with Cura's default jerk & acceleration values
2019-02-04 02:00:51 +01:00
David Ramiro
ae98ec4bae Merge branch 'dev' 2019-02-02 20:23:12 +01:00
David Ramiro
a40267c4a0 Change acceleration 2019-02-02 20:20:30 +01:00
David Ramiro
0f9b4940c5 Fix typo 2019-01-31 21:34:39 +01:00
David Ramiro
f8a7e2d0d6 Append building instructions
Resolve #13
2019-01-31 21:32:01 +01:00
David Ramiro
c5cc8b2171 Disabling S-Curve-Acceleration
Trying to mitigate Y axis layer shifts on certain machines
2019-01-30 17:40:07 +01:00
David Ramiro
f01ee75004 Merge upstream changes
from https://github.com/MarlinFirmware/Marlin/tree/bugfix-1.1.x
2019-01-28 23:30:14 +01:00
David Ramiro
b3af9708e9 Tweak print cancelling behaviour
Fix movement on certain positions of the Z axis
2019-01-24 16:50:34 +01:00
David Ramiro
ad683fdedc Beautify code
Fix indentation
2019-01-24 16:45:35 +01:00
91 changed files with 8960 additions and 1258 deletions

19
.gitattributes vendored
View File

@@ -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

View File

@@ -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]

View 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
View File

@@ -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-*

View File

@@ -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

View File

@@ -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
};

View File

@@ -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,

View File

@@ -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.

View File

@@ -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;
}
}

View File

@@ -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

View File

@@ -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)

View File

@@ -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.

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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!"

View File

@@ -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

View File

@@ -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

View File

@@ -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")

View File

@@ -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

View File

@@ -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
}
}

View File

@@ -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.

View File

@@ -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

View File

@@ -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
View File

@@ -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.
[![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=3MFT8QMP5ZRCE&source=url) [![Downloads](https://img.shields.io/github/downloads/davidramiro/Marlin-AI3M/total.svg?style=flat)](https://github.com/davidramiro/Marlin-AI3M/releases) [![Open Issues](https://img.shields.io/github/issues-raw/davidramiro/Marlin-AI3M.svg?style=flat)](https://github.com/davidramiro/Marlin-AI3M/issues?q=is%3Aopen+is%3Aissue) [![License](https://img.shields.io/github/license/davidramiro/Marlin-AI3M.svg?style=flat)](https://github.com/davidramiro/Marlin-AI3M/blob/master/LICENSE) [![Latest Release](https://img.shields.io/github/release/davidramiro/Marlin-AI3m.svg?style=flat)](https://github.com/davidramiro/Marlin-AI3M/releases/latest/) [![Last commit](https://img.shields.io/github/last-commit/davidramiro/Marlin-AI3m.svg?style=flat)](https://github.com/davidramiro/Marlin-Ai3M/commits/) [![Travis CI](https://api.travis-ci.org/davidramiro/Marlin-Ai3M.svg?branch=master)](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.
*/
```

View File

@@ -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

View File

@@ -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"/>