From 881e348eed2a52eb3ad50f27a12763bf012d1605 Mon Sep 17 00:00:00 2001 From: paciotti Date: Sat, 8 Mar 2014 22:35:05 +0100 Subject: [PATCH 01/39] Update Configuration_adv.h Increase Z_HOME_RETRACT_MM to 2mm default to avoid end stop not switching during retract. --- Marlin/Configuration_adv.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Marlin/Configuration_adv.h b/Marlin/Configuration_adv.h index bca056f9b0..923badb117 100644 --- a/Marlin/Configuration_adv.h +++ b/Marlin/Configuration_adv.h @@ -215,7 +215,7 @@ //homing hits the endstop, then retracts by this distance, before it tries to slowly bump again: #define X_HOME_RETRACT_MM 5 #define Y_HOME_RETRACT_MM 5 -#define Z_HOME_RETRACT_MM 1 +#define Z_HOME_RETRACT_MM 2 //#define QUICK_HOME //if this is defined, if both x and y are to be homed, a diagonal move will be performed initially. #define AXIS_RELATIVE_MODES {false, false, false, false} From aab61e63c3ab3ff9db143009c8faf9a624abf650 Mon Sep 17 00:00:00 2001 From: whosawhatsis Date: Fri, 14 Mar 2014 14:52:48 -0700 Subject: [PATCH 02/39] FWRETRACT in mm/s MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Firmware retraction now stores the retract and recover speeds in mm/s instead of mm/min. This makes it match the units of the maximum feedrate, and fixes problems with modifying the value via LCD control panel. From gcode, the values are still taken in mm/min to match the units of G1 and similar, and they are converted to mm/s before they are stored. I also lowered the default retract feedrate to make it less likely to cause problems for geared extruders when the user hasn’t bothered to set a reasonable maximum feedrate, though users should be setting both of these values to suit their hardware. --- Marlin/Configuration_adv.h | 4 ++-- Marlin/Marlin_main.cpp | 12 ++++++------ Marlin/language.h | 36 ++++++++++++++++++------------------ 3 files changed, 26 insertions(+), 26 deletions(-) diff --git a/Marlin/Configuration_adv.h b/Marlin/Configuration_adv.h index aed27c0796..044bd90582 100644 --- a/Marlin/Configuration_adv.h +++ b/Marlin/Configuration_adv.h @@ -402,10 +402,10 @@ const unsigned int dropsegments=5; //everything with less than this number of st #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_FEEDRATE 45 //default feedrate for retracting (mm/s) #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 + #define RETRACT_RECOVER_FEEDRATE 8 //default feedrate for recovering from retraction (mm/s) #endif //adds support for experimental filament exchange support M600; requires display diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index 4e9fed10ef..cc664b839e 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -1093,7 +1093,7 @@ static void homeaxis(int 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; + feedrate=retract_feedrate*60; retracted=true; prepare_move(); current_position[Z_AXIS]-=retract_zlift; @@ -1111,7 +1111,7 @@ static void homeaxis(int 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; + feedrate=retract_recover_feedrate*60; retracted=false; prepare_move(); feedrate = oldFeedrate; @@ -2291,7 +2291,7 @@ void process_commands() break; #endif #ifdef FWRETRACT - case 207: //M207 - set retract length S[positive mm] F[feedrate mm/sec] Z[additional zlift/hop] + case 207: //M207 - set retract length S[positive mm] F[feedrate mm/min] Z[additional zlift/hop] { if(code_seen('S')) { @@ -2299,14 +2299,14 @@ void process_commands() } if(code_seen('F')) { - retract_feedrate = code_value() ; + retract_feedrate = code_value()/60 ; } if(code_seen('Z')) { retract_zlift = code_value() ; } }break; - case 208: // M208 - set retract recover length S[positive mm surplus to the M207 S*] F[feedrate mm/sec] + case 208: // M208 - set retract recover length S[positive mm surplus to the M207 S*] F[feedrate mm/min] { if(code_seen('S')) { @@ -2314,7 +2314,7 @@ void process_commands() } if(code_seen('F')) { - retract_recover_feedrate = code_value() ; + retract_recover_feedrate = code_value()/60 ; } }break; case 209: // 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. diff --git a/Marlin/language.h b/Marlin/language.h index 2126f7fb5f..3593bdeed3 100644 --- a/Marlin/language.h +++ b/Marlin/language.h @@ -150,10 +150,10 @@ #define MSG_KILLED "KILLED. " #define MSG_STOPPED "STOPPED. " #define MSG_CONTROL_RETRACT "Retract mm" - #define MSG_CONTROL_RETRACTF "Retract F" + #define MSG_CONTROL_RETRACTF "Retract V" #define MSG_CONTROL_RETRACT_ZLIFT "Hop mm" #define MSG_CONTROL_RETRACT_RECOVER "UnRet +mm" - #define MSG_CONTROL_RETRACT_RECOVERF "UnRet F" + #define MSG_CONTROL_RETRACT_RECOVERF "UnRet V" #define MSG_AUTORETRACT "AutoRetr." #define MSG_FILAMENTCHANGE "Change filament" #define MSG_INIT_SDCARD "Init. SD card" @@ -335,10 +335,10 @@ #define MSG_STOPPED "Zatrzymany. " #define MSG_STEPPER_RELEASED "Zwolniony." #define MSG_CONTROL_RETRACT "Wycofaj mm" - #define MSG_CONTROL_RETRACTF "Wycofaj F" + #define MSG_CONTROL_RETRACTF "Wycofaj V" #define MSG_CONTROL_RETRACT_ZLIFT "Skok Z mm:" #define MSG_CONTROL_RETRACT_RECOVER "Cof. wycof. +mm" - #define MSG_CONTROL_RETRACT_RECOVERF "Cof. wycof. F" + #define MSG_CONTROL_RETRACT_RECOVERF "Cof. wycof. V" #define MSG_AUTORETRACT "Auto. wycofanie" #define MSG_FILAMENTCHANGE "Zmien filament" #define MSG_INIT_SDCARD "Inicjal. karty SD" @@ -520,10 +520,10 @@ #define MSG_STOPPED "STOPPE." #define MSG_STEPPER_RELEASED "RELACHE." #define MSG_CONTROL_RETRACT "Retraction mm" - #define MSG_CONTROL_RETRACTF "Retraction F" + #define MSG_CONTROL_RETRACTF "Retraction V" #define MSG_CONTROL_RETRACT_ZLIFT "Hop mm" #define MSG_CONTROL_RETRACT_RECOVER "UnRet +mm" - #define MSG_CONTROL_RETRACT_RECOVERF "UnRet F" + #define MSG_CONTROL_RETRACT_RECOVERF "UnRet V" #define MSG_AUTORETRACT "Retract. Auto." #define MSG_FILAMENTCHANGE "Changer filament" #define MSG_INIT_SDCARD "Init. la carte SD" @@ -706,10 +706,10 @@ #define MSG_STOPPED "GESTOPPT" #define MSG_STEPPER_RELEASED "Stepper frei" #define MSG_CONTROL_RETRACT "Retract mm" - #define MSG_CONTROL_RETRACTF "Retract F" + #define MSG_CONTROL_RETRACTF "Retract V" #define MSG_CONTROL_RETRACT_ZLIFT "Hop mm" #define MSG_CONTROL_RETRACT_RECOVER "UnRet +mm" - #define MSG_CONTROL_RETRACT_RECOVERF "UnRet F" + #define MSG_CONTROL_RETRACT_RECOVERF "UnRet V" #define MSG_AUTORETRACT "AutoRetr." #define MSG_FILAMENTCHANGE "Filament wechseln" #define MSG_INIT_SDCARD "Init. SD-Card" @@ -888,10 +888,10 @@ #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_RETRACTF "Retraer V" #define MSG_CONTROL_RETRACT_ZLIFT "Levantar mm" #define MSG_CONTROL_RETRACT_RECOVER "DesRet +mm" - #define MSG_CONTROL_RETRACT_RECOVERF "DesRet F" + #define MSG_CONTROL_RETRACT_RECOVERF "DesRet V" #define MSG_AUTORETRACT "AutoRetr." #define MSG_FILAMENTCHANGE "Change filament" #define MSG_INIT_SDCARD "Iniciando tarjeta" @@ -1079,10 +1079,10 @@ #define MSG_KILLED "УБИТО." #define MSG_STOPPED "ОСТАНОВЛЕНО." #define MSG_CONTROL_RETRACT "Откат mm:" - #define MSG_CONTROL_RETRACTF "Откат F:" + #define MSG_CONTROL_RETRACTF "Откат V:" #define MSG_CONTROL_RETRACT_ZLIFT "Прыжок mm:" #define MSG_CONTROL_RETRACT_RECOVER "Возврат +mm:" - #define MSG_CONTROL_RETRACT_RECOVERF "Возврат F:" + #define MSG_CONTROL_RETRACT_RECOVERF "Возврат V:" #define MSG_AUTORETRACT "АвтоОткат:" #define MSG_FILAMENTCHANGE "Change filament" #define MSG_INIT_SDCARD "Init. SD-Card" @@ -1260,10 +1260,10 @@ #define MSG_KILLED "UCCISO. " #define MSG_STOPPED "ARRESTATO. " #define MSG_CONTROL_RETRACT "Ritrai mm" - #define MSG_CONTROL_RETRACTF "Ritrai F" + #define MSG_CONTROL_RETRACTF "Ritrai V" #define MSG_CONTROL_RETRACT_ZLIFT "Salta mm" #define MSG_CONTROL_RETRACT_RECOVER "UnRet +mm" - #define MSG_CONTROL_RETRACT_RECOVERF "UnRet F" + #define MSG_CONTROL_RETRACT_RECOVERF "UnRet V" #define MSG_AUTORETRACT "AutoArretramento" #define MSG_FILAMENTCHANGE "Cambia filamento" #define MSG_INIT_SDCARD "Iniz. SD-Card" @@ -1449,10 +1449,10 @@ #define MSG_STOPPED "PARADA. " #define MSG_STEPPER_RELEASED "Lancado." #define MSG_CONTROL_RETRACT " Retrair mm:" - #define MSG_CONTROL_RETRACTF " Retrair F:" + #define MSG_CONTROL_RETRACTF " Retrair V:" #define MSG_CONTROL_RETRACT_ZLIFT " Levantar mm:" #define MSG_CONTROL_RETRACT_RECOVER " DesRet +mm:" - #define MSG_CONTROL_RETRACT_RECOVERF " DesRet F:" + #define MSG_CONTROL_RETRACT_RECOVERF " DesRet V:" #define MSG_AUTORETRACT " AutoRetr.:" #define MSG_FILAMENTCHANGE "Change filament" #define MSG_INIT_SDCARD "Init. SD-Card" @@ -1633,10 +1633,10 @@ #define MSG_KILLED "KILLED. " #define MSG_STOPPED "STOPPED. " #define MSG_CONTROL_RETRACT "Veda mm" - #define MSG_CONTROL_RETRACTF "Veda F" + #define MSG_CONTROL_RETRACTF "Veda V" #define MSG_CONTROL_RETRACT_ZLIFT "Z mm" #define MSG_CONTROL_RETRACT_RECOVER "UnRet +mm" - #define MSG_CONTROL_RETRACT_RECOVERF "UnRet F" + #define MSG_CONTROL_RETRACT_RECOVERF "UnRet V" #define MSG_AUTORETRACT "AutoVeto." #define MSG_FILAMENTCHANGE "Change filament" #define MSG_INIT_SDCARD "Init. SD-Card" From 06709ad60e09b53c2b01a1c87a5d87e47d1c4d70 Mon Sep 17 00:00:00 2001 From: Ralf Schultz Date: Mon, 17 Mar 2014 15:45:13 +0100 Subject: [PATCH 03/39] Added servo pin assignments to Sanguinololu --- Marlin/pins.h | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/Marlin/pins.h b/Marlin/pins.h index 9976d431d0..56d55e985f 100644 --- a/Marlin/pins.h +++ b/Marlin/pins.h @@ -1054,6 +1054,22 @@ #define FAN_PIN 4 #endif +#ifdef NUM_SERVOS + #define SERVO0_PIN 11 + + #if NUM_SERVOS > 1 + #define SERVO1_PIN 27 + #endif + + #if NUM_SERVOS > 2 + #define SERVO2_PIN 28 + #endif + + #if NUM_SERVOS > 3 + #define SERVO3_PIN 29 + #endif +#endif + #define PS_ON_PIN -1 #define KILL_PIN -1 From 944ced87c551d9be7761e099dd59e56adb703ac9 Mon Sep 17 00:00:00 2001 From: Dim3nsioneer Date: Mon, 17 Mar 2014 18:37:46 +0100 Subject: [PATCH 04/39] Extended Preheat options Preheat LCD menus base on code by D-Base --- Marlin/language.h | 126 +++++++++++++++++++++++++++-- Marlin/ultralcd.cpp | 190 ++++++++++++++++++++++++++++++++++++-------- 2 files changed, 275 insertions(+), 41 deletions(-) diff --git a/Marlin/language.h b/Marlin/language.h index 9e70814fb4..c8b7de8ef8 100644 --- a/Marlin/language.h +++ b/Marlin/language.h @@ -77,9 +77,19 @@ #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_PLA0 "Preheat PLA 1" + #define MSG_PREHEAT_PLA1 "Preheat PLA 2" + #define MSG_PREHEAT_PLA2 "Preheat PLA 3" + #define MSG_PREHEAT_PLA012 "Preheat PLA All" + #define MSG_PREHEAT_PLA_BEDONLY "Preheat PLA Bed" + #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_ABS0 "Preheat ABS 1" + #define MSG_PREHEAT_ABS1 "Preheat ABS 2" + #define MSG_PREHEAT_ABS2 "Preheat ABS 3" + #define MSG_PREHEAT_ABS012 "Preheat ABS All" + #define MSG_PREHEAT_ABS_BEDONLY "Preheat ABS Bed" + #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" @@ -264,9 +274,19 @@ #define MSG_AUTO_HOME "Auto. poz. zerowa" #define MSG_SET_ORIGIN "Ustaw punkt zero" #define MSG_PREHEAT_PLA "Rozgrzej PLA" - #define MSG_PREHEAT_PLA_SETTINGS "Ustaw. rozg. PLA" + #define MSG_PREHEAT_PLA0 "Rozgrzej PLA 1" + #define MSG_PREHEAT_PLA1 "Rozgrzej PLA 2" + #define MSG_PREHEAT_PLA2 "Rozgrzej PLA 3" + #define MSG_PREHEAT_PLA012 "Rozgrzej PLA Wszystko" + #define MSG_PREHEAT_PLA_BEDONLY "Rozgrzej PLA Loze" + #define MSG_PREHEAT_PLA_SETTINGS "Ustawienia roz. PLA" #define MSG_PREHEAT_ABS "Rozgrzej ABS" - #define MSG_PREHEAT_ABS_SETTINGS "Ustaw. rozg. ABS" + #define MSG_PREHEAT_ABS0 "Rozgrzej ABS 1" + #define MSG_PREHEAT_ABS1 "Rozgrzej ABS 2" + #define MSG_PREHEAT_ABS2 "Rozgrzej ABS 3" + #define MSG_PREHEAT_ABS012 "Rozgrzej ABS Wszystko" + #define MSG_PREHEAT_ABS_BEDONLY "Rozgrzej ABS Loze" + #define MSG_PREHEAT_ABS_SETTINGS "Ustawienia roz. ABS" #define MSG_COOLDOWN "Chlodzenie" #define MSG_SWITCH_PS_ON "Wlacz zasilacz" #define MSG_SWITCH_PS_OFF "Wylacz zasilacz" @@ -453,9 +473,19 @@ #define MSG_AUTO_HOME "Home auto." #define MSG_SET_ORIGIN "Regler origine" #define MSG_PREHEAT_PLA " Prechauffage PLA" - #define MSG_PREHEAT_PLA_SETTINGS " Regl. prech. PLA" + #define MSG_PREHEAT_PLA0 "Prechauffage PLA 1" + #define MSG_PREHEAT_PLA1 "Prechauffage PLA 2" + #define MSG_PREHEAT_PLA2 "Prechauffage PLA 3" + #define MSG_PREHEAT_PLA012 "Prechauffage PLA Tout" + #define MSG_PREHEAT_PLA_BEDONLY "Prechauffage PLA Plateau" + #define MSG_PREHEAT_PLA_SETTINGS " Regl. prechauffe PLA" #define MSG_PREHEAT_ABS "Prechauffage ABS" - #define MSG_PREHEAT_ABS_SETTINGS "Regl. prech. ABS" + #define MSG_PREHEAT_ABS0 "Prechauffage ABS 1" + #define MSG_PREHEAT_ABS1 "Prechauffage ABS 2" + #define MSG_PREHEAT_ABS2 "Prechauffage ABS 3" + #define MSG_PREHEAT_ABS012 "Prechauffage ABS Tout" + #define MSG_PREHEAT_ABS_BEDONLY "Prechauffage ABS Plateau" + #define MSG_PREHEAT_ABS_SETTINGS "Regl. prechauffe ABS" #define MSG_COOLDOWN "Refroidir" #define MSG_SWITCH_PS_ON "Allumer alim." #define MSG_SWITCH_PS_OFF "Eteindre alim." @@ -643,9 +673,19 @@ #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ärm. PLA Ein." + #define MSG_PREHEAT_PLA0 "Vorwärmen PLA 1" + #define MSG_PREHEAT_PLA1 "Vorwärmen PLA 2" + #define MSG_PREHEAT_PLA2 "Vorwärmen PLA 3" + #define MSG_PREHEAT_PLA012 "Vorwärmen PLA Alle" + #define MSG_PREHEAT_PLA_BEDONLY "Vorwärmen PLA Bett" + #define MSG_PREHEAT_PLA_SETTINGS "Vorwärmen PLA Einstellungen" #define MSG_PREHEAT_ABS "Vorwärmen ABS" - #define MSG_PREHEAT_ABS_SETTINGS "Vorwärm. ABS Ein." + #define MSG_PREHEAT_ABS0 "Vorwärmen ABS 1" + #define MSG_PREHEAT_ABS1 "Vorwärmen ABS 2" + #define MSG_PREHEAT_ABS2 "Vorwärmen ABS 3" + #define MSG_PREHEAT_ABS012 "Vorwärmen ABS Alle" + #define MSG_PREHEAT_ABS_BEDONLY "Vorwärmen ABS Bett" + #define MSG_PREHEAT_ABS_SETTINGS "Vorwärmen ABS Einstellungen" #define MSG_COOLDOWN "Abkühlen" #define MSG_SWITCH_PS_ON "Switch Power On" #define MSG_SWITCH_PS_OFF "Switch Power Off" @@ -832,8 +872,18 @@ #define MSG_AUTO_HOME "Llevar al origen" #define MSG_SET_ORIGIN "Establecer cero" #define MSG_PREHEAT_PLA "Precalentar PLA" + #define MSG_PREHEAT_PLA0 "Precalentar PLA 1" + #define MSG_PREHEAT_PLA1 "Precalentar PLA 2" + #define MSG_PREHEAT_PLA2 "Precalentar PLA 3" + #define MSG_PREHEAT_PLA012 "Precalentar PLA Todo" + #define MSG_PREHEAT_PLA_BEDONLY "Precalentar PLA Base" #define MSG_PREHEAT_PLA_SETTINGS "Ajustar temp. PLA" #define MSG_PREHEAT_ABS "Precalentar ABS" + #define MSG_PREHEAT_ABS0 "Precalentar ABS 1" + #define MSG_PREHEAT_ABS1 "Precalentar ABS 2" + #define MSG_PREHEAT_ABS2 "Precalentar ABS 3" + #define MSG_PREHEAT_ABS012 "Precalentar ABS Todo" + #define MSG_PREHEAT_ABS_BEDONLY "Precalentar ABS Base" #define MSG_PREHEAT_ABS_SETTINGS "Ajustar temp. ABS" #define MSG_COOLDOWN "Enfriar" #define MSG_SWITCH_PS_ON "Switch Power On" @@ -1026,8 +1076,18 @@ #define MSG_AUTO_HOME "Парковка" #define MSG_SET_ORIGIN "Запомнить ноль" #define MSG_PREHEAT_PLA "Преднагрев PLA" + #define MSG_PREHEAT_PLA0 "Преднагрев PLA0" + #define MSG_PREHEAT_PLA1 "Преднагрев PLA1" + #define MSG_PREHEAT_PLA2 "Преднагрев PLA2" + #define MSG_PREHEAT_PLA012 "Преднагрев PLA все " + #define MSG_PREHEAT_PLA_BEDONLY "Преднагрев PLA \002 Кровать" #define MSG_PREHEAT_PLA_SETTINGS "Настройки PLA" #define MSG_PREHEAT_ABS "Преднагрев ABS" + #define MSG_PREHEAT_ABS0 "Преднагрев ABS0" + #define MSG_PREHEAT_ABS1 "Преднагрев ABS1" + #define MSG_PREHEAT_ABS2 "Преднагрев ABS2" + #define MSG_PREHEAT_ABS012 "Преднагрев ABS все " + #define MSG_PREHEAT_ABS_BEDONLY "Преднагрев ABS \002 Кровать" #define MSG_PREHEAT_ABS_SETTINGS "Настройки ABS" #define MSG_COOLDOWN "Охлаждение" #define MSG_SWITCH_PS_ON "Switch Power On" @@ -1211,8 +1271,18 @@ #define MSG_AUTO_HOME "Auto Home" #define MSG_SET_ORIGIN "Imposta Origine" #define MSG_PREHEAT_PLA "Preriscalda PLA" + #define MSG_PREHEAT_PLA0 "Preriscalda PLA 1" + #define MSG_PREHEAT_PLA1 "Preriscalda PLA 2" + #define MSG_PREHEAT_PLA2 "Preriscalda PLA 3" + #define MSG_PREHEAT_PLA012 "Preriscalda PLA Tutto" + #define MSG_PREHEAT_PLA_BEDONLY "Preriscalda PLA Piatto" #define MSG_PREHEAT_PLA_SETTINGS "Preris. PLA Conf" #define MSG_PREHEAT_ABS "Preriscalda ABS" + #define MSG_PREHEAT_ABS0 "Preriscalda ABS 1" + #define MSG_PREHEAT_ABS1 "Preriscalda ABS 2" + #define MSG_PREHEAT_ABS2 "Preriscalda ABS 3" + #define MSG_PREHEAT_ABS012 "Preriscalda ABS Tutto" + #define MSG_PREHEAT_ABS_BEDONLY "Preriscalda ABS Piatto" #define MSG_PREHEAT_ABS_SETTINGS "Preris. ABS Conf" #define MSG_COOLDOWN "Raffredda" #define MSG_SWITCH_PS_ON "Switch Power On" @@ -1398,8 +1468,18 @@ #define MSG_AUTO_HOME "Ir para origen" #define MSG_SET_ORIGIN "Estabelecer orig." #define MSG_PREHEAT_PLA "Pre-aquecer PLA" + #define MSG_PREHEAT_PLA0 " pre-aquecer PLA 1" + #define MSG_PREHEAT_PLA1 " pre-aquecer PLA 2" + #define MSG_PREHEAT_PLA2 " pre-aquecer PLA 3" + #define MSG_PREHEAT_PLA012 " pre-aquecer PLA Tudo" + #define MSG_PREHEAT_PLA_BEDONLY " pre-aquecer PLA \002Base" #define MSG_PREHEAT_PLA_SETTINGS "PLA setting" #define MSG_PREHEAT_ABS "Pre-aquecer ABS" + #define MSG_PREHEAT_ABS0 " pre-aquecer ABS 1" + #define MSG_PREHEAT_ABS1 " pre-aquecer ABS 2" + #define MSG_PREHEAT_ABS2 " pre-aquecer ABS 3" + #define MSG_PREHEAT_ABS012 " pre-aquecer ABS Tudo" + #define MSG_PREHEAT_ABS_BEDONLY " pre-aquecer ABS \002Base" #define MSG_PREHEAT_ABS_SETTINGS "ABS setting" #define MSG_COOLDOWN "Esfriar" #define MSG_SWITCH_PS_ON "Switch Power On" @@ -1592,8 +1672,18 @@ #define MSG_AUTO_HOME "Aja referenssiin" #define MSG_SET_ORIGIN "Aseta origo" #define MSG_PREHEAT_PLA "Esilammita PLA" + #define MSG_PREHEAT_PLA0 "Esilammita PLA 1" + #define MSG_PREHEAT_PLA1 "Esilammita PLA 2" + #define MSG_PREHEAT_PLA2 "Esilammita PLA 3" + #define MSG_PREHEAT_PLA012 "Esilammita PLA Kaikki" + #define MSG_PREHEAT_PLA_BEDONLY "Esilammita PLA Alusta" #define MSG_PREHEAT_PLA_SETTINGS "Esilamm. PLA konf" #define MSG_PREHEAT_ABS "Esilammita ABS" + #define MSG_PREHEAT_ABS0 "Esilammita ABS 1" + #define MSG_PREHEAT_ABS1 "Esilammita ABS 2" + #define MSG_PREHEAT_ABS2 "Esilammita ABS 3" + #define MSG_PREHEAT_ABS012 "Esilammita ABS Kaikki" + #define MSG_PREHEAT_ABS_BEDONLY "Esilammita ABS Alusta" #define MSG_PREHEAT_ABS_SETTINGS "Esilamm. ABS konf" #define MSG_COOLDOWN "Jaahdyta" #define MSG_SWITCH_PS_ON "Virta paalle" @@ -1779,8 +1869,18 @@ #define MSG_AUTO_HOME "Levar a l'orichen" #define MSG_SET_ORIGIN "Establir zero" #define MSG_PREHEAT_PLA "Precalentar PLA" + #define MSG_PREHEAT_PLA0 "Precalentar PLA0" + #define MSG_PREHEAT_PLA1 "Precalentar PLA1" + #define MSG_PREHEAT_PLA2 "Precalentar PLA2" + #define MSG_PREHEAT_PLA012 "Precalentar PLA a" + #define MSG_PREHEAT_PLA_BEDONLY "Prec. PLA Base" #define MSG_PREHEAT_PLA_SETTINGS "Achustar tem. PLA" #define MSG_PREHEAT_ABS "Precalentar ABS" + #define MSG_PREHEAT_ABS0 "Precalentar ABS0" + #define MSG_PREHEAT_ABS1 "Precalentar ABS1" + #define MSG_PREHEAT_ABS2 "Precalentar ABS2" + #define MSG_PREHEAT_ABS012 "Precalentar ABS a" + #define MSG_PREHEAT_ABS_BEDONLY "Prec. ABS Base" #define MSG_PREHEAT_ABS_SETTINGS "Achustar tem. ABS" #define MSG_COOLDOWN "Enfriar" #define MSG_SWITCH_PS_ON "Enchegar Fuent" @@ -1972,8 +2072,18 @@ #define MSG_AUTO_HOME "Auto home" #define MSG_SET_ORIGIN "Nulpunt instellen" #define MSG_PREHEAT_PLA "PLA voorverwarmen" + #define MSG_PREHEAT_PLA0 "PLA voorverw. 0" + #define MSG_PREHEAT_PLA1 "PLA voorverw. 1" + #define MSG_PREHEAT_PLA2 "PLA voorverw. 2" + #define MSG_PREHEAT_PLA012 "PLA voorverw. aan" + #define MSG_PREHEAT_PLA_BEDONLY "PLA voorverw. Bed" #define MSG_PREHEAT_PLA_SETTINGS "PLA verw. conf" #define MSG_PREHEAT_ABS "ABS voorverwarmen" + #define MSG_PREHEAT_ABS0 "ABS voorverw. 0" + #define MSG_PREHEAT_ABS1 "ABS voorverw. 1" + #define MSG_PREHEAT_ABS2 "ABS voorverw. 2" + #define MSG_PREHEAT_ABS012 "ABS voorverw. aan" + #define MSG_PREHEAT_ABS_BEDONLY "ABS voorverw. Bed" #define MSG_PREHEAT_ABS_SETTINGS "ABS verw. conf" #define MSG_COOLDOWN "Afkoelen" #define MSG_SWITCH_PS_ON "Stroom aan" diff --git a/Marlin/ultralcd.cpp b/Marlin/ultralcd.cpp index 4c8df66deb..8ae977d211 100644 --- a/Marlin/ultralcd.cpp +++ b/Marlin/ultralcd.cpp @@ -304,37 +304,6 @@ static void lcd_autostart_sd() } #endif -void lcd_preheat_pla() -{ - setTargetHotend0(plaPreheatHotendTemp); - setTargetHotend1(plaPreheatHotendTemp); - setTargetHotend2(plaPreheatHotendTemp); - setTargetBed(plaPreheatHPBTemp); - fanSpeed = plaPreheatFanSpeed; - lcd_return_to_status(); - setWatch(); // heater sanity check timer -} - -void lcd_preheat_abs() -{ - setTargetHotend0(absPreheatHotendTemp); - setTargetHotend1(absPreheatHotendTemp); - setTargetHotend2(absPreheatHotendTemp); - setTargetBed(absPreheatHPBTemp); - fanSpeed = absPreheatFanSpeed; - lcd_return_to_status(); - setWatch(); // heater sanity check timer -} - -static void lcd_cooldown() -{ - setTargetHotend0(0); - setTargetHotend1(0); - setTargetHotend2(0); - setTargetBed(0); - lcd_return_to_status(); -} - #ifdef BABYSTEPPING static void lcd_babystep_x() { @@ -435,6 +404,154 @@ static void lcd_tune_menu() END_MENU(); } +void lcd_preheat_pla0() +{ + setTargetHotend0(plaPreheatHotendTemp); + setTargetBed(plaPreheatHPBTemp); + fanSpeed = plaPreheatFanSpeed; + lcd_return_to_status(); + setWatch(); // heater sanity check timer +} + +void lcd_preheat_abs0() +{ + setTargetHotend0(absPreheatHotendTemp); + setTargetBed(absPreheatHPBTemp); + fanSpeed = absPreheatFanSpeed; + lcd_return_to_status(); + setWatch(); // heater sanity check timer +} + +#if TEMP_SENSOR_1 != 0 //2nd extruder preheat +void lcd_preheat_pla1() +{ + setTargetHotend1(plaPreheatHotendTemp); + setTargetBed(plaPreheatHPBTemp); + fanSpeed = plaPreheatFanSpeed; + lcd_return_to_status(); + setWatch(); // heater sanity check timer +} + +void lcd_preheat_abs1() +{ + setTargetHotend1(absPreheatHotendTemp); + setTargetBed(absPreheatHPBTemp); + fanSpeed = absPreheatFanSpeed; + lcd_return_to_status(); + setWatch(); // heater sanity check timer +} +#endif //2nd extruder preheat + +#if TEMP_SENSOR_2 != 0 //3 extruder preheat +void lcd_preheat_pla2() +{ + setTargetHotend2(plaPreheatHotendTemp); + setTargetBed(plaPreheatHPBTemp); + fanSpeed = plaPreheatFanSpeed; + lcd_return_to_status(); + setWatch(); // heater sanity check timer +} + +void lcd_preheat_abs2() +{ + setTargetHotend2(absPreheatHotendTemp); + setTargetBed(absPreheatHPBTemp); + fanSpeed = absPreheatFanSpeed; + lcd_return_to_status(); + setWatch(); // heater sanity check timer +} +#endif //3 extruder preheat + +#if TEMP_SENSOR_1 != 0 || TEMP_SENSOR_2 != 0 //more than one extruder present +void lcd_preheat_pla012() +{ + setTargetHotend0(plaPreheatHotendTemp); + setTargetHotend1(plaPreheatHotendTemp); + setTargetHotend2(plaPreheatHotendTemp); + setTargetBed(plaPreheatHPBTemp); + fanSpeed = plaPreheatFanSpeed; + lcd_return_to_status(); + setWatch(); // heater sanity check timer +} + +void lcd_preheat_abs012() +{ + setTargetHotend0(absPreheatHotendTemp); + setTargetHotend1(absPreheatHotendTemp); + setTargetHotend2(absPreheatHotendTemp); + setTargetBed(absPreheatHPBTemp); + fanSpeed = absPreheatFanSpeed; + lcd_return_to_status(); + setWatch(); // heater sanity check timer +} +#endif //more than one extruder present + +void lcd_preheat_pla_bedonly() +{ + setTargetBed(plaPreheatHPBTemp); + fanSpeed = plaPreheatFanSpeed; + lcd_return_to_status(); + setWatch(); // heater sanity check timer +} + +void lcd_preheat_abs_bedonly() +{ + setTargetBed(absPreheatHPBTemp); + fanSpeed = absPreheatFanSpeed; + lcd_return_to_status(); + setWatch(); // heater sanity check timer +} + +static void lcd_preheat_pla_menu() +{ + START_MENU(); + MENU_ITEM(back, MSG_PREPARE, lcd_prepare_menu); + MENU_ITEM(function, MSG_PREHEAT_PLA0, lcd_preheat_pla0); +#if TEMP_SENSOR_1 != 0 //2 extruder preheat + MENU_ITEM(function, MSG_PREHEAT_PLA1, lcd_preheat_pla1); +#endif //2 extruder preheat +#if TEMP_SENSOR_2 != 0 //3 extruder preheat + MENU_ITEM(function, MSG_PREHEAT_PLA2, lcd_preheat_pla2); +#endif //3 extruder preheat +#if TEMP_SENSOR_1 != 0 || TEMP_SENSOR_2 != 0 //all extruder preheat + MENU_ITEM(function, MSG_PREHEAT_PLA012, lcd_preheat_pla012); +#endif //2 extruder preheat +#if TEMP_SENSOR_BED != 0 + MENU_ITEM(function, MSG_PREHEAT_PLA_BEDONLY, lcd_preheat_pla_bedonly); +#endif + END_MENU(); +} + +static void lcd_preheat_abs_menu() +{ + START_MENU(); + MENU_ITEM(back, MSG_PREPARE, lcd_prepare_menu); + MENU_ITEM(function, MSG_PREHEAT_ABS0, lcd_preheat_abs0); +#if TEMP_SENSOR_1 != 0 //2 extruder preheat + MENU_ITEM(function, MSG_PREHEAT_ABS1, lcd_preheat_abs1); +#endif //2 extruder preheat +#if TEMP_SENSOR_2 != 0 //3 extruder preheat + MENU_ITEM(function, MSG_PREHEAT_ABS2, lcd_preheat_abs2); +#endif //3 extruder preheat +#if TEMP_SENSOR_1 != 0 || TEMP_SENSOR_2 != 0 //all extruder preheat + MENU_ITEM(function, MSG_PREHEAT_ABS012, lcd_preheat_abs012); +#endif //2 extruder preheat +#if TEMP_SENSOR_BED != 0 + MENU_ITEM(function, MSG_PREHEAT_ABS_BEDONLY, lcd_preheat_abs_bedonly); +#endif + END_MENU(); +} + +void lcd_cooldown() +{ + setTargetHotend0(0); + setTargetHotend1(0); + setTargetHotend2(0); + setTargetBed(0); + fanSpeed = 0; + lcd_return_to_status(); +} + static void lcd_prepare_menu() { START_MENU(); @@ -447,8 +564,15 @@ static void lcd_prepare_menu() MENU_ITEM(gcode, MSG_DISABLE_STEPPERS, PSTR("M84")); MENU_ITEM(gcode, MSG_AUTO_HOME, PSTR("G28")); //MENU_ITEM(gcode, MSG_SET_ORIGIN, PSTR("G92 X0 Y0 Z0")); - MENU_ITEM(function, MSG_PREHEAT_PLA, lcd_preheat_pla); - MENU_ITEM(function, MSG_PREHEAT_ABS, lcd_preheat_abs); +#if TEMP_SENSOR_0 != 0 + #if TEMP_SENSOR_1 != 0 || TEMP_SENSOR_2 != 0 || TEMP_SENSOR_BED != 0 + MENU_ITEM(submenu, MSG_PREHEAT_PLA, lcd_preheat_pla_menu); + MENU_ITEM(submenu, MSG_PREHEAT_ABS, lcd_preheat_abs_menu); + #else + MENU_ITEM(function, MSG_PREHEAT_PLA, lcd_preheat_pla0); + MENU_ITEM(function, MSG_PREHEAT_ABS, lcd_preheat_abs0); + #endif +#endif MENU_ITEM(function, MSG_COOLDOWN, lcd_cooldown); #if PS_ON_PIN > -1 if (powersupply) From eecda434fb46ebb858cc467da28ed2e346439dba Mon Sep 17 00:00:00 2001 From: Ralf Schultz Date: Tue, 18 Mar 2014 08:25:20 +0100 Subject: [PATCH 05/39] Sanguinololu servo pins set default disabled --- Marlin/pins.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Marlin/pins.h b/Marlin/pins.h index 56d55e985f..76d5e37bc5 100644 --- a/Marlin/pins.h +++ b/Marlin/pins.h @@ -1055,18 +1055,18 @@ #endif #ifdef NUM_SERVOS - #define SERVO0_PIN 11 + #define SERVO0_PIN -1 #if NUM_SERVOS > 1 - #define SERVO1_PIN 27 + #define SERVO1_PIN -1 #endif #if NUM_SERVOS > 2 - #define SERVO2_PIN 28 + #define SERVO2_PIN -1 #endif #if NUM_SERVOS > 3 - #define SERVO3_PIN 29 + #define SERVO3_PIN -1 #endif #endif From fad2a60ce6ad364b7da84623cd9a94966ee3e412 Mon Sep 17 00:00:00 2001 From: Dim3nsioneer Date: Wed, 19 Mar 2014 12:23:35 +0100 Subject: [PATCH 06/39] Corrections for preheat extension in language.h --- Marlin/language.h | 89 ++++++++++++++++++++++++----------------------- 1 file changed, 46 insertions(+), 43 deletions(-) diff --git a/Marlin/language.h b/Marlin/language.h index c8b7de8ef8..4082221cad 100644 --- a/Marlin/language.h +++ b/Marlin/language.h @@ -261,7 +261,6 @@ #if LANGUAGE_CHOICE == 2 - // LCD Menu Messages // Please note these are limited to 17 characters! @@ -277,16 +276,16 @@ #define MSG_PREHEAT_PLA0 "Rozgrzej PLA 1" #define MSG_PREHEAT_PLA1 "Rozgrzej PLA 2" #define MSG_PREHEAT_PLA2 "Rozgrzej PLA 3" - #define MSG_PREHEAT_PLA012 "Rozgrzej PLA Wszystko" + #define MSG_PREHEAT_PLA012 "Roz. PLA Wszystko" #define MSG_PREHEAT_PLA_BEDONLY "Rozgrzej PLA Loze" - #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_ABS0 "Rozgrzej ABS 1" #define MSG_PREHEAT_ABS1 "Rozgrzej ABS 2" #define MSG_PREHEAT_ABS2 "Rozgrzej ABS 3" - #define MSG_PREHEAT_ABS012 "Rozgrzej ABS Wszystko" + #define MSG_PREHEAT_ABS012 "Roz. ABS Wszystko" #define MSG_PREHEAT_ABS_BEDONLY "Rozgrzej ABS Loze" - #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" @@ -473,19 +472,19 @@ #define MSG_AUTO_HOME "Home auto." #define MSG_SET_ORIGIN "Regler origine" #define MSG_PREHEAT_PLA " Prechauffage PLA" - #define MSG_PREHEAT_PLA0 "Prechauffage PLA 1" - #define MSG_PREHEAT_PLA1 "Prechauffage PLA 2" - #define MSG_PREHEAT_PLA2 "Prechauffage PLA 3" - #define MSG_PREHEAT_PLA012 "Prechauffage PLA Tout" - #define MSG_PREHEAT_PLA_BEDONLY "Prechauffage PLA Plateau" - #define MSG_PREHEAT_PLA_SETTINGS " Regl. prechauffe PLA" + #define MSG_PREHEAT_PLA0 "Prechauff. PLA 1" + #define MSG_PREHEAT_PLA1 "Prechauff. PLA 2" + #define MSG_PREHEAT_PLA2 "Prechauff. PLA 3" + #define MSG_PREHEAT_PLA012 "Prech. PLA Tout" + #define MSG_PREHEAT_PLA_BEDONLY "Prech. PLA Plateau" + #define MSG_PREHEAT_PLA_SETTINGS "Regl. prech. PLA" #define MSG_PREHEAT_ABS "Prechauffage ABS" - #define MSG_PREHEAT_ABS0 "Prechauffage ABS 1" - #define MSG_PREHEAT_ABS1 "Prechauffage ABS 2" - #define MSG_PREHEAT_ABS2 "Prechauffage ABS 3" - #define MSG_PREHEAT_ABS012 "Prechauffage ABS Tout" - #define MSG_PREHEAT_ABS_BEDONLY "Prechauffage ABS Plateau" - #define MSG_PREHEAT_ABS_SETTINGS "Regl. prechauffe ABS" + #define MSG_PREHEAT_ABS0 "Prechauff. ABS 1" + #define MSG_PREHEAT_ABS1 "Prechauff. ABS 2" + #define MSG_PREHEAT_ABS2 "Prechauff. ABS 3" + #define MSG_PREHEAT_ABS012 "Prech. ABS Tout" + #define MSG_PREHEAT_ABS_BEDONLY "Prech. ABS Plateau" + #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." @@ -676,16 +675,16 @@ #define MSG_PREHEAT_PLA0 "Vorwärmen PLA 1" #define MSG_PREHEAT_PLA1 "Vorwärmen PLA 2" #define MSG_PREHEAT_PLA2 "Vorwärmen PLA 3" - #define MSG_PREHEAT_PLA012 "Vorwärmen PLA Alle" - #define MSG_PREHEAT_PLA_BEDONLY "Vorwärmen PLA Bett" - #define MSG_PREHEAT_PLA_SETTINGS "Vorwärmen PLA Einstellungen" + #define MSG_PREHEAT_PLA012 "Vorw. PLA Alle" + #define MSG_PREHEAT_PLA_BEDONLY "Vorw. PLA Bett" + #define MSG_PREHEAT_PLA_SETTINGS "Vorwärm. PLA Ein." #define MSG_PREHEAT_ABS "Vorwärmen ABS" #define MSG_PREHEAT_ABS0 "Vorwärmen ABS 1" #define MSG_PREHEAT_ABS1 "Vorwärmen ABS 2" #define MSG_PREHEAT_ABS2 "Vorwärmen ABS 3" - #define MSG_PREHEAT_ABS012 "Vorwärmen ABS Alle" - #define MSG_PREHEAT_ABS_BEDONLY "Vorwärmen ABS Bett" - #define MSG_PREHEAT_ABS_SETTINGS "Vorwärmen ABS Einstellungen" + #define MSG_PREHEAT_ABS012 "Vorw. ABS Alle" + #define MSG_PREHEAT_ABS_BEDONLY "Vorw. ABS Bett" + #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" @@ -875,15 +874,15 @@ #define MSG_PREHEAT_PLA0 "Precalentar PLA 1" #define MSG_PREHEAT_PLA1 "Precalentar PLA 2" #define MSG_PREHEAT_PLA2 "Precalentar PLA 3" - #define MSG_PREHEAT_PLA012 "Precalentar PLA Todo" - #define MSG_PREHEAT_PLA_BEDONLY "Precalentar PLA Base" + #define MSG_PREHEAT_PLA012 "Precal. PLA Todo" + #define MSG_PREHEAT_PLA_BEDONLY "Precal. PLA Base" #define MSG_PREHEAT_PLA_SETTINGS "Ajustar temp. PLA" #define MSG_PREHEAT_ABS "Precalentar ABS" #define MSG_PREHEAT_ABS0 "Precalentar ABS 1" #define MSG_PREHEAT_ABS1 "Precalentar ABS 2" #define MSG_PREHEAT_ABS2 "Precalentar ABS 3" - #define MSG_PREHEAT_ABS012 "Precalentar ABS Todo" - #define MSG_PREHEAT_ABS_BEDONLY "Precalentar ABS Base" + #define MSG_PREHEAT_ABS012 "Precal. ABS Todo" + #define MSG_PREHEAT_ABS_BEDONLY "Precal. ABS Base" #define MSG_PREHEAT_ABS_SETTINGS "Ajustar temp. ABS" #define MSG_COOLDOWN "Enfriar" #define MSG_SWITCH_PS_ON "Switch Power On" @@ -1079,15 +1078,15 @@ #define MSG_PREHEAT_PLA0 "Преднагрев PLA0" #define MSG_PREHEAT_PLA1 "Преднагрев PLA1" #define MSG_PREHEAT_PLA2 "Преднагрев PLA2" - #define MSG_PREHEAT_PLA012 "Преднагрев PLA все " - #define MSG_PREHEAT_PLA_BEDONLY "Преднагрев PLA \002 Кровать" + #define MSG_PREHEAT_PLA012 "Преднаг. PLA все" + #define MSG_PREHEAT_PLA_BEDONLY "Пред. PLA Кровать" #define MSG_PREHEAT_PLA_SETTINGS "Настройки PLA" #define MSG_PREHEAT_ABS "Преднагрев ABS" #define MSG_PREHEAT_ABS0 "Преднагрев ABS0" #define MSG_PREHEAT_ABS1 "Преднагрев ABS1" #define MSG_PREHEAT_ABS2 "Преднагрев ABS2" - #define MSG_PREHEAT_ABS012 "Преднагрев ABS все " - #define MSG_PREHEAT_ABS_BEDONLY "Преднагрев ABS \002 Кровать" + #define MSG_PREHEAT_ABS012 "Преднаг. ABS все " + #define MSG_PREHEAT_ABS_BEDONLY "Пред. ABS Кровать" #define MSG_PREHEAT_ABS_SETTINGS "Настройки ABS" #define MSG_COOLDOWN "Охлаждение" #define MSG_SWITCH_PS_ON "Switch Power On" @@ -1274,15 +1273,15 @@ #define MSG_PREHEAT_PLA0 "Preriscalda PLA 1" #define MSG_PREHEAT_PLA1 "Preriscalda PLA 2" #define MSG_PREHEAT_PLA2 "Preriscalda PLA 3" - #define MSG_PREHEAT_PLA012 "Preriscalda PLA Tutto" - #define MSG_PREHEAT_PLA_BEDONLY "Preriscalda PLA Piatto" + #define MSG_PREHEAT_PLA012 "Preris. PLA Tutto" + #define MSG_PREHEAT_PLA_BEDONLY "Preri. PLA Piatto" #define MSG_PREHEAT_PLA_SETTINGS "Preris. PLA Conf" #define MSG_PREHEAT_ABS "Preriscalda ABS" #define MSG_PREHEAT_ABS0 "Preriscalda ABS 1" #define MSG_PREHEAT_ABS1 "Preriscalda ABS 2" #define MSG_PREHEAT_ABS2 "Preriscalda ABS 3" - #define MSG_PREHEAT_ABS012 "Preriscalda ABS Tutto" - #define MSG_PREHEAT_ABS_BEDONLY "Preriscalda ABS Piatto" + #define MSG_PREHEAT_ABS012 "Preris. ABS Tutto" + #define MSG_PREHEAT_ABS_BEDONLY "Preri. ABS Piatto" #define MSG_PREHEAT_ABS_SETTINGS "Preris. ABS Conf" #define MSG_COOLDOWN "Raffredda" #define MSG_SWITCH_PS_ON "Switch Power On" @@ -1471,15 +1470,15 @@ #define MSG_PREHEAT_PLA0 " pre-aquecer PLA 1" #define MSG_PREHEAT_PLA1 " pre-aquecer PLA 2" #define MSG_PREHEAT_PLA2 " pre-aquecer PLA 3" - #define MSG_PREHEAT_PLA012 " pre-aquecer PLA Tudo" - #define MSG_PREHEAT_PLA_BEDONLY " pre-aquecer PLA \002Base" + #define MSG_PREHEAT_PLA012 " pre-aq. PLA Tudo" + #define MSG_PREHEAT_PLA_BEDONLY " pre-aq. PLA \002Base" #define MSG_PREHEAT_PLA_SETTINGS "PLA setting" #define MSG_PREHEAT_ABS "Pre-aquecer ABS" #define MSG_PREHEAT_ABS0 " pre-aquecer ABS 1" #define MSG_PREHEAT_ABS1 " pre-aquecer ABS 2" #define MSG_PREHEAT_ABS2 " pre-aquecer ABS 3" - #define MSG_PREHEAT_ABS012 " pre-aquecer ABS Tudo" - #define MSG_PREHEAT_ABS_BEDONLY " pre-aquecer ABS \002Base" + #define MSG_PREHEAT_ABS012 " pre-aq. ABS Tudo" + #define MSG_PREHEAT_ABS_BEDONLY " pre-aq. ABS \002Base" #define MSG_PREHEAT_ABS_SETTINGS "ABS setting" #define MSG_COOLDOWN "Esfriar" #define MSG_SWITCH_PS_ON "Switch Power On" @@ -1675,15 +1674,15 @@ #define MSG_PREHEAT_PLA0 "Esilammita PLA 1" #define MSG_PREHEAT_PLA1 "Esilammita PLA 2" #define MSG_PREHEAT_PLA2 "Esilammita PLA 3" - #define MSG_PREHEAT_PLA012 "Esilammita PLA Kaikki" - #define MSG_PREHEAT_PLA_BEDONLY "Esilammita PLA Alusta" + #define MSG_PREHEAT_PLA012 "Esila. PLA Kaikki" + #define MSG_PREHEAT_PLA_BEDONLY "Esila. PLA Alusta" #define MSG_PREHEAT_PLA_SETTINGS "Esilamm. PLA konf" #define MSG_PREHEAT_ABS "Esilammita ABS" #define MSG_PREHEAT_ABS0 "Esilammita ABS 1" #define MSG_PREHEAT_ABS1 "Esilammita ABS 2" #define MSG_PREHEAT_ABS2 "Esilammita ABS 3" - #define MSG_PREHEAT_ABS012 "Esilammita ABS Kaikki" - #define MSG_PREHEAT_ABS_BEDONLY "Esilammita ABS Alusta" + #define MSG_PREHEAT_ABS012 "Esila. ABS Kaikki" + #define MSG_PREHEAT_ABS_BEDONLY "Esila. ABS Alusta" #define MSG_PREHEAT_ABS_SETTINGS "Esilamm. ABS konf" #define MSG_COOLDOWN "Jaahdyta" #define MSG_SWITCH_PS_ON "Virta paalle" @@ -2105,6 +2104,9 @@ #define MSG_BED "Bed" #define MSG_FAN_SPEED "Fan snelheid" #define MSG_FLOW "Flow" + #define MSG_FLOW0 "Flow 0" + #define MSG_FLOW1 "Flow 1" + #define MSG_FLOW2 "Flow 2" #define MSG_CONTROL "Control" #define MSG_MIN " \002 Min" #define MSG_MAX " \002 Max" @@ -2197,6 +2199,7 @@ #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_M221_INVALID_EXTRUDER "M221 Ongeldige extruder " #define MSG_ERR_NO_THERMISTORS "Geen thermistors - geen temperatuur" #define MSG_M109_INVALID_EXTRUDER "M109 Ongeldige extruder " #define MSG_HEATING "Opwarmen..." From 7395dafc1e7c3f84dc4b66384e0726ef0d916a94 Mon Sep 17 00:00:00 2001 From: Dim3nsioneer Date: Wed, 19 Mar 2014 12:30:50 +0100 Subject: [PATCH 07/39] semantic changes in language.h --- Marlin/language.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Marlin/language.h b/Marlin/language.h index 4082221cad..d55d0f8b55 100644 --- a/Marlin/language.h +++ b/Marlin/language.h @@ -82,14 +82,14 @@ #define MSG_PREHEAT_PLA2 "Preheat PLA 3" #define MSG_PREHEAT_PLA012 "Preheat PLA All" #define MSG_PREHEAT_PLA_BEDONLY "Preheat PLA Bed" - #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_ABS0 "Preheat ABS 1" #define MSG_PREHEAT_ABS1 "Preheat ABS 2" #define MSG_PREHEAT_ABS2 "Preheat ABS 3" #define MSG_PREHEAT_ABS012 "Preheat ABS All" #define MSG_PREHEAT_ABS_BEDONLY "Preheat ABS Bed" - #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" From c8cdd1fc6f01505f3a3cd5e584f8d221610232b8 Mon Sep 17 00:00:00 2001 From: Dim3nsioneer Date: Wed, 19 Mar 2014 14:27:38 +0100 Subject: [PATCH 08/39] Bugfixes for language option 6 (russian) --- Marlin/language.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Marlin/language.h b/Marlin/language.h index d55d0f8b55..ed94cc36ed 100644 --- a/Marlin/language.h +++ b/Marlin/language.h @@ -1066,10 +1066,10 @@ // LCD Menu Messages // Please note these are limited to 17 characters! - #define WELCOME_MSG MACHINE_NAME " Готов." + #define WELCOME_MSG MACHINE_NAME "Готов." #define MSG_SD_INSERTED "Карта вставлена" #define MSG_SD_REMOVED "Карта извлечена" - #define MSG_MAIN "Меню \003" + #define MSG_MAIN "Меню \003" #define MSG_AUTOSTART "Автостарт" #define MSG_DISABLE_STEPPERS "Выкл. двигатели" #define MSG_AUTO_HOME "Парковка" @@ -1150,8 +1150,8 @@ #define MSG_WATCH "Обзор \003" #define MSG_PREPARE "Действия \x7E" #define MSG_TUNE "Настройки \x7E" - #define MSG_RESUME_PRINT "Продолжить печать" - #define MSG_RESUME_PRINT "Продолжить печать" + #define MSG_PAUSE_PRINT "Продолжить печать" + #define MSG_RESUME_PRINT "возобн. печать" #define MSG_STOP_PRINT "Остановить печать" #define MSG_CARD_MENU "Меню карты \x7E" #define MSG_NO_CARD "Нет карты" From 990e770e15c38903288db760549521c12e4ffa43 Mon Sep 17 00:00:00 2001 From: pixatintes Date: Sun, 23 Mar 2014 10:30:08 +0100 Subject: [PATCH 09/39] Update language.h Added catalan language --- Marlin/language.h | 192 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 192 insertions(+) diff --git a/Marlin/language.h b/Marlin/language.h index ed94cc36ed..343fc24ecc 100644 --- a/Marlin/language.h +++ b/Marlin/language.h @@ -18,6 +18,7 @@ // 9 Finnish // 10 Aragonese // 11 Dutch +// 12 Catalan #ifndef LANGUAGE_CHOICE #define LANGUAGE_CHOICE 1 // Pick your language from the list above @@ -2252,4 +2253,195 @@ #endif + +#if LANGUAGE_CHOICE == 12 + +// LCD Menu Messages + +// Please note these are limited to 17 characters! + + #define WELCOME_MSG MACHINE_NAME " a punt!" + #define MSG_SD_INSERTED "SD detectada." + #define MSG_SD_REMOVED "SD expulsada." + #define MSG_MAIN "Menu principal" + #define MSG_AUTOSTART "Inici automatic" + #define MSG_DISABLE_STEPPERS " Apagar motors" + #define MSG_AUTO_HOME " Home global" + #define MSG_SET_ORIGIN "Establir origen" + #define MSG_PREHEAT_PLA " Preescalfar PLA" + #define MSG_PREHEAT_PLA_SETTINGS "Config. temp. PLA" + #define MSG_PREHEAT_ABS " Preescalfar ABS" + #define MSG_PREHEAT_ABS_SETTINGS "Config. temp. ABS" + #define MSG_COOLDOWN " Refredar" + #define MSG_SWITCH_PS_ON " Switch Power On" + #define MSG_SWITCH_PS_OFF " Switch Power Off" + #define MSG_EXTRUDE "Extruir" + #define MSG_RETRACT "Retreure" + #define MSG_MOVE_AXIS " Moure eixos" + #define MSG_MOVE_X " Moure X" + #define MSG_MOVE_Y " Moure Y" + #define MSG_MOVE_Z " Moure Z" + #define MSG_MOVE_E "Extrusor" + #define MSG_MOVE_01MM " Moure 0.1mm" + #define MSG_MOVE_1MM " Moure 1mm" + #define MSG_MOVE_10MM " Moure 10mm" + #define MSG_SPEED "Velocitat" + #define MSG_NOZZLE "Nozzle" + #define MSG_NOZZLE1 "Nozzle2" + #define MSG_NOZZLE2 "Nozzle3" + #define MSG_BED "Llit" + #define MSG_FAN_SPEED "Vel. Ventilador" + #define MSG_FLOW "Fluxe" + #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 "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 "Acel" + #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-retrac." + #define MSG_XSTEPS "X passos/mm" + #define MSG_YSTEPS "Y passos/mm" + #define MSG_ZSTEPS "Z passos/mm" + #define MSG_ESTEPS "E passos/mm" + #define MSG_RECTRACT "Retreure" + #define MSG_TEMPERATURE " Temperatura" + #define MSG_MOTION " Moviment" + #define MSG_STORE_EPROM "Desar memoria" + #define MSG_LOAD_EPROM "Llegir memoria" + #define MSG_RESTORE_FAILSAFE " Rest. emergencia" + #define MSG_REFRESH "Tornar a carregar" + #define MSG_WATCH "Pantalla Info." + #define MSG_PREPARE " Preparar" + #define MSG_TUNE " Ajustar" + #define MSG_PAUSE_PRINT " Pausa Imp." + #define MSG_RESUME_PRINT " Reprendre Imp." + #define MSG_STOP_PRINT " Aturar Imp." + #define MSG_CARD_MENU " Explorar SD" + #define MSG_NO_CARD " -Sense SD" + #define MSG_DWELL "Repos..." + #define MSG_USERWAIT "Esperant ordres" + #define MSG_RESUMING "Reprendre Imp." + #define MSG_NO_MOVE "Sense moviment" + #define MSG_KILLED "PARADA DE EMERG." + #define MSG_STOPPED "PARADA" + #define MSG_CONTROL_RETRACT "Retreure mm" + #define MSG_CONTROL_RETRACTF "Retreure F" + #define MSG_CONTROL_RETRACT_ZLIFT "Aixecar mm" + #define MSG_CONTROL_RETRACT_RECOVER "DesRet +mm" + #define MSG_CONTROL_RETRACT_RECOVERF "DesRet F" + #define MSG_AUTORETRACT "AutoRetr." + #define MSG_FILAMENTCHANGE "Canviar filament" + #define MSG_INIT_SDCARD "Iniciant SD" + #define MSG_CNG_SDCARD "Canviar SD" + #define MSG_RECTRACT_WIDE " Retreure " + #define MSG_TEMPERATURE_WIDE "Temperatura" + #define MSG_TEMPERATURE_RTN "Temperatura" + #define MSG_MAIN_WIDE "Menu principal" + #define MSG_MOTION_WIDE "Moviment" + #define MSG_PREPARE_ALT "Preparar" + #define MSG_CONTROL_ARROW "Control" + #define MSG_RETRACT_ARROW "Retreure" + #define MSG_STEPPER_RELEASED "Desacoblada." + #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 + + #define MSG_Enqueing "en cua \"" + #define MSG_POWERUP "PowerUp" + #define MSG_EXTERNAL_RESET " Reset Extern" + #define MSG_BROWNOUT_RESET " Reset per Voltatge Incorrecte" + #define MSG_WATCHDOG_RESET " Reset per Bloqueig" + #define MSG_SOFTWARE_RESET " Reset per Software" + #define MSG_AUTHOR " | Autor: " + #define MSG_CONFIGURATION_VER " Ultima actualitzacio: " + #define MSG_FREE_MEMORY " Memoria lliure: " + #define MSG_PLANNER_BUFFER_BYTES " PlannerBufferBytes: " + #define MSG_OK "Ok" + #define MSG_FILE_SAVED "Desat." + #define MSG_ERR_LINE_NO "El Numero de la Linia no es igual al Ultimo Numero de Linia+1, Ultima Linia:" + #define MSG_ERR_CHECKSUM_MISMATCH "el checksum no coincideix, Ultima Linia:" + #define MSG_ERR_NO_CHECKSUM "No s'ha trobat el Checksum amb el numero de linia, Ultima Linia:" + #define MSG_ERR_NO_LINENUMBER_WITH_CHECKSUM "No s'ha trobat Numero de Linia amb el Checksum, Ultima Linia:" + #define MSG_FILE_PRINTED "Treball acabat!" + #define MSG_BEGIN_FILE_LIST "Inici de la llista d'arxius" + #define MSG_END_FILE_LIST "Fi de la llista d'arxius" + #define MSG_M104_INVALID_EXTRUDER "M104 Extrusor Invalid " + #define MSG_M105_INVALID_EXTRUDER "M105 Extrusor Invalid " + #define MSG_M200_INVALID_EXTRUDER "M200 Extrusor Invalid " + #define MSG_M218_INVALID_EXTRUDER "M218 Extrusor Invalid " + #define MSG_ERR_NO_THERMISTORS "No hi ha termistors - no temp" + #define MSG_M109_INVALID_EXTRUDER "M109 Extrusor Invalid " + #define MSG_HEATING "Escalfant Nozzle..." + #define MSG_HEATING_COMPLETE "Nozzle calent." + #define MSG_BED_HEATING "Escalfant llit..." + #define MSG_BED_DONE "Llit calent." + #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 " Compta X:" + #define MSG_ERR_KILLED "¡¡Impressora Parada per kill()!!" + #define MSG_ERR_STOPPED "¡Impressora parada per errors. Repara l'error i utilitza M999 per reiniciar!. (Hi ha un reset de temperatura, cal ajustar-la abans de continuar)" + #define MSG_RESEND "Reenviar:" + #define MSG_UNKNOWN_COMMAND "Comanda Desconeguda:\"" + #define MSG_ACTIVE_EXTRUDER "Extrusor Actiu: " + #define MSG_INVALID_EXTRUDER "Extrusor Invalid" + #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 "Comprovant finals de carrera." + #define MSG_ENDSTOP_HIT "Activat!" + #define MSG_ENDSTOP_OPEN "obert" + #define MSG_HOTEND_OFFSET "Hotend offsets:" + #define MSG_SD_CANT_OPEN_SUBDIR "No s'ha pogut obrir la subcarpeta." + #define MSG_SD_INIT_FAIL "Error en iniciar la SD" + #define MSG_SD_VOL_INIT_FAIL "Error al muntar el volum" + #define MSG_SD_OPENROOT_FAIL "Error en obrir la carpeta arrel" + #define MSG_SD_CARD_OK "Tarjeta SD OK" + #define MSG_SD_WORKDIR_FAIL "Error en obrir la carpeta de treball" + #define MSG_SD_OPEN_FILE_FAIL "Error en obrir, Fitxer: " + #define MSG_SD_FILE_OPENED "Fitxer obert:" + #define MSG_SD_SIZE " Mida:" + #define MSG_SD_FILE_SELECTED "Fitxer Seleccionat" + #define MSG_SD_WRITE_TO_FILE "Desant al fitxer: " + #define MSG_SD_PRINTING_BYTE "SD imprimint el byte " + #define MSG_SD_NOT_PRINTING "No s'esta imprimint amb SD" + #define MSG_SD_ERR_WRITE_TO_FILE "Error al escriure al fitxer" + #define MSG_SD_CANT_ENTER_SUBDIR "No es pot obrir la carpeta:" + #define MSG_STEPPER_TOO_HIGH "Steprate massa alt : " + #define MSG_ENDSTOPS_HIT "S'ha tocat el final de carrera: " + #define MSG_ERR_COLD_EXTRUDE_STOP " extrusio freda evitada" + #define MSG_ERR_LONG_EXTRUDE_STOP " extrusio massa llarga evitada" + #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 a l'estructura dels menus" + +#endif + + #endif // ifndef LANGUAGE_H From a3530d1141a44a0c4baff675aa327d8949d79e2a Mon Sep 17 00:00:00 2001 From: pixatintes Date: Sun, 23 Mar 2014 18:06:48 +0100 Subject: [PATCH 10/39] Update language.h Updated to latest version. --- Marlin/language.h | 365 +++++++++++++++++++++++----------------------- 1 file changed, 186 insertions(+), 179 deletions(-) diff --git a/Marlin/language.h b/Marlin/language.h index 343fc24ecc..d90cf15558 100644 --- a/Marlin/language.h +++ b/Marlin/language.h @@ -2260,186 +2260,193 @@ // Please note these are limited to 17 characters! - #define WELCOME_MSG MACHINE_NAME " a punt!" - #define MSG_SD_INSERTED "SD detectada." - #define MSG_SD_REMOVED "SD expulsada." - #define MSG_MAIN "Menu principal" - #define MSG_AUTOSTART "Inici automatic" - #define MSG_DISABLE_STEPPERS " Apagar motors" - #define MSG_AUTO_HOME " Home global" - #define MSG_SET_ORIGIN "Establir origen" - #define MSG_PREHEAT_PLA " Preescalfar PLA" - #define MSG_PREHEAT_PLA_SETTINGS "Config. temp. PLA" - #define MSG_PREHEAT_ABS " Preescalfar ABS" - #define MSG_PREHEAT_ABS_SETTINGS "Config. temp. ABS" - #define MSG_COOLDOWN " Refredar" - #define MSG_SWITCH_PS_ON " Switch Power On" - #define MSG_SWITCH_PS_OFF " Switch Power Off" - #define MSG_EXTRUDE "Extruir" - #define MSG_RETRACT "Retreure" - #define MSG_MOVE_AXIS " Moure eixos" - #define MSG_MOVE_X " Moure X" - #define MSG_MOVE_Y " Moure Y" - #define MSG_MOVE_Z " Moure Z" - #define MSG_MOVE_E "Extrusor" - #define MSG_MOVE_01MM " Moure 0.1mm" - #define MSG_MOVE_1MM " Moure 1mm" - #define MSG_MOVE_10MM " Moure 10mm" - #define MSG_SPEED "Velocitat" - #define MSG_NOZZLE "Nozzle" - #define MSG_NOZZLE1 "Nozzle2" - #define MSG_NOZZLE2 "Nozzle3" - #define MSG_BED "Llit" - #define MSG_FAN_SPEED "Vel. Ventilador" - #define MSG_FLOW "Fluxe" - #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 "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 "Acel" - #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-retrac." - #define MSG_XSTEPS "X passos/mm" - #define MSG_YSTEPS "Y passos/mm" - #define MSG_ZSTEPS "Z passos/mm" - #define MSG_ESTEPS "E passos/mm" - #define MSG_RECTRACT "Retreure" - #define MSG_TEMPERATURE " Temperatura" - #define MSG_MOTION " Moviment" - #define MSG_STORE_EPROM "Desar memoria" - #define MSG_LOAD_EPROM "Llegir memoria" - #define MSG_RESTORE_FAILSAFE " Rest. emergencia" - #define MSG_REFRESH "Tornar a carregar" - #define MSG_WATCH "Pantalla Info." - #define MSG_PREPARE " Preparar" - #define MSG_TUNE " Ajustar" - #define MSG_PAUSE_PRINT " Pausa Imp." - #define MSG_RESUME_PRINT " Reprendre Imp." - #define MSG_STOP_PRINT " Aturar Imp." - #define MSG_CARD_MENU " Explorar SD" - #define MSG_NO_CARD " -Sense SD" - #define MSG_DWELL "Repos..." - #define MSG_USERWAIT "Esperant ordres" - #define MSG_RESUMING "Reprendre Imp." - #define MSG_NO_MOVE "Sense moviment" - #define MSG_KILLED "PARADA DE EMERG." - #define MSG_STOPPED "PARADA" - #define MSG_CONTROL_RETRACT "Retreure mm" - #define MSG_CONTROL_RETRACTF "Retreure F" - #define MSG_CONTROL_RETRACT_ZLIFT "Aixecar mm" - #define MSG_CONTROL_RETRACT_RECOVER "DesRet +mm" - #define MSG_CONTROL_RETRACT_RECOVERF "DesRet F" - #define MSG_AUTORETRACT "AutoRetr." - #define MSG_FILAMENTCHANGE "Canviar filament" - #define MSG_INIT_SDCARD "Iniciant SD" - #define MSG_CNG_SDCARD "Canviar SD" - #define MSG_RECTRACT_WIDE " Retreure " - #define MSG_TEMPERATURE_WIDE "Temperatura" - #define MSG_TEMPERATURE_RTN "Temperatura" - #define MSG_MAIN_WIDE "Menu principal" - #define MSG_MOTION_WIDE "Moviment" - #define MSG_PREPARE_ALT "Preparar" - #define MSG_CONTROL_ARROW "Control" - #define MSG_RETRACT_ARROW "Retreure" - #define MSG_STEPPER_RELEASED "Desacoblada." - #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 WELCOME_MSG MACHINE_NAME " preparada." + #define MSG_SD_INSERTED "SD detectada." + #define MSG_SD_REMOVED "SD expulsada." + #define MSG_MAIN "Menu principal" + #define MSG_AUTOSTART "Inici automatic" + #define MSG_DISABLE_STEPPERS "Apagar motors" + #define MSG_AUTO_HOME "Home global" + #define MSG_SET_ORIGIN "Establir origen" + #define MSG_PREHEAT_PLA "Preescalfar PLA" + #define MSG_PREHEAT_PLA0 "Preescalfar PLA 1" + #define MSG_PREHEAT_PLA1 "Preescalfar PLA 2" + #define MSG_PREHEAT_PLA2 "Preescalfar PLA 3" + #define MSG_PREHEAT_PLA012 "Preesc. tot PLA" + #define MSG_PREHEAT_PLA_BEDONLY "Preesc. llit PLA" + #define MSG_PREHEAT_PLA_SETTINGS "Configuració PLA" + #define MSG_PREHEAT_ABS "Preescalfar ABS" + #define MSG_PREHEAT_ABS0 "Preescalfar ABS 1" + #define MSG_PREHEAT_ABS1 "Preescalfar ABS 2" + #define MSG_PREHEAT_ABS2 "Preescalfar ABS 3" + #define MSG_PREHEAT_ABS012 "Preesc. tot ABS" + #define MSG_PREHEAT_ABS_BEDONLY "Preesc. llit ABS" + #define MSG_PREHEAT_ABS_SETTINGS "Configuració ABS" + #define MSG_COOLDOWN "Refredar" + #define MSG_SWITCH_PS_ON "Switch power on" + #define MSG_SWITCH_PS_OFF "Switch power off" + #define MSG_EXTRUDE "Extruir" + #define MSG_RETRACT "Refredar" + #define MSG_MOVE_AXIS "Moure eixos" + #define MSG_MOVE_X "Moure X" + #define MSG_MOVE_Y "Moure Y" + #define MSG_MOVE_Z "Moure Z" + #define MSG_MOVE_E "Extrusor" + #define MSG_MOVE_01MM "Moure 0.1mm" + #define MSG_MOVE_1MM "Moure 1mm" + #define MSG_MOVE_10MM "Moure 10mm" + #define MSG_SPEED "Velocitat" + #define MSG_NOZZLE "Nozzle" + #define MSG_NOZZLE1 "Nozzle2" + #define MSG_NOZZLE2 "Nozzle3" + #define MSG_BED "Llit" + #define MSG_FAN_SPEED "Vel. Ventilador" + #define MSG_FLOW "Fluxe" + #define MSG_FLOW0 "Fluxe 0" + #define MSG_FLOW1 "Fluxe 1" + #define MSG_FLOW2 "Fluxe 2" + #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 "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 "Accel" + #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 "Xpassos/mm" + #define MSG_YSTEPS "Ypassos/mm" + #define MSG_ZSTEPS "Zpassos/mm" + #define MSG_ESTEPS "Epassos/mm" + #define MSG_RECTRACT "Retreure" + #define MSG_TEMPERATURE "Temperatura" + #define MSG_MOTION "Moviment" + #define MSG_CONTRAST "Contrast de LCD" + #define MSG_STORE_EPROM "Desar a memoria" + #define MSG_LOAD_EPROM "Carregar de mem." + #define MSG_RESTORE_FAILSAFE "Rest. emergencia" + #define MSG_REFRESH "Refrescar" + #define MSG_WATCH "Pantalla Info." + #define MSG_PREPARE "Preparar" + #define MSG_TUNE "Calibrar" + #define MSG_PAUSE_PRINT "Pausa imp." + #define MSG_RESUME_PRINT "Reprendre imp." + #define MSG_STOP_PRINT "Parar inp." + #define MSG_CARD_MENU "Imprimir de SD" + #define MSG_NO_CARD "-Sense targeta SD" + #define MSG_DWELL "Repos..." + #define MSG_USERWAIT "Esperant usuari.." + #define MSG_RESUMING "Reprenent imp." + #define MSG_NO_MOVE "Sense moviment." + #define MSG_KILLED "PARADA DE EMERG. " + #define MSG_STOPPED "ATURAT. " + #define MSG_CONTROL_RETRACT "Retreure mm" + #define MSG_CONTROL_RETRACTF "Retreure F" + #define MSG_CONTROL_RETRACT_ZLIFT "Aixecar mm" + #define MSG_CONTROL_RETRACT_RECOVER "DesRet +mm" + #define MSG_CONTROL_RETRACT_RECOVERF "DesRet F" + #define MSG_AUTORETRACT "AutoRetr." + #define MSG_FILAMENTCHANGE "Canviar filament" + #define MSG_INIT_SDCARD "Iniciant SD" + #define MSG_CNG_SDCARD "Canviar SD" + #define MSG_ZPROBE_OUT "Z probe out. bed" + #define MSG_POSITION_UNKNOWN "Home X/Y abans 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" + // Serial Console Messages - - #define MSG_Enqueing "en cua \"" - #define MSG_POWERUP "PowerUp" - #define MSG_EXTERNAL_RESET " Reset Extern" - #define MSG_BROWNOUT_RESET " Reset per Voltatge Incorrecte" - #define MSG_WATCHDOG_RESET " Reset per Bloqueig" - #define MSG_SOFTWARE_RESET " Reset per Software" - #define MSG_AUTHOR " | Autor: " - #define MSG_CONFIGURATION_VER " Ultima actualitzacio: " - #define MSG_FREE_MEMORY " Memoria lliure: " - #define MSG_PLANNER_BUFFER_BYTES " PlannerBufferBytes: " - #define MSG_OK "Ok" - #define MSG_FILE_SAVED "Desat." - #define MSG_ERR_LINE_NO "El Numero de la Linia no es igual al Ultimo Numero de Linia+1, Ultima Linia:" - #define MSG_ERR_CHECKSUM_MISMATCH "el checksum no coincideix, Ultima Linia:" - #define MSG_ERR_NO_CHECKSUM "No s'ha trobat el Checksum amb el numero de linia, Ultima Linia:" - #define MSG_ERR_NO_LINENUMBER_WITH_CHECKSUM "No s'ha trobat Numero de Linia amb el Checksum, Ultima Linia:" - #define MSG_FILE_PRINTED "Treball acabat!" - #define MSG_BEGIN_FILE_LIST "Inici de la llista d'arxius" - #define MSG_END_FILE_LIST "Fi de la llista d'arxius" - #define MSG_M104_INVALID_EXTRUDER "M104 Extrusor Invalid " - #define MSG_M105_INVALID_EXTRUDER "M105 Extrusor Invalid " - #define MSG_M200_INVALID_EXTRUDER "M200 Extrusor Invalid " - #define MSG_M218_INVALID_EXTRUDER "M218 Extrusor Invalid " - #define MSG_ERR_NO_THERMISTORS "No hi ha termistors - no temp" - #define MSG_M109_INVALID_EXTRUDER "M109 Extrusor Invalid " - #define MSG_HEATING "Escalfant Nozzle..." - #define MSG_HEATING_COMPLETE "Nozzle calent." - #define MSG_BED_HEATING "Escalfant llit..." - #define MSG_BED_DONE "Llit calent." - #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 " Compta X:" - #define MSG_ERR_KILLED "¡¡Impressora Parada per kill()!!" - #define MSG_ERR_STOPPED "¡Impressora parada per errors. Repara l'error i utilitza M999 per reiniciar!. (Hi ha un reset de temperatura, cal ajustar-la abans de continuar)" - #define MSG_RESEND "Reenviar:" - #define MSG_UNKNOWN_COMMAND "Comanda Desconeguda:\"" - #define MSG_ACTIVE_EXTRUDER "Extrusor Actiu: " - #define MSG_INVALID_EXTRUDER "Extrusor Invalid" - #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 "Comprovant finals de carrera." - #define MSG_ENDSTOP_HIT "Activat!" - #define MSG_ENDSTOP_OPEN "obert" - #define MSG_HOTEND_OFFSET "Hotend offsets:" - #define MSG_SD_CANT_OPEN_SUBDIR "No s'ha pogut obrir la subcarpeta." - #define MSG_SD_INIT_FAIL "Error en iniciar la SD" - #define MSG_SD_VOL_INIT_FAIL "Error al muntar el volum" - #define MSG_SD_OPENROOT_FAIL "Error en obrir la carpeta arrel" - #define MSG_SD_CARD_OK "Tarjeta SD OK" - #define MSG_SD_WORKDIR_FAIL "Error en obrir la carpeta de treball" - #define MSG_SD_OPEN_FILE_FAIL "Error en obrir, Fitxer: " - #define MSG_SD_FILE_OPENED "Fitxer obert:" - #define MSG_SD_SIZE " Mida:" - #define MSG_SD_FILE_SELECTED "Fitxer Seleccionat" - #define MSG_SD_WRITE_TO_FILE "Desant al fitxer: " - #define MSG_SD_PRINTING_BYTE "SD imprimint el byte " - #define MSG_SD_NOT_PRINTING "No s'esta imprimint amb SD" - #define MSG_SD_ERR_WRITE_TO_FILE "Error al escriure al fitxer" - #define MSG_SD_CANT_ENTER_SUBDIR "No es pot obrir la carpeta:" - #define MSG_STEPPER_TOO_HIGH "Steprate massa alt : " - #define MSG_ENDSTOPS_HIT "S'ha tocat el final de carrera: " - #define MSG_ERR_COLD_EXTRUDE_STOP " extrusio freda evitada" - #define MSG_ERR_LONG_EXTRUDE_STOP " extrusio massa llarga evitada" - #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 a l'estructura dels menus" + + #define MSG_Enqueing "en cua \"" + #define MSG_POWERUP "PowerUp" + #define MSG_EXTERNAL_RESET " Reset Extern" + #define MSG_BROWNOUT_RESET " Reset per Voltatge Incorrecte" + #define MSG_WATCHDOG_RESET " Reset per Bloqueix" + #define MSG_SOFTWARE_RESET " Reset per Software" + #define MSG_AUTHOR " | Author: " + #define MSG_CONFIGURATION_VER "Ultima actualitzacio: " + #define MSG_FREE_MEMORY " Memoria lliure: " + #define MSG_PLANNER_BUFFER_BYTES " PlannerBufferBytes: " + #define MSG_OK "ok" + #define MSG_FILE_SAVED "Fitxer desat." + #define MSG_ERR_LINE_NO "El Numero de la Linia no es igual al Ultimo Numero de Linia+1, Ultima Linia:" + #define MSG_ERR_CHECKSUM_MISMATCH "el checksum no coincideix, Ultima Linia:" + #define MSG_ERR_NO_CHECKSUM "No s'ha trobat el Checksum amb el numero de linea, Ultima Linea:" + #define MSG_ERR_NO_LINENUMBER_WITH_CHECKSUM "No s'ha trobat Numero de Linea amb el Checksum, Ultima Linea:" + #define MSG_FILE_PRINTED "Impresio acabada" + #define MSG_BEGIN_FILE_LIST "Inici de la llista d'arxius" + #define MSG_END_FILE_LIST "Fi de la llista d'arxius" + #define MSG_M104_INVALID_EXTRUDER "M104 Extrusor Invalid " + #define MSG_M105_INVALID_EXTRUDER "M105 Extrusor Invalid " + #define MSG_M200_INVALID_EXTRUDER "M200 Extrusor Invalid " + #define MSG_M218_INVALID_EXTRUDER "M218 Extrusor Invalid " + #define MSG_M221_INVALID_EXTRUDER "M221 Extrusor Invalid " + #define MSG_ERR_NO_THERMISTORS "No hi ha termistors - sense temperatura" + #define MSG_M109_INVALID_EXTRUDER "M109 Extrusor Invalid " + #define MSG_HEATING "Escalfant..." + #define MSG_HEATING_COMPLETE "Escalfament acabat." + #define MSG_BED_HEATING "Escalfant llit." + #define MSG_BED_DONE "Llit Calent." + #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 " Count X: " + #define MSG_ERR_KILLED "Impressora Parada per kill()!" + #define MSG_ERR_STOPPED "Impressora Parada per errors. Repara l'error i utilitza M999 per reiniciar!. (Hi ha un reset de temperatura, cal ajustarla abans de continuuar)" + #define MSG_RESEND "Reenviar: " + #define MSG_UNKNOWN_COMMAND "Comanda Desconeguda: \"" + #define MSG_ACTIVE_EXTRUDER "Extrusor Actiu: " + #define MSG_INVALID_EXTRUDER "Extrusor Invalid" + #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 "Comprobant finals de carrera." + #define MSG_ENDSTOP_HIT "Activat" + #define MSG_ENDSTOP_OPEN "obert" + #define MSG_HOTEND_OFFSET "Hotend offsets:" + + #define MSG_SD_CANT_OPEN_SUBDIR "No s'ha pogut obrir la carpeta" + #define MSG_SD_INIT_FAIL "Error al iniciar la SD" + #define MSG_SD_VOL_INIT_FAIL "Error al montar el volum" + #define MSG_SD_OPENROOT_FAIL "Error al obrir la carpeta arrel" + #define MSG_SD_CARD_OK "Targeta SD OK" + #define MSG_SD_WORKDIR_FAIL "Error al obrir la carpeta de treball" + #define MSG_SD_OPEN_FILE_FAIL "Error al obrir, Fitxer: " + #define MSG_SD_FILE_OPENED "Fitxer obert:" + #define MSG_SD_SIZE " Mida: " + #define MSG_SD_FILE_SELECTED "Fitxer Seleccionat" + #define MSG_SD_WRITE_TO_FILE "Desant al fitxer: " + #define MSG_SD_PRINTING_BYTE "SD imprimint el byte " + #define MSG_SD_NOT_PRINTING "No s'està imprimint amb SD" + #define MSG_SD_ERR_WRITE_TO_FILE "Error al esciure al fitxer" + #define MSG_SD_CANT_ENTER_SUBDIR "No es pot obrir la carpeta: " + + #define MSG_STEPPER_TOO_HIGH "Steprate massa alt: " + #define MSG_ENDSTOPS_HIT "S'ha tocat el final de carrera: " + #define MSG_ERR_COLD_EXTRUDE_STOP " extrusio freda evitada" + #define MSG_ERR_LONG_EXTRUDE_STOP " extrusio massa llarga evitada" + #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 a l'estructura dels menus" #endif From b0093a15134c1fd28a862d7489a1fb759cf4e670 Mon Sep 17 00:00:00 2001 From: David Forrest Date: Wed, 26 Mar 2014 23:41:10 -0400 Subject: [PATCH 11/39] thermistortables.h: Add comments that table 60 uses beta=3950. --- Marlin/Configuration.h | 2 +- Marlin/thermistortables.h | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h index e18c98a437..714bb3e634 100644 --- a/Marlin/Configuration.h +++ b/Marlin/Configuration.h @@ -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 Thermistor +// 60 is 100k Maker's Tool Works Kapton Bed Thermistor beta=3950 // // 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) diff --git a/Marlin/thermistortables.h b/Marlin/thermistortables.h index 1d2b3ca65f..6120923f10 100644 --- a/Marlin/thermistortables.h +++ b/Marlin/thermistortables.h @@ -781,6 +781,14 @@ const short temptable_55[][2] PROGMEM = { #endif #if (THERMISTORHEATER_0 == 60) || (THERMISTORHEATER_1 == 60) || (THERMISTORHEATER_2 == 60) || (THERMISTORBED == 60) // Maker's Tool Works Kapton Bed Thermister +// ./createTemperatureLookup.py --r0=100000 --t0=25 --r1=0 --r2=4700 --beta=3950 +// r0: 100000 +// t0: 25 +// r1: 0 (parallel with rTherm) +// r2: 4700 (series with rTherm) +// beta: 3950 +// min adc: 1 at 0.0048828125 V +// max adc: 1023 at 4.9951171875 V const short temptable_60[][2] PROGMEM = { {51*OVERSAMPLENR, 272}, {61*OVERSAMPLENR, 258}, From aeaf9b9312fb1eff68ed0ecbf42aca07cb9360f1 Mon Sep 17 00:00:00 2001 From: whosawhatsis Date: Sun, 30 Mar 2014 11:34:36 -0700 Subject: [PATCH 12/39] fix bug in M200 with multiple extruders --- Marlin/Marlin_main.cpp | 2 -- 1 file changed, 2 deletions(-) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index 9fe64119ff..d3a7862065 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -2241,8 +2241,6 @@ void process_commands() SERIAL_ECHO_START; SERIAL_ECHO(MSG_M200_INVALID_EXTRUDER); } - SERIAL_ECHOLN(tmp_extruder); - break; } volumetric_multiplier[tmp_extruder] = 1 / area; } From a65564eef6fdcefcb95470f8332e732b598ff2bd Mon Sep 17 00:00:00 2001 From: whosawhatsis Date: Sun, 30 Mar 2014 11:34:36 -0700 Subject: [PATCH 13/39] fix bug in M200 with multiple extruders --- Marlin/Marlin_main.cpp | 2 -- 1 file changed, 2 deletions(-) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index cc664b839e..67d7093962 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -2231,8 +2231,6 @@ void process_commands() SERIAL_ECHO_START; SERIAL_ECHO(MSG_M200_INVALID_EXTRUDER); } - SERIAL_ECHOLN(tmp_extruder); - break; } volumetric_multiplier[tmp_extruder] = 1 / area; } From 875950831991f17f8d3ad0fb96ef63d77d5f03f9 Mon Sep 17 00:00:00 2001 From: Tim Date: Tue, 1 Apr 2014 09:26:19 +0800 Subject: [PATCH 14/39] fix bug for dual extruders not working some guy find that marlin not working good for dual extruders delta . when type T0 or T1 to active extruder and E0 or E1 move causing XYZ motion . so i locales the bugs and fix it , I have dry run the fix. --- Marlin/Marlin_main.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index d7397ac0c7..66ce22410b 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -3051,7 +3051,16 @@ void process_commands() // Set the new active extruder and position active_extruder = tmp_extruder; #endif //else DUAL_X_CARRIAGE +#ifdef DELTA + + calculate_delta(current_position); // change cartesian kinematic to delta kinematic; + //sent position to plan_set_position(); + plan_set_position(delta[X_AXIS], delta[Y_AXIS], delta[Z_AXIS],current_position[E_AXIS]); + +#else plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]); + +#endif // Move to the old position if 'F' was in the parameters if(make_move && Stopped == false) { prepare_move(); From dfb98101e4c6481c4a7f82d7ebf58d54882fa84a Mon Sep 17 00:00:00 2001 From: nothinman Date: Thu, 3 Apr 2014 18:05:48 +0100 Subject: [PATCH 15/39] Change CONTROLLERFAN_PIN for board 35 to -1, as it would conflict with board's 33 extruder pin, causing burnout (it's the same board, just different number of fans/extruders, therefore should be pin-compatible) --- Marlin/pins.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Marlin/pins.h b/Marlin/pins.h index 9976d431d0..0811179858 100644 --- a/Marlin/pins.h +++ b/Marlin/pins.h @@ -502,7 +502,7 @@ #endif #if MOTHERBOARD == 35 - #define CONTROLLERFAN_PIN 10 //Pin used for the fan to cool controller + #define CONTROLLERFAN_PIN -1 //Pin used for the fan to cool controller #endif #define PS_ON_PIN 12 From dca9790f421143790c84b91133aab4c695498e25 Mon Sep 17 00:00:00 2001 From: whosawhatsis Date: Fri, 4 Apr 2014 10:13:44 -0700 Subject: [PATCH 16/39] Update Readme descriptions for M200, M207 and M208 --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index e85be7c3eb..551c53075c 100644 --- a/README.md +++ b/README.md @@ -204,15 +204,15 @@ M Codes * M140 - Set bed target temp * M190 - Sxxx Wait for bed current temp to reach target temp. Waits only when heating * Rxxx Wait for bed current temp to reach target temp. Waits when heating and cooling -* M200 - Set filament diameter +* M200 D- set filament diameter and set E axis units to cubic millimeters (use S0 to set back to millimeters). * M201 - Set max acceleration in units/s^2 for print moves (M201 X1000 Y1000) * M202 - Set max acceleration in units/s^2 for travel moves (M202 X1000 Y1000) Unused in Marlin!! * M203 - Set maximum feedrate that your machine can sustain (M203 X200 Y200 Z300 E10000) in mm/sec * 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] -* 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 b0aeac117f301223903bc90c391000f43c690e96 Mon Sep 17 00:00:00 2001 From: Gabe Rosenhouse Date: Wed, 19 Feb 2014 14:59:10 -0800 Subject: [PATCH 17/39] Adjustable Z probe offset, via custom M-code --- Marlin/Configuration.h | 9 +++++++++ Marlin/Marlin_main.cpp | 36 ++++++++++++++++++++++++++++++++++++ 2 files changed, 45 insertions(+) diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h index 714bb3e634..a98e2d9fc1 100644 --- a/Marlin/Configuration.h +++ b/Marlin/Configuration.h @@ -459,6 +459,15 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of //=============================Additional Features=========================== //=========================================================================== +// Custom M code points +#define CUSTOM_M_CODES +#ifdef CUSTOM_M_CODES + #define CUSTOM_M_CODE_SET_Z_PROBE_OFFSET 851 + #define Z_PROBE_OFFSET_RANGE_MIN -2 + #define Z_PROBE_OFFSET_RANGE_MAX 0 +#endif + + // EEPROM // The microcontroller can store settings in the EEPROM, e.g. max velocity... // M500 - stores parameters in EEPROM diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index b45ca1a90d..f3cb293001 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -2719,6 +2719,42 @@ void process_commands() } break; #endif + + #ifdef CUSTOM_M_CODE_SET_Z_PROBE_OFFSET + case CUSTOM_M_CODE_SET_Z_PROBE_OFFSET: + { + float value; + if (code_seen('Z')) + { + value = code_value(); + if ((Z_PROBE_OFFSET_RANGE_MIN <= value) && (value <= Z_PROBE_OFFSET_RANGE_MAX)) + { + zprobe_zoffset = -value; // compare w/ line 278 of ConfigurationStore.cpp + SERIAL_ECHO_START; + SERIAL_ECHOLNPGM("Z probe offset has been set"); + SERIAL_PROTOCOLLN(""); + } + else + { + SERIAL_ECHO_START; + SERIAL_ECHOPGM("Invalid z-probe value. Must be between "); + SERIAL_ECHO(Z_PROBE_OFFSET_RANGE_MIN); + SERIAL_ECHOPGM(" and "); + SERIAL_ECHO(Z_PROBE_OFFSET_RANGE_MAX); + SERIAL_PROTOCOLLN(""); + } + } + else + { + SERIAL_ECHO_START; + SERIAL_ECHOLNPGM("Z probe offset is currently "); + SERIAL_ECHO(-zprobe_zoffset); + SERIAL_PROTOCOLLN(""); + } + break; + } + #endif // CUSTOM_M_CODE_SET_Z_PROBE_OFFSET + #ifdef FILAMENTCHANGEENABLE case 600: //Pause for filament change X[pos] Y[pos] Z[relative lift] E[initial retract] L[later retract distance for removal] { From d3f305332a37fc830cbfd9d8bb9a09c793b526e0 Mon Sep 17 00:00:00 2001 From: Gabe Rosenhouse Date: Mon, 24 Feb 2014 10:06:12 -0800 Subject: [PATCH 18/39] Allowable range now includes default value --- Marlin/Configuration.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h index a98e2d9fc1..32ce5b7dbb 100644 --- a/Marlin/Configuration.h +++ b/Marlin/Configuration.h @@ -463,8 +463,8 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of #define CUSTOM_M_CODES #ifdef CUSTOM_M_CODES #define CUSTOM_M_CODE_SET_Z_PROBE_OFFSET 851 - #define Z_PROBE_OFFSET_RANGE_MIN -2 - #define Z_PROBE_OFFSET_RANGE_MAX 0 + #define Z_PROBE_OFFSET_RANGE_MIN -15 + #define Z_PROBE_OFFSET_RANGE_MAX -5 #endif From 27a7cf9fcff436f1d30451c26db1fe4f8c442c36 Mon Sep 17 00:00:00 2001 From: Gabe Rosenhouse Date: Sun, 6 Apr 2014 19:43:46 -0500 Subject: [PATCH 19/39] use existing strings --- Marlin/Marlin_main.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index f3cb293001..618e906b88 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -2731,15 +2731,16 @@ void process_commands() { zprobe_zoffset = -value; // compare w/ line 278 of ConfigurationStore.cpp SERIAL_ECHO_START; - SERIAL_ECHOLNPGM("Z probe offset has been set"); + SERIAL_ECHOLNPGM(MSG_ZPROBE_ZOFFSET " " MSG_OK); SERIAL_PROTOCOLLN(""); } else { SERIAL_ECHO_START; - SERIAL_ECHOPGM("Invalid z-probe value. Must be between "); + SERIAL_ECHOPGM(MSG_ZPROBE_ZOFFSET); + SERIAL_ECHOPGM(MSG_Z_MIN); SERIAL_ECHO(Z_PROBE_OFFSET_RANGE_MIN); - SERIAL_ECHOPGM(" and "); + SERIAL_ECHOPGM(MSG_Z_MAX); SERIAL_ECHO(Z_PROBE_OFFSET_RANGE_MAX); SERIAL_PROTOCOLLN(""); } @@ -2747,7 +2748,7 @@ void process_commands() else { SERIAL_ECHO_START; - SERIAL_ECHOLNPGM("Z probe offset is currently "); + SERIAL_ECHOLNPGM(MSG_ZPROBE_ZOFFSET " : "); SERIAL_ECHO(-zprobe_zoffset); SERIAL_PROTOCOLLN(""); } From 3161740df9b952f627fd9ad1e132e7eaf723fc0e Mon Sep 17 00:00:00 2001 From: Nutz95 Date: Sun, 13 Apr 2014 17:03:20 +0200 Subject: [PATCH 20/39] This table is made for thermistor 3950 (can be found on ebay for cheap) it's caracteristics are : MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit R25℃ ;100KΩ±1% B Value(R25/50℃):3990K 1% Dissipation Factor(mW/℃):1.1~1.6 In still Air Thermal Time Constant(S):10~17 In Still Air Operating temperature range: (-50~+260°C) Dimension: 1.8mm Dia X4.1mm Lead Length :30mm This table was found on the following blogs: http://cae2100.wordpress.com/2014/03/08/beta3950-thermistor-table-for-marlin/ and http://microfabricator.com/articles/view/id/531ad7e59aad9d3131000000/beta-3950-thermistor-table-for-marlin --- Marlin/Configuration.h | 1 + Marlin/thermistortables.h | 198 ++++++++++++++++++++++++-------------- 2 files changed, 127 insertions(+), 72 deletions(-) diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h index 32ce5b7dbb..f169f8e419 100644 --- a/Marlin/Configuration.h +++ b/Marlin/Configuration.h @@ -115,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) +// 11 is 100k beta 3950 1% thermistor (4.7k pullup) // 20 is the PT100 circuit found in the Ultimainboard V2.x // 60 is 100k Maker's Tool Works Kapton Bed Thermistor beta=3950 // diff --git a/Marlin/thermistortables.h b/Marlin/thermistortables.h index 6120923f10..db8359ef79 100644 --- a/Marlin/thermistortables.h +++ b/Marlin/thermistortables.h @@ -563,78 +563,132 @@ const short temptable_10[][2] PROGMEM = { {1016*OVERSAMPLENR, 0} }; #endif - -#if (THERMISTORHEATER_0 == 20) || (THERMISTORHEATER_1 == 20) || (THERMISTORHEATER_2 == 20) || (THERMISTORBED == 20) // PT100 with INA826 amp on Ultimaker v2.0 electronics -/* The PT100 in the Ultimaker v2.0 electronics has a high sample value for a high temperature. -This does not match the normal thermistor behaviour so we need to set the following defines */ -#if (THERMISTORHEATER_0 == 20) -# define HEATER_0_RAW_HI_TEMP 16383 -# define HEATER_0_RAW_LO_TEMP 0 -#endif -#if (THERMISTORHEATER_1 == 20) -# define HEATER_1_RAW_HI_TEMP 16383 -# define HEATER_1_RAW_LO_TEMP 0 -#endif -#if (THERMISTORHEATER_2 == 20) -# define HEATER_2_RAW_HI_TEMP 16383 -# define HEATER_2_RAW_LO_TEMP 0 -#endif -#if (THERMISTORBED == 20) -# define HEATER_BED_RAW_HI_TEMP 16383 -# define HEATER_BED_RAW_LO_TEMP 0 -#endif -const short temptable_20[][2] PROGMEM = { -{ 0*OVERSAMPLENR , 0 }, -{ 227*OVERSAMPLENR , 1 }, -{ 236*OVERSAMPLENR , 10 }, -{ 245*OVERSAMPLENR , 20 }, -{ 253*OVERSAMPLENR , 30 }, -{ 262*OVERSAMPLENR , 40 }, -{ 270*OVERSAMPLENR , 50 }, -{ 279*OVERSAMPLENR , 60 }, -{ 287*OVERSAMPLENR , 70 }, -{ 295*OVERSAMPLENR , 80 }, -{ 304*OVERSAMPLENR , 90 }, -{ 312*OVERSAMPLENR , 100 }, -{ 320*OVERSAMPLENR , 110 }, -{ 329*OVERSAMPLENR , 120 }, -{ 337*OVERSAMPLENR , 130 }, -{ 345*OVERSAMPLENR , 140 }, -{ 353*OVERSAMPLENR , 150 }, -{ 361*OVERSAMPLENR , 160 }, -{ 369*OVERSAMPLENR , 170 }, -{ 377*OVERSAMPLENR , 180 }, -{ 385*OVERSAMPLENR , 190 }, -{ 393*OVERSAMPLENR , 200 }, -{ 401*OVERSAMPLENR , 210 }, -{ 409*OVERSAMPLENR , 220 }, -{ 417*OVERSAMPLENR , 230 }, -{ 424*OVERSAMPLENR , 240 }, -{ 432*OVERSAMPLENR , 250 }, -{ 440*OVERSAMPLENR , 260 }, -{ 447*OVERSAMPLENR , 270 }, -{ 455*OVERSAMPLENR , 280 }, -{ 463*OVERSAMPLENR , 290 }, -{ 470*OVERSAMPLENR , 300 }, -{ 478*OVERSAMPLENR , 310 }, -{ 485*OVERSAMPLENR , 320 }, -{ 493*OVERSAMPLENR , 330 }, -{ 500*OVERSAMPLENR , 340 }, -{ 507*OVERSAMPLENR , 350 }, -{ 515*OVERSAMPLENR , 360 }, -{ 522*OVERSAMPLENR , 370 }, -{ 529*OVERSAMPLENR , 380 }, -{ 537*OVERSAMPLENR , 390 }, -{ 544*OVERSAMPLENR , 400 }, -{ 614*OVERSAMPLENR , 500 }, -{ 681*OVERSAMPLENR , 600 }, -{ 744*OVERSAMPLENR , 700 }, -{ 805*OVERSAMPLENR , 800 }, -{ 862*OVERSAMPLENR , 900 }, -{ 917*OVERSAMPLENR , 1000 }, -{ 968*OVERSAMPLENR , 1100 } -}; -#endif +#if (THERMISTORHEATER_0 == 11) || (THERMISTORHEATER_1 == 11) || (THERMISTORHEATER_2 == 11) || (THERMISTORBED == 11) // QU-BD silicone bed QWG-104F-3950 thermistor +const short temptable_8[][2] PROGMEM = { + {1*OVERSAMPLENR, 938}, + {31*OVERSAMPLENR, 314}, + {41*OVERSAMPLENR, 290}, + {51*OVERSAMPLENR, 272}, + {61*OVERSAMPLENR, 258}, + {71*OVERSAMPLENR, 247}, + {81*OVERSAMPLENR, 237}, + {91*OVERSAMPLENR, 229}, + {101*OVERSAMPLENR, 221}, + {111*OVERSAMPLENR, 215}, + {121*OVERSAMPLENR, 209}, + {131*OVERSAMPLENR, 204}, + {141*OVERSAMPLENR, 199}, + {151*OVERSAMPLENR, 195}, + {161*OVERSAMPLENR, 190}, + {171*OVERSAMPLENR, 187}, + {181*OVERSAMPLENR, 183}, + {191*OVERSAMPLENR, 179}, + {201*OVERSAMPLENR, 176}, + {221*OVERSAMPLENR, 170}, + {241*OVERSAMPLENR, 165}, + {261*OVERSAMPLENR, 160}, + {281*OVERSAMPLENR, 155}, + {301*OVERSAMPLENR, 150}, + {331*OVERSAMPLENR, 144}, + {361*OVERSAMPLENR, 139}, + {391*OVERSAMPLENR, 133}, + {421*OVERSAMPLENR, 128}, + {451*OVERSAMPLENR, 123}, + {491*OVERSAMPLENR, 117}, + {531*OVERSAMPLENR, 111}, + {571*OVERSAMPLENR, 105}, + {611*OVERSAMPLENR, 100}, + {641*OVERSAMPLENR, 95}, + {681*OVERSAMPLENR, 90}, + {711*OVERSAMPLENR, 85}, + {751*OVERSAMPLENR, 79}, + {791*OVERSAMPLENR, 72}, + {811*OVERSAMPLENR, 69}, + {831*OVERSAMPLENR, 65}, + {871*OVERSAMPLENR, 57}, + {881*OVERSAMPLENR, 55}, + {901*OVERSAMPLENR, 51}, + {921*OVERSAMPLENR, 45}, + {941*OVERSAMPLENR, 39}, + {971*OVERSAMPLENR, 28}, + {981*OVERSAMPLENR, 23}, + {991*OVERSAMPLENR, 17}, + {1001*OVERSAMPLENR, 9}, + {1021*OVERSAMPLENR, -27} +}; +#endif + +#if (THERMISTORHEATER_0 == 20) || (THERMISTORHEATER_1 == 20) || (THERMISTORHEATER_2 == 20) || (THERMISTORBED == 20) // PT100 with INA826 amp on Ultimaker v2.0 electronics +/* The PT100 in the Ultimaker v2.0 electronics has a high sample value for a high temperature. +This does not match the normal thermistor behaviour so we need to set the following defines */ +#if (THERMISTORHEATER_0 == 20) +# define HEATER_0_RAW_HI_TEMP 16383 +# define HEATER_0_RAW_LO_TEMP 0 +#endif +#if (THERMISTORHEATER_1 == 20) +# define HEATER_1_RAW_HI_TEMP 16383 +# define HEATER_1_RAW_LO_TEMP 0 +#endif +#if (THERMISTORHEATER_2 == 20) +# define HEATER_2_RAW_HI_TEMP 16383 +# define HEATER_2_RAW_LO_TEMP 0 +#endif +#if (THERMISTORBED == 20) +# define HEATER_BED_RAW_HI_TEMP 16383 +# define HEATER_BED_RAW_LO_TEMP 0 +#endif +const short temptable_20[][2] PROGMEM = { +{ 0*OVERSAMPLENR , 0 }, +{ 227*OVERSAMPLENR , 1 }, +{ 236*OVERSAMPLENR , 10 }, +{ 245*OVERSAMPLENR , 20 }, +{ 253*OVERSAMPLENR , 30 }, +{ 262*OVERSAMPLENR , 40 }, +{ 270*OVERSAMPLENR , 50 }, +{ 279*OVERSAMPLENR , 60 }, +{ 287*OVERSAMPLENR , 70 }, +{ 295*OVERSAMPLENR , 80 }, +{ 304*OVERSAMPLENR , 90 }, +{ 312*OVERSAMPLENR , 100 }, +{ 320*OVERSAMPLENR , 110 }, +{ 329*OVERSAMPLENR , 120 }, +{ 337*OVERSAMPLENR , 130 }, +{ 345*OVERSAMPLENR , 140 }, +{ 353*OVERSAMPLENR , 150 }, +{ 361*OVERSAMPLENR , 160 }, +{ 369*OVERSAMPLENR , 170 }, +{ 377*OVERSAMPLENR , 180 }, +{ 385*OVERSAMPLENR , 190 }, +{ 393*OVERSAMPLENR , 200 }, +{ 401*OVERSAMPLENR , 210 }, +{ 409*OVERSAMPLENR , 220 }, +{ 417*OVERSAMPLENR , 230 }, +{ 424*OVERSAMPLENR , 240 }, +{ 432*OVERSAMPLENR , 250 }, +{ 440*OVERSAMPLENR , 260 }, +{ 447*OVERSAMPLENR , 270 }, +{ 455*OVERSAMPLENR , 280 }, +{ 463*OVERSAMPLENR , 290 }, +{ 470*OVERSAMPLENR , 300 }, +{ 478*OVERSAMPLENR , 310 }, +{ 485*OVERSAMPLENR , 320 }, +{ 493*OVERSAMPLENR , 330 }, +{ 500*OVERSAMPLENR , 340 }, +{ 507*OVERSAMPLENR , 350 }, +{ 515*OVERSAMPLENR , 360 }, +{ 522*OVERSAMPLENR , 370 }, +{ 529*OVERSAMPLENR , 380 }, +{ 537*OVERSAMPLENR , 390 }, +{ 544*OVERSAMPLENR , 400 }, +{ 614*OVERSAMPLENR , 500 }, +{ 681*OVERSAMPLENR , 600 }, +{ 744*OVERSAMPLENR , 700 }, +{ 805*OVERSAMPLENR , 800 }, +{ 862*OVERSAMPLENR , 900 }, +{ 917*OVERSAMPLENR , 1000 }, +{ 968*OVERSAMPLENR , 1100 } +}; +#endif #if (THERMISTORHEATER_0 == 51) || (THERMISTORHEATER_1 == 51) || (THERMISTORHEATER_2 == 51) || (THERMISTORBED == 51) // 100k EPCOS (WITH 1kohm RESISTOR FOR PULLUP, R9 ON SANGUINOLOLU! NOT FOR 4.7kohm PULLUP! THIS IS NOT NORMAL!) From ed6f4a71c5fc26dbcee7da77ae75fa357a2b71c5 Mon Sep 17 00:00:00 2001 From: Nutz95 Date: Sun, 13 Apr 2014 18:00:55 +0200 Subject: [PATCH 21/39] fix wrong temptable index --- Marlin/thermistortables.h | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/Marlin/thermistortables.h b/Marlin/thermistortables.h index db8359ef79..0a80e77b6a 100644 --- a/Marlin/thermistortables.h +++ b/Marlin/thermistortables.h @@ -563,8 +563,11 @@ const short temptable_10[][2] PROGMEM = { {1016*OVERSAMPLENR, 0} }; #endif -#if (THERMISTORHEATER_0 == 11) || (THERMISTORHEATER_1 == 11) || (THERMISTORHEATER_2 == 11) || (THERMISTORBED == 11) // QU-BD silicone bed QWG-104F-3950 thermistor -const short temptable_8[][2] PROGMEM = { + +#if (THERMISTORHEATER_0 == 11) || (THERMISTORHEATER_1 == 11) || (THERMISTORHEATER_2 == 11) || (THERMISTORBED == 11) +// QU-BD silicone bed QWG-104F-3950 thermistor + +const short temptable_11[][2] PROGMEM = { {1*OVERSAMPLENR, 938}, {31*OVERSAMPLENR, 314}, {41*OVERSAMPLENR, 290}, From e5b70237c7777429db95f49071855dda095e284f Mon Sep 17 00:00:00 2001 From: koldo artola Date: Sun, 13 Apr 2014 22:19:38 +0200 Subject: [PATCH 22/39] Added new language (Basque-Euskera) Added: * new language (Basque-Euskera) * some minor corrections for Spanish * added 2 new constants for every language (required for a minor change I am preparing to ultralcd.cpp) --- Marlin/language.h | 240 ++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 231 insertions(+), 9 deletions(-) diff --git a/Marlin/language.h b/Marlin/language.h index 3439335aef..6c408551a2 100644 --- a/Marlin/language.h +++ b/Marlin/language.h @@ -19,6 +19,7 @@ // 10 Aragonese // 11 Dutch // 12 Catalan +// 13 Basque-Euskera #ifndef LANGUAGE_CHOICE #define LANGUAGE_CHOICE 1 // Pick your language from the list above @@ -101,6 +102,8 @@ #define MSG_MOVE_Y "Move Y" #define MSG_MOVE_Z "Move Z" #define MSG_MOVE_E "Extruder" + #define MSG_MOVE_E1 "Extruder2" + #define MSG_MOVE_E2 "Extruder3" #define MSG_MOVE_01MM "Move 0.1mm" #define MSG_MOVE_1MM "Move 1mm" #define MSG_MOVE_10MM "Move 10mm" @@ -297,6 +300,8 @@ #define MSG_MOVE_Y "Przesun w Y" #define MSG_MOVE_Z "Przesun w Z" #define MSG_MOVE_E "Ekstruzja (os E)" + #define MSG_MOVE_E1 "Extruder2" + #define MSG_MOVE_E2 "Extruder3" #define MSG_MOVE_01MM "Przesuwaj co .1mm" #define MSG_MOVE_1MM "Przesuwaj co 1mm" #define MSG_MOVE_10MM "Przesuwaj co 10mm" @@ -498,6 +503,8 @@ #define MSG_MOVE_Y "Move Y" #define MSG_MOVE_Z "Move Z" #define MSG_MOVE_E "Extruder" + #define MSG_MOVE_E1 "Extruder2" + #define MSG_MOVE_E2 "Extruder3" #define MSG_MOVE_01MM "Move 0.1mm" #define MSG_MOVE_1MM "Move 1mm" #define MSG_MOVE_10MM "Move 10mm" @@ -696,6 +703,8 @@ #define MSG_MOVE_Y "Y bewegen" #define MSG_MOVE_Z "Z bewegen" #define MSG_MOVE_E "Extruder" + #define MSG_MOVE_E1 "Extruder2" + #define MSG_MOVE_E2 "Extruder3" #define MSG_MOVE_01MM "0.1mm bewegen" #define MSG_MOVE_1MM "1mm bewegen" #define MSG_MOVE_10MM "10mm bewegen" @@ -891,13 +900,15 @@ #define MSG_EXTRUDE "Extruir" #define MSG_RETRACT "Retraer" #define MSG_MOVE_AXIS "Mover ejes" - #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 "Mover X" + #define MSG_MOVE_Y "Mover Y" + #define MSG_MOVE_Z "Mover Z" + #define MSG_MOVE_E "Extrusor" + #define MSG_MOVE_E1 "Extrusor2" + #define MSG_MOVE_E2 "Extrusor3" + #define MSG_MOVE_01MM "Mover 0.1mm" + #define MSG_MOVE_1MM "Mover 1mm" + #define MSG_MOVE_10MM "Mover 10mm" #define MSG_SPEED "Velocidad" #define MSG_NOZZLE "Nozzle" #define MSG_NOZZLE1 "Nozzle2" @@ -963,7 +974,7 @@ #define MSG_CONTROL_RETRACT_RECOVER "DesRet +mm" #define MSG_CONTROL_RETRACT_RECOVERF "DesRet V" #define MSG_AUTORETRACT "AutoRetr." - #define MSG_FILAMENTCHANGE "Change filament" + #define MSG_FILAMENTCHANGE "Cambiar filamento" #define MSG_INIT_SDCARD "Iniciando tarjeta" #define MSG_CNG_SDCARD "Cambiar tarjeta" #define MSG_RECTRACT_WIDE "Retraer" @@ -1019,7 +1030,7 @@ #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 " Cuenta X:" #define MSG_ERR_KILLED "¡¡Impresora Parada con kill()!!" - #define MSG_ERR_STOPPED "¡Impresora parada por errores. Arregle el error y use M999 Para reiniciar!. (La temperatura se reestablece. Ajustela antes de continuar)" + #define MSG_ERR_STOPPED "¡Impresora parada por errores. Arregle el error y use M999 Para reiniciar!. (La temperatura se reestablece. Ajustela despues de continuar)" #define MSG_RESEND "Reenviar:" #define MSG_UNKNOWN_COMMAND "Comando Desconocido:\"" #define MSG_ACTIVE_EXTRUDER "Extrusor Activo: " @@ -1099,6 +1110,8 @@ #define MSG_MOVE_Y "Move Y" #define MSG_MOVE_Z "Move Z" #define MSG_MOVE_E "Extruder" + #define MSG_MOVE_E1 "Extruder2" + #define MSG_MOVE_E2 "Extruder3" #define MSG_MOVE_01MM "Move 0.1mm" #define MSG_MOVE_1MM "Move 1mm" #define MSG_MOVE_10MM "Move 10mm" @@ -1294,6 +1307,8 @@ #define MSG_MOVE_Y "Move Y" #define MSG_MOVE_Z "Move Z" #define MSG_MOVE_E "Extruder" + #define MSG_MOVE_E1 "Extruder2" + #define MSG_MOVE_E2 "Extruder3" #define MSG_MOVE_01MM "Move 0.1mm" #define MSG_MOVE_1MM "Move 1mm" #define MSG_MOVE_10MM "Move 10mm" @@ -1493,6 +1508,8 @@ #define MSG_MOVE_Y "Move Y" #define MSG_MOVE_Z "Move Z" #define MSG_MOVE_E "Extruder" + #define MSG_MOVE_E1 "Extruder2" + #define MSG_MOVE_E2 "Extruder3" #define MSG_MOVE_01MM "Move 0.1mm" #define MSG_MOVE_1MM "Move 1mm" #define MSG_MOVE_10MM "Move 10mm" @@ -1695,6 +1712,8 @@ #define MSG_MOVE_Y "Move Y" #define MSG_MOVE_Z "Move Z" #define MSG_MOVE_E "Extruder" + #define MSG_MOVE_E1 "Extruder2" + #define MSG_MOVE_E2 "Extruder3" #define MSG_MOVE_01MM "Move 0.1mm" #define MSG_MOVE_1MM "Move 1mm" #define MSG_MOVE_10MM "Move 10mm" @@ -1892,6 +1911,8 @@ #define MSG_MOVE_Y "Move Y" #define MSG_MOVE_Z "Move Z" #define MSG_MOVE_E "Extruder" + #define MSG_MOVE_E1 "Extruder2" + #define MSG_MOVE_E2 "Extruder3" #define MSG_MOVE_01MM "Move 0.1mm" #define MSG_MOVE_1MM "Move 1mm" #define MSG_MOVE_10MM "Move 10mm" @@ -2095,6 +2116,8 @@ #define MSG_MOVE_Y "Verplaats Y" #define MSG_MOVE_Z "Verplaats Z" #define MSG_MOVE_E "Extruder" + #define MSG_MOVE_E1 "Extruder2" + #define MSG_MOVE_E2 "Extruder3" #define MSG_MOVE_01MM "Verplaats 0.1mm" #define MSG_MOVE_1MM "Verplaats 1mm" #define MSG_MOVE_10MM "Verplaats 10mm" @@ -2292,6 +2315,8 @@ #define MSG_MOVE_Y "Moure Y" #define MSG_MOVE_Z "Moure Z" #define MSG_MOVE_E "Extrusor" + #define MSG_MOVE_E1 "Extruder2" + #define MSG_MOVE_E2 "Extruder3" #define MSG_MOVE_01MM "Moure 0.1mm" #define MSG_MOVE_1MM "Moure 1mm" #define MSG_MOVE_10MM "Moure 10mm" @@ -2450,5 +2475,202 @@ #endif +//Basque-Euskera +#if LANGUAGE_CHOICE == 13 + +// LCD Menu Messages +// Please note these are limited to 17 characters! + + #define WELCOME_MSG MACHINE_NAME " prest." + #define MSG_SD_INSERTED "Txartela sartuta" + #define MSG_SD_REMOVED "Txartela kenduta" + #define MSG_MAIN "Menu nagusia" + #define MSG_AUTOSTART "Auto hasiera" + #define MSG_DISABLE_STEPPERS "Itzali motoreak" + #define MSG_AUTO_HOME "Hasierara joan" + #define MSG_SET_ORIGIN "Hasiera ipini" + #define MSG_PREHEAT_PLA "Aurreberotu PLA" + #define MSG_PREHEAT_PLA0 "Aurreberotu PLA1" + #define MSG_PREHEAT_PLA1 "Aurreberotu PLA2" + #define MSG_PREHEAT_PLA2 "Aurreberotu PLA3" + #define MSG_PREHEAT_PLA012 "Berotu PLA Guztia" + #define MSG_PREHEAT_PLA_BEDONLY "Berotu PLA Ohea" + #define MSG_PREHEAT_PLA_SETTINGS "Berotu PLA Konfig" + #define MSG_PREHEAT_ABS "Aurreberotu ABS" + #define MSG_PREHEAT_ABS0 "Aurreberotu ABS 1" + #define MSG_PREHEAT_ABS1 "Aurreberotu ABS 2" + #define MSG_PREHEAT_ABS2 "Aurreberotu ABS 3" + #define MSG_PREHEAT_ABS012 "Berotu ABS Guztia" + #define MSG_PREHEAT_ABS_BEDONLY "Berotu ABS Ohea" + #define MSG_PREHEAT_ABS_SETTINGS "Berotu ABS Konfig" + #define MSG_COOLDOWN "Hoztu" + #define MSG_SWITCH_PS_ON "Energia piztu" + #define MSG_SWITCH_PS_OFF "Energia itzali" + #define MSG_EXTRUDE "Estruitu" + #define MSG_RETRACT "Atzera eragin" + #define MSG_MOVE_AXIS "Ardatzak mugitu" + #define MSG_MOVE_X "Mugitu X" + #define MSG_MOVE_Y "Mugitu Y" + #define MSG_MOVE_Z "Mugitu Z" + #define MSG_MOVE_E "Estrusorea" + #define MSG_MOVE_E1 "Estrusorea2" + #define MSG_MOVE_E2 "Estrusorea3" + #define MSG_MOVE_01MM "Mugitu 0.1mm" + #define MSG_MOVE_1MM "Mugitu 1mm" + #define MSG_MOVE_10MM "Mugitu 10mm" + #define MSG_SPEED "Abiadura" + #define MSG_NOZZLE "Pita" + #define MSG_NOZZLE1 "Pita2" + #define MSG_NOZZLE2 "Pita3" + #define MSG_BED "Ohea" + #define MSG_FAN_SPEED "Haizagailua" + #define MSG_FLOW "Fluxua" + #define MSG_FLOW0 "Fluxua 0" + #define MSG_FLOW1 "Fluxua 1" + #define MSG_FLOW2 "Fluxua 2" + #define MSG_CONTROL "Kontrola" + #define MSG_MIN " \002 Min" + #define MSG_MAX " \002 Max" + #define MSG_FACTOR " \002 Faktorea" + #define MSG_AUTOTEMP "Auto tenperatura" + #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 "Azelerazioa" + #define MSG_VXY_JERK "Vxy-astindua" + #define MSG_VZ_JERK "Vz-astindua" + #define MSG_VE_JERK "Ve-astindua" + #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-retrakt" + #define MSG_XSTEPS "X pausoak/mm" + #define MSG_YSTEPS "Y pausoak/mm" + #define MSG_ZSTEPS "Z pausoak/mm" + #define MSG_ESTEPS "E pausoak/mm" + #define MSG_RECTRACT "Atzera eragin" + #define MSG_TEMPERATURE "Tenperatura" + #define MSG_MOTION "Mugimendua" + #define MSG_CONTRAST "LCD kontrastea" + #define MSG_STORE_EPROM "Gorde memoria" + #define MSG_LOAD_EPROM "Kargatu memoria" + #define MSG_RESTORE_FAILSAFE "Larri. berriz." + #define MSG_REFRESH "Berriz kargatu" + #define MSG_WATCH "Pantaila info" + #define MSG_PREPARE "Prestatu" + #define MSG_TUNE "Doitu" + #define MSG_PAUSE_PRINT "Pausatu inprimak." + #define MSG_RESUME_PRINT "Jarraitu inprima." + #define MSG_STOP_PRINT "Gelditu inprima." + #define MSG_CARD_MENU "SD-tik inprimatu" + #define MSG_NO_CARD "Ez dago txartelik" + #define MSG_DWELL "Lo egin..." + #define MSG_USERWAIT "Aginduak zain..." + #define MSG_RESUMING "Jarraitzen inpri." + #define MSG_NO_MOVE "Mugimendu gabe" + #define MSG_KILLED "LARRIALDI GELDIA" + #define MSG_STOPPED "GELDITUTA. " + #define MSG_CONTROL_RETRACT "Atzera egin mm" + #define MSG_CONTROL_RETRACTF "Atzera egin V" + #define MSG_CONTROL_RETRACT_ZLIFT "Igo mm" + #define MSG_CONTROL_RETRACT_RECOVER "Atzera egin +mm" + #define MSG_CONTROL_RETRACT_RECOVERF "Atzera egin V" + #define MSG_AUTORETRACT "Atzera egin" + #define MSG_FILAMENTCHANGE "Aldatu filament." + #define MSG_INIT_SDCARD "Hasieratu txartela" + #define MSG_CNG_SDCARD "Aldatu txartela" + #define MSG_ZPROBE_OUT "Z ohe hasiera" + #define MSG_POSITION_UNKNOWN "Posizio ezezaguna" + #define MSG_ZPROBE_ZOFFSET "Z konpentsatu" + #define MSG_BABYSTEP_X "Babystep X" + #define MSG_BABYSTEP_Y "Babystep Y" + #define MSG_BABYSTEP_Z "Babystep Z" + #define MSG_ENDSTOP_ABORT "Endstop deuseztat" + +// Serial Console Messages + + #define MSG_Enqueing "Zerrendan \"" + #define MSG_POWERUP "Pizketa" + #define MSG_EXTERNAL_RESET " Kanpoko Reset" + #define MSG_BROWNOUT_RESET " Tentsio Okerra Reset" + #define MSG_WATCHDOG_RESET " Reset Blokeoa" + #define MSG_SOFTWARE_RESET " Software Reset" + #define MSG_AUTHOR " | Egilea: " + #define MSG_CONFIGURATION_VER " Azken Aktualizazio: " + #define MSG_FREE_MEMORY " Aske Memoria: " + #define MSG_PLANNER_BUFFER_BYTES " PlannerBufferBytes: " + #define MSG_OK "ok" + #define MSG_FILE_SAVED "Gordetuta." + #define MSG_ERR_LINE_NO "Lerro zenbakia ez da azken zenbakia+1 berdina, Azken Lerroa: " + #define MSG_ERR_CHECKSUM_MISMATCH "checksum-ak ez du aldiberekotasuna, Azken Lerroa: " + #define MSG_ERR_NO_CHECKSUM "Ez da checksum-ik aurkitu lerro zenbakian, Azken Lerroa: " + #define MSG_ERR_NO_LINENUMBER_WITH_CHECKSUM "Ez da lerro zenbakia aurkitu checksum-arekin, Azken Lerroa: " + #define MSG_FILE_PRINTED "Inprimaketa bukatua" + #define MSG_BEGIN_FILE_LIST "Hasi artxibo zerrenda" + #define MSG_END_FILE_LIST "Amaitu artxibo zerrenda" + #define MSG_M104_INVALID_EXTRUDER "M104 Balio gabeko Estrusorea " + #define MSG_M105_INVALID_EXTRUDER "M105 Balio gabeko Estrusorea " + #define MSG_M200_INVALID_EXTRUDER "M200 Balio gabeko Estrusorea " + #define MSG_M218_INVALID_EXTRUDER "M218 Balio gabeko Estrusorea " + #define MSG_M221_INVALID_EXTRUDER "M221 Balio gabeko Estrusorea " + #define MSG_ERR_NO_THERMISTORS "Termistorerik ez dago - Tenperaturarik gabe" + #define MSG_M109_INVALID_EXTRUDER "M109 Balio gabeko Estrusorea " + #define MSG_HEATING "Berotzen..." + #define MSG_HEATING_COMPLETE "berotuta." + #define MSG_BED_HEATING "Ohea berotzen." + #define MSG_BED_DONE "Ohea berotuta." + #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 " X Kontu: " + #define MSG_ERR_KILLED "Inprimagailua geldituta. kill() called!" + #define MSG_ERR_STOPPED "Akatsen eraginez inprimagailua geldituta. Errorea konpondu eta M999 erabili berrabiarazteko. (Tenperatura galdu egin da. Berriro ipini)" + #define MSG_RESEND "Bidali berriro: " + #define MSG_UNKNOWN_COMMAND "Agindu ezezaguna: \"" + #define MSG_ACTIVE_EXTRUDER "Estrusore Aktiboa: " + #define MSG_INVALID_EXTRUDER "Balio gabeko Estrusorea" + #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 "Bide amaiera egiaztatzen" + #define MSG_ENDSTOP_HIT "Sakatuta" + #define MSG_ENDSTOP_OPEN "irekia" + #define MSG_HOTEND_OFFSET "Hotend offsets:" + + #define MSG_SD_CANT_OPEN_SUBDIR "Azpidirektorio ezin da ireki" + #define MSG_SD_INIT_FAIL "Akatsa txartela hasterakoan" + #define MSG_SD_VOL_INIT_FAIL "Akatsa partizioa hasterakoan" + #define MSG_SD_OPENROOT_FAIL "Akatsa direktorio nagusian" + #define MSG_SD_CARD_OK "SD card ok" + #define MSG_SD_WORKDIR_FAIL "Akatsa lan direktorioan" + #define MSG_SD_OPEN_FILE_FAIL "Akatsa irekitzean, File: " + #define MSG_SD_FILE_OPENED "Artxiboa irekita: " + #define MSG_SD_SIZE " Tamaina: " + #define MSG_SD_FILE_SELECTED "Artxiboa aukeratuta" + #define MSG_SD_WRITE_TO_FILE "Artxiboa idazten: " + #define MSG_SD_PRINTING_BYTE "SD byte idazten " + #define MSG_SD_NOT_PRINTING "Ez dago SD-tik inprimatzen" + #define MSG_SD_ERR_WRITE_TO_FILE "Akatsak artxiboa idazten" + #define MSG_SD_CANT_ENTER_SUBDIR "Azpidirektorio ezin da ireki: " + + #define MSG_STEPPER_TOO_HIGH "Motorra oso goi dago: " + #define MSG_ENDSTOPS_HIT "Bide amaiera ukitu da: " + #define MSG_ERR_COLD_EXTRUDE_STOP " estrusio hotza saihestua" + #define MSG_ERR_LONG_EXTRUDE_STOP " estrusio oso luzea saihestua" + #define MSG_BABYSTEPPING_X "Babystepping X" + #define MSG_BABYSTEPPING_Y "Babystepping Y" + #define MSG_BABYSTEPPING_Z "Babystepping Z" + #define MSG_SERIAL_ERROR_MENU_STRUCTURE "Akatsak menu-an" + +#endif #endif // ifndef LANGUAGE_H From 27d544ac25d73013f1ba39e7905368e84e038694 Mon Sep 17 00:00:00 2001 From: whosawhatsis Date: Sat, 19 Apr 2014 17:26:43 -0700 Subject: [PATCH 23/39] Speed up QUICK_HOME feedrate for diagonal move Speed up the diagonal move while still keeping each individual axis at or below its homing feedrate. --- Marlin/Marlin_main.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index 618e906b88..5e7cdf8e57 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -1286,7 +1286,12 @@ void process_commands() destination[X_AXIS] = 1.5 * max_length(X_AXIS) * x_axis_home_dir;destination[Y_AXIS] = 1.5 * max_length(Y_AXIS) * home_dir(Y_AXIS); feedrate = homing_feedrate[X_AXIS]; if(homing_feedrate[Y_AXIS] max_length(Y_AXIS)) { + feedrate *= sqrt(pow(max_length(Y_AXIS) / max_length(X_AXIS), 2) + 1); + } else { + feedrate *= sqrt(pow(max_length(X_AXIS) / max_length(Y_AXIS), 2) + 1); + } plan_buffer_line(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], destination[E_AXIS], feedrate/60, active_extruder); st_synchronize(); From e4dc80d3d36168c0f15fd31d6856d6635237d2ec Mon Sep 17 00:00:00 2001 From: MyMakibox Date: Wed, 23 Apr 2014 17:30:07 +0800 Subject: [PATCH 24/39] Update Configuration_adv.h Corrected error in AUTOTEMP instructions --- Marlin/Configuration_adv.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Marlin/Configuration_adv.h b/Marlin/Configuration_adv.h index 5fa3847c1a..245f65c9ef 100644 --- a/Marlin/Configuration_adv.h +++ b/Marlin/Configuration_adv.h @@ -30,7 +30,7 @@ //automatic temperature: The hot end target temperature is calculated by all the buffered lines of gcode. //The maximum buffered steps/sec of the extruder motor are called "se". -//You enter the autotemp mode by a M109 S T F +//You enter the autotemp mode by a M109 S B F // 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: Wed, 23 Apr 2014 17:33:26 +0800 Subject: [PATCH 25/39] Update Marlin_main.cpp Added description of autotemp flags to M109 --- Marlin/Marlin_main.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index 5e7cdf8e57..420bd00abb 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -118,6 +118,7 @@ // M107 - Fan off // M109 - Sxxx Wait for extruder current temp to reach target temp. Waits only when heating // Rxxx Wait for extruder current temp to reach target temp. Waits when heating and cooling +// IF AUTOTEMP is enabled, S B F. Exit autotemp by any M109 without F // M114 - Output current position to serial port // M115 - Capabilities string // M117 - display message From 2fa514e88a0da8b470c5a01e210cd4732974fadf Mon Sep 17 00:00:00 2001 From: Cameron Lai Date: Thu, 24 Apr 2014 12:55:00 +0800 Subject: [PATCH 26/39] Add port for 5DPrint D8 Driver board --- Marlin/pins.h | 82 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) diff --git a/Marlin/pins.h b/Marlin/pins.h index 7fa0ee47b9..3e5fa79c64 100644 --- a/Marlin/pins.h +++ b/Marlin/pins.h @@ -1,6 +1,7 @@ #ifndef PINS_H #define PINS_H +#if MOTHERBOARD != 88 #define X_MS1_PIN -1 #define X_MS2_PIN -1 #define Y_MS1_PIN -1 @@ -12,6 +13,87 @@ #define E1_MS1_PIN -1 #define E1_MS2_PIN -1 #define DIGIPOTSS_PIN -1 +#endif + +/**************************************************************************************** +* 5DPrint D8 Driver board +* https://bitbucket.org/makible/5dprint-d8-controller-board +****************************************************************************************/ + +#if MOTHERBOARD == 88 + +#define KNOWN_BOARD 1 +#define AT90USB 1286 // Disable MarlinSerial etc. + +#ifndef __AVR_AT90USB1286__ +#error Oops! Make sure you have 'Teensy++ 2.0' selected from the 'Tools -> Boards' menu. +#endif + +#define LARGE_FLASH true + +#define X_STEP_PIN 0 +#define X_DIR_PIN 1 +#define X_ENABLE_PIN 23 +#define X_STOP_PIN 37 + +#define Y_STEP_PIN 2 +#define Y_DIR_PIN 3 +#define Y_ENABLE_PIN 19 +#define Y_STOP_PIN 36 + +#define Z_STEP_PIN 4 +#define Z_DIR_PIN 5 +#define Z_ENABLE_PIN 18 +#define Z_STOP_PIN 39 + +#define E0_STEP_PIN 6 +#define E0_DIR_PIN 7 +#define E0_ENABLE_PIN 17 + +#define HEATER_0_PIN 21 // Extruder +#define HEATER_1_PIN -1 +#define HEATER_2_PIN -1 +#define HEATER_BED_PIN 20 // Bed +#define FAN_PIN 22 // Fan +// You may need to change FAN_PIN to 16 because Marlin isn't using fastio.h +// for the fan and Teensyduino uses a different pin mapping. + +#define TEMP_0_PIN 1 // Extruder / Analog pin numbering +#define TEMP_BED_PIN 0 // Bed / Analog pin numbering + +#define TEMP_1_PIN -1 +#define TEMP_2_PIN -1 + +#define SDPOWER -1 +#define SDSS 8 +#define LED_PIN -1 +#define PS_ON_PIN -1 +#define KILL_PIN -1 +#define ALARM_PIN -1 + +#ifndef SDSUPPORT +// these pins are defined in the SD library if building with SD support + #define SCK_PIN 9 + #define MISO_PIN 11 + #define MOSI_PIN 10 +#endif + +// Microstepping pins +#define X_MS1_PIN 13 +#define X_MS2_PIN 14 +#define Y_MS1_PIN 33 +#define Y_MS2_PIN 32 +#define Z_MS1_PIN 31 +#define Z_MS2_PIN 30 +#define E0_MS1_PIN 29 +#define E0_MS2_PIN 28 + +#endif /* 88 */ + +/**************************************************************************************** +* +* +****************************************************************************************/ #if MOTHERBOARD == 99 #define KNOWN_BOARD 1 From 1cbcbb0971a88aa211e256f2abaaada7bac78e9d Mon Sep 17 00:00:00 2001 From: Cameron Lai Date: Thu, 24 Apr 2014 12:55:21 +0800 Subject: [PATCH 27/39] Add makibox machine information --- Marlin/language.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Marlin/language.h b/Marlin/language.h index 6c408551a2..c032aca89e 100644 --- a/Marlin/language.h +++ b/Marlin/language.h @@ -36,6 +36,9 @@ #elif MOTHERBOARD == 77 #define MACHINE_NAME "3Drag" #define FIRMWARE_URL "http://3dprint.elettronicain.it/" +#elif MOTHERBOARD == 88 + #define MACHINE_NAME "Makibox" + #define FIRMWARE_URL "https://github.com/ErikZalm/Marlin/" #else #ifdef CUSTOM_MENDEL_NAME #define MACHINE_NAME CUSTOM_MENDEL_NAME From eea3ba5588580b4460b3f27da549bcf52db5aad6 Mon Sep 17 00:00:00 2001 From: Cameron Lai Date: Thu, 24 Apr 2014 12:56:06 +0800 Subject: [PATCH 28/39] Fix for stepper microstepping --- Marlin/stepper.cpp | 55 ++++++++++++++++++++++++++++++++-------------- 1 file changed, 39 insertions(+), 16 deletions(-) diff --git a/Marlin/stepper.cpp b/Marlin/stepper.cpp index eaba4362dc..8f8be8c824 100644 --- a/Marlin/stepper.cpp +++ b/Marlin/stepper.cpp @@ -1228,34 +1228,55 @@ void digipot_current(uint8_t driver, int current) void microstep_init() { + #if defined(Y_MS1_PIN) && Y_MS1_PIN > -1 + SET_OUTPUT(Y_MS1_PIN); + SET_OUTPUT(Y_MS2_PIN); + #endif + #if defined(Z_MS1_PIN) && Z_MS1_PIN > -1 + SET_OUTPUT(Z_MS1_PIN); + SET_OUTPUT(Z_MS2_PIN); + #endif + + #if defined(E0_MS1_PIN) && E0_MS1_PIN > -1 + SET_OUTPUT(E0_MS1_PIN); + SET_OUTPUT(E0_MS2_PIN); + #endif + + #if defined(E1_MS1_PIN) && E1_MS1_PIN > -1 + SET_OUTPUT(E1_MS1_PIN); + SET_OUTPUT(E1_MS2_PIN); + #endif + #if defined(X_MS1_PIN) && X_MS1_PIN > -1 + SET_OUTPUT(X_MS1_PIN); + SET_OUTPUT(X_MS2_PIN); + const uint8_t microstep_modes[] = MICROSTEP_MODES; - pinMode(X_MS2_PIN,OUTPUT); - pinMode(Y_MS2_PIN,OUTPUT); - pinMode(Z_MS2_PIN,OUTPUT); - pinMode(E0_MS2_PIN,OUTPUT); - pinMode(E1_MS2_PIN,OUTPUT); for(int i=0;i<=4;i++) microstep_mode(i,microstep_modes[i]); - #endif + #endif } void microstep_ms(uint8_t driver, int8_t ms1, int8_t ms2) { if(ms1 > -1) switch(driver) { - case 0: digitalWrite( X_MS1_PIN,ms1); break; - case 1: digitalWrite( Y_MS1_PIN,ms1); break; - case 2: digitalWrite( Z_MS1_PIN,ms1); break; - case 3: digitalWrite(E0_MS1_PIN,ms1); break; - case 4: digitalWrite(E1_MS1_PIN,ms1); break; + case 0: WRITE( X_MS1_PIN,ms1); break; + case 1: WRITE( Y_MS1_PIN,ms1); break; + case 2: WRITE( Z_MS1_PIN,ms1); break; + case 3: WRITE(E0_MS1_PIN,ms1); break; + #if defined(E1_MS1_PIN) && E1_MS1_PIN > -1 + case 4: WRITE(E1_MS1_PIN,ms1); break; + #endif } if(ms2 > -1) switch(driver) { - case 0: digitalWrite( X_MS2_PIN,ms2); break; - case 1: digitalWrite( Y_MS2_PIN,ms2); break; - case 2: digitalWrite( Z_MS2_PIN,ms2); break; - case 3: digitalWrite(E0_MS2_PIN,ms2); break; - case 4: digitalWrite(E1_MS2_PIN,ms2); break; + case 0: WRITE( X_MS2_PIN,ms2); break; + case 1: WRITE( Y_MS2_PIN,ms2); break; + case 2: WRITE( Z_MS2_PIN,ms2); break; + case 3: WRITE(E0_MS2_PIN,ms2); break; + #if defined(E1_MS1_PIN) && E1_MS1_PIN > -1 + case 4: WRITE(E1_MS2_PIN,ms2); break; + #endif } } @@ -1286,8 +1307,10 @@ void microstep_readings() SERIAL_PROTOCOLPGM("E0: "); SERIAL_PROTOCOL( digitalRead(E0_MS1_PIN)); SERIAL_PROTOCOLLN( digitalRead(E0_MS2_PIN)); + #if defined(E1_MS1_PIN) && E1_MS1_PIN > -1 SERIAL_PROTOCOLPGM("E1: "); SERIAL_PROTOCOL( digitalRead(E1_MS1_PIN)); SERIAL_PROTOCOLLN( digitalRead(E1_MS2_PIN)); + #endif } From 3a8e36f19ea2852c9d1ee99daf097ed781ac2f38 Mon Sep 17 00:00:00 2001 From: Cameron Lai Date: Thu, 24 Apr 2014 12:56:46 +0800 Subject: [PATCH 29/39] Add Digipot config for 5DPrint D8 Driver Board --- Marlin/digipot_mcp4451.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Marlin/digipot_mcp4451.cpp b/Marlin/digipot_mcp4451.cpp index 11ee684223..7c150558bc 100644 --- a/Marlin/digipot_mcp4451.cpp +++ b/Marlin/digipot_mcp4451.cpp @@ -6,8 +6,13 @@ #include "Wire.h" // Settings for the I2C based DIGIPOT (MCP4451) on Azteeg X3 Pro +#if MOTHERBOARD == 88 +#define DIGIPOT_I2C_FACTOR 117.96 +#define DIGIPOT_I2C_MAX_CURRENT 1.736 +#else #define DIGIPOT_I2C_FACTOR 106.7 #define DIGIPOT_I2C_MAX_CURRENT 2.5 +#endif static byte current_to_wiper( float current ){ return byte(ceil(float((DIGIPOT_I2C_FACTOR*current)))); From da6b536182dc31632cff09e54468e6bfbbdef858 Mon Sep 17 00:00:00 2001 From: Cameron Lai Date: Thu, 24 Apr 2014 16:49:42 +0800 Subject: [PATCH 30/39] Add 5DPrint D8 Driver Board info and temperature table for Makibox hot bed --- Marlin/Configuration.h | 2 ++ Marlin/thermistortables.h | 35 +++++++++++++++++++++++++++++++++++ 2 files changed, 37 insertions(+) diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h index f169f8e419..b293284d89 100644 --- a/Marlin/Configuration.h +++ b/Marlin/Configuration.h @@ -70,6 +70,7 @@ // 91 = Final OMCA board // 301= Rambo // 21 = Elefu Ra Board (v3) +// 88 = 5DPrint D8 Driver Board #ifndef MOTHERBOARD #define MOTHERBOARD 7 @@ -116,6 +117,7 @@ // 9 is 100k GE Sensing AL03006-58.2K-97-G1 (4.7k pullup) // 10 is 100k RS thermistor 198-961 (4.7k pullup) // 11 is 100k beta 3950 1% thermistor (4.7k pullup) +// 12 is 100k 0603 SMD Vishay NTCS0603E3104FXT (4.7k pullup) (calibrated for Makibox hot bed) // 20 is the PT100 circuit found in the Ultimainboard V2.x // 60 is 100k Maker's Tool Works Kapton Bed Thermistor beta=3950 // diff --git a/Marlin/thermistortables.h b/Marlin/thermistortables.h index 0a80e77b6a..07b385e119 100644 --- a/Marlin/thermistortables.h +++ b/Marlin/thermistortables.h @@ -921,6 +921,41 @@ const short temptable_60[][2] PROGMEM = { {1008*OVERSAMPLENR, 0}, }; #endif +#if (THERMISTORBED == 12) +//100k 0603 SMD Vishay NTCS0603E3104FXT (4.7k pullup) (calibrated for Makibox hot bed) +const short temptable_12[][2] PROGMEM = { + {35*OVERSAMPLENR, 180}, //top rating 180C + {211*OVERSAMPLENR, 140}, + {233*OVERSAMPLENR, 135}, + {261*OVERSAMPLENR, 130}, + {290*OVERSAMPLENR, 125}, + {328*OVERSAMPLENR, 120}, + {362*OVERSAMPLENR, 115}, + {406*OVERSAMPLENR, 110}, + {446*OVERSAMPLENR, 105}, + {496*OVERSAMPLENR, 100}, + {539*OVERSAMPLENR, 95}, + {585*OVERSAMPLENR, 90}, + {629*OVERSAMPLENR, 85}, + {675*OVERSAMPLENR, 80}, + {718*OVERSAMPLENR, 75}, + {758*OVERSAMPLENR, 70}, + {793*OVERSAMPLENR, 65}, + {822*OVERSAMPLENR, 60}, + {841*OVERSAMPLENR, 55}, + {875*OVERSAMPLENR, 50}, + {899*OVERSAMPLENR, 45}, + {926*OVERSAMPLENR, 40}, + {946*OVERSAMPLENR, 35}, + {962*OVERSAMPLENR, 30}, + {977*OVERSAMPLENR, 25}, + {987*OVERSAMPLENR, 20}, + {995*OVERSAMPLENR, 15}, + {1001*OVERSAMPLENR, 10}, + {1010*OVERSAMPLENR, 0}, + {1023*OVERSAMPLENR, -40}, +}; +#endif // Pt1000 and Pt100 handling // From 39e9b133f3246124798c642ea90585b84c929e2a Mon Sep 17 00:00:00 2001 From: Cameron Lai Date: Thu, 24 Apr 2014 17:06:07 +0800 Subject: [PATCH 31/39] Add example configuration for Makibox printer, which uses the 5DPrint D8 Driver Board --- .../makibox/Configuration.h | 722 ++++++++++++++++++ .../makibox/Configuration_adv.h | 498 ++++++++++++ 2 files changed, 1220 insertions(+) create mode 100644 Marlin/example_configurations/makibox/Configuration.h create mode 100644 Marlin/example_configurations/makibox/Configuration_adv.h diff --git a/Marlin/example_configurations/makibox/Configuration.h b/Marlin/example_configurations/makibox/Configuration.h new file mode 100644 index 0000000000..83a9c75872 --- /dev/null +++ b/Marlin/example_configurations/makibox/Configuration.h @@ -0,0 +1,722 @@ +#ifndef CONFIGURATION_H +#define CONFIGURATION_H + +// This configuration file contains the basic settings. +// Advanced settings can be found in Configuration_adv.h +// BASIC SETTINGS: select your board type, temperature sensor type, axis scaling, and endstop configuration + +//=========================================================================== +//============================= DELTA Printer =============================== +//=========================================================================== +// For a Delta printer replace the configuration files with the files in the +// example_configurations/delta directory. +// + +// User-specified version info of this build to display in [Pronterface, etc] terminal window during +// startup. Implementation of an idea by Prof Braino to inform user that any changes made to this +// build by the user have been successfully uploaded into firmware. +#define STRING_VERSION_CONFIG_H __DATE__ " " __TIME__ // build date and time +#define STRING_CONFIG_H_AUTHOR "(none, default config)" // Who made the changes. + +// SERIAL_PORT selects which serial port should be used for communication with the host. +// This allows the connection of wireless adapters (for instance) to non-default port pins. +// Serial port 0 is still used by the Arduino bootloader regardless of this setting. +#define SERIAL_PORT 0 + +// This determines the communication speed of the printer +// This determines the communication speed of the printer +#define BAUDRATE 250000 + +// This enables the serial port associated to the Bluetooth interface +//#define BTENABLED // Enable BT interface on AT90USB devices + + +//// The following define selects which electronics board you have. Please choose the one that matches your setup +// 10 = Gen7 custom (Alfons3 Version) "https://github.com/Alfons3/Generation_7_Electronics" +// 11 = Gen7 v1.1, v1.2 = 11 +// 12 = Gen7 v1.3 +// 13 = Gen7 v1.4 +// 2 = Cheaptronic v1.0 +// 20 = Sethi 3D_1 +// 3 = MEGA/RAMPS up to 1.2 = 3 +// 33 = RAMPS 1.3 / 1.4 (Power outputs: Extruder, Fan, Bed) +// 34 = RAMPS 1.3 / 1.4 (Power outputs: Extruder0, Extruder1, Bed) +// 35 = RAMPS 1.3 / 1.4 (Power outputs: Extruder, Fan, Fan) +// 4 = Duemilanove w/ ATMega328P pin assignment +// 5 = Gen6 +// 51 = Gen6 deluxe +// 6 = Sanguinololu < 1.2 +// 62 = Sanguinololu 1.2 and above +// 63 = Melzi +// 64 = STB V1.1 +// 65 = Azteeg X1 +// 66 = Melzi with ATmega1284 (MaKr3d version) +// 67 = Azteeg X3 +// 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 +// 81 = Printrboard (AT90USB1286) +// 82 = Brainwave (AT90USB646) +// 83 = SAV Mk-I (AT90USB1286) +// 9 = Gen3+ +// 70 = Megatronics +// 701= Megatronics v2.0 +// 702= Minitronics v1.0 +// 90 = Alpha OMCA board +// 91 = Final OMCA board +// 301= Rambo +// 21 = Elefu Ra Board (v3) +// 88 = 5DPrint D8 Driver Board + +#ifndef MOTHERBOARD +#define MOTHERBOARD 88 +#endif + +// Define this to set a custom name for your generic Mendel, +// #define CUSTOM_MENDEL_NAME "This Mendel" + +// Define this to set a unique identifier for this printer, (Used by some programs to differentiate between machines) +// You can use an online service to generate a random UUID. (eg http://www.uuidgenerator.net/version4) +// #define MACHINE_UUID "00000000-0000-0000-0000-000000000000" + +// This defines the number of extruders +#define EXTRUDERS 1 + +//// The following define selects which power supply you have. Please choose the one that matches your setup +// 1 = ATX +// 2 = X-Box 360 203Watts (the blue wire connected to PS_ON and the red wire to VCC) + +#define POWER_SUPPLY 1 + +// 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 + +//=========================================================================== +//=============================Thermal Settings ============================ +//=========================================================================== +// +//--NORMAL IS 4.7kohm PULLUP!-- 1kohm pullup can be used on hotend sensor, using correct resistor and table +// +//// Temperature sensor settings: +// -2 is thermocouple with MAX6675 (only for sensor 0) +// -1 is thermocouple with AD595 +// 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) +// 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) +// 7 is 100k Honeywell thermistor 135-104LAG-J01 (4.7k pullup) +// 71 is 100k Honeywell thermistor 135-104LAF-J01 (4.7k pullup) +// 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) +// 11 is 100k beta 3950 1% thermistor (4.7k pullup) +// 12 is 100k 0603 SMD Vishay NTCS0603E3104FXT (4.7k pullup) (calibrated for Makibox hot bed) +// 20 is the PT100 circuit found in the Ultimainboard V2.x +// 60 is 100k Maker's Tool Works Kapton Bed Thermistor beta=3950 +// +// 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) +// 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 0 +#define TEMP_SENSOR_2 0 +#define TEMP_SENSOR_BED 12 + +// This makes temp sensor 1 a redundant sensor for sensor 0. If the temperatures difference between these sensors is to high the print will be aborted. +//#define TEMP_SENSOR_1_AS_REDUNDANT +#define MAX_REDUNDANT_TEMP_SENSOR_DIFF 10 + +// Actual temperature must be close to target for this long before M109 returns success +#define TEMP_RESIDENCY_TIME 10 // (seconds) +#define TEMP_HYSTERESIS 3 // (degC) range of +/- temperatures considered "close" to the target one +#define TEMP_WINDOW 1 // (degC) Window around target to start the residency timer x degC early. + +// The minimal temperature defines the temperature below which the heater will not be enabled It is used +// to check that the wiring to the thermistor is not broken. +// Otherwise this would lead to the heater being powered on all the time. +#define HEATER_0_MINTEMP 5 +#define HEATER_1_MINTEMP 5 +#define HEATER_2_MINTEMP 5 +#define BED_MINTEMP 5 + +// When temperature exceeds max temp, your heater will be switched off. +// This feature exists to protect your hotend from overheating accidentally, but *NOT* from thermistor short/failure! +// You should use MINTEMP for thermistor short/failure protection. +#define HEATER_0_MAXTEMP 275 +#define HEATER_1_MAXTEMP 275 +#define HEATER_2_MAXTEMP 275 +#define BED_MAXTEMP 150 + +// If your bed has low resistance e.g. .6 ohm and throws the fuse you can duty cycle it to reduce the +// average current. The value should be an integer and the heat bed will be turned on for 1 interval of +// HEATER_BED_DUTY_CYCLE_DIVIDER intervals. +//#define HEATER_BED_DUTY_CYCLE_DIVIDER 4 + +// If you want the M105 heater power reported in watts, define the BED_WATTS, and (shared for all extruders) EXTRUDER_WATTS +//#define EXTRUDER_WATTS (12.0*12.0/6.7) // P=I^2/R +//#define BED_WATTS (12.0*12.0/1.1) // P=I^2/R + +// PID settings: +// Comment the following line to disable PID and enable bang-bang. +#define PIDTEMP +#define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current +#define PID_MAX 255 // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current +#ifdef PIDTEMP + //#define PID_DEBUG // Sends debug data to the serial port. + //#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX + #define PID_FUNCTIONAL_RANGE 10 // If the temperature difference between the target temperature and the actual temperature + // is more then PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max. + #define PID_INTEGRAL_DRIVE_MAX 255 //limit for the integral term + #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 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 +// #define DEFAULT_Kp 7.0 +// #define DEFAULT_Ki 0.1 +// #define DEFAULT_Kd 12 + +// Mendel Parts V9 on 12V +// #define DEFAULT_Kp 63.0 +// #define DEFAULT_Ki 2.25 +// #define DEFAULT_Kd 440 +#endif // PIDTEMP + +// Bed Temperature Control +// Select PID or bang-bang with PIDTEMPBED. If bang-bang, BED_LIMIT_SWITCHING will enable hysteresis +// +// Uncomment this to enable PID on the bed. It uses the same frequency PWM as the extruder. +// If your PID_dT above is the default, and correct for your hardware/configuration, that means 7.689Hz, +// which is fine for driving a square wave into a resistive load and does not significantly impact you FET heating. +// This also works fine on a Fotek SSR-10DA Solid State Relay into a 250W heater. +// If your configuration is significantly different than this and you don't understand the issues involved, you probably +// shouldn't use bed PID until someone else verifies your hardware works. +// If this is enabled, find your own PID constants below. +//#define PIDTEMPBED +// +//#define BED_LIMIT_SWITCHING + +// This sets the max power delivered to the bed, and replaces the HEATER_BED_DUTY_CYCLE_DIVIDER option. +// all forms of bed control obey this (PID, bang-bang, bang-bang with hysteresis) +// setting this to anything other than 255 enables a form of PWM to the bed just like HEATER_BED_DUTY_CYCLE_DIVIDER did, +// so you shouldn't use it unless you are OK with PWM on your bed. (see the comment on enabling PIDTEMPBED) +#define MAX_BED_POWER 255 // limits duty cycle to bed; 255=full current + +#ifdef PIDTEMPBED +//120v 250W silicone heater into 4mm borosilicate (MendelMax 1.5+) +//from FOPDT model - kp=.39 Tp=405 Tdead=66, Tc set to 79.2, aggressive factor of .15 (vs .1, 1, 10) + #define DEFAULT_bedKp 10.00 + #define DEFAULT_bedKi .023 + #define DEFAULT_bedKd 305.4 + +//120v 250W silicone heater into 4mm borosilicate (MendelMax 1.5+) +//from pidautotune +// #define DEFAULT_bedKp 97.1 +// #define DEFAULT_bedKi 1.41 +// #define DEFAULT_bedKd 1675.16 + +// FIND YOUR OWN: "M303 E-1 C8 S90" to run autotune on the bed at 90 degreesC for 8 cycles. +#endif // PIDTEMPBED + + + +//this prevents dangerous Extruder moves, i.e. if the temperature is under the limit +//can be software-disabled for whatever purposes by +#define PREVENT_DANGEROUS_EXTRUDE +//if PREVENT_DANGEROUS_EXTRUDE is on, you can still disable (uncomment) very long bits of extrusion separately. +#define PREVENT_LENGTHY_EXTRUDE + +#define EXTRUDE_MINTEMP 170 +#define EXTRUDE_MAXLENGTH (X_MAX_LENGTH+Y_MAX_LENGTH) //prevent extrusion of very large distances. + +//=========================================================================== +//=============================Mechanical Settings=========================== +//=========================================================================== + +// Uncomment the following line to enable CoreXY kinematics +// #define COREXY + +// coarse Endstop Settings +#define ENDSTOPPULLUPS // Comment this out (using // at the start of the line) to disable the endstop pullup resistors + +#ifndef ENDSTOPPULLUPS + // fine endstop settings: Individual pullups. will be ignored if ENDSTOPPULLUPS is defined + // #define ENDSTOPPULLUP_XMAX + // #define ENDSTOPPULLUP_YMAX + // #define ENDSTOPPULLUP_ZMAX + // #define ENDSTOPPULLUP_XMIN + // #define ENDSTOPPULLUP_YMIN + // #define ENDSTOPPULLUP_ZMIN +#endif + +#ifdef ENDSTOPPULLUPS + #define ENDSTOPPULLUP_XMAX + #define ENDSTOPPULLUP_YMAX + #define ENDSTOPPULLUP_ZMAX + #define ENDSTOPPULLUP_XMIN + #define ENDSTOPPULLUP_YMIN + #define ENDSTOPPULLUP_ZMIN +#endif + +// The pullups are needed if you directly connect a mechanical endswitch between the signal and ground pins. +const bool X_MIN_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop. +const bool Y_MIN_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop. +const bool Z_MIN_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop. +const bool X_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop. +const bool Y_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop. +const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop. +//#define DISABLE_MAX_ENDSTOPS +//#define DISABLE_MIN_ENDSTOPS + +// Disable max endstops for compatibility with endstop checking routine +#if defined(COREXY) && !defined(DISABLE_MAX_ENDSTOPS) + #define DISABLE_MAX_ENDSTOPS +#endif + +// For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1 +#define X_ENABLE_ON 0 +#define Y_ENABLE_ON 0 +#define Z_ENABLE_ON 0 +#define E_ENABLE_ON 0 // For all extruders + +// Disables axis when it's not being used. +#define DISABLE_X false +#define DISABLE_Y false +#define DISABLE_Z false +#define DISABLE_E false // For all extruders + +#define INVERT_X_DIR false // for Mendel set to false, for Orca set to true +#define INVERT_Y_DIR false // for Mendel set to true, for Orca set to false +#define INVERT_Z_DIR false // for Mendel set to false, for Orca set to true +#define INVERT_E0_DIR true // for direct drive extruder v9 set to true, for geared extruder set to false +#define INVERT_E1_DIR false // for direct drive extruder v9 set to true, for geared extruder set to false +#define INVERT_E2_DIR false // for direct drive extruder v9 set to true, for geared extruder set to false + +// ENDSTOP SETTINGS: +// Sets direction of endstops when homing; 1=MAX, -1=MIN +#define X_HOME_DIR -1 +#define Y_HOME_DIR -1 +#define Z_HOME_DIR -1 + +#define min_software_endstops true // If true, axis won't move to coordinates less than HOME_POS. +#define max_software_endstops true // If true, axis won't move to coordinates greater than the defined lengths below. + +// Travel limits after homing +#define X_MAX_POS 110 +#define X_MIN_POS 0 +#define Y_MAX_POS 150 +#define Y_MIN_POS 0 +#define Z_MAX_POS 86 +#define Z_MIN_POS 0 + +#define X_MAX_LENGTH (X_MAX_POS - X_MIN_POS) +#define Y_MAX_LENGTH (Y_MAX_POS - Y_MIN_POS) +#define Z_MAX_LENGTH (Z_MAX_POS - Z_MIN_POS) +//============================= Bed Auto Leveling =========================== + +//#define ENABLE_AUTO_BED_LEVELING // Delete the comment to enable (remove // at the start of the line) + +#ifdef ENABLE_AUTO_BED_LEVELING + +// There are 2 different ways to pick the X and Y locations to probe: + +// - "grid" mode +// Probe every point in a rectangular grid +// You must specify the rectangle, and the density of sample points +// This mode is preferred because there are more measurements. +// It used to be called ACCURATE_BED_LEVELING but "grid" is more descriptive + +// - "3-point" mode +// Probe 3 arbitrary points on the bed (that aren't colinear) +// You must specify the X & Y coordinates of all 3 points + + #define AUTO_BED_LEVELING_GRID + // with AUTO_BED_LEVELING_GRID, the bed is sampled in a + // AUTO_BED_LEVELING_GRID_POINTSxAUTO_BED_LEVELING_GRID_POINTS grid + // and least squares solution is calculated + // Note: this feature occupies 10'206 byte + #ifdef AUTO_BED_LEVELING_GRID + + // set the rectangle in which to probe + #define LEFT_PROBE_BED_POSITION 15 + #define RIGHT_PROBE_BED_POSITION 170 + #define BACK_PROBE_BED_POSITION 180 + #define FRONT_PROBE_BED_POSITION 20 + + // set the number of grid points per dimension + // I wouldn't see a reason to go above 3 (=9 probing points on the bed) + #define AUTO_BED_LEVELING_GRID_POINTS 2 + + + #else // not AUTO_BED_LEVELING_GRID + // with no grid, just probe 3 arbitrary points. A simple cross-product + // is used to esimate the plane of the print bed + + #define ABL_PROBE_PT_1_X 15 + #define ABL_PROBE_PT_1_Y 180 + #define ABL_PROBE_PT_2_X 15 + #define ABL_PROBE_PT_2_Y 20 + #define ABL_PROBE_PT_3_X 170 + #define ABL_PROBE_PT_3_Y 20 + + #endif // AUTO_BED_LEVELING_GRID + + + // 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 + + #define Z_RAISE_BEFORE_HOMING 4 // (in mm) Raise Z before homing (G28) for Probe Clearance. + // Be sure you have this distance over your Z_MAX_POS in case + + #define XY_TRAVEL_SPEED 8000 // X and Y axis travel speed between probes, in mm/min + + #define Z_RAISE_BEFORE_PROBING 15 //How much the extruder will be raised before traveling to the first probing point. + #define Z_RAISE_BETWEEN_PROBINGS 5 //How much the extruder will be raised when traveling from between next probing points + + + //If defined, the Probe servo will be turned on only during movement and then turned off to avoid jerk + //The value is the delay to turn the servo off after powered on - depends on the servo speed; 300ms is good value, but you can try lower it. + // You MUST HAVE the SERVO_ENDSTOPS defined to use here a value higher than zero otherwise your code will not compile. + +// #define PROBE_SERVO_DEACTIVATION_DELAY 300 + + +//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. + // When defined, it will: + // - Allow Z homing only after X and Y homing AND stepper drivers still enabled + // - If stepper drivers timeout, it will need X and Y homing again before Z homing + // - Position the probe in a defined XY point before Z Homing when homing all axis (G28) + // - Block Z homing only when the probe is outside bed area. + + #ifdef Z_SAFE_HOMING + + #define Z_SAFE_HOMING_X_POINT (X_MAX_LENGTH/2) // X point for Z homing when homing all axis (G28) + #define Z_SAFE_HOMING_Y_POINT (Y_MAX_LENGTH/2) // Y point for Z homing when homing all axis (G28) + + #endif + +#endif // ENABLE_AUTO_BED_LEVELING + + +// The position of the homing switches +//#define MANUAL_HOME_POSITIONS // If defined, MANUAL_*_HOME_POS below will be used +//#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. +#define MANUAL_X_HOME_POS 0 +#define MANUAL_Y_HOME_POS 0 +#define MANUAL_Z_HOME_POS 0 +//#define MANUAL_Z_HOME_POS 402 // For delta: Distance between nozzle and print surface after homing. + +//// MOVEMENT SETTINGS +#define NUM_AXIS 4 // The axis order in all axis related arrays is X, Y, Z, E +#define HOMING_FEEDRATE {1500, 1500, 120, 0} // set the homing speeds (mm/min) ***** MakiBox A6 ***** + +// default settings + +#define DEFAULT_AXIS_STEPS_PER_UNIT {400, 400, 400, 163} // default steps per unit for ***** MakiBox A6 ***** +#define DEFAULT_MAX_FEEDRATE {60, 60, 20, 45} // (mm/sec) +#define DEFAULT_MAX_ACCELERATION {2000,2000,30,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 + +// Offset of the extruders (uncomment if using more than one and relying on firmware to position when changing). +// The offset has to be X=0, Y=0 for the extruder 0 hotend (default extruder). +// For the other hotends it is their distance from the extruder 0 hotend. +// #define EXTRUDER_OFFSET_X {0.0, 20.00} // (in mm) for each extruder, offset of the hotend on the X axis +// #define EXTRUDER_OFFSET_Y {0.0, 5.00} // (in mm) for each extruder, offset of the hotend on the Y axis + +// The speed change that does not require acceleration (i.e. the software might assume it can be done instantaneously) +#define DEFAULT_XYJERK 20.0 // (mm/sec) +#define DEFAULT_ZJERK 0.4 // (mm/sec) +#define DEFAULT_EJERK 5.0 // (mm/sec) + +//=========================================================================== +//=============================Additional Features=========================== +//=========================================================================== + +// Custom M code points +#define CUSTOM_M_CODES +#ifdef CUSTOM_M_CODES + #define CUSTOM_M_CODE_SET_Z_PROBE_OFFSET 851 + #define Z_PROBE_OFFSET_RANGE_MIN -15 + #define Z_PROBE_OFFSET_RANGE_MAX -5 +#endif + + +// 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 EEPROM_SETTINGS +//to disable EEPROM Serial responses and decrease program space by ~1700 byte: comment this out: +// please keep turned on if you can. +//#define EEPROM_CHITCHAT + +// Preheat Constants +#define PLA_PREHEAT_HOTEND_TEMP 180 +#define PLA_PREHEAT_HPB_TEMP 70 +#define PLA_PREHEAT_FAN_SPEED 255 // Insert Value between 0 and 255 + +#define ABS_PREHEAT_HOTEND_TEMP 240 +#define ABS_PREHEAT_HPB_TEMP 100 +#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 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 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 + +// The MaKr3d Makr-Panel with graphic controller and SD support +// http://reprap.org/wiki/MaKr3d_MaKrPanel +//#define MAKRPANEL + +// The RepRapDiscount Smart Controller (white PCB) +// http://reprap.org/wiki/RepRapDiscount_Smart_Controller +//#define REPRAP_DISCOUNT_SMART_CONTROLLER + +// The GADGETS3D G3D LCD/SD Controller (blue PCB) +// http://reprap.org/wiki/RAMPS_1.3/1.4_GADGETS3D_Shield_with_Panel +//#define G3D_PANEL + +// The RepRapDiscount FULL GRAPHIC Smart Controller (quadratic white PCB) +// http://reprap.org/wiki/RepRapDiscount_Full_Graphic_Smart_Controller +// +// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: http://code.google.com/p/u8glib/wiki/u8glib +//#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER + +// The RepRapWorld REPRAPWORLD_KEYPAD v1.1 +// http://reprapworld.com/?products_details&products_id=202&cPath=1591_1626 +//#define REPRAPWORLD_KEYPAD +//#define REPRAPWORLD_KEYPAD_MOVE_STEP 10.0 // how much should be moved when a key is pressed, eg 10.0 means 10mm per click + +// The Elefu RA Board Control Panel +// http://www.elefu.com/index.php?route=product/product&product_id=53 +// REMEMBER TO INSTALL LiquidCrystal_I2C.h in your ARUDINO library folder: https://github.com/kiyoshigawa/LiquidCrystal_I2C +//#define RA_CONTROL_PANEL + +//automatic expansion +#if defined (MAKRPANEL) + #define DOGLCD + #define SDSUPPORT + #define ULTIPANEL + #define NEWPANEL + #define DEFAULT_LCD_CONTRAST 17 +#endif + +#if defined (REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER) + #define DOGLCD + #define U8GLIB_ST7920 + #define REPRAP_DISCOUNT_SMART_CONTROLLER +#endif + +#if defined(ULTIMAKERCONTROLLER) || defined(REPRAP_DISCOUNT_SMART_CONTROLLER) || defined(G3D_PANEL) + #define ULTIPANEL + #define NEWPANEL +#endif + +#if defined(REPRAPWORLD_KEYPAD) + #define NEWPANEL + #define ULTIPANEL +#endif +#if defined(RA_CONTROL_PANEL) + #define ULTIPANEL + #define NEWPANEL + #define LCD_I2C_TYPE_PCA8574 + #define LCD_I2C_ADDRESS 0x27 // I2C Address of the port expander +#endif + +//I2C PANELS + +//#define LCD_I2C_SAINSMART_YWROBOT +#ifdef LCD_I2C_SAINSMART_YWROBOT + // This uses the LiquidCrystal_I2C library ( https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/Home ) + // Make sure it is placed in the Arduino libraries directory. + #define LCD_I2C_TYPE_PCF8575 + #define LCD_I2C_ADDRESS 0x27 // I2C Address of the port expander + #define NEWPANEL + #define ULTIPANEL +#endif + +// PANELOLU2 LCD with status LEDs, separate encoder and click inputs +//#define LCD_I2C_PANELOLU2 +#ifdef LCD_I2C_PANELOLU2 + // This uses the LiquidTWI2 library v1.2.3 or later ( https://github.com/lincomatic/LiquidTWI2 ) + // Make sure the LiquidTWI2 directory is placed in the Arduino or Sketchbook libraries subdirectory. + // (v1.2.3 no longer requires you to define PANELOLU in the LiquidTWI2.h library header file) + // Note: The PANELOLU2 encoder click input can either be directly connected to a pin + // (if BTN_ENC defined to != -1) or read through I2C (when BTN_ENC == -1). + #define LCD_I2C_TYPE_MCP23017 + #define LCD_I2C_ADDRESS 0x20 // I2C Address of the port expander + #define LCD_USE_I2C_BUZZER //comment out to disable buzzer on LCD + #define NEWPANEL + #define ULTIPANEL + + #ifndef ENCODER_PULSES_PER_STEP + #define ENCODER_PULSES_PER_STEP 4 + #endif + + #ifndef ENCODER_STEPS_PER_MENU_ITEM + #define ENCODER_STEPS_PER_MENU_ITEM 1 + #endif + + + #ifdef LCD_USE_I2C_BUZZER + #define LCD_FEEDBACK_FREQUENCY_HZ 1000 + #define LCD_FEEDBACK_FREQUENCY_DURATION_MS 100 + #endif + +#endif + +// Panucatt VIKI LCD with status LEDs, integrated click & L/R/U/P buttons, separate encoder inputs +//#define LCD_I2C_VIKI +#ifdef LCD_I2C_VIKI + // This uses the LiquidTWI2 library v1.2.3 or later ( https://github.com/lincomatic/LiquidTWI2 ) + // Make sure the LiquidTWI2 directory is placed in the Arduino or Sketchbook libraries subdirectory. + // Note: The pause/stop/resume LCD button pin should be connected to the Arduino + // BTN_ENC pin (or set BTN_ENC to -1 if not used) + #define LCD_I2C_TYPE_MCP23017 + #define LCD_I2C_ADDRESS 0x20 // I2C Address of the port expander + #define LCD_USE_I2C_BUZZER //comment out to disable buzzer on LCD (requires LiquidTWI2 v1.2.3 or later) + #define NEWPANEL + #define ULTIPANEL +#endif + +// Shift register panels +// --------------------- +// 2 wire Non-latching LCD SR from: +// 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 shift register + //#define NEWPANEL +#endif + + +#ifdef ULTIPANEL +// #define NEWPANEL //enable this if you have a click-encoder panel + #define SDSUPPORT + #define ULTRA_LCD + #ifdef DOGLCD // Change number of lines to match the DOG graphic display + #define LCD_WIDTH 20 + #define LCD_HEIGHT 5 + #else + #define LCD_WIDTH 20 + #define LCD_HEIGHT 4 + #endif +#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 + #define LCD_HEIGHT 5 + #else + #define LCD_WIDTH 16 + #define LCD_HEIGHT 2 + #endif + #endif +#endif + +// default LCD contrast for dogm-like LCD displays +#ifdef DOGLCD +# ifndef DEFAULT_LCD_CONTRAST +# define DEFAULT_LCD_CONTRAST 32 +# endif +#endif + +// 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 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 + +// Use software PWM to drive the fan, as for the heaters. This uses a very low frequency +// which is not ass annoying as with the hardware PWM. On the other hand, if this frequency +// is too low, you should also increment SOFT_PWM_SCALE. +//#define FAN_SOFT_PWM + +// Incrementing this by 1 will double the software PWM frequency, +// affecting heaters, and the fan if FAN_SOFT_PWM is enabled. +// However, control resolution will be halved for each increment; +// at zero value, there are 128 effective control positions. +#define SOFT_PWM_SCALE 0 + +// M240 Triggers a camera by emulating a Canon RC-1 Remote +// Data from: http://www.doc-diy.net/photo/rc-1_hacked/ +// #define PHOTOGRAPH_PIN 23 + +// SF send wrong arc g-codes when using Arc Point as fillet procedure +//#define SF_ARC_FIX + +// Support for the BariCUDA Paste Extruder. +//#define BARICUDA + +//define BlinkM/CyzRgb Support +//#define BLINKM + +/*********************************************************************\ +* R/C SERVO support +* Sponsored by TrinityLabs, Reworked by codexmas +**********************************************************************/ + +// Number of servos +// +// If you select a configuration below, this will receive a default value and does not need to be set manually +// set it manually if you have more servos than extruders and wish to manually control some +// leaving it undefined or defining as 0 will disable the servo subsystem +// If unsure, leave commented / disabled +// +//#define NUM_SERVOS 3 // Servo index starts with 0 for M280 command + +// Servo Endstops +// +// This allows for servo actuated endstops, primary usage is for the Z Axis to eliminate calibration or bed height changes. +// Use M206 command to correct for switch height offset to actual nozzle height. Store that setting with M500. +// + +#define DIGIPOT_I2C + +//#define SERVO_ENDSTOPS {-1, -1, 0} // Servo index for X, Y, Z. Disable with -1 +//#define SERVO_ENDSTOP_ANGLES {0,0, 0,0, 70,0} // X,Y,Z Axis Extend and Retract angles + +#include "Configuration_adv.h" +#include "thermistortables.h" + +#endif //__CONFIGURATION_H diff --git a/Marlin/example_configurations/makibox/Configuration_adv.h b/Marlin/example_configurations/makibox/Configuration_adv.h new file mode 100644 index 0000000000..7883c79996 --- /dev/null +++ b/Marlin/example_configurations/makibox/Configuration_adv.h @@ -0,0 +1,498 @@ +#ifndef CONFIGURATION_ADV_H +#define CONFIGURATION_ADV_H + +//=========================================================================== +//=============================Thermal Settings ============================ +//=========================================================================== + +#ifdef BED_LIMIT_SWITCHING + #define BED_HYSTERESIS 2 //only disable heating if T>target+BED_HYSTERESIS and enable heating if T>target-BED_HYSTERESIS +#endif +#define BED_CHECK_INTERVAL 5000 //ms between checks in bang-bang control + +//// Heating sanity check: +// 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 +//#define WATCH_TEMP_PERIOD 40000 //40 seconds +//#define WATCH_TEMP_INCREASE 10 //Heat up at least 10 degree in 20 seconds + +#ifdef PIDTEMP + // 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) //heating power=Kc*(e_speed) + #endif +#endif + + +//automatic temperature: The hot end target temperature is calculated by all the buffered lines of gcode. +//The maximum buffered steps/sec of the extruder motor are called "se". +//You enter the autotemp mode by a M109 S T F +// 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 +// Mode 0: Full control. The slicer has full control over both x-carriages and can achieve optimal travel results +// as long as it supports dual x-carriages. (M605 S0) +// Mode 1: Auto-park mode. The firmware will automatically park and unpark the x-carriages on tool changes so +// that additional slicer support is not required. (M605 S1) +// Mode 2: Duplication mode. The firmware will transparently make the second x-carriage and extruder copy all +// actions of the first x-carriage. This allows the printer to print 2 arbitrary items at +// once. (2nd extruder x offset and temp offset are set using: M605 S2 [Xnnn] [Rmmm]) + +// This is the default power-up mode which can be later using M605. +#define DEFAULT_DUAL_X_CARRIAGE_MODE 0 + +// As the x-carriages are independent we can now account for any relative Z offset +#define EXTRUDER1_Z_OFFSET 0.0 // z offset relative to extruder 0 + +// Default settings in "Auto-park Mode" +#define TOOLCHANGE_PARK_ZLIFT 0.2 // the distance to raise Z axis when parking an extruder +#define TOOLCHANGE_UNPARK_ZLIFT 1 // the distance to raise Z axis when unparking an extruder + +// Default x offset in duplication mode (typically set to half print bed width) +#define DEFAULT_DUPLICATION_X_OFFSET 100 + +#endif //DUAL_X_CARRIAGE + +//homing hits the endstop, then retracts by this distance, before it tries to slowly bump again: +#define X_HOME_RETRACT_MM 5 +#define Y_HOME_RETRACT_MM 5 +#define Z_HOME_RETRACT_MM 2 +//#define QUICK_HOME //if this is defined, if both x and y are to be homed, a diagonal move will be performed initially. + +#define AXIS_RELATIVE_MODES {false, false, false, false} + +#define MAX_STEP_FREQUENCY 40000 // Max step frequency for Ultimaker (5000 pps / half step) + +//By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. +#define INVERT_X_STEP_PIN false +#define INVERT_Y_STEP_PIN false +#define INVERT_Z_STEP_PIN false +#define INVERT_E_STEP_PIN false + +//default stepper release if idle +#define DEFAULT_STEPPER_DEACTIVE_TIME 60 + +#define DEFAULT_MINIMUMFEEDRATE 0.0 // minimum feedrate +#define DEFAULT_MINTRAVELFEEDRATE 0.0 + +// Feedrates for manual moves along X, Y, Z, E from panel +#ifdef ULTIPANEL +#define MANUAL_FEEDRATE {50*60, 50*60, 4*60, 60} // set the speeds for manual moves (mm/min) +#endif + +//Comment to disable setting feedrate multiplier via encoder +#ifdef ULTIPANEL + #define ULTIPANEL_FEEDMULTIPLY +#endif + +// minimum time in microseconds that a movement needs to take if the buffer is emptied. +#define DEFAULT_MINSEGMENTTIME 20000 + +// If defined the movements slow down when the look ahead buffer is only half full +#define SLOWDOWN + +// Frequency limit +// See nophead's blog for more info +// Not working O +//#define XY_FREQUENCY_LIMIT 15 + +// Minimum planner junction speed. Sets the default minimum speed the planner plans for at the end +// of the buffer and all stops. This should not be much greater than zero and should only be changed +// if unwanted behavior is observed on a user's machine when running at very slow speeds. +#define MINIMUM_PLANNER_SPEED 0.05// (mm/sec) + +// MS1 MS2 Stepper Driver Microstepping mode table +#define MICROSTEP1 LOW,LOW +#define MICROSTEP2 HIGH,LOW +#define MICROSTEP4 LOW,HIGH +#define MICROSTEP8 HIGH,HIGH +#define MICROSTEP16 HIGH,HIGH + +// Microstep setting (Only functional when stepper driver microstep pins are connected to MCU. +#define MICROSTEP_MODES {16,16,16,16,16} // [1,2,4,8,16] + +// Motor Current setting (Only functional when motor driver current ref pins are connected to a digital trimpot on supported boards) +#define DIGIPOT_MOTOR_CURRENT {135,135,135,135,135} // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A) + +// uncomment to enable an I2C based DIGIPOT like on the Azteeg X3 Pro +//#define DIGIPOT_I2C +// Number of channels available for I2C digipot, For Azteeg X3 Pro we have 8 +#define DIGIPOT_I2C_NUM_CHANNELS 4 +// actual motor currents in Amps, need as many here as DIGIPOT_I2C_NUM_CHANNELS +//#define DIGIPOT_I2C_MOTOR_CURRENTS {1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0} +#define DIGIPOT_I2C_MOTOR_CURRENTS {1.7, 1.7, 1.7, 1.7} + +//=========================================================================== +//=============================Additional Features=========================== +//=========================================================================== + +//#define CHDK 4 //Pin for triggering CHDK to take a picture see how to use it here http://captain-slow.dk/2014/03/09/3d-printing-timelapses/ +#define CHDK_DELAY 50 //How long in ms the pin should stay HIGH before going LOW again + +#define SD_FINISHED_STEPPERRELEASE true //if sd support and the file is finished: disable steppers? +#define SD_FINISHED_RELEASECOMMAND "M84 X Y Z E" // You might want to keep the z enabled so your bed stays in place. + +#define SDCARD_RATHERRECENTFIRST //reverse file order of sd card menu display. Its sorted practically after the file system block order. +// if a file is deleted, it frees a block. hence, the order is not purely chronological. To still have auto0.g accessible, there is again the option to do that. +// using: +//#define MENU_ADDAUTOSTART + +// The hardware watchdog should reset the microcontroller disabling all outputs, in case the firmware gets stuck and doesn't do temperature regulation. +//#define USE_WATCHDOG + +#ifdef USE_WATCHDOG +// If you have a watchdog reboot in an ArduinoMega2560 then the device will hang forever, as a watchdog reset will leave the watchdog on. +// The "WATCHDOG_RESET_MANUAL" goes around this by not using the hardware reset. +// However, THIS FEATURE IS UNSAFE!, as it will only work if interrupts are disabled. And the code could hang in an interrupt routine with interrupts disabled. +//#define WATCHDOG_RESET_MANUAL +#endif + +// Enable the option to stop SD printing when hitting and endstops, needs to be enabled from the LCD menu when this option is enabled. +//#define ABORT_ON_ENDSTOP_HIT_FEATURE_ENABLED + +// Babystepping enables the user to control the axis in tiny amounts, independently from the normal printing process +// it can e.g. be used to change z-positions in the print startup phase in real-time +// does not respect endstops! +//#define BABYSTEPPING +#ifdef BABYSTEPPING + #define BABYSTEP_XY //not only z, but also XY in the menu. more clutter, more functions + #define BABYSTEP_INVERT_Z false //true for inverse movements in Z + #define BABYSTEP_Z_MULTIPLICATOR 2 //faster z movements + + #ifdef COREXY + #error BABYSTEPPING not implemented for COREXY yet. + #endif + + #ifdef DELTA + #ifdef BABYSTEP_XY + #error BABYSTEPPING only implemented for Z axis on deltabots. + #endif + #endif +#endif + +// extruder advance constant (s2/mm3) +// +// advance (steps) = STEPS_PER_CUBIC_MM_E * EXTUDER_ADVANCE_K * cubic mm per second ^ 2 +// +// Hooke's law says: force = k * distance +// Bernoulli's principle says: v ^ 2 / 2 + g . h + pressure / density = constant +// so: v ^ 2 is proportional to number of steps we advance the extruder +//#define ADVANCE + +#ifdef ADVANCE + #define EXTRUDER_ADVANCE_K .0 + + #define D_FILAMENT 2.85 + #define STEPS_MM_E 836 + #define EXTRUTION_AREA (0.25 * D_FILAMENT * D_FILAMENT * 3.14159) + #define STEPS_PER_CUBIC_MM_E (axis_steps_per_unit[E_AXIS]/ EXTRUTION_AREA) + +#endif // ADVANCE + +// Arc interpretation settings: +#define MM_PER_ARC_SEGMENT 1 +#define N_ARC_CORRECTION 25 + +const unsigned int dropsegments=5; //everything with less than this number of steps will be ignored as move and joined with the next movement + +// If you are using a RAMPS board or cheap E-bay purchased boards that do not detect when an SD card is inserted +// You can get round this by connecting a push button or single throw switch to the pin defined as SDCARDCARDDETECT +// in the pins.h file. When using a push button pulling the pin to ground this will need inverted. This setting should +// be commented out otherwise +//#define SDCARDDETECTINVERTED + +#ifdef ULTIPANEL + #undef SDCARDDETECTINVERTED +#endif + +// Power Signal Control Definitions +// By default use ATX definition +#ifndef POWER_SUPPLY + #define POWER_SUPPLY 1 +#endif +// 1 = ATX +#if (POWER_SUPPLY == 1) + #define PS_ON_AWAKE LOW + #define PS_ON_ASLEEP HIGH +#endif +// 2 = X-Box 360 203W +#if (POWER_SUPPLY == 2) + #define PS_ON_AWAKE HIGH + #define PS_ON_ASLEEP LOW +#endif + +// Control heater 0 and heater 1 in parallel. +//#define HEATERS_PARALLEL + +//=========================================================================== +//=============================Buffers ============================ +//=========================================================================== + +// The number of linear motions that can be in the plan at any give time. +// THE BLOCK_BUFFER_SIZE NEEDS TO BE A POWER OF 2, i.g. 8,16,32 because shifts and ors are used to do the ring-buffering. +#if defined SDSUPPORT + #define BLOCK_BUFFER_SIZE 16 // SD,LCD,Buttons take more memory, block buffer needs to be smaller +#else + #define BLOCK_BUFFER_SIZE 16 // maximize block buffer +#endif + + +//The ASCII buffer for receiving from the serial: +#define MAX_CMD_SIZE 96 +#define BUFSIZE 4 + + +// Firmware based and LCD controlled retract +// M207 and M208 can be used to define parameters for the retraction. +// The retraction can be called by the slicer using G10 and G11 +// until then, intended retractions can be detected by moves that only extrude and the direction. +// the moves are than replaced by the firmware controlled ones. + +// #define FWRETRACT //ONLY PARTIALLY TESTED +#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 45 //default feedrate for retracting (mm/s) + #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 //default feedrate for recovering from retraction (mm/s) +#endif + +//adds support for experimental filament exchange support M600; requires display +#ifdef ULTIPANEL + #define FILAMENTCHANGEENABLE + #ifdef FILAMENTCHANGEENABLE + #define FILAMENTCHANGE_XPOS 3 + #define FILAMENTCHANGE_YPOS 3 + #define FILAMENTCHANGE_ZADD 10 + #define FILAMENTCHANGE_FIRSTRETRACT -2 + #define FILAMENTCHANGE_FINALRETRACT -100 + #endif +#endif + +#ifdef FILAMENTCHANGEENABLE + #ifdef EXTRUDER_RUNOUT_PREVENT + #error EXTRUDER_RUNOUT_PREVENT currently incompatible with FILAMENTCHANGE + #endif +#endif + +//=========================================================================== +//============================= Define Defines ============================ +//=========================================================================== +#if EXTRUDERS > 1 && defined TEMP_SENSOR_1_AS_REDUNDANT + #error "You cannot use TEMP_SENSOR_1_AS_REDUNDANT if EXTRUDERS > 1" +#endif + +#if EXTRUDERS > 1 && defined HEATERS_PARALLEL + #error "You cannot use HEATERS_PARALLEL if EXTRUDERS > 1" +#endif + +#if TEMP_SENSOR_0 > 0 + #define THERMISTORHEATER_0 TEMP_SENSOR_0 + #define HEATER_0_USES_THERMISTOR +#endif +#if TEMP_SENSOR_1 > 0 + #define THERMISTORHEATER_1 TEMP_SENSOR_1 + #define HEATER_1_USES_THERMISTOR +#endif +#if TEMP_SENSOR_2 > 0 + #define THERMISTORHEATER_2 TEMP_SENSOR_2 + #define HEATER_2_USES_THERMISTOR +#endif +#if TEMP_SENSOR_BED > 0 + #define THERMISTORBED TEMP_SENSOR_BED + #define BED_USES_THERMISTOR +#endif +#if TEMP_SENSOR_0 == -1 + #define HEATER_0_USES_AD595 +#endif +#if TEMP_SENSOR_1 == -1 + #define HEATER_1_USES_AD595 +#endif +#if TEMP_SENSOR_2 == -1 + #define HEATER_2_USES_AD595 +#endif +#if TEMP_SENSOR_BED == -1 + #define BED_USES_AD595 +#endif +#if TEMP_SENSOR_0 == -2 + #define HEATER_0_USES_MAX6675 +#endif +#if TEMP_SENSOR_0 == 0 + #undef HEATER_0_MINTEMP + #undef HEATER_0_MAXTEMP +#endif +#if TEMP_SENSOR_1 == 0 + #undef HEATER_1_MINTEMP + #undef HEATER_1_MAXTEMP +#endif +#if TEMP_SENSOR_2 == 0 + #undef HEATER_2_MINTEMP + #undef HEATER_2_MAXTEMP +#endif +#if TEMP_SENSOR_BED == 0 + #undef BED_MINTEMP + #undef BED_MAXTEMP +#endif + + +#endif //__CONFIGURATION_ADV_H From 2715f6ddbf84397a6a89c4d2d1754ba32a15a899 Mon Sep 17 00:00:00 2001 From: Cameron Lai Date: Thu, 24 Apr 2014 17:48:33 +0800 Subject: [PATCH 32/39] Fix for reading microstepping resolution --- Marlin/stepper.cpp | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/Marlin/stepper.cpp b/Marlin/stepper.cpp index 8f8be8c824..bef63ce2db 100644 --- a/Marlin/stepper.cpp +++ b/Marlin/stepper.cpp @@ -1296,21 +1296,21 @@ void microstep_readings() { SERIAL_PROTOCOLPGM("MS1,MS2 Pins\n"); SERIAL_PROTOCOLPGM("X: "); - SERIAL_PROTOCOL( digitalRead(X_MS1_PIN)); - SERIAL_PROTOCOLLN( digitalRead(X_MS2_PIN)); + SERIAL_PROTOCOL( READ(X_MS1_PIN)); + SERIAL_PROTOCOLLN( READ(X_MS2_PIN)); SERIAL_PROTOCOLPGM("Y: "); - SERIAL_PROTOCOL( digitalRead(Y_MS1_PIN)); - SERIAL_PROTOCOLLN( digitalRead(Y_MS2_PIN)); + SERIAL_PROTOCOL( READ(Y_MS1_PIN)); + SERIAL_PROTOCOLLN( READ(Y_MS2_PIN)); SERIAL_PROTOCOLPGM("Z: "); - SERIAL_PROTOCOL( digitalRead(Z_MS1_PIN)); - SERIAL_PROTOCOLLN( digitalRead(Z_MS2_PIN)); + SERIAL_PROTOCOL( READ(Z_MS1_PIN)); + SERIAL_PROTOCOLLN( READ(Z_MS2_PIN)); SERIAL_PROTOCOLPGM("E0: "); - SERIAL_PROTOCOL( digitalRead(E0_MS1_PIN)); - SERIAL_PROTOCOLLN( digitalRead(E0_MS2_PIN)); + SERIAL_PROTOCOL( READ(E0_MS1_PIN)); + SERIAL_PROTOCOLLN( READ(E0_MS2_PIN)); #if defined(E1_MS1_PIN) && E1_MS1_PIN > -1 SERIAL_PROTOCOLPGM("E1: "); - SERIAL_PROTOCOL( digitalRead(E1_MS1_PIN)); - SERIAL_PROTOCOLLN( digitalRead(E1_MS2_PIN)); + SERIAL_PROTOCOL( READ(E1_MS1_PIN)); + SERIAL_PROTOCOLLN( READ(E1_MS2_PIN)); #endif } From e2d703377a6dfecd2bdd8865da438f70e89759c2 Mon Sep 17 00:00:00 2001 From: Cameron Lai Date: Thu, 24 Apr 2014 19:15:35 +0800 Subject: [PATCH 33/39] Enable EEPROM by default for 5DPrint D8 Controller Board in example configuration --- Marlin/example_configurations/makibox/Configuration.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Marlin/example_configurations/makibox/Configuration.h b/Marlin/example_configurations/makibox/Configuration.h index 83a9c75872..37033ffb6e 100644 --- a/Marlin/example_configurations/makibox/Configuration.h +++ b/Marlin/example_configurations/makibox/Configuration.h @@ -477,7 +477,7 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of // 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 EEPROM_SETTINGS +#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. //#define EEPROM_CHITCHAT From 7c7f2d094ef1b7e0ee503c7fa579735f2be251b2 Mon Sep 17 00:00:00 2001 From: Cameron Lai Date: Fri, 25 Apr 2014 12:41:48 +0800 Subject: [PATCH 34/39] Revert "Fix for reading microstepping resolution" This reverts commit 2715f6ddbf84397a6a89c4d2d1754ba32a15a899. --- Marlin/stepper.cpp | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/Marlin/stepper.cpp b/Marlin/stepper.cpp index bef63ce2db..8f8be8c824 100644 --- a/Marlin/stepper.cpp +++ b/Marlin/stepper.cpp @@ -1296,21 +1296,21 @@ void microstep_readings() { SERIAL_PROTOCOLPGM("MS1,MS2 Pins\n"); SERIAL_PROTOCOLPGM("X: "); - SERIAL_PROTOCOL( READ(X_MS1_PIN)); - SERIAL_PROTOCOLLN( READ(X_MS2_PIN)); + SERIAL_PROTOCOL( digitalRead(X_MS1_PIN)); + SERIAL_PROTOCOLLN( digitalRead(X_MS2_PIN)); SERIAL_PROTOCOLPGM("Y: "); - SERIAL_PROTOCOL( READ(Y_MS1_PIN)); - SERIAL_PROTOCOLLN( READ(Y_MS2_PIN)); + SERIAL_PROTOCOL( digitalRead(Y_MS1_PIN)); + SERIAL_PROTOCOLLN( digitalRead(Y_MS2_PIN)); SERIAL_PROTOCOLPGM("Z: "); - SERIAL_PROTOCOL( READ(Z_MS1_PIN)); - SERIAL_PROTOCOLLN( READ(Z_MS2_PIN)); + SERIAL_PROTOCOL( digitalRead(Z_MS1_PIN)); + SERIAL_PROTOCOLLN( digitalRead(Z_MS2_PIN)); SERIAL_PROTOCOLPGM("E0: "); - SERIAL_PROTOCOL( READ(E0_MS1_PIN)); - SERIAL_PROTOCOLLN( READ(E0_MS2_PIN)); + SERIAL_PROTOCOL( digitalRead(E0_MS1_PIN)); + SERIAL_PROTOCOLLN( digitalRead(E0_MS2_PIN)); #if defined(E1_MS1_PIN) && E1_MS1_PIN > -1 SERIAL_PROTOCOLPGM("E1: "); - SERIAL_PROTOCOL( READ(E1_MS1_PIN)); - SERIAL_PROTOCOLLN( READ(E1_MS2_PIN)); + SERIAL_PROTOCOL( digitalRead(E1_MS1_PIN)); + SERIAL_PROTOCOLLN( digitalRead(E1_MS2_PIN)); #endif } From d85411f13afe66be65ad78caf754a968ca56ca92 Mon Sep 17 00:00:00 2001 From: Cameron Lai Date: Fri, 25 Apr 2014 12:41:56 +0800 Subject: [PATCH 35/39] Revert "Fix for stepper microstepping" This reverts commit eea3ba5588580b4460b3f27da549bcf52db5aad6. --- Marlin/stepper.cpp | 55 ++++++++++++++-------------------------------- 1 file changed, 16 insertions(+), 39 deletions(-) diff --git a/Marlin/stepper.cpp b/Marlin/stepper.cpp index 8f8be8c824..eaba4362dc 100644 --- a/Marlin/stepper.cpp +++ b/Marlin/stepper.cpp @@ -1228,55 +1228,34 @@ void digipot_current(uint8_t driver, int current) void microstep_init() { - #if defined(Y_MS1_PIN) && Y_MS1_PIN > -1 - SET_OUTPUT(Y_MS1_PIN); - SET_OUTPUT(Y_MS2_PIN); - #endif - #if defined(Z_MS1_PIN) && Z_MS1_PIN > -1 - SET_OUTPUT(Z_MS1_PIN); - SET_OUTPUT(Z_MS2_PIN); - #endif - - #if defined(E0_MS1_PIN) && E0_MS1_PIN > -1 - SET_OUTPUT(E0_MS1_PIN); - SET_OUTPUT(E0_MS2_PIN); - #endif - - #if defined(E1_MS1_PIN) && E1_MS1_PIN > -1 - SET_OUTPUT(E1_MS1_PIN); - SET_OUTPUT(E1_MS2_PIN); - #endif - #if defined(X_MS1_PIN) && X_MS1_PIN > -1 - SET_OUTPUT(X_MS1_PIN); - SET_OUTPUT(X_MS2_PIN); - const uint8_t microstep_modes[] = MICROSTEP_MODES; + pinMode(X_MS2_PIN,OUTPUT); + pinMode(Y_MS2_PIN,OUTPUT); + pinMode(Z_MS2_PIN,OUTPUT); + pinMode(E0_MS2_PIN,OUTPUT); + pinMode(E1_MS2_PIN,OUTPUT); for(int i=0;i<=4;i++) microstep_mode(i,microstep_modes[i]); - #endif + #endif } void microstep_ms(uint8_t driver, int8_t ms1, int8_t ms2) { if(ms1 > -1) switch(driver) { - case 0: WRITE( X_MS1_PIN,ms1); break; - case 1: WRITE( Y_MS1_PIN,ms1); break; - case 2: WRITE( Z_MS1_PIN,ms1); break; - case 3: WRITE(E0_MS1_PIN,ms1); break; - #if defined(E1_MS1_PIN) && E1_MS1_PIN > -1 - case 4: WRITE(E1_MS1_PIN,ms1); break; - #endif + case 0: digitalWrite( X_MS1_PIN,ms1); break; + case 1: digitalWrite( Y_MS1_PIN,ms1); break; + case 2: digitalWrite( Z_MS1_PIN,ms1); break; + case 3: digitalWrite(E0_MS1_PIN,ms1); break; + case 4: digitalWrite(E1_MS1_PIN,ms1); break; } if(ms2 > -1) switch(driver) { - case 0: WRITE( X_MS2_PIN,ms2); break; - case 1: WRITE( Y_MS2_PIN,ms2); break; - case 2: WRITE( Z_MS2_PIN,ms2); break; - case 3: WRITE(E0_MS2_PIN,ms2); break; - #if defined(E1_MS1_PIN) && E1_MS1_PIN > -1 - case 4: WRITE(E1_MS2_PIN,ms2); break; - #endif + case 0: digitalWrite( X_MS2_PIN,ms2); break; + case 1: digitalWrite( Y_MS2_PIN,ms2); break; + case 2: digitalWrite( Z_MS2_PIN,ms2); break; + case 3: digitalWrite(E0_MS2_PIN,ms2); break; + case 4: digitalWrite(E1_MS2_PIN,ms2); break; } } @@ -1307,10 +1286,8 @@ void microstep_readings() SERIAL_PROTOCOLPGM("E0: "); SERIAL_PROTOCOL( digitalRead(E0_MS1_PIN)); SERIAL_PROTOCOLLN( digitalRead(E0_MS2_PIN)); - #if defined(E1_MS1_PIN) && E1_MS1_PIN > -1 SERIAL_PROTOCOLPGM("E1: "); SERIAL_PROTOCOL( digitalRead(E1_MS1_PIN)); SERIAL_PROTOCOLLN( digitalRead(E1_MS2_PIN)); - #endif } From 97ead2eccb98fa00a67b9b3975956e36eed4e3cc Mon Sep 17 00:00:00 2001 From: Cameron Lai Date: Fri, 25 Apr 2014 12:57:11 +0800 Subject: [PATCH 36/39] Fix for microstepping pin mapping, not using Teensy pin mapping, but Arduino's default pin mapping so Arduino library can be used --- Marlin/pins.h | 18 ++++++++++-------- Marlin/stepper.cpp | 23 +++++++++++++++++++---- 2 files changed, 29 insertions(+), 12 deletions(-) diff --git a/Marlin/pins.h b/Marlin/pins.h index 3e5fa79c64..02a568a620 100644 --- a/Marlin/pins.h +++ b/Marlin/pins.h @@ -79,14 +79,16 @@ #endif // Microstepping pins -#define X_MS1_PIN 13 -#define X_MS2_PIN 14 -#define Y_MS1_PIN 33 -#define Y_MS2_PIN 32 -#define Z_MS1_PIN 31 -#define Z_MS2_PIN 30 -#define E0_MS1_PIN 29 -#define E0_MS2_PIN 28 +// Note that the pin mapping is not from fastio.h +// See Sd2PinMap.h for the pin configurations +#define X_MS1_PIN 25 +#define X_MS2_PIN 26 +#define Y_MS1_PIN 9 +#define Y_MS2_PIN 8 +#define Z_MS1_PIN 7 +#define Z_MS2_PIN 6 +#define E0_MS1_PIN 5 +#define E0_MS2_PIN 4 #endif /* 88 */ diff --git a/Marlin/stepper.cpp b/Marlin/stepper.cpp index eaba4362dc..20bedcade8 100644 --- a/Marlin/stepper.cpp +++ b/Marlin/stepper.cpp @@ -1228,13 +1228,22 @@ void digipot_current(uint8_t driver, int current) void microstep_init() { - #if defined(X_MS1_PIN) && X_MS1_PIN > -1 const uint8_t microstep_modes[] = MICROSTEP_MODES; - pinMode(X_MS2_PIN,OUTPUT); + + #if defined(E1_MS1_PIN) && E1_MS1_PIN > -1 + pinMode(E1_MS1_PIN,OUTPUT); + pinMode(E1_MS2_PIN,OUTPUT); + #endif + + #if defined(X_MS1_PIN) && X_MS1_PIN > -1 + pinMode(X_MS1_PIN,OUTPUT); + pinMode(X_MS2_PIN,OUTPUT); + pinMode(Y_MS1_PIN,OUTPUT); pinMode(Y_MS2_PIN,OUTPUT); - pinMode(Z_MS2_PIN,OUTPUT); + pinMode(Z_MS1_PIN,OUTPUT); + pinMode(Z_MS2_PIN,OUTPUT); + pinMode(E0_MS1_PIN,OUTPUT); pinMode(E0_MS2_PIN,OUTPUT); - pinMode(E1_MS2_PIN,OUTPUT); for(int i=0;i<=4;i++) microstep_mode(i,microstep_modes[i]); #endif } @@ -1247,7 +1256,9 @@ void microstep_ms(uint8_t driver, int8_t ms1, int8_t ms2) case 1: digitalWrite( Y_MS1_PIN,ms1); break; case 2: digitalWrite( Z_MS1_PIN,ms1); break; case 3: digitalWrite(E0_MS1_PIN,ms1); break; + #if defined(E1_MS1_PIN) && E1_MS1_PIN > -1 case 4: digitalWrite(E1_MS1_PIN,ms1); break; + #endif } if(ms2 > -1) switch(driver) { @@ -1255,7 +1266,9 @@ void microstep_ms(uint8_t driver, int8_t ms1, int8_t ms2) case 1: digitalWrite( Y_MS2_PIN,ms2); break; case 2: digitalWrite( Z_MS2_PIN,ms2); break; case 3: digitalWrite(E0_MS2_PIN,ms2); break; + #if defined(E1_MS2_PIN) && E1_MS2_PIN > -1 case 4: digitalWrite(E1_MS2_PIN,ms2); break; + #endif } } @@ -1286,8 +1299,10 @@ void microstep_readings() SERIAL_PROTOCOLPGM("E0: "); SERIAL_PROTOCOL( digitalRead(E0_MS1_PIN)); SERIAL_PROTOCOLLN( digitalRead(E0_MS2_PIN)); + #if defined(E1_MS1_PIN) && E1_MS1_PIN > -1 SERIAL_PROTOCOLPGM("E1: "); SERIAL_PROTOCOL( digitalRead(E1_MS1_PIN)); SERIAL_PROTOCOLLN( digitalRead(E1_MS2_PIN)); + #endif } From 105bebb466af0bbd9e32d818b5f19db7a9ad1a02 Mon Sep 17 00:00:00 2001 From: Cameron Lai Date: Fri, 25 Apr 2014 12:57:47 +0800 Subject: [PATCH 37/39] Fix for pin mapping for SDSS pin and Fan pin, so Arduino library can be used --- Marlin/pins.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Marlin/pins.h b/Marlin/pins.h index 02a568a620..14eff02ccb 100644 --- a/Marlin/pins.h +++ b/Marlin/pins.h @@ -54,9 +54,9 @@ #define HEATER_1_PIN -1 #define HEATER_2_PIN -1 #define HEATER_BED_PIN 20 // Bed -#define FAN_PIN 22 // Fan // You may need to change FAN_PIN to 16 because Marlin isn't using fastio.h // for the fan and Teensyduino uses a different pin mapping. +#define FAN_PIN 16 // Fan #define TEMP_0_PIN 1 // Extruder / Analog pin numbering #define TEMP_BED_PIN 0 // Bed / Analog pin numbering @@ -65,12 +65,14 @@ #define TEMP_2_PIN -1 #define SDPOWER -1 -#define SDSS 8 #define LED_PIN -1 #define PS_ON_PIN -1 #define KILL_PIN -1 #define ALARM_PIN -1 +// The SDSS pin uses a different pin mapping from file Sd2PinMap.h +#define SDSS 20 + #ifndef SDSUPPORT // these pins are defined in the SD library if building with SD support #define SCK_PIN 9 From 6460709d92ea8ae48ac8d21999a21814fc8eb8e6 Mon Sep 17 00:00:00 2001 From: Cameron Lai Date: Fri, 25 Apr 2014 16:05:05 +0800 Subject: [PATCH 38/39] Fix bug in PID Autotune report --- Marlin/temperature.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Marlin/temperature.cpp b/Marlin/temperature.cpp index 6be3177a18..737d075754 100644 --- a/Marlin/temperature.cpp +++ b/Marlin/temperature.cpp @@ -258,14 +258,14 @@ void PID_autotune(float temp, int extruder, int ncycles) Kp = 0.33*Ku; Ki = Kp/Tu; Kd = Kp*Tu/3; - SERIAL_PROTOCOLLNPGM(" Some overshoot ") + SERIAL_PROTOCOLLNPGM(" Some overshoot "); SERIAL_PROTOCOLPGM(" Kp: "); SERIAL_PROTOCOLLN(Kp); SERIAL_PROTOCOLPGM(" Ki: "); SERIAL_PROTOCOLLN(Ki); SERIAL_PROTOCOLPGM(" Kd: "); SERIAL_PROTOCOLLN(Kd); Kp = 0.2*Ku; Ki = 2*Kp/Tu; Kd = Kp*Tu/3; - SERIAL_PROTOCOLLNPGM(" No overshoot ") + SERIAL_PROTOCOLLNPGM(" No overshoot "); SERIAL_PROTOCOLPGM(" Kp: "); SERIAL_PROTOCOLLN(Kp); SERIAL_PROTOCOLPGM(" Ki: "); SERIAL_PROTOCOLLN(Ki); SERIAL_PROTOCOLPGM(" Kd: "); SERIAL_PROTOCOLLN(Kd); From ad5c8cbba9f8b61fd4bc6327c7d9d39dc011b611 Mon Sep 17 00:00:00 2001 From: Cameron Lai Date: Fri, 25 Apr 2014 17:04:24 +0800 Subject: [PATCH 39/39] Add safety limit for hot bed power in example configuration --- Marlin/example_configurations/makibox/Configuration.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Marlin/example_configurations/makibox/Configuration.h b/Marlin/example_configurations/makibox/Configuration.h index 37033ffb6e..6ebd08f43e 100644 --- a/Marlin/example_configurations/makibox/Configuration.h +++ b/Marlin/example_configurations/makibox/Configuration.h @@ -220,7 +220,10 @@ // all forms of bed control obey this (PID, bang-bang, bang-bang with hysteresis) // setting this to anything other than 255 enables a form of PWM to the bed just like HEATER_BED_DUTY_CYCLE_DIVIDER did, // so you shouldn't use it unless you are OK with PWM on your bed. (see the comment on enabling PIDTEMPBED) -#define MAX_BED_POWER 255 // limits duty cycle to bed; 255=full current +#define MAX_BED_POWER 175 // limits duty cycle to bed; 255=full current +// This limit is set to 175 by default in the Makibox configuration and it can adjusted +// to increase the heat up rate. However, if changed, user must be aware of the safety concerns +// of drawing too much current from the power supply. #ifdef PIDTEMPBED //120v 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)