From 17d6d965dce2cda2ede4ef78a9885a4bf37716c1 Mon Sep 17 00:00:00 2001 From: Phil Wise Date: Thu, 19 Dec 2013 21:21:46 +0000 Subject: [PATCH 01/37] Use C++ initialization list This is the recommended approach for object initialization. The change doesn't affect binary size (although in theory it could make it smaller). --- Marlin/vector_3.cpp | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) diff --git a/Marlin/vector_3.cpp b/Marlin/vector_3.cpp index 8c8a0e1dc..4538251ab 100644 --- a/Marlin/vector_3.cpp +++ b/Marlin/vector_3.cpp @@ -22,19 +22,9 @@ #ifdef ENABLE_AUTO_BED_LEVELING #include "vector_3.h" -vector_3::vector_3() -{ - this->x = 0; - this->y = 0; - this->z = 0; -} +vector_3::vector_3() : x(0), y(0), z(0) { } -vector_3::vector_3(float x, float y, float z) -{ - this->x = x; - this->y = y; - this->z = z; -} +vector_3::vector_3(float x_, float y_, float z_) : x(x_), y(y_), z(z_) { } vector_3 vector_3::cross(vector_3 left, vector_3 right) { @@ -62,7 +52,7 @@ vector_3 vector_3::get_normal() float vector_3::get_length() { - float length = sqrt((x * x) + (y * y) + (z * z)); + float length = sqrt((x * x) + (y * y) + (z * z)); return length; } From 5f797ca29f10f3d345d8d7415e39884dbecc514b Mon Sep 17 00:00:00 2001 From: nothinman Date: Tue, 11 Feb 2014 22:38:01 +0000 Subject: [PATCH 02/37] Updated Polish, changed default firmware URL to Marlin. --- Marlin/language.h | 62 +++++++++++++++++++++++++---------------------- 1 file changed, 33 insertions(+), 29 deletions(-) diff --git a/Marlin/language.h b/Marlin/language.h index c5a3d5008..26fd1a26e 100644 --- a/Marlin/language.h +++ b/Marlin/language.h @@ -40,16 +40,20 @@ #define MACHINE_NAME "Mendel" #endif - #define FIRMWARE_URL "http://www.mendel-parts.com" +// Default firmware set to Mendel + #define FIRMWARE_URL "https://github.com/ErikZalm/Marlin/" #endif + #ifndef MACHINE_UUID #define MACHINE_UUID "00000000-0000-0000-0000-000000000000" #endif + #define STRINGIFY_(n) #n #define STRINGIFY(n) STRINGIFY_(n) + #if LANGUAGE_CHOICE == 1 // LCD Menu Messages @@ -234,7 +238,7 @@ #if LANGUAGE_CHOICE == 2 // LCD Menu Messages - #define WELCOME_MSG MACHINE_NAME " Gotowe." + #define WELCOME_MSG MACHINE_NAME " gotowy." #define MSG_SD_INSERTED "Karta wlozona" #define MSG_SD_REMOVED "Karta usunieta" #define MSG_MAIN "Menu glowne" @@ -247,22 +251,22 @@ #define MSG_PREHEAT_ABS "Rozgrzej ABS" #define MSG_PREHEAT_ABS_SETTINGS "Ustawienia roz. ABS" #define MSG_COOLDOWN "Chlodzenie" - #define MSG_SWITCH_PS_ON "Wl. zasilacz" - #define MSG_SWITCH_PS_OFF "Wyl. zasilacz" + #define MSG_SWITCH_PS_ON "Wlacz zasilacz" + #define MSG_SWITCH_PS_OFF "Wylacz zasilacz" #define MSG_EXTRUDE "Ekstruzja" #define MSG_RETRACT "Cofanie" #define MSG_MOVE_AXIS "Ruch osi" - #define MSG_MOVE_X "Move X" - #define MSG_MOVE_Y "Move Y" - #define MSG_MOVE_Z "Move Z" - #define MSG_MOVE_E "Extruder" - #define MSG_MOVE_01MM "Move 0.1mm" - #define MSG_MOVE_1MM "Move 1mm" - #define MSG_MOVE_10MM "Move 10mm" + #define MSG_MOVE_X "Przesun w X" + #define MSG_MOVE_Y "Przesun w Y" + #define MSG_MOVE_Z "Przesun w Z" + #define MSG_MOVE_E "Ekstruzja (os E)" + #define MSG_MOVE_01MM "Przesuwaj co 0.1mm" + #define MSG_MOVE_1MM "Przesuwaj co 1mm" + #define MSG_MOVE_10MM "Przesuwaj co 10mm" #define MSG_SPEED "Predkosc" #define MSG_NOZZLE "Dysza" - #define MSG_NOZZLE1 "Dysza2" - #define MSG_NOZZLE2 "Dysza3" + #define MSG_NOZZLE1 "Dysza 2" + #define MSG_NOZZLE2 "Dysza 3" #define MSG_BED "Loze" #define MSG_FAN_SPEED "Obroty wiatraka" #define MSG_FLOW "Przeplyw" @@ -270,14 +274,14 @@ #define MSG_MIN " \002 Min" #define MSG_MAX " \002 Max" #define MSG_FACTOR " \002 Mnoznik" - #define MSG_AUTOTEMP "Auto. temp." + #define MSG_AUTOTEMP "Auto. temperatura" #define MSG_ON "Wl. " #define MSG_OFF "Wyl." #define MSG_PID_P "PID-P" #define MSG_PID_I "PID-I" #define MSG_PID_D "PID-D" #define MSG_PID_C "PID-C" - #define MSG_ACC "Acc" + #define MSG_ACC "Przyspieszenie" #define MSG_VXY_JERK "Zryw Vxy" #define MSG_VZ_JERK "Zryw Vz" #define MSG_VE_JERK "Zryw Ve" @@ -312,7 +316,7 @@ #define MSG_CARD_MENU "Menu karty SD" #define MSG_NO_CARD "Brak karty" #define MSG_DWELL "Uspij..." - #define MSG_USERWAIT "Czekaj na uzytkownika..." + #define MSG_USERWAIT "Czekam na uzytkownika..." #define MSG_RESUMING "Wznawiam drukowanie" #define MSG_NO_MOVE "Brak ruchu." #define MSG_PART_RELEASE "Czesciowe zwolnienie" @@ -326,16 +330,16 @@ #define MSG_CONTROL_RETRACT_RECOVERF "Cof. wycof. F" #define MSG_AUTORETRACT "Auto. wycofanie" #define MSG_FILAMENTCHANGE "Zmien filament" - #define MSG_INIT_SDCARD "Uruchom karte SD" - #define MSG_CNG_SDCARD "Zmien karte SD" + #define MSG_INIT_SDCARD "Inicjalizacja karty" + #define MSG_CNG_SDCARD "Zmiana karty SD" #define MSG_ZPROBE_OUT "Probkuj Z poza lozem" - #define MSG_POSITION_UNKNOWN "Domuj X/Y przed Z" - #define MSG_ZPROBE_ZOFFSET "Z Offset" + #define MSG_POSITION_UNKNOWN "Powrot w X/Y przed Z" + #define MSG_ZPROBE_ZOFFSET "Offset Z" #define MSG_BABYSTEP_X "Babystep X" #define MSG_BABYSTEP_Y "Babystep Y" #define MSG_BABYSTEP_Z "Babystep Z" - #define MSG_ENDSTOP_ABORT "Endstop abort" - #define MSG_CONTRAST "Contrast" + #define MSG_ENDSTOP_ABORT "Blad wyl. krancowego" + #define MSG_CONTRAST "Kontrast" // Serial Console Messages @@ -350,7 +354,7 @@ #define MSG_CONFIGURATION_VER " Ostatnia aktualizacja: " #define MSG_FREE_MEMORY " Wolna pamiec: " #define MSG_PLANNER_BUFFER_BYTES " Bufor planisty krokow (w bajtach): " - #define MSG_OK "ok" + #define MSG_OK "OK" #define MSG_FILE_SAVED "Plik zapisany." #define MSG_ERR_LINE_NO "Numer linijki nie jest ostatnim numerem linijki+1; ostatnia linijka:" #define MSG_ERR_CHECKSUM_MISMATCH "Niezgodna suma kontrolna; ostatnia linijka: " @@ -370,7 +374,7 @@ #define MSG_BED_HEATING "Nagrzewanie loza..." #define MSG_BED_DONE "Nagrzewanie loza zakonczone." #define MSG_M115_REPORT "FIRMWARE_NAME:Marlin V1; Sprinter/grbl mashup for gen6 FIRMWARE_URL:" FIRMWARE_URL " PROTOCOL_VERSION:" PROTOCOL_VERSION " MACHINE_TYPE:" MACHINE_NAME " EXTRUDER_COUNT:" STRINGIFY(EXTRUDERS) " UUID:" MACHINE_UUID "\n" - #define MSG_COUNT_X " Liczenie X: " + #define MSG_COUNT_X " Licznik X: " #define MSG_ERR_KILLED "Drukarka zatrzymana. Wywolano kill()" #define MSG_ERR_STOPPED "Drukarka zatrzymana z powodu bledu. Usun problem i zrestartuj drukartke komenda M999. (temperatura zostala zresetowana; ustaw temperature po restarcie)" #define MSG_RESEND "Wyslij ponownie: " @@ -386,7 +390,7 @@ #define MSG_M119_REPORT "Zgloszenie statusu wylacznikow krancowych" #define MSG_ENDSTOP_HIT "Wyzwolony" #define MSG_ENDSTOP_OPEN "Otwarty" - #define MSG_HOTEND_OFFSET "Hotend offsets:" + #define MSG_HOTEND_OFFSET "Offsety dysz:" #define MSG_SD_CANT_OPEN_SUBDIR "Nie mozna otworzyc podkatalogu" #define MSG_SD_INIT_FAIL "Blad inicjalizacji karty SD" @@ -401,16 +405,16 @@ #define MSG_SD_WRITE_TO_FILE "Zapisywanie do pliku: " #define MSG_SD_PRINTING_BYTE "Drukowanie z karty SD, bajt " #define MSG_SD_NOT_PRINTING "Nie trwa drukowanie z karty SD" - #define MSG_SD_ERR_WRITE_TO_FILE "blad podczas zapisu do pliku" + #define MSG_SD_ERR_WRITE_TO_FILE "Wystapil blad podczas zapisu do pliku" #define MSG_SD_CANT_ENTER_SUBDIR "Nie mozna odczytac podkatalogu: " #define MSG_STEPPER_TOO_HIGH "Za duza czestotliwosc krokow: " #define MSG_ENDSTOPS_HIT "Wylacznik krancowy zostal wyzwolony na pozycji: " #define MSG_ERR_COLD_EXTRUDE_STOP " uniemozliwiono zimna ekstruzje" #define MSG_ERR_LONG_EXTRUDE_STOP " uniemozliwiono zbyt dluga ekstruzje" - #define MSG_BABYSTEPPING_X "Babystepping X" - #define MSG_BABYSTEPPING_Y "Babystepping Y" - #define MSG_BABYSTEPPING_Z "Babystepping Z" + #define MSG_BABYSTEPPING_X "Babystepping w osi X" + #define MSG_BABYSTEPPING_Y "Babystepping w osi Y" + #define MSG_BABYSTEPPING_Z "Babystepping w osi Z" #endif From 3f6d44d40b00fe0636c31a24feb00441ea748dd3 Mon Sep 17 00:00:00 2001 From: whosawhatsis Date: Tue, 11 Feb 2014 18:50:11 -0800 Subject: [PATCH 03/37] Keep FWRETRACT values in terms of millimeters when using M200 for volumetric E units --- Marlin/Marlin_main.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index b5e4e8519..1b213f951 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -137,7 +137,7 @@ // M204 - Set default acceleration: S normal moves T filament only moves (M204 S3000 T7000) im mm/sec^2 also sets minimum segment time in ms (B20000) to prevent buffer underruns and M20 minimum feedrate // M205 - advanced settings: minimum travel speed S=while printing T=travel only, B=minimum segment time X= maximum xy jerk, Z=maximum Z jerk, E=maximum E jerk // M206 - set additional homeing offset -// M207 - set retract length S[positive mm] F[feedrate mm/sec] Z[additional zlift/hop] +// M207 - set retract length S[positive mm] F[feedrate mm/sec] Z[additional zlift/hop], stays in mm regardless of M200 setting // M208 - set recover=unretract length S[positive mm surplus to the M207 S*] F[feedrate mm/sec] // M209 - S<1=true/0=false> enable automatic retract detect if the slicer did not support G10/11: every normal extrude-only move will be classified as retract depending on the direction. // M218 - set hotend offset (in mm): T X Y @@ -1109,11 +1109,13 @@ void process_commands() destination[X_AXIS]=current_position[X_AXIS]; destination[Y_AXIS]=current_position[Y_AXIS]; destination[Z_AXIS]=current_position[Z_AXIS]; - current_position[Z_AXIS]+=-retract_zlift; - destination[E_AXIS]=current_position[E_AXIS]-retract_length; + current_position[Z_AXIS]-=retract_zlift; + destination[E_AXIS]=current_position[E_AXIS]-retract_length/volumetric_multiplier[active_extruder]; + float oldFeedrate = feedrate; feedrate=retract_feedrate; retracted=true; prepare_move(); + feedrate = oldFeedrate; } break; @@ -1124,10 +1126,12 @@ void process_commands() destination[Y_AXIS]=current_position[Y_AXIS]; destination[Z_AXIS]=current_position[Z_AXIS]; current_position[Z_AXIS]+=retract_zlift; - destination[E_AXIS]=current_position[E_AXIS]+retract_length+retract_recover_length; + destination[E_AXIS]=current_position[E_AXIS]+(retract_length+retract_recover_length)/volumetric_multiplier[active_extruder]; + float oldFeedrate = feedrate; feedrate=retract_recover_feedrate; retracted=false; prepare_move(); + feedrate = oldFeedrate; } break; #endif //FWRETRACT From 78e7654601f93638f32fed52b6b2d9bdb20845d7 Mon Sep 17 00:00:00 2001 From: whosawhatsis Date: Tue, 11 Feb 2014 19:05:35 -0800 Subject: [PATCH 04/37] Keep FWRETRACT values in terms of millimeters when using M200 for volumetric E units --- Marlin/Marlin_main.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index b567e2b09..985fde7df 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -137,7 +137,7 @@ // M204 - Set default acceleration: S normal moves T filament only moves (M204 S3000 T7000) im mm/sec^2 also sets minimum segment time in ms (B20000) to prevent buffer underruns and M20 minimum feedrate // M205 - advanced settings: minimum travel speed S=while printing T=travel only, B=minimum segment time X= maximum xy jerk, Z=maximum Z jerk, E=maximum E jerk // M206 - set additional homeing offset -// M207 - set retract length S[positive mm] F[feedrate mm/sec] Z[additional zlift/hop] +// M207 - set retract length S[positive mm] F[feedrate mm/sec] Z[additional zlift/hop], stays in mm regardless of M200 setting // M208 - set recover=unretract length S[positive mm surplus to the M207 S*] F[feedrate mm/sec] // M209 - S<1=true/0=false> enable automatic retract detect if the slicer did not support G10/11: every normal extrude-only move will be classified as retract depending on the direction. // M218 - set hotend offset (in mm): T X Y @@ -1128,10 +1128,12 @@ void process_commands() destination[Y_AXIS]=current_position[Y_AXIS]; destination[Z_AXIS]=current_position[Z_AXIS]; current_position[Z_AXIS]+=retract_zlift; - destination[E_AXIS]=current_position[E_AXIS]+retract_length+retract_recover_length; + destination[E_AXIS]=current_position[E_AXIS]+(retract_length+retract_recover_length)/volumetric_multiplier[active_extruder]; + float oldFeedrate = feedrate; feedrate=retract_recover_feedrate; retracted=false; prepare_move(); + feedrate = oldFeedrate; } break; #endif //FWRETRACT From 0b9ecf38242bb4847d15e3c341114d6f25101a27 Mon Sep 17 00:00:00 2001 From: Martin Lukasik Date: Wed, 12 Feb 2014 13:21:26 +0000 Subject: [PATCH 05/37] Language cleanup, part 1. --- Marlin/language.h | 391 ++++++++++++++++++++++++---------------------- 1 file changed, 205 insertions(+), 186 deletions(-) diff --git a/Marlin/language.h b/Marlin/language.h index 26fd1a26e..ab3bf6355 100644 --- a/Marlin/language.h +++ b/Marlin/language.h @@ -19,7 +19,7 @@ // 10 Aragonese #ifndef LANGUAGE_CHOICE -#define LANGUAGE_CHOICE 1 // Pick your language from the list above + #define LANGUAGE_CHOICE 1 // Pick your language from the list above #endif #define PROTOCOL_VERSION "1.0" @@ -54,27 +54,37 @@ #define STRINGIFY(n) STRINGIFY_(n) +// Common LCD messages +/* nothing here as of yet */ + +// Common serial messages +#define MSG_MARLIN "Marlin" + + + #if LANGUAGE_CHOICE == 1 // LCD Menu Messages - #define WELCOME_MSG MACHINE_NAME " Ready." +// Please note these are limited to 17 characters! + + #define WELCOME_MSG MACHINE_NAME " ready." #define MSG_SD_INSERTED "Card inserted" #define MSG_SD_REMOVED "Card removed" #define MSG_MAIN "Main" #define MSG_AUTOSTART "Autostart" - #define MSG_DISABLE_STEPPERS "Disable Steppers" - #define MSG_AUTO_HOME "Auto Home" - #define MSG_SET_ORIGIN "Set Origin" + #define MSG_DISABLE_STEPPERS "Disable steppers" + #define MSG_AUTO_HOME "Auto home" + #define MSG_SET_ORIGIN "Set origin" #define MSG_PREHEAT_PLA "Preheat PLA" - #define MSG_PREHEAT_PLA_SETTINGS "Preheat PLA Conf" + #define MSG_PREHEAT_PLA_SETTINGS "Preheat PLA conf" #define MSG_PREHEAT_ABS "Preheat ABS" - #define MSG_PREHEAT_ABS_SETTINGS "Preheat ABS Conf" + #define MSG_PREHEAT_ABS_SETTINGS "Preheat ABS conf" #define MSG_COOLDOWN "Cooldown" - #define MSG_SWITCH_PS_ON "Switch Power On" - #define MSG_SWITCH_PS_OFF "Switch Power Off" + #define MSG_SWITCH_PS_ON "Switch power on" + #define MSG_SWITCH_PS_OFF "Switch power off" #define MSG_EXTRUDE "Extrude" #define MSG_RETRACT "Retract" - #define MSG_MOVE_AXIS "Move Axis" + #define MSG_MOVE_AXIS "Move axis" #define MSG_MOVE_X "Move X" #define MSG_MOVE_Y "Move Y" #define MSG_MOVE_Z "Move Z" @@ -123,16 +133,16 @@ #define MSG_CONTRAST "LCD contrast" #define MSG_STORE_EPROM "Store memory" #define MSG_LOAD_EPROM "Load memory" - #define MSG_RESTORE_FAILSAFE "Restore Failsafe" + #define MSG_RESTORE_FAILSAFE "Restore failsafe" #define MSG_REFRESH "Refresh" #define MSG_WATCH "Info screen" #define MSG_PREPARE "Prepare" #define MSG_TUNE "Tune" - #define MSG_PAUSE_PRINT "Pause Print" - #define MSG_RESUME_PRINT "Resume Print" - #define MSG_STOP_PRINT "Stop Print" + #define MSG_PAUSE_PRINT "Pause print" + #define MSG_RESUME_PRINT "Resume print" + #define MSG_STOP_PRINT "Stop print" #define MSG_CARD_MENU "Print from SD" - #define MSG_NO_CARD "No Card" + #define MSG_NO_CARD "No SD card" #define MSG_DWELL "Sleep..." #define MSG_USERWAIT "Wait for user..." #define MSG_RESUMING "Resuming print" @@ -146,9 +156,9 @@ #define MSG_CONTROL_RETRACT_RECOVERF "UnRet F" #define MSG_AUTORETRACT "AutoRetr." #define MSG_FILAMENTCHANGE "Change filament" - #define MSG_INIT_SDCARD "Init. SD-Card" - #define MSG_CNG_SDCARD "Change SD-Card" - #define MSG_ZPROBE_OUT "ZProbe Outside Bed" + #define MSG_INIT_SDCARD "Init. SD card" + #define MSG_CNG_SDCARD "Change SD card" + #define MSG_ZPROBE_OUT "Z probe out. bed" #define MSG_POSITION_UNKNOWN "Home X/Y before Z" #define MSG_ZPROBE_ZOFFSET "Z Offset" #define MSG_BABYSTEP_X "Babystep X" @@ -165,7 +175,6 @@ #define MSG_BROWNOUT_RESET " Brown out Reset" #define MSG_WATCHDOG_RESET " Watchdog Reset" #define MSG_SOFTWARE_RESET " Software Reset" - #define MSG_MARLIN "Marlin " #define MSG_AUTHOR " | Author: " #define MSG_CONFIGURATION_VER " Last Updated: " #define MSG_FREE_MEMORY " Free Memory: " @@ -231,13 +240,17 @@ #define MSG_BABYSTEPPING_X "Babystepping X" #define MSG_BABYSTEPPING_Y "Babystepping Y" #define MSG_BABYSTEPPING_Z "Babystepping Z" + #define MSG_SERIAL_ERROR_MENU_STRUCTURE "Error in menu structure" #endif #if LANGUAGE_CHOICE == 2 + // LCD Menu Messages +// Please note these are limited to 17 characters! + #define WELCOME_MSG MACHINE_NAME " gotowy." #define MSG_SD_INSERTED "Karta wlozona" #define MSG_SD_REMOVED "Karta usunieta" @@ -245,11 +258,11 @@ #define MSG_AUTOSTART "Autostart" #define MSG_DISABLE_STEPPERS "Wylacz silniki" #define MSG_AUTO_HOME "Auto. poz. zerowa" - #define MSG_SET_ORIGIN "Ustaw punkt zerowy" + #define MSG_SET_ORIGIN "Ustaw punkt zero" #define MSG_PREHEAT_PLA "Rozgrzej PLA" - #define MSG_PREHEAT_PLA_SETTINGS "Ustawienia roz. PLA" + #define MSG_PREHEAT_PLA_SETTINGS "Ustaw. rozg. PLA" #define MSG_PREHEAT_ABS "Rozgrzej ABS" - #define MSG_PREHEAT_ABS_SETTINGS "Ustawienia roz. ABS" + #define MSG_PREHEAT_ABS_SETTINGS "Ustaw. rozg. ABS" #define MSG_COOLDOWN "Chlodzenie" #define MSG_SWITCH_PS_ON "Wlacz zasilacz" #define MSG_SWITCH_PS_OFF "Wylacz zasilacz" @@ -260,7 +273,7 @@ #define MSG_MOVE_Y "Przesun w Y" #define MSG_MOVE_Z "Przesun w Z" #define MSG_MOVE_E "Ekstruzja (os E)" - #define MSG_MOVE_01MM "Przesuwaj co 0.1mm" + #define MSG_MOVE_01MM "Przesuwaj co .1mm" #define MSG_MOVE_1MM "Przesuwaj co 1mm" #define MSG_MOVE_10MM "Przesuwaj co 10mm" #define MSG_SPEED "Predkosc" @@ -304,7 +317,7 @@ #define MSG_CONTRAST "Kontrast LCD" #define MSG_STORE_EPROM "Zapisz w pamieci" #define MSG_LOAD_EPROM "Wczytaj z pamieci" - #define MSG_RESTORE_FAILSAFE "Ustawienia fabryczne" + #define MSG_RESTORE_FAILSAFE "Ustaw. fabryczne" #define MSG_REFRESH "\004Odswiez" #define MSG_WATCH "Ekran glowny" #define MSG_PREPARE "Przygotuj" @@ -316,10 +329,9 @@ #define MSG_CARD_MENU "Menu karty SD" #define MSG_NO_CARD "Brak karty" #define MSG_DWELL "Uspij..." - #define MSG_USERWAIT "Czekam na uzytkownika..." - #define MSG_RESUMING "Wznawiam drukowanie" - #define MSG_NO_MOVE "Brak ruchu." - #define MSG_PART_RELEASE "Czesciowe zwolnienie" + #define MSG_USERWAIT "Oczekiwanie..." + #define MSG_RESUMING "Wznawianie druku" + #define MSG_NO_MOVE "Brak ruchu" #define MSG_KILLED "Ubity. " #define MSG_STOPPED "Zatrzymany. " #define MSG_STEPPER_RELEASED "Zwolniony." @@ -330,15 +342,15 @@ #define MSG_CONTROL_RETRACT_RECOVERF "Cof. wycof. F" #define MSG_AUTORETRACT "Auto. wycofanie" #define MSG_FILAMENTCHANGE "Zmien filament" - #define MSG_INIT_SDCARD "Inicjalizacja karty" + #define MSG_INIT_SDCARD "Inicjal. karty SD" #define MSG_CNG_SDCARD "Zmiana karty SD" - #define MSG_ZPROBE_OUT "Probkuj Z poza lozem" - #define MSG_POSITION_UNKNOWN "Powrot w X/Y przed Z" + #define MSG_ZPROBE_OUT "Sonda Z za lozem" + #define MSG_POSITION_UNKNOWN "Wroc w XY przed Z" #define MSG_ZPROBE_ZOFFSET "Offset Z" #define MSG_BABYSTEP_X "Babystep X" #define MSG_BABYSTEP_Y "Babystep Y" #define MSG_BABYSTEP_Z "Babystep Z" - #define MSG_ENDSTOP_ABORT "Blad wyl. krancowego" + #define MSG_ENDSTOP_ABORT "Blad wyl. kranc." #define MSG_CONTRAST "Kontrast" // Serial Console Messages @@ -349,7 +361,6 @@ #define MSG_BROWNOUT_RESET " Reset (spadek napiecia)" #define MSG_WATCHDOG_RESET " Reset (watchdog)" #define MSG_SOFTWARE_RESET " Reset (programowy)" - #define MSG_MARLIN "Marlin" #define MSG_AUTHOR " | Autor: " #define MSG_CONFIGURATION_VER " Ostatnia aktualizacja: " #define MSG_FREE_MEMORY " Wolna pamiec: " @@ -415,12 +426,16 @@ #define MSG_BABYSTEPPING_X "Babystepping w osi X" #define MSG_BABYSTEPPING_Y "Babystepping w osi Y" #define MSG_BABYSTEPPING_Z "Babystepping w osi Z" + #define MSG_SERIAL_ERROR_MENU_STRUCTURE "Error in menu structure" #endif #if LANGUAGE_CHOICE == 3 +// LCD Menu Messages +// Please note these are limited to 17 characters! + #define WELCOME_MSG MACHINE_NAME " prete." #define MSG_SD_INSERTED "Carte inseree" #define MSG_SD_REMOVED "Carte retiree" @@ -430,9 +445,9 @@ #define MSG_AUTO_HOME "Home auto." #define MSG_SET_ORIGIN "Regler origine" #define MSG_PREHEAT_PLA " Prechauffage PLA" - #define MSG_PREHEAT_PLA_SETTINGS " Regl. prechauffe PLA" + #define MSG_PREHEAT_PLA_SETTINGS " Regl. prech. PLA" #define MSG_PREHEAT_ABS "Prechauffage ABS" - #define MSG_PREHEAT_ABS_SETTINGS "Regl. prechauffe ABS" + #define MSG_PREHEAT_ABS_SETTINGS "Regl. prech. ABS" #define MSG_COOLDOWN "Refroidir" #define MSG_SWITCH_PS_ON "Allumer alim." #define MSG_SWITCH_PS_OFF "Eteindre alim." @@ -453,7 +468,7 @@ #define MSG_NOZZLE1 "Buse2" #define MSG_NOZZLE2 "Buse3" #define MSG_BED "Plateau" - #define MSG_FAN_SPEED "Vitesse ventilateur" + #define MSG_FAN_SPEED "Vite. ventilateur" #define MSG_FLOW "Flux" #define MSG_CONTROL "Controler" #define MSG_MIN " \002 Min" @@ -499,10 +514,9 @@ #define MSG_CARD_MENU "Impr. depuis SD" #define MSG_NO_CARD "Pas de carte" #define MSG_DWELL "Repos..." - #define MSG_USERWAIT "Attente de l'utilisateur..." - #define MSG_RESUMING "Reprise de l'impression" + #define MSG_USERWAIT "Atten. de l'util." + #define MSG_RESUMING "Repri. de l'impr." #define MSG_NO_MOVE "Aucun mouvement." - #define MSG_PART_RELEASE "Relache partielle" #define MSG_KILLED "MORT." #define MSG_STOPPED "STOPPE." #define MSG_STEPPER_RELEASED "RELACHE." @@ -514,14 +528,14 @@ #define MSG_AUTORETRACT "Retract. Auto." #define MSG_FILAMENTCHANGE "Changer filament" #define MSG_INIT_SDCARD "Init. la carte SD" - #define MSG_CNG_SDCARD "Changer de carte SD" - #define MSG_ZPROBE_OUT "ZProbe Outside Bed" - #define MSG_POSITION_UNKNOWN "Home X/Y before Z" - #define MSG_ZPROBE_ZOFFSET "Z Offset" + #define MSG_CNG_SDCARD "Changer de carte" + #define MSG_ZPROBE_OUT "Z sonde exte. lit" + #define MSG_POSITION_UNKNOWN "Rev. dans XY av.Z" + #define MSG_ZPROBE_ZOFFSET "Offset Z" #define MSG_BABYSTEP_X "Babystep X" #define MSG_BABYSTEP_Y "Babystep Y" #define MSG_BABYSTEP_Z "Babystep Z" - #define MSG_ENDSTOP_ABORT "Endstop abort" + #define MSG_ENDSTOP_ABORT "Butee abandon" #define MSG_CONTRAST "Contrast" // Serial Console Messages @@ -532,7 +546,6 @@ #define MSG_BROWNOUT_RESET " RAZ defaut alim." #define MSG_WATCHDOG_RESET " RAZ Watchdog" #define MSG_SOFTWARE_RESET " RAZ logicielle" - #define MSG_MARLIN "Marlin " #define MSG_AUTHOR " | Auteur: " #define MSG_CONFIGURATION_VER " Derniere MaJ: " #define MSG_FREE_MEMORY " Memoire libre: " @@ -598,6 +611,7 @@ #define MSG_BABYSTEPPING_X "Babystepping X" #define MSG_BABYSTEPPING_Y "Babystepping Y" #define MSG_BABYSTEPPING_Z "Babystepping Z" + #define MSG_SERIAL_ERROR_MENU_STRUCTURE "Error in menu structure" #endif @@ -605,6 +619,7 @@ #if LANGUAGE_CHOICE == 4 // LCD Menu Messages +// Please note these are limited to 17 characters! #define WELCOME_MSG MACHINE_NAME " Bereit." @@ -612,13 +627,13 @@ #define MSG_SD_REMOVED "SDKarte entfernt" #define MSG_MAIN "Hauptmenü" #define MSG_AUTOSTART "Autostart" - #define MSG_DISABLE_STEPPERS "Stepper abschalten" + #define MSG_DISABLE_STEPPERS "Stepper abschalt." #define MSG_AUTO_HOME "Auto Nullpunkt" #define MSG_SET_ORIGIN "Setze Nullpunkt" #define MSG_PREHEAT_PLA "Vorwärmen PLA" - #define MSG_PREHEAT_PLA_SETTINGS "Vorwärmen PLA Einstellungen" + #define MSG_PREHEAT_PLA_SETTINGS "Vorwärm. PLA Ein." #define MSG_PREHEAT_ABS "Vorwärmen ABS" - #define MSG_PREHEAT_ABS_SETTINGS "Vorwärmen ABS Einstellungen" + #define MSG_PREHEAT_ABS_SETTINGS "Vorwärm. ABS Ein." #define MSG_COOLDOWN "Abkühlen" #define MSG_SWITCH_PS_ON "Switch Power On" #define MSG_SWITCH_PS_OFF "Switch Power Off" @@ -685,10 +700,9 @@ #define MSG_CARD_MENU "SDKarten Menü" #define MSG_NO_CARD "Keine SDKarte" #define MSG_DWELL "Warten..." - #define MSG_USERWAIT "Warte auf Nutzer..." + #define MSG_USERWAIT "Warte auf Nutzer" #define MSG_RESUMING "Druck fortsetzung" #define MSG_NO_MOVE "Kein Zug." - #define MSG_PART_RELEASE "Stepper tlw frei" #define MSG_KILLED "KILLED" #define MSG_STOPPED "GESTOPPT" #define MSG_STEPPER_RELEASED "Stepper frei" @@ -701,7 +715,7 @@ #define MSG_FILAMENTCHANGE "Filament wechseln" #define MSG_INIT_SDCARD "Init. SD-Card" #define MSG_CNG_SDCARD "Change SD-Card" - #define MSG_ZPROBE_OUT "ZProbe Outside Bed" + #define MSG_ZPROBE_OUT "Z probe out. bed" #define MSG_POSITION_UNKNOWN "Home X/Y before Z" #define MSG_ZPROBE_ZOFFSET "Z Offset" #define MSG_BABYSTEP_X "Babystep X" @@ -718,7 +732,6 @@ #define MSG_BROWNOUT_RESET " Brown out Reset" #define MSG_WATCHDOG_RESET " Watchdog Reset" #define MSG_SOFTWARE_RESET " Software Reset" - #define MSG_MARLIN "Marlin: " #define MSG_AUTHOR " | Author: " #define MSG_CONFIGURATION_VER " Last Updated: " #define MSG_FREE_MEMORY " Free Memory: " @@ -784,6 +797,7 @@ #define MSG_BABYSTEPPING_X "Babystepping X" #define MSG_BABYSTEPPING_Y "Babystepping Y" #define MSG_BABYSTEPPING_Z "Babystepping Z" + #define MSG_SERIAL_ERROR_MENU_STRUCTURE "Error in menu structure" #endif @@ -791,14 +805,16 @@ #if LANGUAGE_CHOICE == 5 // LCD Menu Messages - #define WELCOME_MSG MACHINE_NAME "Lista." - #define MSG_SD_INSERTED "Tarjeta SD Colocada" - #define MSG_SD_REMOVED "Tarjeta SD Retirada" - #define MSG_MAIN "Menu Principal" +// Please note these are limited to 17 characters! + + #define WELCOME_MSG MACHINE_NAME " lista." + #define MSG_SD_INSERTED "Tarjeta colocada" + #define MSG_SD_REMOVED "Tarjeta retirada" + #define MSG_MAIN "Menu principal" #define MSG_AUTOSTART " Autostart" - #define MSG_DISABLE_STEPPERS "Apagar Motores" - #define MSG_AUTO_HOME "Llevar al Origen" // "Llevar Ejes al Cero" - #define MSG_SET_ORIGIN "Establecer Cero" + #define MSG_DISABLE_STEPPERS "Apagar motores" + #define MSG_AUTO_HOME "Llevar al origen" + #define MSG_SET_ORIGIN "Establecer cero" #define MSG_PREHEAT_PLA "Precalentar PLA" #define MSG_PREHEAT_PLA_SETTINGS "Ajustar temp. PLA" #define MSG_PREHEAT_ABS "Precalentar ABS" @@ -808,7 +824,7 @@ #define MSG_SWITCH_PS_OFF "Switch Power Off" #define MSG_EXTRUDE "Extruir" #define MSG_RETRACT "Retraer" - #define MSG_MOVE_AXIS "Mover Ejes" + #define MSG_MOVE_AXIS "Mover ejes" #define MSG_MOVE_X "Move X" #define MSG_MOVE_Y "Move Y" #define MSG_MOVE_Z "Move Z" @@ -854,24 +870,24 @@ #define MSG_RECTRACT "Retraer" #define MSG_TEMPERATURE "Temperatura" #define MSG_MOTION "Movimiento" - #define MSG_STORE_EPROM "Guardar Memoria" - #define MSG_LOAD_EPROM "Cargar Memoria" - #define MSG_RESTORE_FAILSAFE "Rest. de emergencia" + #define MSG_STORE_EPROM "Guardar memoria" + #define MSG_LOAD_EPROM "Cargar memoria" + #define MSG_RESTORE_FAILSAFE "Rest. de emergen." #define MSG_REFRESH "Volver a cargar" #define MSG_WATCH "Monitorizar" #define MSG_PREPARE "Preparar" #define MSG_TUNE "Ajustar" - #define MSG_PAUSE_PRINT "Pausar Impresion" - #define MSG_RESUME_PRINT "Reanudar Impresion" - #define MSG_STOP_PRINT "Detener Impresion" + #define MSG_PAUSE_PRINT "Pausar impresion" + #define MSG_RESUME_PRINT "Reanudar impres." + #define MSG_STOP_PRINT "Detener impresion" #define MSG_CARD_MENU "Menu de SD" - #define MSG_NO_CARD "No hay Tarjeta SD" + #define MSG_NO_CARD "No hay tarjeta SD" #define MSG_DWELL "Reposo..." - #define MSG_USERWAIT "Esperando Ordenes..." - #define MSG_RESUMING "Resumiendo Impresion" + #define MSG_USERWAIT "Esperando ordenes" + #define MSG_RESUMING "Resumiendo impre." #define MSG_NO_MOVE "Sin movimiento" - #define MSG_KILLED "PARADA DE EMERGENCIA. " - #define MSG_STOPPED "PARADA." + #define MSG_KILLED "PARADA DE EMERG." + #define MSG_STOPPED "PARADA" #define MSG_CONTROL_RETRACT "Retraer mm" #define MSG_CONTROL_RETRACTF "Retraer F" #define MSG_CONTROL_RETRACT_ZLIFT "Levantar mm" @@ -879,19 +895,18 @@ #define MSG_CONTROL_RETRACT_RECOVERF "DesRet F" #define MSG_AUTORETRACT "AutoRetr." #define MSG_FILAMENTCHANGE "Change filament" - #define MSG_INIT_SDCARD "Iniciando. Tarjeta-SD" - #define MSG_CNG_SDCARD "Cambiar Tarjeta-SD" + #define MSG_INIT_SDCARD "Iniciando tarjeta" + #define MSG_CNG_SDCARD "Cambiar tarjeta" #define MSG_RECTRACT_WIDE "Retraer" #define MSG_TEMPERATURE_WIDE "Temperatura" #define MSG_TEMPERATURE_RTN "Temperatura" - #define MSG_MAIN_WIDE "Menu Principal" + #define MSG_MAIN_WIDE "Menu principal" #define MSG_MOTION_WIDE "Movimiento" #define MSG_PREPARE_ALT "Preparar" #define MSG_CONTROL_ARROW "Control" #define MSG_RETRACT_ARROW "Retraer" - #define MSG_PART_RELEASE "Desacople Parcial" #define MSG_STEPPER_RELEASED "Desacoplada." - #define MSG_ZPROBE_OUT "ZProbe Outside Bed" + #define MSG_ZPROBE_OUT "Z probe out. bed" #define MSG_POSITION_UNKNOWN "Home X/Y before Z" #define MSG_ZPROBE_ZOFFSET "Z Offset" #define MSG_BABYSTEP_X "Babystep X" @@ -908,7 +923,6 @@ #define MSG_BROWNOUT_RESET " Reset por Voltaje Incorrecto" #define MSG_WATCHDOG_RESET " Reset por Bloqueo" #define MSG_SOFTWARE_RESET " Reset por Software" - #define MSG_MARLIN "Marlin " #define MSG_AUTHOR " | Autor: " #define MSG_CONFIGURATION_VER " Ultima actualizacion: " #define MSG_FREE_MEMORY " Memoria libre: " @@ -973,13 +987,17 @@ #define MSG_BABYSTEPPING_X "Babystepping X" #define MSG_BABYSTEPPING_Y "Babystepping Y" #define MSG_BABYSTEPPING_Z "Babystepping Z" + #define MSG_SERIAL_ERROR_MENU_STRUCTURE "Error in menu structure" #endif #if LANGUAGE_CHOICE == 6 - // LCD Menu Messages - #define WELCOME_MSG MACHINE_NAME " Готов" + +// LCD Menu Messages +// Please note these are limited to 17 characters! + + #define WELCOME_MSG MACHINE_NAME " Готов." #define MSG_SD_INSERTED "Карта вставлена" #define MSG_SD_REMOVED "Карта извлечена" #define MSG_MAIN " Меню \003" @@ -1042,7 +1060,7 @@ #define MSG_RECTRACT " Откат подачи \x7E" #define MSG_TEMPERATURE " Температура \x7E" #define MSG_MOTION " Скорости \x7E" - #define MSG_CONTRAST "LCD contrast" + #define MSG_CONTRAST "LCD contrast" #define MSG_STORE_EPROM " Сохранить настройки" #define MSG_LOAD_EPROM " Загрузить настройки" #define MSG_RESTORE_FAILSAFE " Сброс настроек " @@ -1059,7 +1077,6 @@ #define MSG_USERWAIT "Нажмите для продолж." #define MSG_RESUMING "Resuming print" #define MSG_NO_MOVE "Нет движения. " - #define MSG_PART_RELEASE " Извлечение принта " #define MSG_KILLED "УБИТО. " #define MSG_STOPPED "ОСТАНОВЛЕНО. " #define MSG_CONTROL_RETRACT " Откат mm:" @@ -1071,7 +1088,7 @@ #define MSG_FILAMENTCHANGE "Change filament" #define MSG_INIT_SDCARD "Init. SD-Card" #define MSG_CNG_SDCARD "Change SD-Card" - #define MSG_ZPROBE_OUT "ZProbe Outside Bed" + #define MSG_ZPROBE_OUT "Z probe out. bed" #define MSG_POSITION_UNKNOWN "Home X/Y before Z" #define MSG_ZPROBE_ZOFFSET "Z Offset" #define MSG_BABYSTEP_X "Babystep X" @@ -1088,7 +1105,6 @@ #define MSG_BROWNOUT_RESET " Brown out сброс" #define MSG_WATCHDOG_RESET " Watchdog сброс" #define MSG_SOFTWARE_RESET " программный сброс" - #define MSG_MARLIN "Marlin " #define MSG_AUTHOR " | Автор: " #define MSG_CONFIGURATION_VER " Последнее обновление: " #define MSG_FREE_MEMORY " Памяти свободно: " @@ -1152,14 +1168,17 @@ #define MSG_BABYSTEPPING_X "Babystepping X" #define MSG_BABYSTEPPING_Y "Babystepping Y" #define MSG_BABYSTEPPING_Z "Babystepping Z" + #define MSG_SERIAL_ERROR_MENU_STRUCTURE "Error in menu structure" #endif #if LANGUAGE_CHOICE == 7 - // LCD Menu Messages - #define WELCOME_MSG MACHINE_NAME " Pronta" +// LCD Menu Messages +// Please note these are limited to 17 characters! + + #define WELCOME_MSG MACHINE_NAME " pronto." #define MSG_SD_INSERTED "SD Card inserita" #define MSG_SD_REMOVED "SD Card rimossa" #define MSG_MAIN "Menu principale" @@ -1247,11 +1266,10 @@ #define MSG_CONTROL_RETRACT_RECOVER "UnRet +mm" #define MSG_CONTROL_RETRACT_RECOVERF "UnRet F" #define MSG_AUTORETRACT "AutoArretramento" - #define MSG_SERIAL_ERROR_MENU_STRUCTURE "Qualcosa non va in MenuStructure." #define MSG_FILAMENTCHANGE "Cambia filamento" #define MSG_INIT_SDCARD "Iniz. SD-Card" #define MSG_CNG_SDCARD "Cambia SD-Card" - #define MSG_ZPROBE_OUT "ZProbe Outside Bed" + #define MSG_ZPROBE_OUT "Z probe out. bed" #define MSG_POSITION_UNKNOWN "Home X/Y before Z" #define MSG_ZPROBE_ZOFFSET "Z Offset" #define MSG_BABYSTEP_X "Babystep X" @@ -1260,7 +1278,7 @@ #define MSG_ENDSTOP_ABORT "Endstop abort" #define MSG_CONTRAST "Contrast" - // Serial Console Messages +// Serial Console Messages #define MSG_Enqueing "accodamento \"" #define MSG_POWERUP "Accensione" @@ -1268,7 +1286,6 @@ #define MSG_BROWNOUT_RESET " Brown out Reset" #define MSG_WATCHDOG_RESET " Watchdog Reset" #define MSG_SOFTWARE_RESET " Software Reset" - #define MSG_MARLIN "Marlin " #define MSG_AUTHOR " | Autore: " #define MSG_CONFIGURATION_VER " Ultimo Aggiornamento: " #define MSG_FREE_MEMORY " Memoria Libera: " @@ -1334,6 +1351,7 @@ #define MSG_BABYSTEPPING_X "Babystepping X" #define MSG_BABYSTEPPING_Y "Babystepping Y" #define MSG_BABYSTEPPING_Z "Babystepping Z" + #define MSG_SERIAL_ERROR_MENU_STRUCTURE "Qualcosa non va in MenuStructure." #endif @@ -1341,26 +1359,28 @@ #if LANGUAGE_CHOICE == 8 // LCD Menu Messages - #define WELCOME_MSG MACHINE_NAME " Pronta." - #define MSG_SD_INSERTED "Cartao SD inserido" - #define MSG_SD_REMOVED "Cartao SD removido" - #define MSG_MAIN " Menu Principal \003" - #define MSG_AUTOSTART " Autostart" - #define MSG_DISABLE_STEPPERS " Apagar Motores" - #define MSG_AUTO_HOME " Ir para Origen" - #define MSG_SET_ORIGIN " Estabelecer Origen" - #define MSG_PREHEAT_PLA " pre-aquecer PLA" - #define MSG_PREHEAT_PLA_SETTINGS " pre-aquecer PLA Setting" - #define MSG_PREHEAT_ABS " pre-aquecer ABS" - #define MSG_PREHEAT_ABS_SETTINGS " pre-aquecer ABS Setting" - #define MSG_COOLDOWN " Esfriar" +// Please note these are limited to 17 characters! + + #define WELCOME_MSG MACHINE_NAME " pronto." + #define MSG_SD_INSERTED "Cartao inserido" + #define MSG_SD_REMOVED "Cartao removido" + #define MSG_MAIN " Menu principal \003" + #define MSG_AUTOSTART "Autostart" + #define MSG_DISABLE_STEPPERS " Apagar motores" + #define MSG_AUTO_HOME "Ir para origen" + #define MSG_SET_ORIGIN "Estabelecer orig." + #define MSG_PREHEAT_PLA "Pre-aquecer PLA" + #define MSG_PREHEAT_PLA_SETTINGS "PLA setting" + #define MSG_PREHEAT_ABS "Pre-aquecer ABS" + #define MSG_PREHEAT_ABS_SETTINGS "ABS setting" + #define MSG_COOLDOWN "Esfriar" #define MSG_SWITCH_PS_ON "Switch Power On" #define MSG_SWITCH_PS_OFF "Switch Power Off" - #define MSG_EXTRUDE " Extrudar" - #define MSG_RETRACT " Retrair" - #define MSG_PREHEAT_PLA " pre-aquecer PLA" - #define MSG_PREHEAT_ABS " pre-aquecer ABS" - #define MSG_MOVE_AXIS " Mover eixo \x7E" + #define MSG_EXTRUDE "Extrudar" + #define MSG_RETRACT "Retrair" + #define MSG_PREHEAT_PLA "Pre-aquecer PLA" + #define MSG_PREHEAT_ABS "Pre-aquecer ABS" + #define MSG_MOVE_AXIS "Mover eixo \x7E" #define MSG_MOVE_X "Move X" #define MSG_MOVE_Y "Move Y" #define MSG_MOVE_Z "Move Z" @@ -1368,26 +1388,26 @@ #define MSG_MOVE_01MM "Move 0.1mm" #define MSG_MOVE_1MM "Move 1mm" #define MSG_MOVE_10MM "Move 10mm" - #define MSG_SPEED " Velocidade:" - #define MSG_NOZZLE " \002Nozzle:" - #define MSG_NOZZLE1 " \002Nozzle2:" - #define MSG_NOZZLE2 " \002Nozzle3:" - #define MSG_BED " \002Base:" - #define MSG_FAN_SPEED " Velocidade Ventoinha:" - #define MSG_FLOW " Fluxo:" - #define MSG_CONTROL " Controle \003" - #define MSG_MIN " \002 Min:" - #define MSG_MAX " \002 Max:" - #define MSG_FACTOR " \002 Fact:" - #define MSG_AUTOTEMP " Autotemp:" + #define MSG_SPEED "Velocidade:" + #define MSG_NOZZLE "\002Nozzle:" + #define MSG_NOZZLE1 "\002Nozzle2:" + #define MSG_NOZZLE2 "\002Nozzle3:" + #define MSG_BED "\002Base:" + #define MSG_FAN_SPEED "Velocidade vento." + #define MSG_FLOW "Fluxo:" + #define MSG_CONTROL "Controle \003" + #define MSG_MIN "\002 Min:" + #define MSG_MAX "\002 Max:" + #define MSG_FACTOR "\002 Fact:" + #define MSG_AUTOTEMP "Autotemp:" #define MSG_ON "On " #define MSG_OFF "Off" - #define MSG_PID_P " PID-P: " - #define MSG_PID_I " PID-I: " - #define MSG_PID_D " PID-D: " - #define MSG_PID_C " PID-C: " - #define MSG_ACC " Acc:" - #define MSG_VXY_JERK " Vxy-jerk: " + #define MSG_PID_P "PID-P: " + #define MSG_PID_I "PID-I: " + #define MSG_PID_D "PID-D: " + #define MSG_PID_C "PID-C: " + #define MSG_ACC "Acc:" + #define MSG_VXY_JERK "Vxy-jerk: " #define MSG_VZ_JERK "Vz-jerk" #define MSG_VE_JERK "Ve-jerk" #define MSG_VMAX " Vmax " @@ -1395,39 +1415,38 @@ #define MSG_Y "y:" #define MSG_Z "z:" #define MSG_E "e:" - #define MSG_VMIN " Vmin:" - #define MSG_VTRAV_MIN " VTrav min:" - #define MSG_AMAX " Amax " - #define MSG_A_RETRACT " A-retract:" - #define MSG_XSTEPS " Xpasso/mm:" - #define MSG_YSTEPS " Ypasso/mm:" - #define MSG_ZSTEPS " Zpasso/mm:" - #define MSG_ESTEPS " Epasso/mm:" - #define MSG_MAIN_WIDE " Menu Principal \003" + #define MSG_VMIN "Vmin:" + #define MSG_VTRAV_MIN "VTrav min:" + #define MSG_AMAX "Amax " + #define MSG_A_RETRACT "A-retract:" + #define MSG_XSTEPS "Xpasso/mm:" + #define MSG_YSTEPS "Ypasso/mm:" + #define MSG_ZSTEPS "Zpasso/mm:" + #define MSG_ESTEPS "Epasso/mm:" + #define MSG_MAIN_WIDE "Menu Principal \003" #define MSG_RECTRACT "Retrair" #define MSG_TEMPERATURE "Temperatura" #define MSG_MOTION "Movimento" - #define MSG_STORE_EPROM " Guardar memoria" - #define MSG_LOAD_EPROM " Carregar memoria" - #define MSG_RESTORE_FAILSAFE " Rest. de emergencia" + #define MSG_STORE_EPROM "Guardar memoria" + #define MSG_LOAD_EPROM "Carregar memoria" + #define MSG_RESTORE_FAILSAFE "Rest. de emergen." #define MSG_REFRESH "\004Recarregar" - #define MSG_WATCH " Monitorar \003" - #define MSG_PREPARE " Preparar \x7E" - #define MSG_PREPARE_ALT " Preparar \003" - #define MSG_CONTROL_ARROW " Controle \x7E" - #define MSG_RETRACT_ARROW " Retrair \x7E" - #define MSG_TUNE " Tune \x7E" - #define MSG_PAUSE_PRINT " Pausar Impressao \x7E" - #define MSG_RESUME_PRINT " Resumir Impressao \x7E" - #define MSG_STOP_PRINT " Parar Impressao \x7E" - #define MSG_CARD_MENU " Menu cartao SD \x7E" - #define MSG_NO_CARD " Sem cartao SD" + #define MSG_WATCH "Monitorar \003" + #define MSG_PREPARE "Preparar \x7E" + #define MSG_PREPARE_ALT "Preparar \003" + #define MSG_CONTROL_ARROW "Controle \x7E" + #define MSG_RETRACT_ARROW "Retrair \x7E" + #define MSG_TUNE "Tune \x7E" + #define MSG_PAUSE_PRINT "Pausar impressao" + #define MSG_RESUME_PRINT "Resumir impressao" + #define MSG_STOP_PRINT "Parar impressao" + #define MSG_CARD_MENU "Menu cartao SD" + #define MSG_NO_CARD "Sem cartao SD" #define MSG_DWELL "Repouso..." - #define MSG_USERWAIT "Esperando Ordem..." + #define MSG_USERWAIT "Esperando ordem" #define MSG_RESUMING "Resuming print" - #define MSG_NO_MOVE "Sem movimento." - #define MSG_PART_RELEASE "Lancamento Parcial" - #define MSG_KILLED "PARADA DE EMERGENCIA. " + #define MSG_NO_MOVE "Sem movimento" + #define MSG_KILLED "PARADA DE EMERG." #define MSG_STOPPED "PARADA. " #define MSG_STEPPER_RELEASED "Lancado." #define MSG_CONTROL_RETRACT " Retrair mm:" @@ -1436,12 +1455,11 @@ #define MSG_CONTROL_RETRACT_RECOVER " DesRet +mm:" #define MSG_CONTROL_RETRACT_RECOVERF " DesRet F:" #define MSG_AUTORETRACT " AutoRetr.:" - #define MSG_SERIAL_ERROR_MENU_STRUCTURE "Algo esta errado na estrutura do Menu." #define MSG_FILAMENTCHANGE "Change filament" #define MSG_INIT_SDCARD "Init. SD-Card" #define MSG_CNG_SDCARD "Change SD-Card" - #define MSG_ZPROBE_OUT "Sonda fora da mesa" - #define MSG_POSITION_UNKNOWN "Home X/Y antes de Z" + #define MSG_ZPROBE_OUT "Son. fora da mesa" + #define MSG_POSITION_UNKNOWN "XY antes de Z" #define MSG_ZPROBE_ZOFFSET "Z Offset" #define MSG_BABYSTEP_X "Babystep X" #define MSG_BABYSTEP_Y "Babystep Y" @@ -1457,7 +1475,6 @@ #define MSG_BROWNOUT_RESET " Reset por voltagem incorreta" #define MSG_WATCHDOG_RESET " Reset por Bloqueio" #define MSG_SOFTWARE_RESET " Reset por Software" - #define MSG_MARLIN "Marlin " #define MSG_AUTHOR " | Author: " #define MSG_CONFIGURATION_VER " Ultima atualizacao: " #define MSG_FREE_MEMORY " memoria Livre: " @@ -1523,6 +1540,7 @@ #define MSG_BABYSTEPPING_X "Babystepping X" #define MSG_BABYSTEPPING_Y "Babystepping Y" #define MSG_BABYSTEPPING_Z "Babystepping Z" + #define MSG_SERIAL_ERROR_MENU_STRUCTURE "Algo esta errado na estrutura do Menu." #endif @@ -1530,10 +1548,10 @@ #if LANGUAGE_CHOICE == 9 -// Finnish - // LCD Menu Messages - #define WELCOME_MSG MACHINE_NAME " valmis" +// Please note these are limited to 17 characters! + + #define WELCOME_MSG MACHINE_NAME " valmis." #define MSG_SD_INSERTED "Kortti asetettu" #define MSG_SD_REMOVED "Kortti poistettu" #define MSG_MAIN "Palaa" @@ -1542,9 +1560,9 @@ #define MSG_AUTO_HOME "Aja referenssiin" #define MSG_SET_ORIGIN "Aseta origo" #define MSG_PREHEAT_PLA "Esilammita PLA" - #define MSG_PREHEAT_PLA_SETTINGS "Esilammita PLA konf" + #define MSG_PREHEAT_PLA_SETTINGS "Esilamm. PLA konf" #define MSG_PREHEAT_ABS "Esilammita ABS" - #define MSG_PREHEAT_ABS_SETTINGS "Esilammita ABS konf" + #define MSG_PREHEAT_ABS_SETTINGS "Esilamm. ABS konf" #define MSG_COOLDOWN "Jaahdyta" #define MSG_SWITCH_PS_ON "Switch Power On" #define MSG_SWITCH_PS_OFF "Switch Power Off" @@ -1610,8 +1628,8 @@ #define MSG_CARD_MENU "Korttivalikko" #define MSG_NO_CARD "Ei korttia" #define MSG_DWELL "Nukkumassa..." - #define MSG_USERWAIT "Odotetaan valintaa..." - #define MSG_RESUMING "Jatketaan tulostusta" + #define MSG_USERWAIT "Odotet. valintaa" + #define MSG_RESUMING "Jatke. tulostusta" #define MSG_NO_MOVE "Ei liiketta." #define MSG_KILLED "KILLED. " #define MSG_STOPPED "STOPPED. " @@ -1624,7 +1642,7 @@ #define MSG_FILAMENTCHANGE "Change filament" #define MSG_INIT_SDCARD "Init. SD-Card" #define MSG_CNG_SDCARD "Change SD-Card" - #define MSG_ZPROBE_OUT "ZProbe Outside Bed" + #define MSG_ZPROBE_OUT "Z probe out. bed" #define MSG_POSITION_UNKNOWN "Home X/Y before Z" #define MSG_ZPROBE_ZOFFSET "Z Offset" #define MSG_BABYSTEP_X "Babystep X" @@ -1641,7 +1659,6 @@ #define MSG_BROWNOUT_RESET " Alajannite Reset" #define MSG_WATCHDOG_RESET " Vahtikoira Reset" #define MSG_SOFTWARE_RESET " Ohjelmisto Reset" - #define MSG_MARLIN "Marlin " #define MSG_AUTHOR " | Author: " #define MSG_CONFIGURATION_VER " Paivitetty viimeksi: " #define MSG_FREE_MEMORY " Vapaata muistia: " @@ -1709,24 +1726,27 @@ #define MSG_BABYSTEPPING_Z "Babystepping Z" #define MSG_ENDSTOP_ABORT "Endstop abort" #define MSG_CONTRAST "Contrast" + #define MSG_SERIAL_ERROR_MENU_STRUCTURE "Error in menu structure" #endif #if LANGUAGE_CHOICE == 10 // LCD Menu Messages - #define WELCOME_MSG MACHINE_NAME " Parada." - #define MSG_SD_INSERTED "Tarcheta SD Colocada" - #define MSG_SD_REMOVED "Tarcheta SD Retirada" - #define MSG_MAIN "Menu Prencipal" +// Please note these are limited to 17 characters! + + #define WELCOME_MSG MACHINE_NAME " parada." + #define MSG_SD_INSERTED "Tarcheta colocada" + #define MSG_SD_REMOVED "Tarcheta retirada" + #define MSG_MAIN "Menu prencipal" #define MSG_AUTOSTART " Autostart" - #define MSG_DISABLE_STEPPERS "Amortar Motors" - #define MSG_AUTO_HOME "Levar a l'Orichen" // "Levar Eixes a o Zero" - #define MSG_SET_ORIGIN "Establir Zero" + #define MSG_DISABLE_STEPPERS "Amortar motors" + #define MSG_AUTO_HOME "Levar a l'orichen" + #define MSG_SET_ORIGIN "Establir zero" #define MSG_PREHEAT_PLA "Precalentar PLA" - #define MSG_PREHEAT_PLA_SETTINGS "Achustar temp. PLA" + #define MSG_PREHEAT_PLA_SETTINGS "Achustar tem. PLA" #define MSG_PREHEAT_ABS "Precalentar ABS" - #define MSG_PREHEAT_ABS_SETTINGS "Achustar temp. ABS" + #define MSG_PREHEAT_ABS_SETTINGS "Achustar tem. ABS" #define MSG_COOLDOWN "Enfriar" #define MSG_SWITCH_PS_ON "Enchegar Fuent" #define MSG_SWITCH_PS_OFF "Desenchegar Fuent" @@ -1780,21 +1800,21 @@ #define MSG_MOTION "Movimiento" #define MSG_STORE_EPROM "Alzar Memoria" #define MSG_LOAD_EPROM "Cargar Memoria" - #define MSG_RESTORE_FAILSAFE "Rest. d'emerchencia" + #define MSG_RESTORE_FAILSAFE "Rest. d'emerchen." #define MSG_REFRESH "Tornar a cargar" #define MSG_WATCH "Monitorizar" #define MSG_PREPARE "Preparar" #define MSG_TUNE "Achustar" - #define MSG_PAUSE_PRINT "Pausar Impresion" - #define MSG_RESUME_PRINT "Continar Impresion" + #define MSG_PAUSE_PRINT "Pausar impresion" + #define MSG_RESUME_PRINT "Contin. impresion" #define MSG_STOP_PRINT "Detener Impresion" #define MSG_CARD_MENU "Menu de SD" - #define MSG_NO_CARD "No i hai Tarcheta SD" + #define MSG_NO_CARD "No i hai tarcheta" #define MSG_DWELL "Reposo..." - #define MSG_USERWAIT "Asperando Ordines..." - #define MSG_RESUMING "Continando Impresion" + #define MSG_USERWAIT "Asperan. ordines" + #define MSG_RESUMING "Contin. impresion" #define MSG_NO_MOVE "Sin movimiento" - #define MSG_KILLED "ATURADA D'EMERCHENCIA. " + #define MSG_KILLED "ATURADA D'EMERCH." #define MSG_STOPPED "ATURADA." #define MSG_CONTROL_RETRACT "Retraer mm" #define MSG_CONTROL_RETRACTF "Retraer F" @@ -1803,8 +1823,8 @@ #define MSG_CONTROL_RETRACT_RECOVERF "DesRet F" #define MSG_AUTORETRACT "AutoRetr." #define MSG_FILAMENTCHANGE "Cambear" - #define MSG_INIT_SDCARD "Encetando. Tarcheta-SD" - #define MSG_CNG_SDCARD "Cambiar Tarcheta-SD" + #define MSG_INIT_SDCARD "Encetan. tarcheta" + #define MSG_CNG_SDCARD "Cambiar tarcheta" #define MSG_RECTRACT_WIDE "Retraer" #define MSG_TEMPERATURE_WIDE "Temperatura" #define MSG_TEMPERATURE_RTN "Temperatura" @@ -1813,9 +1833,8 @@ #define MSG_PREPARE_ALT "Preparar" #define MSG_CONTROL_ARROW "Control" #define MSG_RETRACT_ARROW "Retraer" - #define MSG_PART_RELEASE "Desacople Parcial" #define MSG_STEPPER_RELEASED "Desacoplada." - #define MSG_ZPROBE_OUT "ZProbe Outside Bed" + #define MSG_ZPROBE_OUT "Z probe out. bed" #define MSG_POSITION_UNKNOWN "Home X/Y before Z" #define MSG_ZPROBE_ZOFFSET "Z Offset" #define MSG_BABYSTEP_X "Babystep X" @@ -1832,7 +1851,6 @@ #define MSG_BROWNOUT_RESET " Reset por Voltaje Incorrecto" #define MSG_WATCHDOG_RESET " Reset por Bloqueo" #define MSG_SOFTWARE_RESET " Reset por Software" - #define MSG_MARLIN "Marlin " #define MSG_AUTHOR " | Autor: " #define MSG_CONFIGURATION_VER " Zaguer esvielle: " #define MSG_FREE_MEMORY " Memoria libre: " @@ -1897,6 +1915,7 @@ #define MSG_BABYSTEPPING_X "Babystepping X" #define MSG_BABYSTEPPING_Y "Babystepping Y" #define MSG_BABYSTEPPING_Z "Babystepping Z" + #define MSG_SERIAL_ERROR_MENU_STRUCTURE "Error in menu structure" #endif From d6c5c503d4d72a6d08314967f2996e83d1b05f4d Mon Sep 17 00:00:00 2001 From: whosawhatsis Date: Wed, 12 Feb 2014 12:59:50 -0800 Subject: [PATCH 06/37] correct feedrate units in comments for M207/M208 --- Marlin/Marlin_main.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index 5f8f86f78..ab14f9907 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -137,8 +137,8 @@ // M204 - Set default acceleration: S normal moves T filament only moves (M204 S3000 T7000) im mm/sec^2 also sets minimum segment time in ms (B20000) to prevent buffer underruns and M20 minimum feedrate // M205 - advanced settings: minimum travel speed S=while printing T=travel only, B=minimum segment time X= maximum xy jerk, Z=maximum Z jerk, E=maximum E jerk // M206 - set additional homeing offset -// M207 - set retract length S[positive mm] F[feedrate mm/sec] Z[additional zlift/hop], stays in mm regardless of M200 setting -// M208 - set recover=unretract length S[positive mm surplus to the M207 S*] F[feedrate mm/sec] +// M207 - set retract length S[positive mm] F[feedrate mm/min] Z[additional zlift/hop], stays in mm regardless of M200 setting +// M208 - set recover=unretract length S[positive mm surplus to the M207 S*] F[feedrate mm/min] // M209 - S<1=true/0=false> enable automatic retract detect if the slicer did not support G10/11: every normal extrude-only move will be classified as retract depending on the direction. // M218 - set hotend offset (in mm): T X Y // M220 S- set speed factor override percentage From 6e433985094874f3c3fbf70becd577b8ea2115eb Mon Sep 17 00:00:00 2001 From: whosawhatsis Date: Wed, 12 Feb 2014 13:01:19 -0800 Subject: [PATCH 07/37] G10/G11 bugfixes Previous version was broken by using G92 E0 between retract and recover. --- Marlin/Marlin_main.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index ab14f9907..7c7a0b044 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -1114,7 +1114,9 @@ void process_commands() destination[Y_AXIS]=current_position[Y_AXIS]; destination[Z_AXIS]=current_position[Z_AXIS]; current_position[Z_AXIS]-=retract_zlift; - destination[E_AXIS]=current_position[E_AXIS]-retract_length/volumetric_multiplier[active_extruder]; + destination[E_AXIS]=current_position[E_AXIS]; + current_position[E_AXIS]+=retract_length/volumetric_multiplier[active_extruder]; + plan_set_e_position(current_position[E_AXIS]); float oldFeedrate = feedrate; feedrate=retract_feedrate; retracted=true; @@ -1130,7 +1132,9 @@ void process_commands() destination[Y_AXIS]=current_position[Y_AXIS]; destination[Z_AXIS]=current_position[Z_AXIS]; current_position[Z_AXIS]+=retract_zlift; - destination[E_AXIS]=current_position[E_AXIS]+(retract_length+retract_recover_length)/volumetric_multiplier[active_extruder]; + destination[E_AXIS]=current_position[E_AXIS]; + current_position[E_AXIS]-=(retract_length+retract_recover_length)/volumetric_multiplier[active_extruder]; + plan_set_e_position(current_position[E_AXIS]); float oldFeedrate = feedrate; feedrate=retract_recover_feedrate; retracted=false; From 9b7d87e885d8add20cae536e26d8d0317e1dea1f Mon Sep 17 00:00:00 2001 From: daid Date: Thu, 13 Feb 2014 10:50:17 +0100 Subject: [PATCH 08/37] Remove duplicate contrast define. --- Marlin/language.h | 1 - 1 file changed, 1 deletion(-) diff --git a/Marlin/language.h b/Marlin/language.h index ab3bf6355..4b00d19c2 100644 --- a/Marlin/language.h +++ b/Marlin/language.h @@ -165,7 +165,6 @@ #define MSG_BABYSTEP_Y "Babystep Y" #define MSG_BABYSTEP_Z "Babystep Z" #define MSG_ENDSTOP_ABORT "Endstop abort" - #define MSG_CONTRAST "Contrast" // Serial Console Messages From 71bb3a81334e2948caa4fade4b61f28aec0d60f9 Mon Sep 17 00:00:00 2001 From: daid Date: Thu, 13 Feb 2014 10:53:46 +0100 Subject: [PATCH 09/37] Add comments for Ultimainboard 2.0 configuration. --- Marlin/Configuration.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h index 696b4ca9d..6a2c43ba3 100644 --- a/Marlin/Configuration.h +++ b/Marlin/Configuration.h @@ -55,6 +55,7 @@ // 68 = Azteeg X3 Pro // 7 = Ultimaker // 71 = Ultimaker (Older electronics. Pre 1.5.4. This is rare) +// 72 = Ultimainboard 2.x (Uses TEMP_SENSOR 20) // 77 = 3Drag Controller // 8 = Teensylu // 80 = Rumba @@ -114,6 +115,7 @@ // 8 is 100k 0603 SMD Vishay NTCS0603E3104FXT (4.7k pullup) // 9 is 100k GE Sensing AL03006-58.2K-97-G1 (4.7k pullup) // 10 is 100k RS thermistor 198-961 (4.7k pullup) +// 20 is the PT100 circuit found in the Ultimainboard V2.x // 60 is 100k Maker's Tool Works Kapton Bed Thermister // // 1k ohm pullup tables - This is not normal, you would have to have changed out your 4.7k for 1k From d16a770855fc6faef8e73470c81e610dd5ab3d4d Mon Sep 17 00:00:00 2001 From: daid Date: Thu, 13 Feb 2014 10:57:03 +0100 Subject: [PATCH 10/37] Ultimainboard 2.x does not has a PS_ON pin. --- Marlin/pins.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Marlin/pins.h b/Marlin/pins.h index 52ca2844d..995fa54c5 100644 --- a/Marlin/pins.h +++ b/Marlin/pins.h @@ -1381,7 +1381,7 @@ #define SDSS 53 #define LED_PIN 8 #define FAN_PIN 7 -#define PS_ON_PIN 12 +#define PS_ON_PIN -1 #define KILL_PIN -1 #define SUICIDE_PIN -1 //PIN that has to be turned on right after start, to keep power flowing. #define SAFETY_TRIGGERED_PIN 28 //PIN to detect the safety circuit has triggered From 46f5bea19f1cc2f6f96a0bb3d24b6ff13a0eb32a Mon Sep 17 00:00:00 2001 From: daid Date: Thu, 13 Feb 2014 11:17:33 +0100 Subject: [PATCH 11/37] Add configurable beep for UltiPanel. --- Marlin/ultralcd_implementation_hitachi_HD44780.h | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/Marlin/ultralcd_implementation_hitachi_HD44780.h b/Marlin/ultralcd_implementation_hitachi_HD44780.h index afc9c5c47..ccb820b49 100644 --- a/Marlin/ultralcd_implementation_hitachi_HD44780.h +++ b/Marlin/ultralcd_implementation_hitachi_HD44780.h @@ -718,13 +718,23 @@ static void lcd_implementation_quick_feedback() #endif #elif defined(BEEPER) && BEEPER > -1 SET_OUTPUT(BEEPER); + #if !defined(LCD_FEEDBACK_FREQUENCY_HZ) || !defined(LCD_FEEDBACK_FREQUENCY_DURATION_MS) for(int8_t i=0;i<10;i++) { WRITE(BEEPER,HIGH); delayMicroseconds(100); WRITE(BEEPER,LOW); delayMicroseconds(100); - } + } + #else + for(int8_t i=0;i<(LCD_FEEDBACK_FREQUENCY_DURATION_MS / (1000 / LCD_FEEDBACK_FREQUENCY_HZ));i++) + { + WRITE(BEEPER,HIGH); + delayMicroseconds(1000000 / LCD_FEEDBACK_FREQUENCY_HZ / 2); + WRITE(BEEPER,LOW); + delayMicroseconds(1000000 / LCD_FEEDBACK_FREQUENCY_HZ / 2); + } + #endif #endif } From c31bb2b7ad934a0ed4485ebad5376924bb336efe Mon Sep 17 00:00:00 2001 From: daid Date: Thu, 13 Feb 2014 11:48:55 +0100 Subject: [PATCH 12/37] Only show the ZProbe offset when auto-bed-leveling is enabled. --- Marlin/ultralcd.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Marlin/ultralcd.cpp b/Marlin/ultralcd.cpp index 269becf8e..d3f4e32ca 100644 --- a/Marlin/ultralcd.cpp +++ b/Marlin/ultralcd.cpp @@ -705,8 +705,10 @@ static void lcd_control_temperature_preheat_abs_settings_menu() static void lcd_control_motion_menu() { START_MENU(); - MENU_ITEM(back, MSG_CONTROL, lcd_control_menu); - MENU_ITEM_EDIT(float32, MSG_ZPROBE_ZOFFSET, &zprobe_zoffset, 0.5, 50); + MENU_ITEM(back, MSG_CONTROL, lcd_control_menu); +#ifdef ENABLE_AUTO_BED_LEVELING + MENU_ITEM_EDIT(float32, MSG_ZPROBE_ZOFFSET, &zprobe_zoffset, 0.5, 50); +#endif MENU_ITEM_EDIT(float5, MSG_ACC, &acceleration, 500, 99000); MENU_ITEM_EDIT(float3, MSG_VXY_JERK, &max_xy_jerk, 1, 990); MENU_ITEM_EDIT(float52, MSG_VZ_JERK, &max_z_jerk, 0.1, 990); From 7dcd350941fa139ecab43b7f49c99d3e565849df Mon Sep 17 00:00:00 2001 From: nothinman Date: Thu, 13 Feb 2014 11:58:14 +0000 Subject: [PATCH 13/37] A few changes to Russian, changed LCD strings to be <=17 characters. --- Marlin/language.h | 156 +++++++++++++++++++++++----------------------- 1 file changed, 78 insertions(+), 78 deletions(-) diff --git a/Marlin/language.h b/Marlin/language.h index 4b00d19c2..2126f7fb5 100644 --- a/Marlin/language.h +++ b/Marlin/language.h @@ -999,21 +999,21 @@ #define WELCOME_MSG MACHINE_NAME " Готов." #define MSG_SD_INSERTED "Карта вставлена" #define MSG_SD_REMOVED "Карта извлечена" - #define MSG_MAIN " Меню \003" - #define MSG_AUTOSTART " Автостарт " - #define MSG_DISABLE_STEPPERS " Выключить двигатели" - #define MSG_AUTO_HOME " Парковка " - #define MSG_SET_ORIGIN " Запомнить ноль " - #define MSG_PREHEAT_PLA " Преднагрев PLA " - #define MSG_PREHEAT_PLA_SETTINGS " Настр. преднагр.PLA" - #define MSG_PREHEAT_ABS " Преднагрев ABS " - #define MSG_PREHEAT_ABS_SETTINGS " Настр. преднагр.ABS" - #define MSG_COOLDOWN " Охлаждение " + #define MSG_MAIN "Меню \003" + #define MSG_AUTOSTART "Автостарт" + #define MSG_DISABLE_STEPPERS "Выкл. двигатели" + #define MSG_AUTO_HOME "Парковка" + #define MSG_SET_ORIGIN "Запомнить ноль" + #define MSG_PREHEAT_PLA "Преднагрев PLA" + #define MSG_PREHEAT_PLA_SETTINGS "Настройки PLA" + #define MSG_PREHEAT_ABS "Преднагрев ABS" + #define MSG_PREHEAT_ABS_SETTINGS "Настройки ABS" + #define MSG_COOLDOWN "Охлаждение" #define MSG_SWITCH_PS_ON "Switch Power On" #define MSG_SWITCH_PS_OFF "Switch Power Off" - #define MSG_EXTRUDE " Экструзия " - #define MSG_RETRACT " Откат" - #define MSG_MOVE_AXIS " Движение по осям \x7E" + #define MSG_EXTRUDE "Экструзия" + #define MSG_RETRACT "Откат" + #define MSG_MOVE_AXIS "Движение по осям" #define MSG_MOVE_X "Move X" #define MSG_MOVE_Y "Move Y" #define MSG_MOVE_Z "Move Z" @@ -1021,80 +1021,80 @@ #define MSG_MOVE_01MM "Move 0.1mm" #define MSG_MOVE_1MM "Move 1mm" #define MSG_MOVE_10MM "Move 10mm" - #define MSG_SPEED " Скорость:" - #define MSG_NOZZLE " \002 Фильера:" - #define MSG_NOZZLE1 " \002 Фильера2:" - #define MSG_NOZZLE2 " \002 Фильера3:" - #define MSG_BED " \002 Кровать:" - #define MSG_FAN_SPEED " Куллер:" - #define MSG_FLOW " Поток:" - #define MSG_CONTROL " Настройки \003" - #define MSG_MIN " \002 Минимум:" - #define MSG_MAX " \002 Максимум:" - #define MSG_FACTOR " \002 Фактор:" - #define MSG_AUTOTEMP " Autotemp:" + #define MSG_SPEED "Скорость:" + #define MSG_NOZZLE "\002 Фильера:" + #define MSG_NOZZLE1 "\002 Фильера2:" + #define MSG_NOZZLE2 "\002 Фильера3:" + #define MSG_BED "\002 Кровать:" + #define MSG_FAN_SPEED "Куллер:" + #define MSG_FLOW "Поток:" + #define MSG_CONTROL "Настройки \003" + #define MSG_MIN "\002 Минимум:" + #define MSG_MAX "\002 Максимум:" + #define MSG_FACTOR "\002 Фактор:" + #define MSG_AUTOTEMP "Autotemp:" #define MSG_ON "Вкл. " #define MSG_OFF "Выкл. " - #define MSG_PID_P " PID-P: " - #define MSG_PID_I " PID-I: " - #define MSG_PID_D " PID-D: " - #define MSG_PID_C " PID-C: " - #define MSG_ACC " Acc:" - #define MSG_VXY_JERK " Vxy-jerk: " + #define MSG_PID_P "PID-P: " + #define MSG_PID_I "PID-I: " + #define MSG_PID_D "PID-D: " + #define MSG_PID_C "PID-C: " + #define MSG_ACC "Acc:" + #define MSG_VXY_JERK "Vxy-jerk: " #define MSG_VZ_JERK "Vz-jerk" #define MSG_VE_JERK "Ve-jerk" - #define MSG_VMAX " Vmax " + #define MSG_VMAX "Vmax " #define MSG_X "x:" #define MSG_Y "y:" #define MSG_Z "z:" #define MSG_E "e:" - #define MSG_VMIN " Vmin:" - #define MSG_VTRAV_MIN " VTrav min:" - #define MSG_AMAX " Amax " - #define MSG_A_RETRACT " A-retract:" - #define MSG_XSTEPS " X шаг/mm:" - #define MSG_YSTEPS " Y шаг/mm:" - #define MSG_ZSTEPS " Z шаг/mm:" - #define MSG_ESTEPS " E шаг/mm:" - #define MSG_RECTRACT " Откат подачи \x7E" - #define MSG_TEMPERATURE " Температура \x7E" - #define MSG_MOTION " Скорости \x7E" - #define MSG_CONTRAST "LCD contrast" - #define MSG_STORE_EPROM " Сохранить настройки" - #define MSG_LOAD_EPROM " Загрузить настройки" - #define MSG_RESTORE_FAILSAFE " Сброс настроек " - #define MSG_REFRESH "\004Обновить " - #define MSG_WATCH " Обзор \003" - #define MSG_PREPARE " Действия \x7E" - #define MSG_TUNE " Настройки \x7E" - #define MSG_PAUSE_PRINT " Пауза печати \x7E" - #define MSG_RESUME_PRINT " Продолжить печать \x7E" - #define MSG_STOP_PRINT " Остановить печать \x7E" - #define MSG_CARD_MENU " Меню карты \x7E" - #define MSG_NO_CARD " Нет карты" + #define MSG_VMIN "Vmin:" + #define MSG_VTRAV_MIN "VTrav min:" + #define MSG_AMAX "Amax " + #define MSG_A_RETRACT "A-retract:" + #define MSG_XSTEPS "X шаг/mm:" + #define MSG_YSTEPS "Y шаг/mm:" + #define MSG_ZSTEPS "Z шаг/mm:" + #define MSG_ESTEPS "E шаг/mm:" + #define MSG_RECTRACT "Откат подачи \x7E" + #define MSG_TEMPERATURE "Температура \x7E" + #define MSG_MOTION "Скорости \x7E" + #define MSG_CONTRAST "LCD contrast" + #define MSG_STORE_EPROM "Сохранить в EPROM" + #define MSG_LOAD_EPROM "Загруз. из EPROM" + #define MSG_RESTORE_FAILSAFE "Сброс настроек" + #define MSG_REFRESH "\004Обновить" + #define MSG_WATCH "Обзор \003" + #define MSG_PREPARE "Действия \x7E" + #define MSG_TUNE "Настройки \x7E" + #define MSG_RESUME_PRINT "Продолжить печать" + #define MSG_RESUME_PRINT "Продолжить печать" + #define MSG_STOP_PRINT "Остановить печать" + #define MSG_CARD_MENU "Меню карты \x7E" + #define MSG_NO_CARD "Нет карты" #define MSG_DWELL "Сон..." - #define MSG_USERWAIT "Нажмите для продолж." - #define MSG_RESUMING "Resuming print" - #define MSG_NO_MOVE "Нет движения. " - #define MSG_KILLED "УБИТО. " - #define MSG_STOPPED "ОСТАНОВЛЕНО. " - #define MSG_CONTROL_RETRACT " Откат mm:" - #define MSG_CONTROL_RETRACTF " Откат F:" - #define MSG_CONTROL_RETRACT_ZLIFT " Прыжок mm:" - #define MSG_CONTROL_RETRACT_RECOVER " Возврат +mm:" - #define MSG_CONTROL_RETRACT_RECOVERF " Возврат F:" - #define MSG_AUTORETRACT " АвтоОткат:" - #define MSG_FILAMENTCHANGE "Change filament" - #define MSG_INIT_SDCARD "Init. SD-Card" - #define MSG_CNG_SDCARD "Change SD-Card" - #define MSG_ZPROBE_OUT "Z probe out. bed" - #define MSG_POSITION_UNKNOWN "Home X/Y before Z" - #define MSG_ZPROBE_ZOFFSET "Z Offset" - #define MSG_BABYSTEP_X "Babystep X" - #define MSG_BABYSTEP_Y "Babystep Y" - #define MSG_BABYSTEP_Z "Babystep Z" - #define MSG_ENDSTOP_ABORT "Endstop abort" - #define MSG_CONTRAST "Contrast" + #define MSG_USERWAIT "Ожиданиие" + #define MSG_RESUMING "Resuming print" + #define MSG_NO_MOVE "Нет движения." + #define MSG_KILLED "УБИТО." + #define MSG_STOPPED "ОСТАНОВЛЕНО." + #define MSG_CONTROL_RETRACT "Откат mm:" + #define MSG_CONTROL_RETRACTF "Откат F:" + #define MSG_CONTROL_RETRACT_ZLIFT "Прыжок mm:" + #define MSG_CONTROL_RETRACT_RECOVER "Возврат +mm:" + #define MSG_CONTROL_RETRACT_RECOVERF "Возврат F:" + #define MSG_AUTORETRACT "АвтоОткат:" + #define MSG_FILAMENTCHANGE "Change filament" + #define MSG_INIT_SDCARD "Init. SD-Card" + #define MSG_CNG_SDCARD "Change SD-Card" + #define MSG_ZPROBE_OUT "Z probe out. bed" + #define MSG_POSITION_UNKNOWN "Home X/Y before Z" + #define MSG_ZPROBE_ZOFFSET "Z Offset" + #define MSG_BABYSTEP_X "Babystep X" + #define MSG_BABYSTEP_Y "Babystep Y" + #define MSG_BABYSTEP_Z "Babystep Z" + #define MSG_ENDSTOP_ABORT "Endstop abort" + #define MSG_CONTRAST "Contrast" // Serial Console Messages From 831fc2a95257d58cddd458d19e57065745fd4024 Mon Sep 17 00:00:00 2001 From: Josef Pavlik Date: Fri, 14 Feb 2014 12:15:31 +0100 Subject: [PATCH 14/37] Pt100 and Pt1000 temperature sensors handling --- Marlin/Configuration.h | 5 +++ Marlin/thermistortables.h | 64 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 69 insertions(+) diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h index 33a1c3a16..5d235bc45 100644 --- a/Marlin/Configuration.h +++ b/Marlin/Configuration.h @@ -120,6 +120,11 @@ // 51 is 100k thermistor - EPCOS (1k pullup) // 52 is 200k thermistor - ATC Semitec 204GT-2 (1k pullup) // 55 is 100k thermistor - ATC Semitec 104GT-2 (Used in ParCan & J-Head) (1k pullup) +// +// 1047 is Pt1000 with 4k7 pullup +// 1010 is Pt1000 with 1k pullup (non standard) +// 147 is Pt100 with 4k7 pullup +// 110 is Pt100 with 1k pullup (non standard) #define TEMP_SENSOR_0 -1 #define TEMP_SENSOR_1 -1 diff --git a/Marlin/thermistortables.h b/Marlin/thermistortables.h index 58a2466fe..1d2b3ca65 100644 --- a/Marlin/thermistortables.h +++ b/Marlin/thermistortables.h @@ -857,6 +857,70 @@ const short temptable_60[][2] PROGMEM = { }; #endif +// Pt1000 and Pt100 handling +// +// Rt=R0*(1+a*T+b*T*T) [for T>0] +// a=3.9083E-3, b=-5.775E-7 + +#define PtA 3.9083E-3 +#define PtB -5.775E-7 +#define PtRt(T,R0) ((R0)*(1.0+(PtA)*(T)+(PtB)*(T)*(T))) +#define PtAdVal(T,R0,Rup) (short)(1024/(Rup/PtRt(T,R0)+1)) +#define PtLine(T,R0,Rup) { PtAdVal(T,R0,Rup)*OVERSAMPLENR, T }, + +#if (THERMISTORHEATER_0 == 110) || (THERMISTORHEATER_1 == 110) || (THERMISTORHEATER_2 == 110) || (THERMISTORBED == 110) // Pt100 with 1k0 pullup +const short temptable_110[][2] PROGMEM = { +// only few values are needed as the curve is very flat + PtLine(0,100,1000) + PtLine(50,100,1000) + PtLine(100,100,1000) + PtLine(150,100,1000) + PtLine(200,100,1000) + PtLine(250,100,1000) + PtLine(300,100,1000) +}; +#endif +#if (THERMISTORHEATER_0 == 147) || (THERMISTORHEATER_1 == 147) || (THERMISTORHEATER_2 == 147) || (THERMISTORBED == 147) // Pt100 with 4k7 pullup +const short temptable_147[][2] PROGMEM = { +// only few values are needed as the curve is very flat + PtLine(0,100,4700) + PtLine(50,100,4700) + PtLine(100,100,4700) + PtLine(150,100,4700) + PtLine(200,100,4700) + PtLine(250,100,4700) + PtLine(300,100,4700) +}; +#endif +#if (THERMISTORHEATER_0 == 1010) || (THERMISTORHEATER_1 == 1010) || (THERMISTORHEATER_2 == 1010) || (THERMISTORBED == 1010) // Pt1000 with 1k0 pullup +const short temptable_1010[][2] PROGMEM = { + PtLine(0,1000,1000) + PtLine(25,1000,1000) + PtLine(50,1000,1000) + PtLine(75,1000,1000) + PtLine(100,1000,1000) + PtLine(125,1000,1000) + PtLine(150,1000,1000) + PtLine(175,1000,1000) + PtLine(200,1000,1000) + PtLine(225,1000,1000) + PtLine(250,1000,1000) + PtLine(275,1000,1000) + PtLine(300,1000,1000) +}; +#endif +#if (THERMISTORHEATER_0 == 1047) || (THERMISTORHEATER_1 == 1047) || (THERMISTORHEATER_2 == 1047) || (THERMISTORBED == 1047) // Pt1000 with 4k7 pullup +const short temptable_1047[][2] PROGMEM = { +// only few values are needed as the curve is very flat + PtLine(0,1000,4700) + PtLine(50,1000,4700) + PtLine(100,1000,4700) + PtLine(150,1000,4700) + PtLine(200,1000,4700) + PtLine(250,1000,4700) + PtLine(300,1000,4700) +}; +#endif #define _TT_NAME(_N) temptable_ ## _N #define TT_NAME(_N) _TT_NAME(_N) From 477b6fa1df30d1ff6021df103d5bb5efef31ee4a Mon Sep 17 00:00:00 2001 From: Josef Pavlik Date: Mon, 3 Feb 2014 11:30:12 +0100 Subject: [PATCH 15/37] move engaged from lcd console refreshes power off timeout --- Marlin/Marlin.h | 2 ++ Marlin/Marlin_main.cpp | 4 ++++ Marlin/ultralcd.cpp | 3 +++ 3 files changed, 9 insertions(+) diff --git a/Marlin/Marlin.h b/Marlin/Marlin.h index af3325be4..4d6b22728 100644 --- a/Marlin/Marlin.h +++ b/Marlin/Marlin.h @@ -189,6 +189,8 @@ void enquecommand_P(const char *cmd); //put an ascii command at the end of the c void prepare_arc_move(char isclockwise); void clamp_to_software_endstops(float target[3]); +void refresh_cmd_timeout(void); + #ifdef FAST_PWM_FAN void setPwmFrequency(uint8_t pin, int val); #endif diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index 920aed00c..bf13f8e62 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -1046,6 +1046,10 @@ static void homeaxis(int axis) { } } #define HOMEAXIS(LETTER) homeaxis(LETTER##_AXIS) ++void refresh_cmd_timeout(void) +{ + previous_millis_cmd = millis(); +} void process_commands() { diff --git a/Marlin/ultralcd.cpp b/Marlin/ultralcd.cpp index 77be8e8e3..acbc8d6e4 100644 --- a/Marlin/ultralcd.cpp +++ b/Marlin/ultralcd.cpp @@ -460,6 +460,7 @@ static void lcd_move_x() { if (encoderPosition != 0) { + refresh_cmd_timeout(); current_position[X_AXIS] += float((int)encoderPosition) * move_menu_scale; if (min_software_endstops && current_position[X_AXIS] < X_MIN_POS) current_position[X_AXIS] = X_MIN_POS; @@ -489,6 +490,7 @@ static void lcd_move_y() { if (encoderPosition != 0) { + refresh_cmd_timeout(); current_position[Y_AXIS] += float((int)encoderPosition) * move_menu_scale; if (min_software_endstops && current_position[Y_AXIS] < Y_MIN_POS) current_position[Y_AXIS] = Y_MIN_POS; @@ -518,6 +520,7 @@ static void lcd_move_z() { if (encoderPosition != 0) { + refresh_cmd_timeout(); current_position[Z_AXIS] += float((int)encoderPosition) * move_menu_scale; if (min_software_endstops && current_position[Z_AXIS] < Z_MIN_POS) current_position[Z_AXIS] = Z_MIN_POS; From ab0d3c4fb3c408fcb91e97ee5eb2417129cbb5d0 Mon Sep 17 00:00:00 2001 From: Mark Hanford Date: Fri, 14 Feb 2014 11:48:24 +0000 Subject: [PATCH 16/37] Various typo fixes - only in comments, no code changes. --- Marlin/Configuration.h | 44 +++++++++++++++++++------------------- Marlin/Configuration_adv.h | 28 ++++++++++++------------ 2 files changed, 36 insertions(+), 36 deletions(-) diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h index 6a2c43ba3..752028ec1 100644 --- a/Marlin/Configuration.h +++ b/Marlin/Configuration.h @@ -8,7 +8,7 @@ //=========================================================================== //============================= DELTA Printer =============================== //=========================================================================== -// For a Delta printer rplace the configuration files wilth the files in the +// For a Delta printer replace the configuration files with the files in the // example_configurations/delta directory. // @@ -68,7 +68,7 @@ // 702= Minitronics v1.0 // 90 = Alpha OMCA board // 91 = Final OMCA board -// 301 = Rambo +// 301= Rambo // 21 = Elefu Ra Board (v3) #ifndef MOTHERBOARD @@ -91,7 +91,7 @@ #define POWER_SUPPLY 1 -// Define this to have the electronics keep the powersupply off on startup. If you don't know what this is leave it. +// Define this to have the electronics keep the power supply off on startup. If you don't know what this is leave it. // #define PS_DEFAULT_OFF //=========================================================================== @@ -106,7 +106,7 @@ // 0 is not used // 1 is 100k thermistor - best choice for EPCOS 100k (4.7k pullup) // 2 is 200k thermistor - ATC Semitec 204GT-2 (4.7k pullup) -// 3 is mendel-parts thermistor (4.7k pullup) +// 3 is Mendel-parts thermistor (4.7k pullup) // 4 is 10k thermistor !! do not use it for a hotend. It gives bad resolution at high temp. !! // 5 is 100K thermistor - ATC Semitec 104GT-2 (Used in ParCan & J-Head) (4.7k pullup) // 6 is 100k EPCOS - Not as accurate as table 1 (created using a fluke thermocouple) (4.7k pullup) @@ -116,7 +116,7 @@ // 9 is 100k GE Sensing AL03006-58.2K-97-G1 (4.7k pullup) // 10 is 100k RS thermistor 198-961 (4.7k pullup) // 20 is the PT100 circuit found in the Ultimainboard V2.x -// 60 is 100k Maker's Tool Works Kapton Bed Thermister +// 60 is 100k Maker's Tool Works Kapton Bed Thermistor // // 1k ohm pullup tables - This is not normal, you would have to have changed out your 4.7k for 1k // (but gives greater accuracy and more stable PID) @@ -177,13 +177,13 @@ #define K1 0.95 //smoothing factor within the PID #define PID_dT ((OVERSAMPLENR * 8.0)/(F_CPU / 64.0 / 256.0)) //sampling period of the temperature routine -// If you are using a preconfigured hotend then you can use one of the value sets by uncommenting it +// If you are using a pre-configured hotend then you can use one of the value sets by uncommenting it // Ultimaker #define DEFAULT_Kp 22.2 #define DEFAULT_Ki 1.08 #define DEFAULT_Kd 114 -// Makergear +// MakerGear // #define DEFAULT_Kp 7.0 // #define DEFAULT_Ki 0.1 // #define DEFAULT_Kd 12 @@ -252,7 +252,7 @@ #define ENDSTOPPULLUPS // Comment this out (using // at the start of the line) to disable the endstop pullup resistors #ifndef ENDSTOPPULLUPS - // fine Enstop settings: Individual Pullups. will be ignored if ENDSTOPPULLUPS is defined + // fine endstop settings: Individual pullups. will be ignored if ENDSTOPPULLUPS is defined // #define ENDSTOPPULLUP_XMAX // #define ENDSTOPPULLUP_YMAX // #define ENDSTOPPULLUP_ZMAX @@ -336,7 +336,7 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of #define BACK_PROBE_BED_POSITION 180 #define FRONT_PROBE_BED_POSITION 20 - // these are the offsets to the prob relative to the extruder tip (Hotend - Probe) + // these are the offsets to the probe relative to the extruder tip (Hotend - Probe) #define X_PROBE_OFFSET_FROM_EXTRUDER -25 #define Y_PROBE_OFFSET_FROM_EXTRUDER -29 #define Z_PROBE_OFFSET_FROM_EXTRUDER -12.35 @@ -357,7 +357,7 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of // #define PROBE_SERVO_DEACTIVATION_DELAY 300 -//If you have enabled the Bed Auto Levelling and are using the same Z Probe for Z Homing, +//If you have enabled the Bed Auto Leveling and are using the same Z Probe for Z Homing, //it is highly recommended you let this Z_SAFE_HOMING enabled!!! #define Z_SAFE_HOMING // This feature is meant to avoid Z homing with probe outside the bed area. @@ -391,7 +391,7 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of //#define BED_CENTER_AT_0_0 // If defined, the center of the bed is at (X=0, Y=0) //Manual homing switch locations: -// For deltabots this means top and center of the cartesian print volume. +// For deltabots this means top and center of the Cartesian print volume. #define MANUAL_X_HOME_POS 0 #define MANUAL_Y_HOME_POS 0 #define MANUAL_Z_HOME_POS 0 @@ -405,7 +405,7 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of #define DEFAULT_AXIS_STEPS_PER_UNIT {78.7402,78.7402,200.0*8/3,760*1.1} // default steps per unit for Ultimaker #define DEFAULT_MAX_FEEDRATE {500, 500, 5, 25} // (mm/sec) -#define DEFAULT_MAX_ACCELERATION {9000,9000,100,10000} // X, Y, Z, E maximum start speed for accelerated moves. E default values are good for skeinforge 40+, for older versions raise them a lot. +#define DEFAULT_MAX_ACCELERATION {9000,9000,100,10000} // X, Y, Z, E maximum start speed for accelerated moves. E default values are good for Skeinforge 40+, for older versions raise them a lot. #define DEFAULT_ACCELERATION 3000 // X, Y, Z and E max acceleration in mm/s^2 for printing moves #define DEFAULT_RETRACT_ACCELERATION 3000 // X, Y, Z and E max acceleration in mm/s^2 for retracts @@ -426,11 +426,11 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of //=========================================================================== // EEPROM -// the microcontroller can store settings in the EEPROM, e.g. max velocity... -// M500 - stores paramters in EEPROM +// The microcontroller can store settings in the EEPROM, e.g. max velocity... +// M500 - stores parameters in EEPROM // M501 - reads parameters from EEPROM (if you need reset them after you changed them temporarily). // M502 - reverts to the default "factory settings". You still need to store them in EEPROM afterwards if you want to. -//define this to enable eeprom support +//define this to enable EEPROM support //#define EEPROM_SETTINGS //to disable EEPROM Serial responses and decrease program space by ~1700 byte: comment this out: // please keep turned on if you can. @@ -446,14 +446,14 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of #define ABS_PREHEAT_FAN_SPEED 255 // Insert Value between 0 and 255 //LCD and SD support -//#define ULTRA_LCD //general lcd support, also 16x2 +//#define ULTRA_LCD //general LCD support, also 16x2 //#define DOGLCD // Support for SPI LCD 128x64 (Controller ST7565R graphic Display Family) //#define SDSUPPORT // Enable SD Card Support in Hardware Console //#define SDSLOW // Use slower SD transfer mode (not normally needed - uncomment if you're getting volume init error) //#define ENCODER_PULSES_PER_STEP 1 // Increase if you have a high resolution encoder //#define ENCODER_STEPS_PER_MENU_ITEM 5 // Set according to ENCODER_PULSES_PER_STEP or your liking -//#define ULTIMAKERCONTROLLER //as available from the ultimaker online store. -//#define ULTIPANEL //the ultipanel as on thingiverse +//#define ULTIMAKERCONTROLLER //as available from the Ultimaker online store. +//#define ULTIPANEL //the UltiPanel as on Thingiverse //#define LCD_FEEDBACK_FREQUENCY_HZ 1000 // this is the tone frequency the buzzer plays when on UI feedback. ie Screen Click //#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 100 // the duration the buzzer plays the UI feedback sound. ie Screen Click @@ -578,7 +578,7 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of // https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/schematics#!shiftregister-connection //#define SR_LCD #ifdef SR_LCD - #define SR_LCD_2W_NL // Non latching 2 wire shiftregister + #define SR_LCD_2W_NL // Non latching 2 wire shift register //#define NEWPANEL #endif @@ -594,7 +594,7 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of #define LCD_WIDTH 20 #define LCD_HEIGHT 4 #endif -#else //no panel but just lcd +#else //no panel but just LCD #ifdef ULTRA_LCD #ifdef DOGLCD // Change number of lines to match the 128x64 graphics display #define LCD_WIDTH 20 @@ -616,8 +616,8 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of // Increase the FAN pwm frequency. Removes the PWM noise but increases heating in the FET/Arduino //#define FAST_PWM_FAN -// Temperature status leds that display the hotend and bet temperature. -// If alle hotends and bed temperature and temperature setpoint are < 54C then the BLUE led is on. +// Temperature status LEDs that display the hotend and bet temperature. +// If all hotends and bed temperature and temperature setpoint are < 54C then the BLUE led is on. // Otherwise the RED led is on. There is 1C hysteresis. //#define TEMP_STAT_LEDS diff --git a/Marlin/Configuration_adv.h b/Marlin/Configuration_adv.h index dc986fae4..67cbfcc80 100644 --- a/Marlin/Configuration_adv.h +++ b/Marlin/Configuration_adv.h @@ -11,7 +11,7 @@ #define BED_CHECK_INTERVAL 5000 //ms between checks in bang-bang control //// Heating sanity check: -// This waits for the watchperiod in milliseconds whenever an M104 or M109 increases the target temperature +// This waits for the watch period in milliseconds whenever an M104 or M109 increases the target temperature // If the temperature has not increased at the end of that period, the target temperature is set to zero. // It can be reset with another M104/M109. This check is also only triggered if the target temperature and the current temperature // differ by at least 2x WATCH_TEMP_INCREASE @@ -19,11 +19,11 @@ //#define WATCH_TEMP_INCREASE 10 //Heat up at least 10 degree in 20 seconds #ifdef PIDTEMP - // this adds an experimental additional term to the heatingpower, proportional to the extrusion speed. - // if Kc is choosen well, the additional required power due to increased melting should be compensated. + // this adds an experimental additional term to the heating power, proportional to the extrusion speed. + // if Kc is chosen well, the additional required power due to increased melting should be compensated. #define PID_ADD_EXTRUSION_RATE #ifdef PID_ADD_EXTRUSION_RATE - #define DEFAULT_Kc (1) //heatingpower=Kc*(e_speed) + #define DEFAULT_Kc (1) //heating power=Kc*(e_speed) #endif #endif @@ -34,7 +34,7 @@ // the target temperature is set to mintemp+factor*se[steps/sec] and limited by mintemp and maxtemp // you exit the value by any M109 without F* // Also, if the temperature is set to a value Date: Sun, 16 Feb 2014 10:38:29 -0800 Subject: [PATCH 17/37] Add probe_pt(), useful for auto bed leveling --- Marlin/Marlin_main.cpp | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index 7c7a0b044..5152dc953 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -978,6 +978,27 @@ static void retract_z_probe() { #endif } +/// Probe bed height at position (x,y), returns the measured z value +static float probe_pt(float x, float y, float z_before) { + // move to right place + do_blocking_move_to(current_position[X_AXIS], current_position[Y_AXIS], z_before); + do_blocking_move_to(x - X_PROBE_OFFSET_FROM_EXTRUDER, y - Y_PROBE_OFFSET_FROM_EXTRUDER, current_position[Z_AXIS]); + + engage_z_probe(); // Engage Z Servo endstop if available + run_z_probe(); + float measured_z = current_position[Z_AXIS]; + retract_z_probe(); + + SERIAL_PROTOCOLPGM("Bed x: "); + SERIAL_PROTOCOL(x); + SERIAL_PROTOCOLPGM(" y: "); + SERIAL_PROTOCOL(y); + SERIAL_PROTOCOLPGM(" z: "); + SERIAL_PROTOCOL(measured_z); + SERIAL_PROTOCOLPGM("\n"); + return measured_z; +} + #endif // #ifdef ENABLE_AUTO_BED_LEVELING static void homeaxis(int axis) { From c4fbb44d6d42b84137a89ab7aa5ab7143116184d Mon Sep 17 00:00:00 2001 From: Gabe Rosenhouse Date: Sun, 16 Feb 2014 10:40:36 -0800 Subject: [PATCH 18/37] Refactor 3-point auto bed leveling to use probe_pt() --- Marlin/Marlin_main.cpp | 49 +++--------------------------------------- 1 file changed, 3 insertions(+), 46 deletions(-) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index 5152dc953..783b6da76 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -1490,56 +1490,13 @@ void process_commands() // prob 1 - do_blocking_move_to(current_position[X_AXIS], current_position[Y_AXIS], Z_RAISE_BEFORE_PROBING); - do_blocking_move_to(LEFT_PROBE_BED_POSITION - X_PROBE_OFFSET_FROM_EXTRUDER, BACK_PROBE_BED_POSITION - Y_PROBE_OFFSET_FROM_EXTRUDER, current_position[Z_AXIS]); - - engage_z_probe(); // Engage Z Servo endstop if available - run_z_probe(); - float z_at_xLeft_yBack = current_position[Z_AXIS]; - retract_z_probe(); - - SERIAL_PROTOCOLPGM("Bed x: "); - SERIAL_PROTOCOL(LEFT_PROBE_BED_POSITION); - SERIAL_PROTOCOLPGM(" y: "); - SERIAL_PROTOCOL(BACK_PROBE_BED_POSITION); - SERIAL_PROTOCOLPGM(" z: "); - SERIAL_PROTOCOL(current_position[Z_AXIS]); - SERIAL_PROTOCOLPGM("\n"); + float z_at_xLeft_yBack = probe_pt(LEFT_PROBE_BED_POSITION, BACK_PROBE_BED_POSITION, Z_RAISE_BEFORE_PROBING); // prob 2 - do_blocking_move_to(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS] + Z_RAISE_BETWEEN_PROBINGS); - do_blocking_move_to(LEFT_PROBE_BED_POSITION - X_PROBE_OFFSET_FROM_EXTRUDER, FRONT_PROBE_BED_POSITION - Y_PROBE_OFFSET_FROM_EXTRUDER, current_position[Z_AXIS]); - - engage_z_probe(); // Engage Z Servo endstop if available - run_z_probe(); - float z_at_xLeft_yFront = current_position[Z_AXIS]; - retract_z_probe(); - - SERIAL_PROTOCOLPGM("Bed x: "); - SERIAL_PROTOCOL(LEFT_PROBE_BED_POSITION); - SERIAL_PROTOCOLPGM(" y: "); - SERIAL_PROTOCOL(FRONT_PROBE_BED_POSITION); - SERIAL_PROTOCOLPGM(" z: "); - SERIAL_PROTOCOL(current_position[Z_AXIS]); - SERIAL_PROTOCOLPGM("\n"); + float z_at_xLeft_yFront = probe_pt(LEFT_PROBE_BED_POSITION, FRONT_PROBE_BED_POSITION, current_position[Z_AXIS] + Z_RAISE_BETWEEN_PROBINGS); // prob 3 - do_blocking_move_to(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS] + Z_RAISE_BETWEEN_PROBINGS); - // the current position will be updated by the blocking move so the head will not lower on this next call. - do_blocking_move_to(RIGHT_PROBE_BED_POSITION - X_PROBE_OFFSET_FROM_EXTRUDER, FRONT_PROBE_BED_POSITION - Y_PROBE_OFFSET_FROM_EXTRUDER, current_position[Z_AXIS]); - - engage_z_probe(); // Engage Z Servo endstop if available - run_z_probe(); - float z_at_xRight_yFront = current_position[Z_AXIS]; - retract_z_probe(); // Retract Z Servo endstop if available - - SERIAL_PROTOCOLPGM("Bed x: "); - SERIAL_PROTOCOL(RIGHT_PROBE_BED_POSITION); - SERIAL_PROTOCOLPGM(" y: "); - SERIAL_PROTOCOL(FRONT_PROBE_BED_POSITION); - SERIAL_PROTOCOLPGM(" z: "); - SERIAL_PROTOCOL(current_position[Z_AXIS]); - SERIAL_PROTOCOLPGM("\n"); + float z_at_xRight_yFront = probe_pt(RIGHT_PROBE_BED_POSITION, FRONT_PROBE_BED_POSITION, current_position[Z_AXIS] + Z_RAISE_BETWEEN_PROBINGS); clean_up_after_endstop_move(); From 0f7393a13e44958ed60371936c0bd2f699d1a137 Mon Sep 17 00:00:00 2001 From: Gabe Rosenhouse Date: Sun, 16 Feb 2014 10:42:29 -0800 Subject: [PATCH 19/37] Refactor 'accurate' auto bed leveling to use probe_pt() --- Marlin/Marlin_main.cpp | 21 +++++---------------- 1 file changed, 5 insertions(+), 16 deletions(-) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index 783b6da76..903271375 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -1436,31 +1436,20 @@ void process_commands() for (int xCount=0; xCount < ACCURATE_BED_LEVELING_POINTS; xCount++) { + float z_before; if (probePointCounter == 0) { // raise before probing - do_blocking_move_to(current_position[X_AXIS], current_position[Y_AXIS], Z_RAISE_BEFORE_PROBING); + z_before = Z_RAISE_BEFORE_PROBING; } else { // raise extruder - do_blocking_move_to(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS] + Z_RAISE_BETWEEN_PROBINGS); + z_before = current_position[Z_AXIS] + Z_RAISE_BETWEEN_PROBINGS; } + float measured_z = probe_pt(xProbe, yProbe, z_before); - do_blocking_move_to(xProbe - X_PROBE_OFFSET_FROM_EXTRUDER, yProbe - Y_PROBE_OFFSET_FROM_EXTRUDER, current_position[Z_AXIS]); - - engage_z_probe(); // Engage Z Servo endstop if available - run_z_probe(); - eqnBVector[probePointCounter] = current_position[Z_AXIS]; - retract_z_probe(); - - SERIAL_PROTOCOLPGM("Bed x: "); - SERIAL_PROTOCOL(xProbe); - SERIAL_PROTOCOLPGM(" y: "); - SERIAL_PROTOCOL(yProbe); - SERIAL_PROTOCOLPGM(" z: "); - SERIAL_PROTOCOL(current_position[Z_AXIS]); - SERIAL_PROTOCOLPGM("\n"); + eqnBVector[probePointCounter] = measured_z; eqnAMatrix[probePointCounter + 0*ACCURATE_BED_LEVELING_POINTS*ACCURATE_BED_LEVELING_POINTS] = xProbe; eqnAMatrix[probePointCounter + 1*ACCURATE_BED_LEVELING_POINTS*ACCURATE_BED_LEVELING_POINTS] = yProbe; From 8c5675c29060b5a4f826b2101ca2ff9ed1308d75 Mon Sep 17 00:00:00 2001 From: Gabe Rosenhouse Date: Sun, 16 Feb 2014 17:16:00 -0800 Subject: [PATCH 20/37] Use language.h instead of English literals for "bed" --- Marlin/Marlin_main.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index 903271375..2b8138f09 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -989,7 +989,8 @@ static float probe_pt(float x, float y, float z_before) { float measured_z = current_position[Z_AXIS]; retract_z_probe(); - SERIAL_PROTOCOLPGM("Bed x: "); + SERIAL_PROTOCOLPGM(MSG_BED); + SERIAL_PROTOCOLPGM(" x: "); SERIAL_PROTOCOL(x); SERIAL_PROTOCOLPGM(" y: "); SERIAL_PROTOCOL(y); @@ -1520,7 +1521,8 @@ void process_commands() feedrate = homing_feedrate[Z_AXIS]; run_z_probe(); - SERIAL_PROTOCOLPGM("Bed Position X: "); + SERIAL_PROTOCOLPGM(MSG_BED); + SERIAL_PROTOCOLPGM(" X: "); SERIAL_PROTOCOL(current_position[X_AXIS]); SERIAL_PROTOCOLPGM(" Y: "); SERIAL_PROTOCOL(current_position[Y_AXIS]); From 2f2459c0db59bb9cf009101c57a0c65550f41b7d Mon Sep 17 00:00:00 2001 From: whosawhatsis Date: Sun, 16 Feb 2014 15:53:01 -0800 Subject: [PATCH 21/37] Fix G10/G11 Z-lift --- Marlin/Marlin_main.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index 903271375..1681c88b7 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -1134,7 +1134,6 @@ void process_commands() destination[X_AXIS]=current_position[X_AXIS]; destination[Y_AXIS]=current_position[Y_AXIS]; destination[Z_AXIS]=current_position[Z_AXIS]; - current_position[Z_AXIS]-=retract_zlift; destination[E_AXIS]=current_position[E_AXIS]; current_position[E_AXIS]+=retract_length/volumetric_multiplier[active_extruder]; plan_set_e_position(current_position[E_AXIS]); @@ -1142,6 +1141,9 @@ void process_commands() feedrate=retract_feedrate; retracted=true; prepare_move(); + current_position[Z_AXIS]-=retract_zlift; + plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]); + prepare_move(); feedrate = oldFeedrate; } @@ -1152,8 +1154,10 @@ void process_commands() destination[X_AXIS]=current_position[X_AXIS]; destination[Y_AXIS]=current_position[Y_AXIS]; destination[Z_AXIS]=current_position[Z_AXIS]; - current_position[Z_AXIS]+=retract_zlift; destination[E_AXIS]=current_position[E_AXIS]; + current_position[Z_AXIS]+=retract_zlift; + plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]); + //prepare_move(); current_position[E_AXIS]-=(retract_length+retract_recover_length)/volumetric_multiplier[active_extruder]; plan_set_e_position(current_position[E_AXIS]); float oldFeedrate = feedrate; From 66e386913897d9f45762e227161d53e8323b1c5b Mon Sep 17 00:00:00 2001 From: whosawhatsis Date: Sun, 16 Feb 2014 18:59:04 -0800 Subject: [PATCH 22/37] Fix autoretract This takes the (now working) G10/G11 code and moves it to a function, which is called by G10 and G11, and also called by G1 if autoretract is enabled and a retract/recover move is detected. --- Marlin/Marlin_main.cpp | 120 +++++++++++++++++------------------------ 1 file changed, 49 insertions(+), 71 deletions(-) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index 1681c88b7..c07cbc427 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -1080,6 +1080,41 @@ static void homeaxis(int axis) { } #define HOMEAXIS(LETTER) homeaxis(LETTER##_AXIS) +#ifdef FWRETRACT + void retract(bool retracting) { + if(retracting && !retracted) { + destination[X_AXIS]=current_position[X_AXIS]; + destination[Y_AXIS]=current_position[Y_AXIS]; + destination[Z_AXIS]=current_position[Z_AXIS]; + destination[E_AXIS]=current_position[E_AXIS]; + current_position[E_AXIS]+=retract_length/volumetric_multiplier[active_extruder]; + plan_set_e_position(current_position[E_AXIS]); + float oldFeedrate = feedrate; + feedrate=retract_feedrate; + retracted=true; + prepare_move(); + current_position[Z_AXIS]-=retract_zlift; + plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]); + prepare_move(); + feedrate = oldFeedrate; + } else if(!retracting && retracted) { + destination[X_AXIS]=current_position[X_AXIS]; + destination[Y_AXIS]=current_position[Y_AXIS]; + destination[Z_AXIS]=current_position[Z_AXIS]; + destination[E_AXIS]=current_position[E_AXIS]; + current_position[Z_AXIS]+=retract_zlift; + plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]); + //prepare_move(); + current_position[E_AXIS]-=(retract_length+retract_recover_length)/volumetric_multiplier[active_extruder]; + plan_set_e_position(current_position[E_AXIS]); + float oldFeedrate = feedrate; + feedrate=retract_recover_feedrate; + retracted=false; + prepare_move(); + feedrate = oldFeedrate; + } + } //retract +#endif //FWRETRACT void process_commands() { unsigned long codenum; //throw away variable @@ -1095,6 +1130,18 @@ void process_commands() case 1: // G1 if(Stopped == false) { get_coordinates(); // For X Y Z E F + #ifdef FWRETRACT + if(autoretract_enabled) + if( !(code_seen(X_AXIS) || code_seen(Y_AXIS) || code_seen(Z_AXIS)) && code_seen(E_AXIS)) { + float echange=destination[E_AXIS]-current_position[E_AXIS]; + if((echange<-MIN_RETRACT && !retracted) || (echange>MIN_RETRACT && retracted)) { //move appears to be an attempt to attract or recover + current_position[E_AXIS] = destination[E_AXIS]; //hide the slicer-generated retract/recover from calculations + plan_set_e_position(current_position[E_AXIS]); //AND from the planner + retract(!retracted); + return; + } + } + #endif //FWRETRACT prepare_move(); //ClearToSend(); return; @@ -1129,43 +1176,10 @@ void process_commands() break; #ifdef FWRETRACT case 10: // G10 retract - if(!retracted) - { - destination[X_AXIS]=current_position[X_AXIS]; - destination[Y_AXIS]=current_position[Y_AXIS]; - destination[Z_AXIS]=current_position[Z_AXIS]; - destination[E_AXIS]=current_position[E_AXIS]; - current_position[E_AXIS]+=retract_length/volumetric_multiplier[active_extruder]; - plan_set_e_position(current_position[E_AXIS]); - float oldFeedrate = feedrate; - feedrate=retract_feedrate; - retracted=true; - prepare_move(); - current_position[Z_AXIS]-=retract_zlift; - plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]); - prepare_move(); - feedrate = oldFeedrate; - } - + retract(true); break; case 11: // G11 retract_recover - if(retracted) - { - destination[X_AXIS]=current_position[X_AXIS]; - destination[Y_AXIS]=current_position[Y_AXIS]; - destination[Z_AXIS]=current_position[Z_AXIS]; - destination[E_AXIS]=current_position[E_AXIS]; - current_position[Z_AXIS]+=retract_zlift; - plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]); - //prepare_move(); - current_position[E_AXIS]-=(retract_length+retract_recover_length)/volumetric_multiplier[active_extruder]; - plan_set_e_position(current_position[E_AXIS]); - float oldFeedrate = feedrate; - feedrate=retract_recover_feedrate; - retracted=false; - prepare_move(); - feedrate = oldFeedrate; - } + retract(false); break; #endif //FWRETRACT case 28: //G28 Home all Axis one at a time @@ -3020,42 +3034,6 @@ void get_coordinates() next_feedrate = code_value(); if(next_feedrate > 0.0) feedrate = next_feedrate; } - #ifdef FWRETRACT - if(autoretract_enabled) - if( !(seen[X_AXIS] || seen[Y_AXIS] || seen[Z_AXIS]) && seen[E_AXIS]) - { - float echange=destination[E_AXIS]-current_position[E_AXIS]; - if(echange<-MIN_RETRACT) //retract - { - if(!retracted) - { - - destination[Z_AXIS]+=retract_zlift; //not sure why chaninging current_position negatively does not work. - //if slicer retracted by echange=-1mm and you want to retract 3mm, corrrectede=-2mm additionally - float correctede=-echange-retract_length; - //to generate the additional steps, not the destination is changed, but inversely the current position - current_position[E_AXIS]+=-correctede; - feedrate=retract_feedrate; - retracted=true; - } - - } - else - if(echange>MIN_RETRACT) //retract_recover - { - if(retracted) - { - //current_position[Z_AXIS]+=-retract_zlift; - //if slicer retracted_recovered by echange=+1mm and you want to retract_recover 3mm, corrrectede=2mm additionally - float correctede=-echange+1*retract_length+retract_recover_length; //total unretract=retract_length+retract_recover_length[surplus] - current_position[E_AXIS]+=correctede; //to generate the additional steps, not the destination is changed, but inversely the current position - feedrate=retract_recover_feedrate; - retracted=false; - } - } - - } - #endif //FWRETRACT } void get_arc_coordinates() From 99f0e44864a248e3487a4e3d9aad5a5f07f3d447 Mon Sep 17 00:00:00 2001 From: whosawhatsis Date: Sun, 16 Feb 2014 19:00:28 -0800 Subject: [PATCH 23/37] Move FWRETRACT defaults to configuration_adv.h --- Marlin/Configuration_adv.h | 10 ++++++++-- Marlin/Marlin_main.cpp | 8 ++++++-- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/Marlin/Configuration_adv.h b/Marlin/Configuration_adv.h index dc986fae4..aed27c079 100644 --- a/Marlin/Configuration_adv.h +++ b/Marlin/Configuration_adv.h @@ -399,8 +399,14 @@ const unsigned int dropsegments=5; //everything with less than this number of st // the moves are than replaced by the firmware controlled ones. // #define FWRETRACT //ONLY PARTIALLY TESTED -#define MIN_RETRACT 0.1 //minimum extruded mm to accept a automatic gcode retraction attempt - +#ifdef FWRETRACT + #define MIN_RETRACT 0.1 //minimum extruded mm to accept a automatic gcode retraction attempt + #define RETRACT_LENGTH 3 //default retract length (positive mm) + #define RETRACT_FEEDRATE 80*60 //default feedrate for retracting + #define RETRACT_ZLIFT 0 //default retract Z-lift + #define RETRACT_RECOVER_LENGTH 0 //default additional recover length (mm, added to retract length when recovering) + #define RETRACT_RECOVER_FEEDRATE 8*60 //default feedrate for recovering from retraction +#endif //adds support for experimental filament exchange support M600; requires display #ifdef ULTIPANEL diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index c07cbc427..e860d7d25 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -233,8 +233,11 @@ int EtoPPressure=0; #ifdef FWRETRACT bool autoretract_enabled=true; bool retracted=false; - float retract_length=3, retract_feedrate=17*60, retract_zlift=0.8; - float retract_recover_length=0, retract_recover_feedrate=8*60; + float retract_length = RETRACT_LENGTH; + float retract_feedrate = RETRACT_FEEDRATE; + float retract_zlift = RETRACT_ZLIFT; + float retract_recover_length = RETRACT_RECOVER_LENGTH; + float retract_recover_feedrate = RETRACT_RECOVER_FEEDRATE; #endif #ifdef ULTIPANEL @@ -1115,6 +1118,7 @@ static void homeaxis(int axis) { } } //retract #endif //FWRETRACT + void process_commands() { unsigned long codenum; //throw away variable From c43838bb1ee4f787c637f4fc0b91aa4b78e4f56a Mon Sep 17 00:00:00 2001 From: whosawhatsis Date: Sun, 16 Feb 2014 19:04:54 -0800 Subject: [PATCH 24/37] disable auto retract by default MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This should make it safe to enable FWRETRACT by default, with autoretract (which should now be fixed) only enabled by M209. FWRETRACT should probably now default to enabled (to make G10/G11 and M207-209 available, without changing functionality when they are not used), but I’ll save that for another pull request/discussion. --- Marlin/Marlin_main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index e860d7d25..4e9fed10e 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -231,7 +231,7 @@ int EtoPPressure=0; #endif #ifdef FWRETRACT - bool autoretract_enabled=true; + bool autoretract_enabled=false; bool retracted=false; float retract_length = RETRACT_LENGTH; float retract_feedrate = RETRACT_FEEDRATE; From 306588925df929d843bb25fbfb93695e5a1f4afe Mon Sep 17 00:00:00 2001 From: Paul Telford Date: Sun, 16 Feb 2014 21:01:19 -0800 Subject: [PATCH 25/37] Add whitespace to M114 output --- Marlin/Marlin_main.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index 903271375..2ae569828 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -2122,18 +2122,18 @@ void process_commands() case 114: // M114 SERIAL_PROTOCOLPGM("X:"); SERIAL_PROTOCOL(current_position[X_AXIS]); - SERIAL_PROTOCOLPGM("Y:"); + SERIAL_PROTOCOLPGM(" Y:"); SERIAL_PROTOCOL(current_position[Y_AXIS]); - SERIAL_PROTOCOLPGM("Z:"); + SERIAL_PROTOCOLPGM(" Z:"); SERIAL_PROTOCOL(current_position[Z_AXIS]); - SERIAL_PROTOCOLPGM("E:"); + SERIAL_PROTOCOLPGM(" E:"); SERIAL_PROTOCOL(current_position[E_AXIS]); SERIAL_PROTOCOLPGM(MSG_COUNT_X); SERIAL_PROTOCOL(float(st_get_position(X_AXIS))/axis_steps_per_unit[X_AXIS]); - SERIAL_PROTOCOLPGM("Y:"); + SERIAL_PROTOCOLPGM(" Y:"); SERIAL_PROTOCOL(float(st_get_position(Y_AXIS))/axis_steps_per_unit[Y_AXIS]); - SERIAL_PROTOCOLPGM("Z:"); + SERIAL_PROTOCOLPGM(" Z:"); SERIAL_PROTOCOL(float(st_get_position(Z_AXIS))/axis_steps_per_unit[Z_AXIS]); SERIAL_PROTOCOLLN(""); From b45beeffd6b8b2ca980cf61636ccb7b075d3ebd1 Mon Sep 17 00:00:00 2001 From: Gabe Rosenhouse Date: Sun, 16 Feb 2014 23:21:53 -0800 Subject: [PATCH 26/37] typo fix in Makefile --- Marlin/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Marlin/Makefile b/Marlin/Makefile index 9c26c3cc0..a4de46a64 100644 --- a/Marlin/Makefile +++ b/Marlin/Makefile @@ -236,7 +236,7 @@ VPATH += $(HARDWARE_DIR)/libraries/Wire VPATH += $(HARDWARE_DIR)/libraries/Wire/utility VPATH += $(HARDWARE_DIR)/libraries/LiquidTWI2 endif -ifeq ($(WIRE, 1) +ifeq ($(WIRE), 1) VPATH += $(HARDWARE_DIR)/libraries/Wire VPATH += $(HARDWARE_DIR)/libraries/Wire/utility endif From 5bd09d26e2d3cf310182c246129dfb7eb2718d17 Mon Sep 17 00:00:00 2001 From: Gabe Rosenhouse Date: Sun, 16 Feb 2014 23:19:08 -0800 Subject: [PATCH 27/37] Makefile works with auto bed leveling --- Marlin/Makefile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Marlin/Makefile b/Marlin/Makefile index a4de46a64..3bd0ae3bf 100644 --- a/Marlin/Makefile +++ b/Marlin/Makefile @@ -260,7 +260,8 @@ CXXSRC = WMath.cpp WString.cpp Print.cpp Marlin_main.cpp \ MarlinSerial.cpp Sd2Card.cpp SdBaseFile.cpp SdFatUtil.cpp \ SdFile.cpp SdVolume.cpp motion_control.cpp planner.cpp \ stepper.cpp temperature.cpp cardreader.cpp ConfigurationStore.cpp \ - watchdog.cpp SPI.cpp Servo.cpp Tone.cpp ultralcd.cpp digipot_mcp4451.cpp + watchdog.cpp SPI.cpp Servo.cpp Tone.cpp ultralcd.cpp digipot_mcp4451.cpp \ + vector_3.cpp qr_solve.cpp ifeq ($(LIQUID_TWI2), 0) CXXSRC += LiquidCrystal.cpp else From 8f0cee2a14a9f28e4fd9e8ac7784a7700cd83940 Mon Sep 17 00:00:00 2001 From: Cylindric Date: Mon, 17 Feb 2014 10:58:36 +0000 Subject: [PATCH 28/37] Various typo fixes - only in comments, no code changes. --- Marlin/LiquidCrystalRus.cpp | 10 +++++----- Marlin/MarlinSerial.cpp | 4 ++-- Marlin/cardreader.cpp | 6 +++--- Marlin/ultralcd_st7920_u8glib_rrd.h | 8 ++++---- Marlin/watchdog.h | 4 ++-- 5 files changed, 16 insertions(+), 16 deletions(-) diff --git a/Marlin/LiquidCrystalRus.cpp b/Marlin/LiquidCrystalRus.cpp index c193e449d..6ee2c112e 100644 --- a/Marlin/LiquidCrystalRus.cpp +++ b/Marlin/LiquidCrystalRus.cpp @@ -11,7 +11,7 @@ #include "WProgram.h" #endif -// it is a russian alphabet translation +// it is a Russian alphabet translation // except 0401 --> 0xa2 = ╗, 0451 --> 0xb5 const PROGMEM uint8_t utf_recode[] = { 0x41,0xa0,0x42,0xa1,0xe0,0x45,0xa3,0xa4,0xa5,0xa6,0x4b,0xa7,0x4d,0x48,0x4f, @@ -115,7 +115,7 @@ void LiquidCrystalRus::begin(uint8_t cols, uint8_t lines, uint8_t dotsize) { // SEE PAGE 45/46 FOR INITIALIZATION SPECIFICATION! // according to datasheet, we need at least 40ms after power rises above 2.7V - // before sending commands. Arduino can turn on way befer 4.5V so we'll wait 50 + // before sending commands. Arduino can turn on way before 4.5V so we'll wait 50 delayMicroseconds(50000); // Now we pull both RS and R/W low to begin commands digitalWrite(_rs_pin, LOW); @@ -126,7 +126,7 @@ void LiquidCrystalRus::begin(uint8_t cols, uint8_t lines, uint8_t dotsize) { //put the LCD into 4 bit or 8 bit mode if (! (_displayfunction & LCD_8BITMODE)) { - // this is according to the hitachi HD44780 datasheet + // this is according to the Hitachi HD44780 datasheet // figure 24, pg 46 // we start in 8bit mode, try to set 4 bit mode @@ -144,7 +144,7 @@ void LiquidCrystalRus::begin(uint8_t cols, uint8_t lines, uint8_t dotsize) { // finally, set to 8-bit interface writeNbits(0x02,4); } else { - // this is according to the hitachi HD44780 datasheet + // this is according to the Hitachi HD44780 datasheet // page 45 figure 23 // Send function set command sequence @@ -308,7 +308,7 @@ inline void LiquidCrystalRus::command(uint8_t value) { } } else send(out_char, HIGH); #if defined(ARDUINO) && ARDUINO >= 100 - return 1; // assume sucess + return 1; // assume success #endif } diff --git a/Marlin/MarlinSerial.cpp b/Marlin/MarlinSerial.cpp index 0433df2d3..a7251dd6a 100644 --- a/Marlin/MarlinSerial.cpp +++ b/Marlin/MarlinSerial.cpp @@ -25,7 +25,7 @@ #ifndef AT90USB // this next line disables the entire HardwareSerial.cpp, -// this is so I can support Attiny series and any other chip without a uart +// this is so I can support Attiny series and any other chip without a UART #if defined(UBRRH) || defined(UBRR0H) || defined(UBRR1H) || defined(UBRR2H) || defined(UBRR3H) #if UART_PRESENT(SERIAL_PORT) @@ -73,7 +73,7 @@ void MarlinSerial::begin(long baud) bool useU2X = true; #if F_CPU == 16000000UL && SERIAL_PORT == 0 - // hardcoded exception for compatibility with the bootloader shipped + // hard coded exception for compatibility with the bootloader shipped // with the Duemilanove and previous boards and the firmware on the 8U2 // on the Uno and Mega 2560. if (baud == 57600) { diff --git a/Marlin/cardreader.cpp b/Marlin/cardreader.cpp index e5c310896..5fb8dcc0f 100644 --- a/Marlin/cardreader.cpp +++ b/Marlin/cardreader.cpp @@ -22,7 +22,7 @@ CardReader::CardReader() file_subcall_ctr=0; memset(workDirParents, 0, sizeof(workDirParents)); - autostart_stilltocheck=true; //the sd start is delayed, because otherwise the serial cannot answer fast enought to make contact with the hostsoftware. + autostart_stilltocheck=true; //the SD start is delayed, because otherwise the serial cannot answer fast enough to make contact with the host software. lastnr=0; //power to SD reader #if SDPOWER > -1 @@ -245,7 +245,7 @@ void CardReader::openFile(char* name,bool read, bool replace_current/*=true*/) { if(!cardOK) return; - if(file.isOpen()) //replaceing current file by new file, or subfile call + if(file.isOpen()) //replacing current file by new file, or subfile call { if(!replace_current) { @@ -544,7 +544,7 @@ void CardReader::closefile(bool store_location) if(store_location) { - //future: store printer state, filename and position for continueing a stoped print + //future: store printer state, filename and position for continuing a stopped print // so one can unplug the printer and continue printing the next day. } diff --git a/Marlin/ultralcd_st7920_u8glib_rrd.h b/Marlin/ultralcd_st7920_u8glib_rrd.h index e198a858a..386e312e5 100644 --- a/Marlin/ultralcd_st7920_u8glib_rrd.h +++ b/Marlin/ultralcd_st7920_u8glib_rrd.h @@ -12,8 +12,8 @@ #define ST7920_DAT_PIN LCD_PINS_ENABLE #define ST7920_CS_PIN LCD_PINS_RS -//#define PAGE_HEIGHT 8 //128 byte frambuffer -//#define PAGE_HEIGHT 16 //256 byte frambuffer +//#define PAGE_HEIGHT 8 //128 byte framebuffer +//#define PAGE_HEIGHT 16 //256 byte framebuffer #define PAGE_HEIGHT 32 //512 byte framebuffer #define WIDTH 128 @@ -59,8 +59,8 @@ uint8_t u8g_dev_rrd_st7920_128x64_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, vo ST7920_SET_CMD(); ST7920_WRITE_BYTE(0x08); //display off, cursor+blink off ST7920_WRITE_BYTE(0x01); //clear CGRAM ram - u8g_Delay(10); //delay for cgram clear - ST7920_WRITE_BYTE(0x3E); //extended mode + gdram active + u8g_Delay(10); //delay for CGRAM clear + ST7920_WRITE_BYTE(0x3E); //extended mode + GDRAM active for(y=0;y Date: Mon, 17 Feb 2014 07:53:45 -0800 Subject: [PATCH 29/37] Fix syntax error introduced in 477b6fa1d --- Marlin/Marlin_main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index 498adfdb9..952ac5847 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -1080,7 +1080,7 @@ static void homeaxis(int axis) { } } #define HOMEAXIS(LETTER) homeaxis(LETTER##_AXIS) -+void refresh_cmd_timeout(void) +void refresh_cmd_timeout(void) { previous_millis_cmd = millis(); } From cf5c3b6610ae747a7f1db1806c221f127827d4af Mon Sep 17 00:00:00 2001 From: Marco Date: Mon, 17 Feb 2014 17:00:50 +0100 Subject: [PATCH 30/37] Added dutch to language.h --- Marlin/language.h | 182 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 182 insertions(+) diff --git a/Marlin/language.h b/Marlin/language.h index 2126f7fb5..356041237 100644 --- a/Marlin/language.h +++ b/Marlin/language.h @@ -17,6 +17,7 @@ // 8 Portuguese // 9 Finnish // 10 Aragonese +// 11 Dutch #ifndef LANGUAGE_CHOICE #define LANGUAGE_CHOICE 1 // Pick your language from the list above @@ -1918,4 +1919,185 @@ #endif +#if LANGUAGE_CHOICE == 11 //Dutch + +// LCD Menu Messages +// Please note these are limited to 17 characters! + + #define WELCOME_MSG MACHINE_NAME " gereed." + #define MSG_SD_INSERTED "Kaart ingestoken" + #define MSG_SD_REMOVED "Kaart verwijderd" + #define MSG_MAIN "Main" + #define MSG_AUTOSTART "Autostart" + #define MSG_DISABLE_STEPPERS "Motoren uit" + #define MSG_AUTO_HOME "Auto home" + #define MSG_SET_ORIGIN "Nulpunt instellen" + #define MSG_PREHEAT_PLA "PLA voorverwarmen" + #define MSG_PREHEAT_PLA_SETTINGS "PLA voorverw. conf" + #define MSG_PREHEAT_ABS "ABS voorverwarmen" + #define MSG_PREHEAT_ABS_SETTINGS "ABS voorverw. conf" + #define MSG_COOLDOWN "Afkoelen" + #define MSG_SWITCH_PS_ON "Stroom aan" + #define MSG_SWITCH_PS_OFF "Stroom uit" + #define MSG_EXTRUDE "Extrude" + #define MSG_RETRACT "Retract" + #define MSG_MOVE_AXIS "As verplaatsen" + #define MSG_MOVE_X "Verplaats X" + #define MSG_MOVE_Y "Verplaats Y" + #define MSG_MOVE_Z "Verplaats Z" + #define MSG_MOVE_E "Extruder" + #define MSG_MOVE_01MM "Verplaats 0.1mm" + #define MSG_MOVE_1MM "Verplaats 1mm" + #define MSG_MOVE_10MM "Verplaats 10mm" + #define MSG_SPEED "Snelheid" + #define MSG_NOZZLE "Nozzle" + #define MSG_NOZZLE1 "Nozzle2" + #define MSG_NOZZLE2 "Nozzle3" + #define MSG_BED "Bed" + #define MSG_FAN_SPEED "Fan snelheid" + #define MSG_FLOW "Flow" + #define MSG_CONTROL "Control" + #define MSG_MIN " \002 Min" + #define MSG_MAX " \002 Max" + #define MSG_FACTOR " \002 Fact" + #define MSG_AUTOTEMP "Autotemp" + #define MSG_ON "Aan " + #define MSG_OFF "Uit" + #define MSG_PID_P "PID-P" + #define MSG_PID_I "PID-I" + #define MSG_PID_D "PID-D" + #define MSG_PID_C "PID-C" + #define MSG_ACC "Versn" + #define MSG_VXY_JERK "Vxy-jerk" + #define MSG_VZ_JERK "Vz-jerk" + #define MSG_VE_JERK "Ve-jerk" + #define MSG_VMAX "Vmax " + #define MSG_X "x" + #define MSG_Y "y" + #define MSG_Z "z" + #define MSG_E "e" + #define MSG_VMIN "Vmin" + #define MSG_VTRAV_MIN "VTrav min" + #define MSG_AMAX "Amax " + #define MSG_A_RETRACT "A-retract" + #define MSG_XSTEPS "Xsteps/mm" + #define MSG_YSTEPS "Ysteps/mm" + #define MSG_ZSTEPS "Zsteps/mm" + #define MSG_ESTEPS "Esteps/mm" + #define MSG_RECTRACT "Rectract" + #define MSG_TEMPERATURE "Temperatuur" + #define MSG_MOTION "Beweging" + #define MSG_CONTRAST "LCD contrast" + #define MSG_STORE_EPROM "Geheugen opslaan" + #define MSG_LOAD_EPROM "Geheugen laden" + #define MSG_RESTORE_FAILSAFE "Noodstop reset" + #define MSG_REFRESH "Ververs" + #define MSG_WATCH "Info scherm" + #define MSG_PREPARE "Voorbereiden" + #define MSG_TUNE "Afstellen" + #define MSG_PAUSE_PRINT "Print pauzeren" + #define MSG_RESUME_PRINT "Print hervatten" + #define MSG_STOP_PRINT "Print stoppen" + #define MSG_CARD_MENU "Print van SD" + #define MSG_NO_CARD "Geen SD kaart" + #define MSG_DWELL "Slapen..." + #define MSG_USERWAIT "Wachten..." + #define MSG_RESUMING "Print hervatten" + #define MSG_NO_MOVE "Geen beweging." + #define MSG_KILLED "AFGEBROKEN. " + #define MSG_STOPPED "GESTOPT. " + #define MSG_CONTROL_RETRACT "Retract mm" + #define MSG_CONTROL_RETRACTF "Retract F" + #define MSG_CONTROL_RETRACT_ZLIFT "Hop mm" + #define MSG_CONTROL_RETRACT_RECOVER "UnRet +mm" + #define MSG_CONTROL_RETRACT_RECOVERF "UnRet F" + #define MSG_AUTORETRACT "AutoRetr." + #define MSG_FILAMENTCHANGE "Verv. Filament" + #define MSG_INIT_SDCARD "Init. SD kaart" + #define MSG_CNG_SDCARD "Verv. SD card" + #define MSG_ZPROBE_OUT "Z probe uit. bed" + #define MSG_POSITION_UNKNOWN "Home X/Y voor Z" + #define MSG_ZPROBE_ZOFFSET "Z Offset" + #define MSG_BABYSTEP_X "Babystap X" + #define MSG_BABYSTEP_Y "Babystap Y" + #define MSG_BABYSTEP_Z "Babystap Z" + #define MSG_ENDSTOP_ABORT "Endstop afbr." + +// Serial Console Messages + + #define MSG_Enqueing "enqueing \"" + #define MSG_POWERUP "Opstarten" + #define MSG_EXTERNAL_RESET " Externe Reset" + #define MSG_BROWNOUT_RESET " Lage voedingsspanning Reset" + #define MSG_WATCHDOG_RESET " Watchdog Reset" + #define MSG_SOFTWARE_RESET " Software Reset" + #define MSG_AUTHOR " | Auteur: " + #define MSG_CONFIGURATION_VER " Laatst bijgewerkt: " + #define MSG_FREE_MEMORY " Vrij Geheugen: " + #define MSG_PLANNER_BUFFER_BYTES " PlannerBufferBytes: " + #define MSG_OK "ok" + #define MSG_FILE_SAVED "Bestand opslaan voltooid." + #define MSG_ERR_LINE_NO "Regelnummer is niet het laatste regelnummer+1, Laatste regel: " + #define MSG_ERR_CHECKSUM_MISMATCH "Checksum fout, Laatste regel: " + #define MSG_ERR_NO_CHECKSUM "Regel zonder checksum, Laatste regel: " + #define MSG_ERR_NO_LINENUMBER_WITH_CHECKSUM "Geen regelnummer met checksum, Laatste regel: " + #define MSG_FILE_PRINTED "Bestand afdrukken klaar" + #define MSG_BEGIN_FILE_LIST "Begin bestandslijst" + #define MSG_END_FILE_LIST "Einde bestandslijst" + #define MSG_M104_INVALID_EXTRUDER "M104 Ongeldige extruder " + #define MSG_M105_INVALID_EXTRUDER "M105 Ongeldige extruder " + #define MSG_M200_INVALID_EXTRUDER "M200 Ongeldige extruder " + #define MSG_M218_INVALID_EXTRUDER "M218 Ongeldige extruder " + #define MSG_ERR_NO_THERMISTORS "Geen thermistors - geen temperatuur" + #define MSG_M109_INVALID_EXTRUDER "M109 Ongeldige extruder " + #define MSG_HEATING "Opwarmen..." + #define MSG_HEATING_COMPLETE "Opwarmen klaar." + #define MSG_BED_HEATING "Bed opwarmen." + #define MSG_BED_DONE "Bed klaar." + #define MSG_M115_REPORT "FIRMWARE_NAME:Marlin V1; Sprinter/grbl mashup voor gen6 FIRMWARE_URL:" FIRMWARE_URL " PROTOCOL_VERSION:" PROTOCOL_VERSION " MACHINE_TYPE:" MACHINE_NAME " EXTRUDER_COUNT:" STRINGIFY(EXTRUDERS) " UUID:" MACHINE_UUID "\n" + #define MSG_COUNT_X " Aantal X: " + #define MSG_ERR_KILLED "Printer stopgezet. kill() aangeroepen!" + #define MSG_ERR_STOPPED "Printer gestopt vanwege fouten. Los de fout op en gebruik M999 om opnieuw te starten. (Temperatuur is gereset, stel deze opnieuw in na herstart)" + #define MSG_RESEND "Opnieuw sturen: " + #define MSG_UNKNOWN_COMMAND "Onbekend commando: \"" + #define MSG_ACTIVE_EXTRUDER "Actieve Extruder: " + #define MSG_INVALID_EXTRUDER "Ongeldige extruder" + #define MSG_X_MIN "x_min: " + #define MSG_X_MAX "x_max: " + #define MSG_Y_MIN "y_min: " + #define MSG_Y_MAX "y_max: " + #define MSG_Z_MIN "z_min: " + #define MSG_Z_MAX "z_max: " + #define MSG_M119_REPORT "Eindstop statusrapportage:" + #define MSG_ENDSTOP_HIT "GERAAKT" + #define MSG_ENDSTOP_OPEN "open" + #define MSG_HOTEND_OFFSET "Hotend afwijking:" + + #define MSG_SD_CANT_OPEN_SUBDIR "Kan subdirectory niet openen" + #define MSG_SD_INIT_FAIL "SD initialiseren mislukt" + #define MSG_SD_VOL_INIT_FAIL "volume.init mislukt" + #define MSG_SD_OPENROOT_FAIL "openRoot mislukt" + #define MSG_SD_CARD_OK "SD kaart ok" + #define MSG_SD_WORKDIR_FAIL "workDir openen mislukt" + #define MSG_SD_OPEN_FILE_FAIL "Openen mislukt, bestand: " + #define MSG_SD_FILE_OPENED "Bestand geopend: " + #define MSG_SD_SIZE " Grootte: " + #define MSG_SD_FILE_SELECTED "Bestanden geselecteerd:" + #define MSG_SD_WRITE_TO_FILE "Schrijven naar bestand: " + #define MSG_SD_PRINTING_BYTE "SD printen byte: " + #define MSG_SD_NOT_PRINTING "Niet SD printen" + #define MSG_SD_ERR_WRITE_TO_FILE "Fout tijdens het schrijven naar bestand:" + #define MSG_SD_CANT_ENTER_SUBDIR "Kan subdirectory niet in: " + + #define MSG_STEPPER_TOO_HIGH "stapsnelheid te hoog:" + #define MSG_ENDSTOPS_HIT "endstops geraakt: " + #define MSG_ERR_COLD_EXTRUDE_STOP " Koude extrusie voorkomen" + #define MSG_ERR_LONG_EXTRUDE_STOP " te lange extrusie voorkomen" + #define MSG_BABYSTEPPING_X "Babystepping X" + #define MSG_BABYSTEPPING_Y "Babystepping Y" + #define MSG_BABYSTEPPING_Z "Babystepping Z" + #define MSG_SERIAL_ERROR_MENU_STRUCTURE "Fout in menustructuur" + +#endif + #endif // ifndef LANGUAGE_H From 498d76fd794b803cdfe0293c8defb4294986c848 Mon Sep 17 00:00:00 2001 From: Marco Date: Tue, 18 Feb 2014 09:40:10 +0100 Subject: [PATCH 31/37] Fixed some messages where the text shown on the screen was more than 17 characters --- Marlin/language.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Marlin/language.h b/Marlin/language.h index 356041237..9ed9095eb 100644 --- a/Marlin/language.h +++ b/Marlin/language.h @@ -1933,9 +1933,9 @@ #define MSG_AUTO_HOME "Auto home" #define MSG_SET_ORIGIN "Nulpunt instellen" #define MSG_PREHEAT_PLA "PLA voorverwarmen" - #define MSG_PREHEAT_PLA_SETTINGS "PLA voorverw. conf" + #define MSG_PREHEAT_PLA_SETTINGS "PLA verw. conf" #define MSG_PREHEAT_ABS "ABS voorverwarmen" - #define MSG_PREHEAT_ABS_SETTINGS "ABS voorverw. conf" + #define MSG_PREHEAT_ABS_SETTINGS "ABS verw. conf" #define MSG_COOLDOWN "Afkoelen" #define MSG_SWITCH_PS_ON "Stroom aan" #define MSG_SWITCH_PS_OFF "Stroom uit" @@ -1984,7 +1984,7 @@ #define MSG_YSTEPS "Ysteps/mm" #define MSG_ZSTEPS "Zsteps/mm" #define MSG_ESTEPS "Esteps/mm" - #define MSG_RECTRACT "Rectract" + #define MSG_RECTRACT "Terugtrekken" #define MSG_TEMPERATURE "Temperatuur" #define MSG_MOTION "Beweging" #define MSG_CONTRAST "LCD contrast" From 51ae4881ab0fea7f82fcf6d8266a5b53cd17e007 Mon Sep 17 00:00:00 2001 From: Marco Date: Tue, 18 Feb 2014 09:47:36 +0100 Subject: [PATCH 32/37] Fixed small typo that would prevent compiling --- Marlin/Marlin_main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index 498adfdb9..952ac5847 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -1080,7 +1080,7 @@ static void homeaxis(int axis) { } } #define HOMEAXIS(LETTER) homeaxis(LETTER##_AXIS) -+void refresh_cmd_timeout(void) +void refresh_cmd_timeout(void) { previous_millis_cmd = millis(); } From 8212d8d543d534dde330ed982633418b8a063978 Mon Sep 17 00:00:00 2001 From: Marco Date: Tue, 18 Feb 2014 10:40:25 +0100 Subject: [PATCH 33/37] Revert "Fixed small typo that would prevent compiling" This reverts commit 51ae4881ab0fea7f82fcf6d8266a5b53cd17e007. --- Marlin/Marlin_main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index 952ac5847..498adfdb9 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -1080,7 +1080,7 @@ static void homeaxis(int axis) { } } #define HOMEAXIS(LETTER) homeaxis(LETTER##_AXIS) -void refresh_cmd_timeout(void) ++void refresh_cmd_timeout(void) { previous_millis_cmd = millis(); } From 2ccdf4f36d368dd5b5d24aab05dc54c39e8bf458 Mon Sep 17 00:00:00 2001 From: Gabe Rosenhouse Date: Wed, 19 Feb 2014 00:02:59 -0800 Subject: [PATCH 34/37] Use descriptive constants instead of numeric literals --- Marlin/Marlin_main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index f98d530de..47f81a4d4 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -1241,7 +1241,7 @@ void process_commands() #else // NOT DELTA - home_all_axis = !((code_seen(axis_codes[0])) || (code_seen(axis_codes[1])) || (code_seen(axis_codes[2]))); + home_all_axis = !((code_seen(axis_codes[X_AXIS])) || (code_seen(axis_codes[Y_AXIS])) || (code_seen(axis_codes[Z_AXIS]))); #if Z_HOME_DIR > 0 // If homing away from BED do Z first if((home_all_axis) || (code_seen(axis_codes[Z_AXIS]))) { From d2d7d186b5aaa208351d0dda35b26b59b6fbebca Mon Sep 17 00:00:00 2001 From: Gabe Rosenhouse Date: Wed, 19 Feb 2014 00:10:17 -0800 Subject: [PATCH 35/37] Use descriptive constants, more --- Marlin/Marlin_main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index 47f81a4d4..a3f0d6048 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -2088,7 +2088,7 @@ void process_commands() } else { - bool all_axis = !((code_seen(axis_codes[0])) || (code_seen(axis_codes[1])) || (code_seen(axis_codes[2]))|| (code_seen(axis_codes[3]))); + bool all_axis = !((code_seen(axis_codes[X_AXIS])) || (code_seen(axis_codes[Y_AXIS])) || (code_seen(axis_codes[Z_AXIS]))|| (code_seen(axis_codes[E_AXIS]))); if(all_axis) { st_synchronize(); From 357e31270aa97cf9cae6cf8da335666af1fcaec6 Mon Sep 17 00:00:00 2001 From: Gabe Rosenhouse Date: Wed, 19 Feb 2014 00:51:43 -0800 Subject: [PATCH 36/37] Prevent G29 without first homing in X and Y If position is unknown, then G29 can be dangerous. --- Marlin/Marlin_main.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index f98d530de..444d69828 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -1409,6 +1409,15 @@ void process_commands() #error "You must have a Z_MIN endstop in order to enable Auto Bed Leveling feature!!! Z_MIN_PIN must point to a valid hardware pin." #endif + // Prevent user from running a G29 without first homing in X and Y + if (! (axis_known_position[X_AXIS] && axis_known_position[Y_AXIS]) ) + { + LCD_MESSAGEPGM(MSG_POSITION_UNKNOWN); + SERIAL_ECHO_START; + SERIAL_ECHOLNPGM(MSG_POSITION_UNKNOWN); + break; // abort G29, since we don't know where we are + } + st_synchronize(); // make sure the bed_level_rotation_matrix is identity or the planner will get it incorectly //vector_3 corrected_position = plan_get_position_mm(); From f308a8af91a0f7638a48a5e4f8647d1567992df6 Mon Sep 17 00:00:00 2001 From: Gabe Rosenhouse Date: Wed, 19 Feb 2014 01:06:24 -0800 Subject: [PATCH 37/37] update comment --- Marlin/Marlin_main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index 444d69828..bc8327b8b 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -76,7 +76,7 @@ // G10 - retract filament according to settings of M207 // G11 - retract recover filament according to settings of M208 // G28 - Home all Axis -// G29 - Detailed Z-Probe, probes the bed at 3 points. You must de at the home position for this to work correctly. +// G29 - Detailed Z-Probe, probes the bed at 3 or more points. Will fail if you haven't homed yet. // G30 - Single Z Probe, probes bed at current XY location. // G90 - Use Absolute Coordinates // G91 - Use Relative Coordinates