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