Merge remote-tracking branch 'upstream/MK3' into MK3-Fix_M120_M121
This commit is contained in:
commit
d895890608
14
.editorconfig
Normal file
14
.editorconfig
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
#-*-mode:conf-*-
|
||||||
|
# editorconfig file (see EditorConfig.org)
|
||||||
|
|
||||||
|
root = true
|
||||||
|
|
||||||
|
[*]
|
||||||
|
end_of_line = lf
|
||||||
|
insert_final_newline = true
|
||||||
|
charset = utf-8
|
||||||
|
trim_trailing_whitespace = true
|
||||||
|
indent_style = space
|
||||||
|
indent_size = 4
|
||||||
|
tab_width = 4
|
||||||
|
max_line_length = 100
|
31
.github/ISSUE_TEMPLATE/bug_report.md
vendored
Normal file
31
.github/ISSUE_TEMPLATE/bug_report.md
vendored
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
---
|
||||||
|
name: Bug report
|
||||||
|
about: Create a report to help us improve
|
||||||
|
title: "[BUG]<Enter comprehensive title>"
|
||||||
|
labels: bug
|
||||||
|
assignees: ''
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Please, before you create a new bug report, please make sure you searched in open and closed issues and couldn't find anything that matches.
|
||||||
|
|
||||||
|
**Printer type** - [e.g. MK3S, MK3, MK2.5S, MK2.5, MK2S, MK2]
|
||||||
|
**Printer firmware version**- [e.g. 3.8.1, 3.8.1-RC1, ...]
|
||||||
|
|
||||||
|
**MMU Upgrade** - [e.g. MMU2S, MMU2, MMU1]
|
||||||
|
**MMU upgrade firmware version [e.g. 1.0.6, 1.0.6-RC2, ...]
|
||||||
|
|
||||||
|
**Describe the bug**
|
||||||
|
A clear and concise description of what the bug is.
|
||||||
|
|
||||||
|
**To Reproduce**
|
||||||
|
Please describe steps to reproduce the behavior.
|
||||||
|
|
||||||
|
**Expected behavior**
|
||||||
|
A clear and concise description of what you expected to happen.
|
||||||
|
|
||||||
|
**G-code**
|
||||||
|
Please attach a G-code. This will make it easier for us to replicate the error.
|
||||||
|
|
||||||
|
**Video**
|
||||||
|
Please attach a video. It usually helps to solve the problem.
|
20
.github/ISSUE_TEMPLATE/enhancement.md
vendored
Normal file
20
.github/ISSUE_TEMPLATE/enhancement.md
vendored
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
---
|
||||||
|
name: Enhancement
|
||||||
|
about: Suggest an idea for this project
|
||||||
|
title: " [ENHANCEMENT]<Enter comprehensive title>"
|
||||||
|
labels: enhancement
|
||||||
|
assignees: ''
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Please, before you create a new feature request, please make sure you searched in open and closed issues and couldn't find anything that matches.
|
||||||
|
|
||||||
|
Enter what type of printer or upgrade the enhancement applies to.
|
||||||
|
**Printer type** - [e.g. MK3S, MK3, MK2.5S, MK2.5, MK2S, MK2]
|
||||||
|
**MMU Upgrade** - [e.g. MMU2S, MMU2, MMU1]
|
||||||
|
|
||||||
|
**Is your enhancement related to a problem? Please describe.**
|
||||||
|
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
|
||||||
|
|
||||||
|
**Describe the solution you'd like**
|
||||||
|
A clear and concise description of what you want to happen.
|
20
.github/ISSUE_TEMPLATE/feature_request.md
vendored
Normal file
20
.github/ISSUE_TEMPLATE/feature_request.md
vendored
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
---
|
||||||
|
name: Feature request
|
||||||
|
about: Suggest an idea for this project
|
||||||
|
title: "[FEATURE REQUEST]<Enter comprehensive title>"
|
||||||
|
labels: feature request
|
||||||
|
assignees: ''
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Please, before you create a new feature request, please make sure you searched in open and closed issues and couldn't find anything that matches.
|
||||||
|
|
||||||
|
If it makes sense, enter what type of printer or upgrade the feature request applies to.
|
||||||
|
**Printer type** - [e.g. MK3S, MK3, MK2.5S, MK2.5, MK2S, MK2]
|
||||||
|
**MMU Upgrade** - [e.g. MMU2S, MMU2, MMU1]
|
||||||
|
|
||||||
|
**Is your feature request related to a problem? Please describe.**
|
||||||
|
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
|
||||||
|
|
||||||
|
**Describe the solution you'd like**
|
||||||
|
A clear and concise description of what you want to happen.
|
12
.github/ISSUE_TEMPLATE/question.md
vendored
Normal file
12
.github/ISSUE_TEMPLATE/question.md
vendored
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
---
|
||||||
|
name: Question
|
||||||
|
about: What do you want to know?
|
||||||
|
title: "[QUESTION]<Enter comprehensive title>"
|
||||||
|
labels: question
|
||||||
|
assignees: ''
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Please, before you create a new question, please make sure you searched in open and closed issues and couldn't find anything that matches.
|
||||||
|
|
||||||
|
**What is your question?**
|
@ -345,7 +345,7 @@ your extruder heater takes 2 minutes to hit the target on heating.
|
|||||||
#define Y_PROBE_OFFSET_FROM_EXTRUDER -29
|
#define Y_PROBE_OFFSET_FROM_EXTRUDER -29
|
||||||
#define Z_PROBE_OFFSET_FROM_EXTRUDER -12.35
|
#define Z_PROBE_OFFSET_FROM_EXTRUDER -12.35
|
||||||
|
|
||||||
#define Z_RAISE_BEFORE_HOMING 4 // (in mm) Raise Z before homing (G28) for Probe Clearance.
|
#define Z_RAISE_BEFORE_HOMING 5 // (in mm) Raise Z before homing (G28) for Probe Clearance.
|
||||||
// Be sure you have this distance over your Z_MAX_POS in case
|
// 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 XY_TRAVEL_SPEED 8000 // X and Y axis travel speed between probes, in mm/min
|
||||||
@ -549,6 +549,12 @@ enum CalibrationStatus
|
|||||||
CALIBRATION_STATUS_UNKNOWN = 0,
|
CALIBRATION_STATUS_UNKNOWN = 0,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// Try to maintain a minimum distance from the bed even when Z is
|
||||||
|
// unknown when doing the following operations
|
||||||
|
#define MIN_Z_FOR_LOAD 50
|
||||||
|
#define MIN_Z_FOR_UNLOAD 20
|
||||||
|
#define MIN_Z_FOR_PREHEAT 10
|
||||||
|
|
||||||
#include "Configuration_adv.h"
|
#include "Configuration_adv.h"
|
||||||
#include "thermistortables.h"
|
#include "thermistortables.h"
|
||||||
|
|
||||||
|
@ -296,6 +296,7 @@ void setPwmFrequency(uint8_t pin, int val);
|
|||||||
extern bool fans_check_enabled;
|
extern bool fans_check_enabled;
|
||||||
extern float homing_feedrate[];
|
extern float homing_feedrate[];
|
||||||
extern bool axis_relative_modes[];
|
extern bool axis_relative_modes[];
|
||||||
|
extern float feedrate;
|
||||||
extern int feedmultiply;
|
extern int feedmultiply;
|
||||||
extern int extrudemultiply; // Sets extrude multiply factor (in percent) for all extruders
|
extern int extrudemultiply; // Sets extrude multiply factor (in percent) for all extruders
|
||||||
extern int extruder_multiply[EXTRUDERS]; // sets extrude multiply factor (in percent) for each extruder individually
|
extern int extruder_multiply[EXTRUDERS]; // sets extrude multiply factor (in percent) for each extruder individually
|
||||||
@ -358,9 +359,6 @@ extern int fan_speed[2];
|
|||||||
// Handling multiple extruders pins
|
// Handling multiple extruders pins
|
||||||
extern uint8_t active_extruder;
|
extern uint8_t active_extruder;
|
||||||
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
//Long pause
|
//Long pause
|
||||||
extern unsigned long pause_time;
|
extern unsigned long pause_time;
|
||||||
extern unsigned long start_pause_print;
|
extern unsigned long start_pause_print;
|
||||||
@ -398,7 +396,7 @@ extern uint16_t gcode_in_progress;
|
|||||||
extern LongTimer safetyTimer;
|
extern LongTimer safetyTimer;
|
||||||
|
|
||||||
#define PRINT_PERCENT_DONE_INIT 0xff
|
#define PRINT_PERCENT_DONE_INIT 0xff
|
||||||
#define PRINTER_ACTIVE (IS_SD_PRINTING || is_usb_printing || isPrintPaused || (custom_message_type == CustomMsg::TempCal) || saved_printing || (lcd_commands_type == LcdCommands::Layer1Cal) || card.paused || mmu_print_saved)
|
#define PRINTER_ACTIVE (IS_SD_PRINTING || is_usb_printing || isPrintPaused || (custom_message_type == CustomMsg::TempCal) || saved_printing || (lcd_commands_type == LcdCommands::Layer1Cal) || mmu_print_saved)
|
||||||
|
|
||||||
//! Beware - mcode_in_progress is set as soon as the command gets really processed,
|
//! Beware - mcode_in_progress is set as soon as the command gets really processed,
|
||||||
//! which is not the same as posting the M600 command into the command queue
|
//! which is not the same as posting the M600 command into the command queue
|
||||||
@ -457,6 +455,7 @@ extern void print_mesh_bed_leveling_table();
|
|||||||
|
|
||||||
extern void stop_and_save_print_to_ram(float z_move, float e_move);
|
extern void stop_and_save_print_to_ram(float z_move, float e_move);
|
||||||
extern void restore_print_from_ram_and_continue(float e_move);
|
extern void restore_print_from_ram_and_continue(float e_move);
|
||||||
|
extern void cancel_saved_printing();
|
||||||
|
|
||||||
|
|
||||||
//estimated time to end of the print
|
//estimated time to end of the print
|
||||||
@ -513,4 +512,6 @@ void M600_wait_for_user(float HotendTempBckp);
|
|||||||
void M600_check_state(float nozzle_temp);
|
void M600_check_state(float nozzle_temp);
|
||||||
void load_filament_final_feed();
|
void load_filament_final_feed();
|
||||||
void marlin_wait_for_click();
|
void marlin_wait_for_click();
|
||||||
void marlin_rise_z(void);
|
void raise_z_above(float target, bool plan=true);
|
||||||
|
|
||||||
|
#endif
|
||||||
|
@ -63,6 +63,7 @@
|
|||||||
|
|
||||||
#include "menu.h"
|
#include "menu.h"
|
||||||
#include "ultralcd.h"
|
#include "ultralcd.h"
|
||||||
|
#include "backlight.h"
|
||||||
|
|
||||||
#include "planner.h"
|
#include "planner.h"
|
||||||
#include "stepper.h"
|
#include "stepper.h"
|
||||||
@ -309,6 +310,8 @@ bool no_response = false;
|
|||||||
uint8_t important_status;
|
uint8_t important_status;
|
||||||
uint8_t saved_filament_type;
|
uint8_t saved_filament_type;
|
||||||
|
|
||||||
|
#define SAVED_TARGET_UNSET (X_MIN_POS-1)
|
||||||
|
float saved_target[NUM_AXIS] = {SAVED_TARGET_UNSET, 0, 0, 0};
|
||||||
|
|
||||||
// save/restore printing in case that mmu was not responding
|
// save/restore printing in case that mmu was not responding
|
||||||
bool mmu_print_saved = false;
|
bool mmu_print_saved = false;
|
||||||
@ -329,11 +332,15 @@ float destination[NUM_AXIS] = { 0.0, 0.0, 0.0, 0.0};
|
|||||||
|
|
||||||
// For tracing an arc
|
// For tracing an arc
|
||||||
static float offset[3] = {0.0, 0.0, 0.0};
|
static float offset[3] = {0.0, 0.0, 0.0};
|
||||||
static float feedrate = 1500.0, next_feedrate, saved_feedrate;
|
|
||||||
|
|
||||||
// Determines Absolute or Relative Coordinates.
|
// Current feedrate
|
||||||
// Also there is bool axis_relative_modes[] per axis flag.
|
float feedrate = 1500.0;
|
||||||
static bool relative_mode = false;
|
|
||||||
|
// Feedrate for the next move
|
||||||
|
static float next_feedrate;
|
||||||
|
|
||||||
|
// Original feedrate saved during homing moves
|
||||||
|
static float saved_feedrate;
|
||||||
|
|
||||||
const int sensitive_pins[] = SENSITIVE_PINS; // Sensitive pin list for M42
|
const int sensitive_pins[] = SENSITIVE_PINS; // Sensitive pin list for M42
|
||||||
|
|
||||||
@ -373,8 +380,8 @@ bool saved_printing = false; //!< Print is paused and saved in RAM
|
|||||||
static uint32_t saved_sdpos = 0; //!< SD card position, or line number in case of USB printing
|
static uint32_t saved_sdpos = 0; //!< SD card position, or line number in case of USB printing
|
||||||
uint8_t saved_printing_type = PRINTING_TYPE_SD;
|
uint8_t saved_printing_type = PRINTING_TYPE_SD;
|
||||||
static float saved_pos[4] = { 0, 0, 0, 0 };
|
static float saved_pos[4] = { 0, 0, 0, 0 };
|
||||||
//! Feedrate hopefully derived from an active block of the planner at the time the print has been canceled, in mm/min.
|
static uint16_t saved_feedrate2 = 0; //!< Default feedrate (truncated from float)
|
||||||
static float saved_feedrate2 = 0;
|
static int saved_feedmultiply2 = 0;
|
||||||
static uint8_t saved_active_extruder = 0;
|
static uint8_t saved_active_extruder = 0;
|
||||||
static float saved_extruder_temperature = 0.0; //!< Active extruder temperature
|
static float saved_extruder_temperature = 0.0; //!< Active extruder temperature
|
||||||
static bool saved_extruder_under_pressure = false;
|
static bool saved_extruder_under_pressure = false;
|
||||||
@ -989,10 +996,6 @@ void setup()
|
|||||||
|
|
||||||
ultralcd_init();
|
ultralcd_init();
|
||||||
|
|
||||||
#if (LCD_BL_PIN != -1) && defined (LCD_BL_PIN)
|
|
||||||
analogWrite(LCD_BL_PIN, 255); //set full brightnes
|
|
||||||
#endif //(LCD_BL_PIN != -1) && defined (LCD_BL_PIN)
|
|
||||||
|
|
||||||
spi_init();
|
spi_init();
|
||||||
|
|
||||||
lcd_splash();
|
lcd_splash();
|
||||||
@ -2104,6 +2107,58 @@ bool check_commands() {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// raise_z_above: slowly raise Z to the requested height
|
||||||
|
//
|
||||||
|
// contrarily to a simple move, this function will carefully plan a move
|
||||||
|
// when the current Z position is unknown. In such cases, stallguard is
|
||||||
|
// enabled and will prevent prolonged pushing against the Z tops
|
||||||
|
void raise_z_above(float target, bool plan)
|
||||||
|
{
|
||||||
|
if (current_position[Z_AXIS] >= target)
|
||||||
|
return;
|
||||||
|
|
||||||
|
// Z needs raising
|
||||||
|
current_position[Z_AXIS] = target;
|
||||||
|
|
||||||
|
#if defined(Z_MIN_PIN) && (Z_MIN_PIN > -1) && !defined(DEBUG_DISABLE_ZMINLIMIT)
|
||||||
|
bool z_min_endstop = (READ(Z_MIN_PIN) != Z_MIN_ENDSTOP_INVERTING);
|
||||||
|
#else
|
||||||
|
bool z_min_endstop = false;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if (axis_known_position[Z_AXIS] || z_min_endstop)
|
||||||
|
{
|
||||||
|
// current position is known or very low, it's safe to raise Z
|
||||||
|
if(plan) plan_buffer_line_curposXYZE(max_feedrate[Z_AXIS], active_extruder);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ensure Z is powered in normal mode to overcome initial load
|
||||||
|
enable_z();
|
||||||
|
st_synchronize();
|
||||||
|
|
||||||
|
// rely on crashguard to limit damage
|
||||||
|
bool z_endstop_enabled = enable_z_endstop(true);
|
||||||
|
#ifdef TMC2130
|
||||||
|
tmc2130_home_enter(Z_AXIS_MASK);
|
||||||
|
#endif //TMC2130
|
||||||
|
plan_buffer_line_curposXYZE(homing_feedrate[Z_AXIS] / 60, active_extruder);
|
||||||
|
st_synchronize();
|
||||||
|
#ifdef TMC2130
|
||||||
|
if (endstop_z_hit_on_purpose())
|
||||||
|
{
|
||||||
|
// not necessarily exact, but will avoid further vertical moves
|
||||||
|
current_position[Z_AXIS] = max_pos[Z_AXIS];
|
||||||
|
plan_set_position(current_position[X_AXIS], current_position[Y_AXIS],
|
||||||
|
current_position[Z_AXIS], current_position[E_AXIS]);
|
||||||
|
}
|
||||||
|
tmc2130_home_exit();
|
||||||
|
#endif //TMC2130
|
||||||
|
enable_z_endstop(z_endstop_enabled);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
#ifdef TMC2130
|
#ifdef TMC2130
|
||||||
bool calibrate_z_auto()
|
bool calibrate_z_auto()
|
||||||
{
|
{
|
||||||
@ -2484,9 +2539,7 @@ static void gcode_G28(bool home_x_axis, long home_x_value, bool home_y_axis, lon
|
|||||||
|
|
||||||
//if we are homing all axes, first move z higher to protect heatbed/steel sheet
|
//if we are homing all axes, first move z higher to protect heatbed/steel sheet
|
||||||
if (home_all_axes) {
|
if (home_all_axes) {
|
||||||
current_position[Z_AXIS] += MESH_HOME_Z_SEARCH;
|
raise_z_above(MESH_HOME_Z_SEARCH);
|
||||||
feedrate = homing_feedrate[Z_AXIS];
|
|
||||||
plan_buffer_line_curposXYZE(feedrate / 60, active_extruder);
|
|
||||||
st_synchronize();
|
st_synchronize();
|
||||||
}
|
}
|
||||||
#ifdef ENABLE_AUTO_BED_LEVELING
|
#ifdef ENABLE_AUTO_BED_LEVELING
|
||||||
@ -2597,26 +2650,21 @@ static void gcode_G28(bool home_x_axis, long home_x_value, bool home_y_axis, lon
|
|||||||
#ifndef Z_SAFE_HOMING
|
#ifndef Z_SAFE_HOMING
|
||||||
if(home_z) {
|
if(home_z) {
|
||||||
#if defined (Z_RAISE_BEFORE_HOMING) && (Z_RAISE_BEFORE_HOMING > 0)
|
#if defined (Z_RAISE_BEFORE_HOMING) && (Z_RAISE_BEFORE_HOMING > 0)
|
||||||
destination[Z_AXIS] = Z_RAISE_BEFORE_HOMING * home_dir(Z_AXIS) * (-1); // Set destination away from bed
|
raise_z_above(Z_RAISE_BEFORE_HOMING);
|
||||||
feedrate = max_feedrate[Z_AXIS];
|
|
||||||
plan_buffer_line(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], destination[E_AXIS], feedrate, active_extruder);
|
|
||||||
st_synchronize();
|
st_synchronize();
|
||||||
#endif // defined (Z_RAISE_BEFORE_HOMING) && (Z_RAISE_BEFORE_HOMING > 0)
|
#endif // defined (Z_RAISE_BEFORE_HOMING) && (Z_RAISE_BEFORE_HOMING > 0)
|
||||||
#if (defined(MESH_BED_LEVELING) && !defined(MK1BP)) // If Mesh bed leveling, move X&Y to safe position for home
|
#if (defined(MESH_BED_LEVELING) && !defined(MK1BP)) // If Mesh bed leveling, move X&Y to safe position for home
|
||||||
if (!(axis_known_position[X_AXIS] && axis_known_position[Y_AXIS] ))
|
raise_z_above(MESH_HOME_Z_SEARCH);
|
||||||
{
|
st_synchronize();
|
||||||
homeaxis(X_AXIS);
|
if (!axis_known_position[X_AXIS]) homeaxis(X_AXIS);
|
||||||
homeaxis(Y_AXIS);
|
if (!axis_known_position[Y_AXIS]) homeaxis(Y_AXIS);
|
||||||
}
|
|
||||||
// 1st mesh bed leveling measurement point, corrected.
|
// 1st mesh bed leveling measurement point, corrected.
|
||||||
world2machine_initialize();
|
world2machine_initialize();
|
||||||
world2machine(pgm_read_float(bed_ref_points_4), pgm_read_float(bed_ref_points_4+1), destination[X_AXIS], destination[Y_AXIS]);
|
world2machine(pgm_read_float(bed_ref_points_4), pgm_read_float(bed_ref_points_4+1), destination[X_AXIS], destination[Y_AXIS]);
|
||||||
world2machine_reset();
|
world2machine_reset();
|
||||||
if (destination[Y_AXIS] < Y_MIN_POS)
|
if (destination[Y_AXIS] < Y_MIN_POS)
|
||||||
destination[Y_AXIS] = Y_MIN_POS;
|
destination[Y_AXIS] = Y_MIN_POS;
|
||||||
destination[Z_AXIS] = MESH_HOME_Z_SEARCH; // Set destination away from bed
|
feedrate = homing_feedrate[X_AXIS] / 20;
|
||||||
feedrate = homing_feedrate[Z_AXIS]/10;
|
|
||||||
current_position[Z_AXIS] = 0;
|
|
||||||
enable_endstops(false);
|
enable_endstops(false);
|
||||||
#ifdef DEBUG_BUILD
|
#ifdef DEBUG_BUILD
|
||||||
SERIAL_ECHOLNPGM("plan_set_position()");
|
SERIAL_ECHOLNPGM("plan_set_position()");
|
||||||
@ -2775,7 +2823,10 @@ bool gcode_M45(bool onlyZ, int8_t verbosity_level)
|
|||||||
#ifdef TMC2130
|
#ifdef TMC2130
|
||||||
FORCE_HIGH_POWER_START;
|
FORCE_HIGH_POWER_START;
|
||||||
#endif // TMC2130
|
#endif // TMC2130
|
||||||
// Only Z calibration?
|
|
||||||
|
FORCE_BL_ON_START;
|
||||||
|
|
||||||
|
// Only Z calibration?
|
||||||
if (!onlyZ)
|
if (!onlyZ)
|
||||||
{
|
{
|
||||||
setTargetBed(0);
|
setTargetBed(0);
|
||||||
@ -2963,6 +3014,9 @@ bool gcode_M45(bool onlyZ, int8_t verbosity_level)
|
|||||||
#ifdef TMC2130
|
#ifdef TMC2130
|
||||||
FORCE_HIGH_POWER_END;
|
FORCE_HIGH_POWER_END;
|
||||||
#endif // TMC2130
|
#endif // TMC2130
|
||||||
|
|
||||||
|
FORCE_BL_ON_END;
|
||||||
|
|
||||||
return final_result;
|
return final_result;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3143,15 +3197,6 @@ static void gcode_M600(bool automatic, float x_position, float y_position, float
|
|||||||
custom_message_type = CustomMsg::Status;
|
custom_message_type = CustomMsg::Status;
|
||||||
}
|
}
|
||||||
|
|
||||||
//! @brief Rise Z if too low to avoid blob/jam before filament loading
|
|
||||||
//!
|
|
||||||
//! It doesn't plan_buffer_line(), as it expects plan_buffer_line() to be called after
|
|
||||||
//! during extruding (loading) filament.
|
|
||||||
void marlin_rise_z(void)
|
|
||||||
{
|
|
||||||
if (current_position[Z_AXIS] < 20) current_position[Z_AXIS] += 30;
|
|
||||||
}
|
|
||||||
|
|
||||||
void gcode_M701()
|
void gcode_M701()
|
||||||
{
|
{
|
||||||
printf_P(PSTR("gcode_M701 begin\n"));
|
printf_P(PSTR("gcode_M701 begin\n"));
|
||||||
@ -3180,7 +3225,7 @@ void gcode_M701()
|
|||||||
plan_buffer_line_curposXYZE(400 / 60, active_extruder); //fast sequence
|
plan_buffer_line_curposXYZE(400 / 60, active_extruder); //fast sequence
|
||||||
st_synchronize();
|
st_synchronize();
|
||||||
|
|
||||||
marlin_rise_z();
|
raise_z_above(MIN_Z_FOR_LOAD, false);
|
||||||
current_position[E_AXIS] += 30;
|
current_position[E_AXIS] += 30;
|
||||||
plan_buffer_line_curposXYZE(400 / 60, active_extruder); //fast sequence
|
plan_buffer_line_curposXYZE(400 / 60, active_extruder); //fast sequence
|
||||||
|
|
||||||
@ -3625,7 +3670,7 @@ void process_commands()
|
|||||||
|
|
||||||
Set of internal PRUSA commands
|
Set of internal PRUSA commands
|
||||||
|
|
||||||
PRUSA [ Ping | PRN | FAN | fn | thx | uvlo | fsensor_recover | MMURES | RESET | fv | M28 | SN | Fir | Rev | Lang | Lz | Beat | FR ]
|
PRUSA [ Ping | PRN | FAN | fn | thx | uvlo | MMURES | RESET | fv | M28 | SN | Fir | Rev | Lang | Lz | Beat | FR ]
|
||||||
|
|
||||||
- `Ping`
|
- `Ping`
|
||||||
- `PRN` - Prints revision of the printer
|
- `PRN` - Prints revision of the printer
|
||||||
@ -3633,7 +3678,6 @@ void process_commands()
|
|||||||
- `fn` - Prints farm no.
|
- `fn` - Prints farm no.
|
||||||
- `thx`
|
- `thx`
|
||||||
- `uvlo`
|
- `uvlo`
|
||||||
- `fsensor_recover` - Filament sensor recover - restore print and continue
|
|
||||||
- `MMURES` - Reset MMU
|
- `MMURES` - Reset MMU
|
||||||
- `RESET` - (Careful!)
|
- `RESET` - (Careful!)
|
||||||
- `fv` - ?
|
- `fv` - ?
|
||||||
@ -3683,12 +3727,6 @@ void process_commands()
|
|||||||
eeprom_update_byte((uint8_t*)EEPROM_UVLO,0);
|
eeprom_update_byte((uint8_t*)EEPROM_UVLO,0);
|
||||||
enquecommand_P(PSTR("M24"));
|
enquecommand_P(PSTR("M24"));
|
||||||
}
|
}
|
||||||
#ifdef FILAMENT_SENSOR
|
|
||||||
else if (code_seen("fsensor_recover")) // PRUSA fsensor_recover
|
|
||||||
{
|
|
||||||
fsensor_restore_print_and_continue();
|
|
||||||
}
|
|
||||||
#endif //FILAMENT_SENSOR
|
|
||||||
else if (code_seen("MMURES")) // PRUSA MMURES
|
else if (code_seen("MMURES")) // PRUSA MMURES
|
||||||
{
|
{
|
||||||
mmu_reset();
|
mmu_reset();
|
||||||
@ -4013,8 +4051,19 @@ if(eSoundMode!=e_SOUND_MODE_SILENT)
|
|||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
get_coordinates(); // For X Y Z E F
|
||||||
|
|
||||||
|
// When recovering from a previous print move, restore the originally
|
||||||
|
// calculated target position on the first USB/SD command. This accounts
|
||||||
|
// properly for relative moves
|
||||||
|
if ((saved_target[0] != SAVED_TARGET_UNSET) &&
|
||||||
|
((CMDBUFFER_CURRENT_TYPE == CMDBUFFER_CURRENT_TYPE_SDCARD) ||
|
||||||
|
(CMDBUFFER_CURRENT_TYPE == CMDBUFFER_CURRENT_TYPE_USB_WITH_LINENR)))
|
||||||
|
{
|
||||||
|
memcpy(destination, saved_target, sizeof(destination));
|
||||||
|
saved_target[0] = SAVED_TARGET_UNSET;
|
||||||
|
}
|
||||||
|
|
||||||
get_coordinates(); // For X Y Z E F
|
|
||||||
if (total_filament_used > ((current_position[E_AXIS] - destination[E_AXIS]) * 100)) { //protection against total_filament_used overflow
|
if (total_filament_used > ((current_position[E_AXIS] - destination[E_AXIS]) * 100)) { //protection against total_filament_used overflow
|
||||||
total_filament_used = total_filament_used + ((destination[E_AXIS] - current_position[E_AXIS]) * 100);
|
total_filament_used = total_filament_used + ((destination[E_AXIS] - current_position[E_AXIS]) * 100);
|
||||||
}
|
}
|
||||||
@ -5161,15 +5210,19 @@ if(eSoundMode!=e_SOUND_MODE_SILENT)
|
|||||||
|
|
||||||
//! ### G90 - Switch off relative mode
|
//! ### G90 - Switch off relative mode
|
||||||
// -------------------------------
|
// -------------------------------
|
||||||
case 90:
|
case 90: {
|
||||||
relative_mode = false;
|
for(uint8_t i = 0; i != NUM_AXIS; ++i)
|
||||||
break;
|
axis_relative_modes[i] = false;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
//! ### G91 - Switch on relative mode
|
//! ### G91 - Switch on relative mode
|
||||||
// -------------------------------
|
// -------------------------------
|
||||||
case 91:
|
case 91: {
|
||||||
relative_mode = true;
|
for(uint8_t i = 0; i != NUM_AXIS; ++i)
|
||||||
break;
|
axis_relative_modes[i] = true;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
//! ### G92 - Set position
|
//! ### G92 - Set position
|
||||||
// -----------------------------
|
// -----------------------------
|
||||||
@ -5333,21 +5386,19 @@ if(eSoundMode!=e_SOUND_MODE_SILENT)
|
|||||||
card.openFile(strchr_pointer + 4,true);
|
card.openFile(strchr_pointer + 4,true);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
//! ### M24 - Start SD print
|
//! ### M24 - Start/resume SD print
|
||||||
// ----------------------------------
|
// ----------------------------------
|
||||||
case 24:
|
case 24:
|
||||||
if (!card.paused)
|
if (isPrintPaused)
|
||||||
failstats_reset_print();
|
lcd_resume_print();
|
||||||
card.startFileprint();
|
else
|
||||||
starttime=_millis();
|
{
|
||||||
|
failstats_reset_print();
|
||||||
|
card.startFileprint();
|
||||||
|
starttime=_millis();
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
//! ### M25 - Pause SD print
|
|
||||||
// ----------------------------------
|
|
||||||
case 25:
|
|
||||||
card.pauseSDPrint();
|
|
||||||
break;
|
|
||||||
|
|
||||||
//! ### M26 S\<index\> - Set SD index
|
//! ### M26 S\<index\> - Set SD index
|
||||||
//! Set position in SD card file to index in bytes.
|
//! Set position in SD card file to index in bytes.
|
||||||
//! This command is expected to be called after M23 and before M24.
|
//! This command is expected to be called after M23 and before M24.
|
||||||
@ -5902,7 +5953,7 @@ Sigma_Exit:
|
|||||||
//! ### M112 - Emergency stop
|
//! ### M112 - Emergency stop
|
||||||
// -----------------------------------------
|
// -----------------------------------------
|
||||||
case 112:
|
case 112:
|
||||||
kill(_n(""), 3);
|
kill(MSG_M112_KILL, 3);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
//! ### M140 - Set bed temperature
|
//! ### M140 - Set bed temperature
|
||||||
@ -6165,7 +6216,6 @@ Sigma_Exit:
|
|||||||
LCD_MESSAGERPGM(_T(WELCOME_MSG));
|
LCD_MESSAGERPGM(_T(WELCOME_MSG));
|
||||||
lcd_update(0);
|
lcd_update(0);
|
||||||
break;
|
break;
|
||||||
#endif
|
|
||||||
|
|
||||||
//! ### M81 - Turn off Power Supply
|
//! ### M81 - Turn off Power Supply
|
||||||
// --------------------------------------
|
// --------------------------------------
|
||||||
@ -6189,17 +6239,18 @@ Sigma_Exit:
|
|||||||
LCD_MESSAGERPGM(CAT4(CUSTOM_MENDEL_NAME,PSTR(" "),MSG_OFF,PSTR(".")));
|
LCD_MESSAGERPGM(CAT4(CUSTOM_MENDEL_NAME,PSTR(" "),MSG_OFF,PSTR(".")));
|
||||||
lcd_update(0);
|
lcd_update(0);
|
||||||
break;
|
break;
|
||||||
|
#endif
|
||||||
|
|
||||||
//! ### M82 - Set E axis to absolute mode
|
//! ### M82 - Set E axis to absolute mode
|
||||||
// ---------------------------------------
|
// ---------------------------------------
|
||||||
case 82:
|
case 82:
|
||||||
axis_relative_modes[3] = false;
|
axis_relative_modes[E_AXIS] = false;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
//! ### M83 - Set E axis to relative mode
|
//! ### M83 - Set E axis to relative mode
|
||||||
// ---------------------------------------
|
// ---------------------------------------
|
||||||
case 83:
|
case 83:
|
||||||
axis_relative_modes[3] = true;
|
axis_relative_modes[E_AXIS] = true;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
//! ### M84, M18 - Disable steppers
|
//! ### M84, M18 - Disable steppers
|
||||||
@ -7202,27 +7253,36 @@ Sigma_Exit:
|
|||||||
break;
|
break;
|
||||||
#endif //FILAMENTCHANGEENABLE
|
#endif //FILAMENTCHANGEENABLE
|
||||||
|
|
||||||
|
//! ### M25 - Pause SD print
|
||||||
//! ### M601 - Pause print
|
//! ### M601 - Pause print
|
||||||
|
//! ### M125 - Pause print (TODO: not implemented)
|
||||||
// -------------------------------
|
// -------------------------------
|
||||||
|
case 25:
|
||||||
case 601:
|
case 601:
|
||||||
{
|
{
|
||||||
cmdqueue_pop_front(); //trick because we want skip this command (M601) after restore
|
if (!isPrintPaused)
|
||||||
lcd_pause_print();
|
{
|
||||||
|
st_synchronize();
|
||||||
|
cmdqueue_pop_front(); //trick because we want skip this command (M601) after restore
|
||||||
|
lcd_pause_print();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
//! ### M602 - Resume print
|
//! ### M602 - Resume print
|
||||||
// -------------------------------
|
// -------------------------------
|
||||||
case 602: {
|
case 602: {
|
||||||
lcd_resume_print();
|
if (isPrintPaused)
|
||||||
|
lcd_resume_print();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
//! ### M603 - Stop print
|
//! ### M603 - Stop print
|
||||||
// -------------------------------
|
// -------------------------------
|
||||||
case 603: {
|
case 603: {
|
||||||
lcd_print_stop();
|
lcd_print_stop();
|
||||||
}
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
#ifdef PINDA_THERMISTOR
|
#ifdef PINDA_THERMISTOR
|
||||||
//! ### M860 - Wait for extruder temperature (PINDA)
|
//! ### M860 - Wait for extruder temperature (PINDA)
|
||||||
@ -7611,27 +7671,33 @@ Sigma_Exit:
|
|||||||
case 350:
|
case 350:
|
||||||
{
|
{
|
||||||
#ifdef TMC2130
|
#ifdef TMC2130
|
||||||
if(code_seen('E'))
|
for (int i=0; i<NUM_AXIS; i++)
|
||||||
{
|
{
|
||||||
uint16_t res_new = code_value();
|
if(code_seen(axis_codes[i]))
|
||||||
if ((res_new == 8) || (res_new == 16) || (res_new == 32) || (res_new == 64) || (res_new == 128))
|
|
||||||
{
|
{
|
||||||
st_synchronize();
|
uint16_t res_new = code_value();
|
||||||
uint8_t axis = E_AXIS;
|
bool res_valid = (res_new == 8) || (res_new == 16) || (res_new == 32); // resolutions valid for all axis
|
||||||
uint16_t res = tmc2130_get_res(axis);
|
res_valid |= (i != E_AXIS) && ((res_new == 1) || (res_new == 2) || (res_new == 4)); // resolutions valid for X Y Z only
|
||||||
tmc2130_set_res(axis, res_new);
|
res_valid |= (i == E_AXIS) && ((res_new == 64) || (res_new == 128)); // resolutions valid for E only
|
||||||
cs.axis_ustep_resolution[axis] = res_new;
|
if (res_valid)
|
||||||
if (res_new > res)
|
|
||||||
{
|
{
|
||||||
uint16_t fac = (res_new / res);
|
|
||||||
cs.axis_steps_per_unit[axis] *= fac;
|
st_synchronize();
|
||||||
position[E_AXIS] *= fac;
|
uint16_t res = tmc2130_get_res(i);
|
||||||
}
|
tmc2130_set_res(i, res_new);
|
||||||
else
|
cs.axis_ustep_resolution[i] = res_new;
|
||||||
{
|
if (res_new > res)
|
||||||
uint16_t fac = (res / res_new);
|
{
|
||||||
cs.axis_steps_per_unit[axis] /= fac;
|
uint16_t fac = (res_new / res);
|
||||||
position[E_AXIS] /= fac;
|
cs.axis_steps_per_unit[i] *= fac;
|
||||||
|
position[i] *= fac;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
uint16_t fac = (res / res_new);
|
||||||
|
cs.axis_steps_per_unit[i] /= fac;
|
||||||
|
position[i] /= fac;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -8219,7 +8285,7 @@ void get_coordinates()
|
|||||||
for(int8_t i=0; i < NUM_AXIS; i++) {
|
for(int8_t i=0; i < NUM_AXIS; i++) {
|
||||||
if(code_seen(axis_codes[i]))
|
if(code_seen(axis_codes[i]))
|
||||||
{
|
{
|
||||||
bool relative = axis_relative_modes[i] || relative_mode;
|
bool relative = axis_relative_modes[i];
|
||||||
destination[i] = (float)code_value();
|
destination[i] = (float)code_value();
|
||||||
if (i == E_AXIS) {
|
if (i == E_AXIS) {
|
||||||
float emult = extruder_multiplier[active_extruder];
|
float emult = extruder_multiplier[active_extruder];
|
||||||
@ -8302,38 +8368,43 @@ void clamp_to_software_endstops(float target[3])
|
|||||||
}
|
}
|
||||||
|
|
||||||
#ifdef MESH_BED_LEVELING
|
#ifdef MESH_BED_LEVELING
|
||||||
void mesh_plan_buffer_line(const float &x, const float &y, const float &z, const float &e, const float &feed_rate, const uint8_t extruder) {
|
void mesh_plan_buffer_line(const float &x, const float &y, const float &z, const float &e, const float &feed_rate, const uint8_t extruder) {
|
||||||
float dx = x - current_position[X_AXIS];
|
float dx = x - current_position[X_AXIS];
|
||||||
float dy = y - current_position[Y_AXIS];
|
float dy = y - current_position[Y_AXIS];
|
||||||
float dz = z - current_position[Z_AXIS];
|
|
||||||
int n_segments = 0;
|
int n_segments = 0;
|
||||||
|
|
||||||
if (mbl.active) {
|
if (mbl.active) {
|
||||||
float len = abs(dx) + abs(dy);
|
float len = abs(dx) + abs(dy);
|
||||||
if (len > 0)
|
if (len > 0)
|
||||||
// Split to 3cm segments or shorter.
|
// Split to 3cm segments or shorter.
|
||||||
n_segments = int(ceil(len / 30.f));
|
n_segments = int(ceil(len / 30.f));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (n_segments > 1) {
|
if (n_segments > 1) {
|
||||||
|
// In a multi-segment move explicitly set the final target in the plan
|
||||||
|
// as the move will be recalculated in it's entirety
|
||||||
|
float gcode_target[NUM_AXIS];
|
||||||
|
gcode_target[X_AXIS] = x;
|
||||||
|
gcode_target[Y_AXIS] = y;
|
||||||
|
gcode_target[Z_AXIS] = z;
|
||||||
|
gcode_target[E_AXIS] = e;
|
||||||
|
|
||||||
|
float dz = z - current_position[Z_AXIS];
|
||||||
float de = e - current_position[E_AXIS];
|
float de = e - current_position[E_AXIS];
|
||||||
|
|
||||||
for (int i = 1; i < n_segments; ++ i) {
|
for (int i = 1; i < n_segments; ++ i) {
|
||||||
float t = float(i) / float(n_segments);
|
float t = float(i) / float(n_segments);
|
||||||
if (saved_printing || (mbl.active == false)) return;
|
plan_buffer_line(current_position[X_AXIS] + t * dx,
|
||||||
plan_buffer_line(
|
|
||||||
current_position[X_AXIS] + t * dx,
|
|
||||||
current_position[Y_AXIS] + t * dy,
|
current_position[Y_AXIS] + t * dy,
|
||||||
current_position[Z_AXIS] + t * dz,
|
current_position[Z_AXIS] + t * dz,
|
||||||
current_position[E_AXIS] + t * de,
|
current_position[E_AXIS] + t * de,
|
||||||
feed_rate, extruder);
|
feed_rate, extruder, gcode_target);
|
||||||
|
if (waiting_inside_plan_buffer_line_print_aborted)
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// The rest of the path.
|
// The rest of the path.
|
||||||
plan_buffer_line(x, y, z, e, feed_rate, extruder);
|
plan_buffer_line(x, y, z, e, feed_rate, extruder);
|
||||||
current_position[X_AXIS] = x;
|
|
||||||
current_position[Y_AXIS] = y;
|
|
||||||
current_position[Z_AXIS] = z;
|
|
||||||
current_position[E_AXIS] = e;
|
|
||||||
}
|
}
|
||||||
#endif // MESH_BED_LEVELING
|
#endif // MESH_BED_LEVELING
|
||||||
|
|
||||||
@ -8354,9 +8425,7 @@ void prepare_move()
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
for(int8_t i=0; i < NUM_AXIS; i++) {
|
set_current_to_destination();
|
||||||
current_position[i] = destination[i];
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void prepare_arc_move(char isclockwise) {
|
void prepare_arc_move(char isclockwise) {
|
||||||
@ -8564,7 +8633,7 @@ if(0)
|
|||||||
|
|
||||||
if( (_millis() - previous_millis_cmd) > max_inactive_time )
|
if( (_millis() - previous_millis_cmd) > max_inactive_time )
|
||||||
if(max_inactive_time)
|
if(max_inactive_time)
|
||||||
kill(_n(""), 4);
|
kill(_n("Inactivity Shutdown"), 4);
|
||||||
if(stepper_inactive_time) {
|
if(stepper_inactive_time) {
|
||||||
if( (_millis() - previous_millis_cmd) > stepper_inactive_time )
|
if( (_millis() - previous_millis_cmd) > stepper_inactive_time )
|
||||||
{
|
{
|
||||||
@ -8605,7 +8674,7 @@ if(0)
|
|||||||
// ----------------------------------------------------------------
|
// ----------------------------------------------------------------
|
||||||
if ( killCount >= KILL_DELAY)
|
if ( killCount >= KILL_DELAY)
|
||||||
{
|
{
|
||||||
kill("", 5);
|
kill(NULL, 5);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -8683,6 +8752,16 @@ void kill(const char *full_screen_message, unsigned char id)
|
|||||||
} // Wait for reset
|
} // Wait for reset
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Stop: Emergency stop used by overtemp functions which allows recovery
|
||||||
|
//
|
||||||
|
// In addition to stopping the print, this prevents subsequent G[0-3] commands to be
|
||||||
|
// processed via USB (using "Stopped") until the print is resumed via M999 or
|
||||||
|
// manually started from scratch with the LCD.
|
||||||
|
//
|
||||||
|
// Note that the current instruction is completely discarded, so resuming from Stop()
|
||||||
|
// will introduce either over/under extrusion on the current segment, and will not
|
||||||
|
// survive a power panic. Switching Stop() to use the pause machinery instead (with
|
||||||
|
// the addition of disabling the headers) could allow true recovery in the future.
|
||||||
void Stop()
|
void Stop()
|
||||||
{
|
{
|
||||||
disable_heater();
|
disable_heater();
|
||||||
@ -8867,6 +8946,8 @@ void delay_keep_alive(unsigned int ms)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void wait_for_heater(long codenum, uint8_t extruder) {
|
static void wait_for_heater(long codenum, uint8_t extruder) {
|
||||||
|
if (!degTargetHotend(extruder))
|
||||||
|
return;
|
||||||
|
|
||||||
#ifdef TEMP_RESIDENCY_TIME
|
#ifdef TEMP_RESIDENCY_TIME
|
||||||
long residencyStart;
|
long residencyStart;
|
||||||
@ -9075,10 +9156,8 @@ void bed_check(float x_dimension, float y_dimension, int x_points_num, int y_poi
|
|||||||
destination[X_AXIS] = ix * (x_dimension / (x_points_num - 1)) + shift_x;
|
destination[X_AXIS] = ix * (x_dimension / (x_points_num - 1)) + shift_x;
|
||||||
destination[Y_AXIS] = iy * (y_dimension / (y_points_num - 1)) + shift_y;
|
destination[Y_AXIS] = iy * (y_dimension / (y_points_num - 1)) + shift_y;
|
||||||
|
|
||||||
mesh_plan_buffer_line(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], destination[E_AXIS], XY_AXIS_FEEDRATE/6, active_extruder);
|
mesh_plan_buffer_line(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], destination[E_AXIS], XY_AXIS_FEEDRATE/6, active_extruder);
|
||||||
for(int8_t i=0; i < NUM_AXIS; i++) {
|
set_current_to_destination();
|
||||||
current_position[i] = destination[i];
|
|
||||||
}
|
|
||||||
st_synchronize();
|
st_synchronize();
|
||||||
|
|
||||||
// printf_P(PSTR("X = %f; Y= %f \n"), current_position[X_AXIS], current_position[Y_AXIS]);
|
// printf_P(PSTR("X = %f; Y= %f \n"), current_position[X_AXIS], current_position[Y_AXIS]);
|
||||||
@ -9493,9 +9572,11 @@ float temp_compensation_pinda_thermistor_offset(float temperature_pinda)
|
|||||||
void long_pause() //long pause print
|
void long_pause() //long pause print
|
||||||
{
|
{
|
||||||
st_synchronize();
|
st_synchronize();
|
||||||
|
|
||||||
start_pause_print = _millis();
|
start_pause_print = _millis();
|
||||||
|
|
||||||
|
// Stop heaters
|
||||||
|
setAllTargetHotends(0);
|
||||||
|
|
||||||
//retract
|
//retract
|
||||||
current_position[E_AXIS] -= default_retraction;
|
current_position[E_AXIS] -= default_retraction;
|
||||||
plan_buffer_line_curposXYZE(400, active_extruder);
|
plan_buffer_line_curposXYZE(400, active_extruder);
|
||||||
@ -9512,8 +9593,6 @@ void long_pause() //long pause print
|
|||||||
|
|
||||||
// Turn off the print fan
|
// Turn off the print fan
|
||||||
fanSpeed = 0;
|
fanSpeed = 0;
|
||||||
|
|
||||||
st_synchronize();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void serialecho_temperatures() {
|
void serialecho_temperatures() {
|
||||||
@ -9534,6 +9613,11 @@ void uvlo_()
|
|||||||
unsigned long time_start = _millis();
|
unsigned long time_start = _millis();
|
||||||
bool sd_print = card.sdprinting;
|
bool sd_print = card.sdprinting;
|
||||||
// Conserve power as soon as possible.
|
// Conserve power as soon as possible.
|
||||||
|
#ifdef LCD_BL_PIN
|
||||||
|
backlightMode = BACKLIGHT_MODE_DIM;
|
||||||
|
backlightLevel_LOW = 0;
|
||||||
|
backlight_update();
|
||||||
|
#endif //LCD_BL_PIN
|
||||||
disable_x();
|
disable_x();
|
||||||
disable_y();
|
disable_y();
|
||||||
|
|
||||||
@ -9565,8 +9649,18 @@ void uvlo_()
|
|||||||
if (sd_position < 0) sd_position = 0;
|
if (sd_position < 0) sd_position = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Backup the feedrate in mm/min.
|
// save the global state at planning time
|
||||||
int feedrate_bckp = blocks_queued() ? (block_buffer[block_buffer_tail].nominal_speed * 60.f) : feedrate;
|
uint16_t feedrate_bckp;
|
||||||
|
if (blocks_queued())
|
||||||
|
{
|
||||||
|
memcpy(saved_target, current_block->gcode_target, sizeof(saved_target));
|
||||||
|
feedrate_bckp = current_block->gcode_feedrate;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
saved_target[0] = SAVED_TARGET_UNSET;
|
||||||
|
feedrate_bckp = feedrate;
|
||||||
|
}
|
||||||
|
|
||||||
// After this call, the planner queue is emptied and the current_position is set to a current logical coordinate.
|
// After this call, the planner queue is emptied and the current_position is set to a current logical coordinate.
|
||||||
// The logical coordinate will likely differ from the machine coordinate if the skew calibration and mesh bed leveling
|
// The logical coordinate will likely differ from the machine coordinate if the skew calibration and mesh bed leveling
|
||||||
@ -9633,7 +9727,8 @@ void uvlo_()
|
|||||||
eeprom_update_float((float*)(EEPROM_UVLO_CURRENT_POSITION + 4), current_position[Y_AXIS]);
|
eeprom_update_float((float*)(EEPROM_UVLO_CURRENT_POSITION + 4), current_position[Y_AXIS]);
|
||||||
eeprom_update_float((float*)EEPROM_UVLO_CURRENT_POSITION_Z , current_position[Z_AXIS]);
|
eeprom_update_float((float*)EEPROM_UVLO_CURRENT_POSITION_Z , current_position[Z_AXIS]);
|
||||||
// Store the current feed rate, temperatures, fan speed and extruder multipliers (flow rates)
|
// Store the current feed rate, temperatures, fan speed and extruder multipliers (flow rates)
|
||||||
EEPROM_save_B(EEPROM_UVLO_FEEDRATE, &feedrate_bckp);
|
eeprom_update_word((uint16_t*)EEPROM_UVLO_FEEDRATE, feedrate_bckp);
|
||||||
|
EEPROM_save_B(EEPROM_UVLO_FEEDMULTIPLY, &feedmultiply);
|
||||||
eeprom_update_byte((uint8_t*)EEPROM_UVLO_TARGET_HOTEND, target_temperature[active_extruder]);
|
eeprom_update_byte((uint8_t*)EEPROM_UVLO_TARGET_HOTEND, target_temperature[active_extruder]);
|
||||||
eeprom_update_byte((uint8_t*)EEPROM_UVLO_TARGET_BED, target_temperature_bed);
|
eeprom_update_byte((uint8_t*)EEPROM_UVLO_TARGET_BED, target_temperature_bed);
|
||||||
eeprom_update_byte((uint8_t*)EEPROM_UVLO_FAN_SPEED, fanSpeed);
|
eeprom_update_byte((uint8_t*)EEPROM_UVLO_FAN_SPEED, fanSpeed);
|
||||||
@ -9645,6 +9740,11 @@ void uvlo_()
|
|||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
eeprom_update_word((uint16_t*)(EEPROM_EXTRUDEMULTIPLY), (uint16_t)extrudemultiply);
|
eeprom_update_word((uint16_t*)(EEPROM_EXTRUDEMULTIPLY), (uint16_t)extrudemultiply);
|
||||||
|
// Store the saved target
|
||||||
|
eeprom_update_float((float*)(EEPROM_UVLO_SAVED_TARGET+0*4), saved_target[X_AXIS]);
|
||||||
|
eeprom_update_float((float*)(EEPROM_UVLO_SAVED_TARGET+1*4), saved_target[Y_AXIS]);
|
||||||
|
eeprom_update_float((float*)(EEPROM_UVLO_SAVED_TARGET+2*4), saved_target[Z_AXIS]);
|
||||||
|
eeprom_update_float((float*)(EEPROM_UVLO_SAVED_TARGET+3*4), saved_target[E_AXIS]);
|
||||||
|
|
||||||
// Finaly store the "power outage" flag.
|
// Finaly store the "power outage" flag.
|
||||||
if(sd_print) eeprom_update_byte((uint8_t*)EEPROM_UVLO, 1);
|
if(sd_print) eeprom_update_byte((uint8_t*)EEPROM_UVLO, 1);
|
||||||
@ -9893,10 +9993,17 @@ void recover_machine_state_after_power_panic(bool bTiny)
|
|||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
extrudemultiply = (int)eeprom_read_word((uint16_t*)(EEPROM_EXTRUDEMULTIPLY));
|
extrudemultiply = (int)eeprom_read_word((uint16_t*)(EEPROM_EXTRUDEMULTIPLY));
|
||||||
|
|
||||||
|
// 9) Recover the saved target
|
||||||
|
saved_target[X_AXIS] = eeprom_read_float((float*)(EEPROM_UVLO_SAVED_TARGET+0*4));
|
||||||
|
saved_target[Y_AXIS] = eeprom_read_float((float*)(EEPROM_UVLO_SAVED_TARGET+1*4));
|
||||||
|
saved_target[Z_AXIS] = eeprom_read_float((float*)(EEPROM_UVLO_SAVED_TARGET+2*4));
|
||||||
|
saved_target[E_AXIS] = eeprom_read_float((float*)(EEPROM_UVLO_SAVED_TARGET+3*4));
|
||||||
}
|
}
|
||||||
|
|
||||||
void restore_print_from_eeprom() {
|
void restore_print_from_eeprom() {
|
||||||
int feedrate_rec;
|
int feedrate_rec;
|
||||||
|
int feedmultiply_rec;
|
||||||
uint8_t fan_speed_rec;
|
uint8_t fan_speed_rec;
|
||||||
char cmd[30];
|
char cmd[30];
|
||||||
char filename[13];
|
char filename[13];
|
||||||
@ -9904,9 +10011,12 @@ void restore_print_from_eeprom() {
|
|||||||
char dir_name[9];
|
char dir_name[9];
|
||||||
|
|
||||||
fan_speed_rec = eeprom_read_byte((uint8_t*)EEPROM_UVLO_FAN_SPEED);
|
fan_speed_rec = eeprom_read_byte((uint8_t*)EEPROM_UVLO_FAN_SPEED);
|
||||||
EEPROM_read_B(EEPROM_UVLO_FEEDRATE, &feedrate_rec);
|
feedrate_rec = eeprom_read_word((uint16_t*)EEPROM_UVLO_FEEDRATE);
|
||||||
|
EEPROM_read_B(EEPROM_UVLO_FEEDMULTIPLY, &feedmultiply_rec);
|
||||||
SERIAL_ECHOPGM("Feedrate:");
|
SERIAL_ECHOPGM("Feedrate:");
|
||||||
MYSERIAL.println(feedrate_rec);
|
MYSERIAL.print(feedrate_rec);
|
||||||
|
SERIAL_ECHOPGM(", feedmultiply:");
|
||||||
|
MYSERIAL.println(feedmultiply_rec);
|
||||||
|
|
||||||
depth = eeprom_read_byte((uint8_t*)EEPROM_DIR_DEPTH);
|
depth = eeprom_read_byte((uint8_t*)EEPROM_DIR_DEPTH);
|
||||||
|
|
||||||
@ -9947,9 +10057,11 @@ void restore_print_from_eeprom() {
|
|||||||
enquecommand(cmd);
|
enquecommand(cmd);
|
||||||
// Unretract.
|
// Unretract.
|
||||||
enquecommand_P(PSTR("G1 E" STRINGIFY(2*default_retraction)" F480"));
|
enquecommand_P(PSTR("G1 E" STRINGIFY(2*default_retraction)" F480"));
|
||||||
// Set the feedrate saved at the power panic.
|
// Set the feedrates saved at the power panic.
|
||||||
sprintf_P(cmd, PSTR("G1 F%d"), feedrate_rec);
|
sprintf_P(cmd, PSTR("G1 F%d"), feedrate_rec);
|
||||||
enquecommand(cmd);
|
enquecommand(cmd);
|
||||||
|
sprintf_P(cmd, PSTR("M220 S%d"), feedmultiply_rec);
|
||||||
|
enquecommand(cmd);
|
||||||
if (eeprom_read_byte((uint8_t*)EEPROM_UVLO_E_ABS))
|
if (eeprom_read_byte((uint8_t*)EEPROM_UVLO_E_ABS))
|
||||||
{
|
{
|
||||||
enquecommand_P(PSTR("M82")); //E axis abslute mode
|
enquecommand_P(PSTR("M82")); //E axis abslute mode
|
||||||
@ -10101,16 +10213,21 @@ void stop_and_save_print_to_ram(float z_move, float e_move)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if 0
|
// save the global state at planning time
|
||||||
saved_feedrate2 = feedrate; //save feedrate
|
if (blocks_queued())
|
||||||
#else
|
{
|
||||||
// Try to deduce the feedrate from the first block of the planner.
|
memcpy(saved_target, current_block->gcode_target, sizeof(saved_target));
|
||||||
// Speed is in mm/min.
|
saved_feedrate2 = current_block->gcode_feedrate;
|
||||||
saved_feedrate2 = blocks_queued() ? (block_buffer[block_buffer_tail].nominal_speed * 60.f) : feedrate;
|
}
|
||||||
#endif
|
else
|
||||||
|
{
|
||||||
|
saved_target[0] = SAVED_TARGET_UNSET;
|
||||||
|
saved_feedrate2 = feedrate;
|
||||||
|
}
|
||||||
|
|
||||||
planner_abort_hard(); //abort printing
|
planner_abort_hard(); //abort printing
|
||||||
memcpy(saved_pos, current_position, sizeof(saved_pos));
|
memcpy(saved_pos, current_position, sizeof(saved_pos));
|
||||||
|
saved_feedmultiply2 = feedmultiply; //save feedmultiply
|
||||||
saved_active_extruder = active_extruder; //save active_extruder
|
saved_active_extruder = active_extruder; //save active_extruder
|
||||||
saved_extruder_temperature = degTargetHotend(active_extruder);
|
saved_extruder_temperature = degTargetHotend(active_extruder);
|
||||||
|
|
||||||
@ -10126,7 +10243,9 @@ void stop_and_save_print_to_ram(float z_move, float e_move)
|
|||||||
sei();
|
sei();
|
||||||
if ((z_move != 0) || (e_move != 0)) { // extruder or z move
|
if ((z_move != 0) || (e_move != 0)) { // extruder or z move
|
||||||
#if 1
|
#if 1
|
||||||
// Rather than calling plan_buffer_line directly, push the move into the command queue,
|
// Rather than calling plan_buffer_line directly, push the move into the command queue so that
|
||||||
|
// the caller can continue processing. This is used during powerpanic to save the state as we
|
||||||
|
// move away from the print.
|
||||||
char buf[48];
|
char buf[48];
|
||||||
|
|
||||||
// First unretract (relative extrusion)
|
// First unretract (relative extrusion)
|
||||||
@ -10155,6 +10274,7 @@ void stop_and_save_print_to_ram(float z_move, float e_move)
|
|||||||
memcpy(current_position, saved_pos, sizeof(saved_pos));
|
memcpy(current_position, saved_pos, sizeof(saved_pos));
|
||||||
memcpy(destination, current_position, sizeof(destination));
|
memcpy(destination, current_position, sizeof(destination));
|
||||||
#endif
|
#endif
|
||||||
|
waiting_inside_plan_buffer_line_print_aborted = true; //unroll the stack
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -10188,7 +10308,6 @@ void restore_print_from_ram_and_continue(float e_move)
|
|||||||
wait_for_heater(_millis(), saved_active_extruder);
|
wait_for_heater(_millis(), saved_active_extruder);
|
||||||
heating_status = 2;
|
heating_status = 2;
|
||||||
}
|
}
|
||||||
feedrate = saved_feedrate2; //restore feedrate
|
|
||||||
axis_relative_modes[E_AXIS] = saved_extruder_relative_mode;
|
axis_relative_modes[E_AXIS] = saved_extruder_relative_mode;
|
||||||
float e = saved_pos[E_AXIS] - e_move;
|
float e = saved_pos[E_AXIS] - e_move;
|
||||||
plan_set_e_position(e);
|
plan_set_e_position(e);
|
||||||
@ -10211,6 +10330,10 @@ void restore_print_from_ram_and_continue(float e_move)
|
|||||||
fans_check_enabled = true;
|
fans_check_enabled = true;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// restore original feedrate/feedmultiply _after_ restoring the extruder position
|
||||||
|
feedrate = saved_feedrate2;
|
||||||
|
feedmultiply = saved_feedmultiply2;
|
||||||
|
|
||||||
memcpy(current_position, saved_pos, sizeof(saved_pos));
|
memcpy(current_position, saved_pos, sizeof(saved_pos));
|
||||||
memcpy(destination, current_position, sizeof(destination));
|
memcpy(destination, current_position, sizeof(destination));
|
||||||
if (saved_printing_type == PRINTING_TYPE_SD) { //was sd printing
|
if (saved_printing_type == PRINTING_TYPE_SD) { //was sd printing
|
||||||
@ -10226,10 +10349,20 @@ void restore_print_from_ram_and_continue(float e_move)
|
|||||||
else {
|
else {
|
||||||
//not sd printing nor usb printing
|
//not sd printing nor usb printing
|
||||||
}
|
}
|
||||||
|
|
||||||
SERIAL_PROTOCOLLNRPGM(MSG_OK); //dummy response because of octoprint is waiting for this
|
SERIAL_PROTOCOLLNRPGM(MSG_OK); //dummy response because of octoprint is waiting for this
|
||||||
lcd_setstatuspgm(_T(WELCOME_MSG));
|
lcd_setstatuspgm(_T(WELCOME_MSG));
|
||||||
saved_printing_type = PRINTING_TYPE_NONE;
|
saved_printing_type = PRINTING_TYPE_NONE;
|
||||||
saved_printing = false;
|
saved_printing = false;
|
||||||
|
waiting_inside_plan_buffer_line_print_aborted = true; //unroll the stack
|
||||||
|
}
|
||||||
|
|
||||||
|
// Cancel the state related to a currently saved print
|
||||||
|
void cancel_saved_printing()
|
||||||
|
{
|
||||||
|
saved_target[0] = SAVED_TARGET_UNSET;
|
||||||
|
saved_printing_type = PRINTING_TYPE_NONE;
|
||||||
|
saved_printing = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
void print_world_coordinates()
|
void print_world_coordinates()
|
||||||
|
@ -319,6 +319,22 @@ bool Sd2Card::init(uint8_t sckRateID, uint8_t chipSelectPin) {
|
|||||||
goto fail;
|
goto fail;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// send 0xFF until 0xFF received to give card some clock cycles
|
||||||
|
t0 = (uint16_t)_millis();
|
||||||
|
SERIAL_ECHOLNRPGM(PSTR("Sending 0xFF"));
|
||||||
|
spiSend(0XFF);
|
||||||
|
while ((status_ = spiRec()) != 0xFF)
|
||||||
|
{
|
||||||
|
spiSend(0XFF);
|
||||||
|
if (((uint16_t)_millis() - t0) > SD_CARD_ERROR_FF_TIMEOUT)
|
||||||
|
{
|
||||||
|
error(SD_CARD_ERROR_CMD8);
|
||||||
|
SERIAL_ECHOLNRPGM(PSTR("No 0xFF received"));
|
||||||
|
goto fail;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// check SD version
|
// check SD version
|
||||||
if ((cardCommand(CMD8, 0x1AA) & R1_ILLEGAL_COMMAND)) {
|
if ((cardCommand(CMD8, 0x1AA) & R1_ILLEGAL_COMMAND)) {
|
||||||
type(SD_CARD_TYPE_SD1);
|
type(SD_CARD_TYPE_SD1);
|
||||||
|
@ -105,6 +105,8 @@ uint8_t const SD_CARD_ERROR_SCK_RATE = 0X18;
|
|||||||
uint8_t const SD_CARD_ERROR_INIT_NOT_CALLED = 0X19;
|
uint8_t const SD_CARD_ERROR_INIT_NOT_CALLED = 0X19;
|
||||||
/** crc check error */
|
/** crc check error */
|
||||||
uint8_t const SD_CARD_ERROR_CRC = 0X20;
|
uint8_t const SD_CARD_ERROR_CRC = 0X20;
|
||||||
|
/** no response to sent 0xFF */
|
||||||
|
uint8_t const SD_CARD_ERROR_FF_TIMEOUT = 0X21;
|
||||||
|
|
||||||
/** Toshiba FlashAir: iSDIO */
|
/** Toshiba FlashAir: iSDIO */
|
||||||
uint8_t const SD_CARD_ERROR_CMD48 = 0x80;
|
uint8_t const SD_CARD_ERROR_CMD48 = 0x80;
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <avr/io.h>
|
#include <avr/io.h>
|
||||||
#include <avr/pgmspace.h>
|
#include <avr/pgmspace.h>
|
||||||
|
#include "pins.h"
|
||||||
|
|
||||||
uint8_t adc_state;
|
uint8_t adc_state;
|
||||||
uint8_t adc_count;
|
uint8_t adc_count;
|
||||||
@ -24,8 +25,8 @@ void adc_init(void)
|
|||||||
ADMUX |= (1 << REFS0);
|
ADMUX |= (1 << REFS0);
|
||||||
ADCSRA |= (1 << ADEN);
|
ADCSRA |= (1 << ADEN);
|
||||||
// ADCSRA |= (1 << ADIF) | (1 << ADSC);
|
// ADCSRA |= (1 << ADIF) | (1 << ADSC);
|
||||||
DIDR0 = (ADC_CHAN_MSK & 0xff);
|
DIDR0 = ((ADC_CHAN_MSK & ADC_DIDR_MSK) & 0xff);
|
||||||
DIDR2 = (ADC_CHAN_MSK >> 8);
|
DIDR2 = ((ADC_CHAN_MSK & ADC_DIDR_MSK) >> 8);
|
||||||
adc_reset();
|
adc_reset();
|
||||||
// adc_sim_mask = 0b0101;
|
// adc_sim_mask = 0b0101;
|
||||||
// adc_sim_mask = 0b100101;
|
// adc_sim_mask = 0b100101;
|
||||||
|
120
Firmware/backlight.cpp
Normal file
120
Firmware/backlight.cpp
Normal file
@ -0,0 +1,120 @@
|
|||||||
|
//backlight.cpp
|
||||||
|
|
||||||
|
#include "backlight.h"
|
||||||
|
#include <avr/eeprom.h>
|
||||||
|
#include <Arduino.h>
|
||||||
|
#include "eeprom.h"
|
||||||
|
#include "Marlin.h"
|
||||||
|
#include "pins.h"
|
||||||
|
#include "fastio.h"
|
||||||
|
#include "Timer.h"
|
||||||
|
|
||||||
|
#ifdef LCD_BL_PIN
|
||||||
|
|
||||||
|
#define BL_FLASH_DELAY_MS 25
|
||||||
|
|
||||||
|
bool backlightSupport = 0; //only if it's true will any of the settings be visible to the user
|
||||||
|
int16_t backlightLevel_HIGH = 0;
|
||||||
|
int16_t backlightLevel_LOW = 0;
|
||||||
|
uint8_t backlightMode = BACKLIGHT_MODE_BRIGHT;
|
||||||
|
int16_t backlightTimer_period = 10;
|
||||||
|
LongTimer backlightTimer;
|
||||||
|
|
||||||
|
static void backlightTimer_reset() //used for resetting the timer and waking the display. Triggered on user interactions.
|
||||||
|
{
|
||||||
|
if (!backlightSupport) return;
|
||||||
|
backlightTimer.start();
|
||||||
|
backlight_update();
|
||||||
|
}
|
||||||
|
|
||||||
|
void force_bl_on(bool section_start)
|
||||||
|
{
|
||||||
|
if (section_start)
|
||||||
|
{
|
||||||
|
backlightMode = BACKLIGHT_MODE_BRIGHT;
|
||||||
|
if (backlightLevel_HIGH < 30) backlightLevel_HIGH = 30;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
backlightMode = eeprom_read_byte((uint8_t *)EEPROM_BACKLIGHT_MODE);
|
||||||
|
backlightLevel_HIGH = eeprom_read_byte((uint8_t *)EEPROM_BACKLIGHT_LEVEL_HIGH);
|
||||||
|
}
|
||||||
|
backlight_update();
|
||||||
|
}
|
||||||
|
|
||||||
|
void backlight_wake(const uint8_t flashNo)
|
||||||
|
{
|
||||||
|
if (!backlightSupport) return;
|
||||||
|
|
||||||
|
if (flashNo)
|
||||||
|
{
|
||||||
|
uint8_t backlightMode_bck = backlightMode;
|
||||||
|
for (uint8_t i = 0; i < (((backlightMode_bck == BACKLIGHT_MODE_AUTO) && !backlightTimer.running()) + (flashNo * 2)); i++)
|
||||||
|
{
|
||||||
|
backlightMode = !backlightMode; //toggles between BACKLIGHT_MODE_BRIGHT and BACKLIGHT_MODE_DIM
|
||||||
|
backlight_update();
|
||||||
|
_delay(BL_FLASH_DELAY_MS);
|
||||||
|
}
|
||||||
|
backlightMode = backlightMode_bck;
|
||||||
|
}
|
||||||
|
backlightTimer_reset();
|
||||||
|
}
|
||||||
|
|
||||||
|
void backlight_save() //saves all backlight data to eeprom.
|
||||||
|
{
|
||||||
|
eeprom_update_byte((uint8_t *)EEPROM_BACKLIGHT_LEVEL_HIGH, (uint8_t)backlightLevel_HIGH);
|
||||||
|
eeprom_update_byte((uint8_t *)EEPROM_BACKLIGHT_LEVEL_LOW, (uint8_t)backlightLevel_LOW);
|
||||||
|
eeprom_update_byte((uint8_t *)EEPROM_BACKLIGHT_MODE, backlightMode);
|
||||||
|
eeprom_update_word((uint16_t *)EEPROM_BACKLIGHT_TIMEOUT, backlightTimer_period);
|
||||||
|
}
|
||||||
|
|
||||||
|
void backlight_update()
|
||||||
|
{
|
||||||
|
if (!backlightSupport) return;
|
||||||
|
|
||||||
|
if (backlightMode == BACKLIGHT_MODE_AUTO)
|
||||||
|
{
|
||||||
|
if (backlightTimer.expired((uint32_t)backlightTimer_period * 1000ul)) analogWrite(LCD_BL_PIN, backlightLevel_LOW);
|
||||||
|
else if (backlightTimer.running()) analogWrite(LCD_BL_PIN, backlightLevel_HIGH);
|
||||||
|
else {/*do nothing*/;} //display is dimmed.
|
||||||
|
}
|
||||||
|
else if (backlightMode == BACKLIGHT_MODE_DIM) analogWrite(LCD_BL_PIN, backlightLevel_LOW);
|
||||||
|
else analogWrite(LCD_BL_PIN, backlightLevel_HIGH);
|
||||||
|
}
|
||||||
|
|
||||||
|
void backlight_init()
|
||||||
|
{
|
||||||
|
//check for backlight support on lcd
|
||||||
|
SET_INPUT(LCD_BL_PIN);
|
||||||
|
WRITE(LCD_BL_PIN,HIGH);
|
||||||
|
_delay(10);
|
||||||
|
backlightSupport = !READ(LCD_BL_PIN);
|
||||||
|
if (!backlightSupport) return;
|
||||||
|
|
||||||
|
//initialize backlight
|
||||||
|
backlightMode = eeprom_read_byte((uint8_t *)EEPROM_BACKLIGHT_MODE);
|
||||||
|
if (backlightMode == 0xFF) //set default values
|
||||||
|
{
|
||||||
|
backlightMode = BACKLIGHT_MODE_AUTO;
|
||||||
|
backlightLevel_HIGH = 130;
|
||||||
|
backlightLevel_LOW = 50;
|
||||||
|
backlightTimer_period = 10; //in seconds
|
||||||
|
backlight_save();
|
||||||
|
}
|
||||||
|
backlightLevel_HIGH = eeprom_read_byte((uint8_t *)EEPROM_BACKLIGHT_LEVEL_HIGH);
|
||||||
|
backlightLevel_LOW = eeprom_read_byte((uint8_t *)EEPROM_BACKLIGHT_LEVEL_LOW);
|
||||||
|
backlightTimer_period = eeprom_read_word((uint16_t *)EEPROM_BACKLIGHT_TIMEOUT);
|
||||||
|
|
||||||
|
SET_OUTPUT(LCD_BL_PIN);
|
||||||
|
backlightTimer_reset();
|
||||||
|
}
|
||||||
|
|
||||||
|
#else //LCD_BL_PIN
|
||||||
|
|
||||||
|
void force_bl_on(__attribute__((unused)) bool section_start) {}
|
||||||
|
void backlight_update() {}
|
||||||
|
void backlight_init() {}
|
||||||
|
void backlight_save() {}
|
||||||
|
void backlight_wake(__attribute__((unused)) const uint8_t flashNo) {}
|
||||||
|
|
||||||
|
#endif //LCD_BL_PIN
|
32
Firmware/backlight.h
Normal file
32
Firmware/backlight.h
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
//backlight.h
|
||||||
|
#ifndef _BACKLIGHT_H
|
||||||
|
#define _BACKLIGHT_H
|
||||||
|
|
||||||
|
#include <inttypes.h>
|
||||||
|
#include "Marlin.h"
|
||||||
|
#include "pins.h"
|
||||||
|
|
||||||
|
enum Backlight_Mode
|
||||||
|
{
|
||||||
|
BACKLIGHT_MODE_DIM = 0,
|
||||||
|
BACKLIGHT_MODE_BRIGHT = 1,
|
||||||
|
BACKLIGHT_MODE_AUTO = 2,
|
||||||
|
};
|
||||||
|
|
||||||
|
extern int16_t backlightLevel_HIGH;
|
||||||
|
extern int16_t backlightLevel_LOW;
|
||||||
|
extern uint8_t backlightMode;
|
||||||
|
extern bool backlightSupport;
|
||||||
|
extern int16_t backlightTimer_period;
|
||||||
|
|
||||||
|
#define FORCE_BL_ON_START force_bl_on(true)
|
||||||
|
#define FORCE_BL_ON_END force_bl_on(false)
|
||||||
|
|
||||||
|
extern void force_bl_on(bool section_start);
|
||||||
|
extern void backlight_update();
|
||||||
|
extern void backlight_init();
|
||||||
|
extern void backlight_save();
|
||||||
|
extern void backlight_wake(const uint8_t flashNo = 0);
|
||||||
|
|
||||||
|
|
||||||
|
#endif //_BACKLIGHT_H
|
@ -25,7 +25,6 @@ CardReader::CardReader()
|
|||||||
sdpos = 0;
|
sdpos = 0;
|
||||||
sdprinting = false;
|
sdprinting = false;
|
||||||
cardOK = false;
|
cardOK = false;
|
||||||
paused = false;
|
|
||||||
saving = false;
|
saving = false;
|
||||||
logging = false;
|
logging = false;
|
||||||
autostart_atmillis=0;
|
autostart_atmillis=0;
|
||||||
@ -137,8 +136,8 @@ void CardReader::lsDive(const char *prepend, SdFile parent, const char * const m
|
|||||||
SERIAL_ECHOPGM("Access date: ");
|
SERIAL_ECHOPGM("Access date: ");
|
||||||
MYSERIAL.println(p.lastAccessDate);
|
MYSERIAL.println(p.lastAccessDate);
|
||||||
SERIAL_ECHOLNPGM("");*/
|
SERIAL_ECHOLNPGM("");*/
|
||||||
creationDate = p.creationDate;
|
modificationDate = p.lastWriteDate;
|
||||||
creationTime = p.creationTime;
|
modificationTime = p.lastWriteTime;
|
||||||
//writeDate = p.lastAccessDate;
|
//writeDate = p.lastAccessDate;
|
||||||
if (match != NULL) {
|
if (match != NULL) {
|
||||||
if (strcasecmp(match, filename) == 0) return;
|
if (strcasecmp(match, filename) == 0) return;
|
||||||
@ -242,24 +241,13 @@ void CardReader::startFileprint()
|
|||||||
if(cardOK)
|
if(cardOK)
|
||||||
{
|
{
|
||||||
sdprinting = true;
|
sdprinting = true;
|
||||||
paused = false;
|
Stopped = false;
|
||||||
Stopped = false;
|
|
||||||
#ifdef SDCARD_SORT_ALPHA
|
#ifdef SDCARD_SORT_ALPHA
|
||||||
//flush_presort();
|
//flush_presort();
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void CardReader::pauseSDPrint()
|
|
||||||
{
|
|
||||||
if(sdprinting)
|
|
||||||
{
|
|
||||||
sdprinting = false;
|
|
||||||
paused = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void CardReader::openLogFile(const char* name)
|
void CardReader::openLogFile(const char* name)
|
||||||
{
|
{
|
||||||
logging = true;
|
logging = true;
|
||||||
@ -371,10 +359,10 @@ void CardReader::openFile(const char* name,bool read, bool replace_current/*=tru
|
|||||||
{
|
{
|
||||||
if((int)file_subcall_ctr>(int)SD_PROCEDURE_DEPTH-1)
|
if((int)file_subcall_ctr>(int)SD_PROCEDURE_DEPTH-1)
|
||||||
{
|
{
|
||||||
SERIAL_ERROR_START;
|
// SERIAL_ERROR_START;
|
||||||
SERIAL_ERRORPGM("trying to call sub-gcode files with too many levels. MAX level is:");
|
// SERIAL_ERRORPGM("trying to call sub-gcode files with too many levels. MAX level is:");
|
||||||
SERIAL_ERRORLN(SD_PROCEDURE_DEPTH);
|
// SERIAL_ERRORLN(SD_PROCEDURE_DEPTH);
|
||||||
kill("", 1);
|
kill(_n("trying to call sub-gcode files with too many levels."), 1);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -408,9 +396,7 @@ void CardReader::openFile(const char* name,bool read, bool replace_current/*=tru
|
|||||||
SERIAL_ECHOLN(name);
|
SERIAL_ECHOLN(name);
|
||||||
}
|
}
|
||||||
sdprinting = false;
|
sdprinting = false;
|
||||||
paused = false;
|
|
||||||
|
|
||||||
|
|
||||||
SdFile myDir;
|
SdFile myDir;
|
||||||
const char *fname=name;
|
const char *fname=name;
|
||||||
diveSubfolder(fname,myDir);
|
diveSubfolder(fname,myDir);
|
||||||
@ -492,24 +478,27 @@ uint32_t CardReader::getFileSize()
|
|||||||
|
|
||||||
void CardReader::getStatus()
|
void CardReader::getStatus()
|
||||||
{
|
{
|
||||||
if(sdprinting){
|
if(sdprinting)
|
||||||
SERIAL_PROTOCOL(longFilename);
|
{
|
||||||
SERIAL_PROTOCOLPGM("\n");
|
if (isPrintPaused) {
|
||||||
SERIAL_PROTOCOLRPGM(_N("SD printing byte "));////MSG_SD_PRINTING_BYTE
|
SERIAL_PROTOCOLLNPGM("SD print paused");
|
||||||
SERIAL_PROTOCOL(sdpos);
|
}
|
||||||
SERIAL_PROTOCOLPGM("/");
|
else if (saved_printing) {
|
||||||
SERIAL_PROTOCOLLN(filesize);
|
SERIAL_PROTOCOLLNPGM("Print saved");
|
||||||
uint16_t time = _millis()/60000 - starttime/60000;
|
}
|
||||||
SERIAL_PROTOCOL(itostr2(time/60));
|
else {
|
||||||
SERIAL_PROTOCOL(':');
|
SERIAL_PROTOCOL(longFilename);
|
||||||
SERIAL_PROTOCOL(itostr2(time%60));
|
SERIAL_PROTOCOLPGM("\n");
|
||||||
SERIAL_PROTOCOLPGM("\n");
|
SERIAL_PROTOCOLRPGM(_N("SD printing byte "));////MSG_SD_PRINTING_BYTE
|
||||||
}
|
SERIAL_PROTOCOL(sdpos);
|
||||||
else if (paused) {
|
SERIAL_PROTOCOLPGM("/");
|
||||||
SERIAL_PROTOCOLLNPGM("SD print paused");
|
SERIAL_PROTOCOLLN(filesize);
|
||||||
}
|
uint16_t time = _millis()/60000 - starttime/60000;
|
||||||
else if (saved_printing) {
|
SERIAL_PROTOCOL(itostr2(time/60));
|
||||||
SERIAL_PROTOCOLLNPGM("Print saved");
|
SERIAL_PROTOCOL(':');
|
||||||
|
SERIAL_PROTOCOL(itostr2(time%60));
|
||||||
|
SERIAL_PROTOCOLPGM("\n");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
SERIAL_PROTOCOLLNPGM("Not SD printing");
|
SERIAL_PROTOCOLLNPGM("Not SD printing");
|
||||||
@ -763,8 +752,8 @@ void CardReader::presort() {
|
|||||||
#endif
|
#endif
|
||||||
#elif SDSORT_USES_STACK
|
#elif SDSORT_USES_STACK
|
||||||
char sortnames[fileCnt][LONG_FILENAME_LENGTH];
|
char sortnames[fileCnt][LONG_FILENAME_LENGTH];
|
||||||
uint16_t creation_time[fileCnt];
|
uint16_t modification_time[fileCnt];
|
||||||
uint16_t creation_date[fileCnt];
|
uint16_t modification_date[fileCnt];
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Folder sorting needs 1 bit per entry for flags.
|
// Folder sorting needs 1 bit per entry for flags.
|
||||||
@ -784,8 +773,8 @@ void CardReader::presort() {
|
|||||||
// retaining only two filenames at a time. This is very
|
// retaining only two filenames at a time. This is very
|
||||||
// slow but is safest and uses minimal RAM.
|
// slow but is safest and uses minimal RAM.
|
||||||
char name1[LONG_FILENAME_LENGTH + 1];
|
char name1[LONG_FILENAME_LENGTH + 1];
|
||||||
uint16_t creation_time_bckp;
|
uint16_t modification_time_bckp;
|
||||||
uint16_t creation_date_bckp;
|
uint16_t modification_date_bckp;
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
position = 0;
|
position = 0;
|
||||||
@ -811,8 +800,8 @@ void CardReader::presort() {
|
|||||||
#else
|
#else
|
||||||
// Copy filenames into the static array
|
// Copy filenames into the static array
|
||||||
strcpy(sortnames[i], LONGEST_FILENAME);
|
strcpy(sortnames[i], LONGEST_FILENAME);
|
||||||
creation_time[i] = creationTime;
|
modification_time[i] = modificationTime;
|
||||||
creation_date[i] = creationDate;
|
modification_date[i] = modificationDate;
|
||||||
#if SDSORT_CACHE_NAMES
|
#if SDSORT_CACHE_NAMES
|
||||||
strcpy(sortshort[i], filename);
|
strcpy(sortshort[i], filename);
|
||||||
#endif
|
#endif
|
||||||
@ -837,12 +826,12 @@ void CardReader::presort() {
|
|||||||
// Compare names from the array or just the two buffered names
|
// Compare names from the array or just the two buffered names
|
||||||
#if SDSORT_USES_RAM
|
#if SDSORT_USES_RAM
|
||||||
#define _SORT_CMP_NODIR() (strcasecmp(sortnames[o1], sortnames[o2]) > 0)
|
#define _SORT_CMP_NODIR() (strcasecmp(sortnames[o1], sortnames[o2]) > 0)
|
||||||
#define _SORT_CMP_TIME_NODIR() (((creation_date[o1] == creation_date[o2]) && (creation_time[o1] < creation_time[o2])) || \
|
#define _SORT_CMP_TIME_NODIR() (((modification_date[o1] == modification_date[o2]) && (modification_time[o1] < modification_time[o2])) || \
|
||||||
(creation_date[o1] < creation_date [o2]))
|
(modification_date[o1] < modification_date [o2]))
|
||||||
#else
|
#else
|
||||||
#define _SORT_CMP_NODIR() (strcasecmp(name1, name2) > 0) //true if lowercase(name1) > lowercase(name2)
|
#define _SORT_CMP_NODIR() (strcasecmp(name1, name2) > 0) //true if lowercase(name1) > lowercase(name2)
|
||||||
#define _SORT_CMP_TIME_NODIR() (((creation_date_bckp == creationDate) && (creation_time_bckp > creationTime)) || \
|
#define _SORT_CMP_TIME_NODIR() (((modification_date_bckp == modificationDate) && (modification_time_bckp > modificationTime)) || \
|
||||||
(creation_date_bckp > creationDate))
|
(modification_date_bckp > modificationDate))
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -893,8 +882,8 @@ void CardReader::presort() {
|
|||||||
counter++;
|
counter++;
|
||||||
getfilename_simple(positions[o1]);
|
getfilename_simple(positions[o1]);
|
||||||
strcpy(name1, LONGEST_FILENAME); // save (or getfilename below will trounce it)
|
strcpy(name1, LONGEST_FILENAME); // save (or getfilename below will trounce it)
|
||||||
creation_date_bckp = creationDate;
|
modification_date_bckp = modificationDate;
|
||||||
creation_time_bckp = creationTime;
|
modification_time_bckp = modificationTime;
|
||||||
#if HAS_FOLDER_SORTING
|
#if HAS_FOLDER_SORTING
|
||||||
bool dir1 = filenameIsDir;
|
bool dir1 = filenameIsDir;
|
||||||
#endif
|
#endif
|
||||||
|
@ -25,7 +25,6 @@ public:
|
|||||||
void closefile(bool store_location=false);
|
void closefile(bool store_location=false);
|
||||||
void release();
|
void release();
|
||||||
void startFileprint();
|
void startFileprint();
|
||||||
void pauseSDPrint();
|
|
||||||
uint32_t getFileSize();
|
uint32_t getFileSize();
|
||||||
void getStatus();
|
void getStatus();
|
||||||
void printingHasFinished();
|
void printingHasFinished();
|
||||||
@ -75,9 +74,8 @@ public:
|
|||||||
bool logging;
|
bool logging;
|
||||||
bool sdprinting ;
|
bool sdprinting ;
|
||||||
bool cardOK ;
|
bool cardOK ;
|
||||||
bool paused ;
|
|
||||||
char filename[13];
|
char filename[13];
|
||||||
uint16_t creationTime, creationDate;
|
uint16_t modificationTime, modificationDate;
|
||||||
uint32_t cluster, position;
|
uint32_t cluster, position;
|
||||||
char longFilename[LONG_FILENAME_LENGTH];
|
char longFilename[LONG_FILENAME_LENGTH];
|
||||||
bool filenameIsDir;
|
bool filenameIsDir;
|
||||||
@ -114,8 +112,8 @@ private:
|
|||||||
#endif
|
#endif
|
||||||
#elif !SDSORT_USES_STACK
|
#elif !SDSORT_USES_STACK
|
||||||
char sortnames[SDSORT_LIMIT][FILENAME_LENGTH];
|
char sortnames[SDSORT_LIMIT][FILENAME_LENGTH];
|
||||||
uint16_t creation_time[SDSORT_LIMIT];
|
uint16_t modification_time[SDSORT_LIMIT];
|
||||||
uint16_t creation_date[SDSORT_LIMIT];
|
uint16_t modification_date[SDSORT_LIMIT];
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Folder sorting uses an isDir array when caching items.
|
// Folder sorting uses an isDir array when caching items.
|
||||||
|
@ -500,7 +500,7 @@ void get_command()
|
|||||||
|
|
||||||
//If command was e-stop process now
|
//If command was e-stop process now
|
||||||
if(strcmp(cmdbuffer+bufindw+CMDHDRSIZE, "M112") == 0)
|
if(strcmp(cmdbuffer+bufindw+CMDHDRSIZE, "M112") == 0)
|
||||||
kill("", 2);
|
kill(MSG_M112_KILL, 2);
|
||||||
|
|
||||||
// Store the current line into buffer, move to the next line.
|
// Store the current line into buffer, move to the next line.
|
||||||
// Store type of entry
|
// Store type of entry
|
||||||
@ -582,30 +582,8 @@ void get_command()
|
|||||||
((serial_char == '#' || serial_char == ':') && comment_mode == false) ||
|
((serial_char == '#' || serial_char == ':') && comment_mode == false) ||
|
||||||
serial_count >= (MAX_CMD_SIZE - 1) || n==-1)
|
serial_count >= (MAX_CMD_SIZE - 1) || n==-1)
|
||||||
{
|
{
|
||||||
if(card.eof()){
|
if(card.eof()) break;
|
||||||
SERIAL_PROTOCOLLNRPGM(_n("Done printing file"));////MSG_FILE_PRINTED
|
|
||||||
stoptime=_millis();
|
|
||||||
char time[30];
|
|
||||||
unsigned long t=(stoptime-starttime-pause_time)/1000;
|
|
||||||
pause_time = 0;
|
|
||||||
int hours, minutes;
|
|
||||||
minutes=(t/60)%60;
|
|
||||||
hours=t/60/60;
|
|
||||||
save_statistics(total_filament_used, t);
|
|
||||||
sprintf_P(time, PSTR("%i hours %i minutes"),hours, minutes);
|
|
||||||
SERIAL_ECHO_START;
|
|
||||||
SERIAL_ECHOLN(time);
|
|
||||||
lcd_setstatus(time);
|
|
||||||
card.printingHasFinished();
|
|
||||||
card.checkautostart(true);
|
|
||||||
|
|
||||||
if (farm_mode)
|
|
||||||
{
|
|
||||||
prusa_statistics(6);
|
|
||||||
lcd_commands_type = LcdCommands::FarmModeConfirm;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
if(serial_char=='#')
|
if(serial_char=='#')
|
||||||
stop_buffering=true;
|
stop_buffering=true;
|
||||||
|
|
||||||
@ -663,6 +641,37 @@ void get_command()
|
|||||||
else if(!comment_mode) cmdbuffer[bufindw+CMDHDRSIZE+serial_count++] = serial_char;
|
else if(!comment_mode) cmdbuffer[bufindw+CMDHDRSIZE+serial_count++] = serial_char;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if(card.eof())
|
||||||
|
{
|
||||||
|
// file was fully buffered, but commands might still need to be planned!
|
||||||
|
// do *not* clear sdprinting until all SD commands are consumed to ensure
|
||||||
|
// SD state can be resumed from a saved printing state. sdprinting is only
|
||||||
|
// cleared by printingHasFinished after peforming all remaining moves.
|
||||||
|
if(!cmdqueue_calc_sd_length())
|
||||||
|
{
|
||||||
|
SERIAL_PROTOCOLLNRPGM(_n("Done printing file"));////MSG_FILE_PRINTED
|
||||||
|
stoptime=_millis();
|
||||||
|
char time[30];
|
||||||
|
unsigned long t=(stoptime-starttime-pause_time)/1000;
|
||||||
|
pause_time = 0;
|
||||||
|
int hours, minutes;
|
||||||
|
minutes=(t/60)%60;
|
||||||
|
hours=t/60/60;
|
||||||
|
save_statistics(total_filament_used, t);
|
||||||
|
sprintf_P(time, PSTR("%i hours %i minutes"),hours, minutes);
|
||||||
|
SERIAL_ECHO_START;
|
||||||
|
SERIAL_ECHOLN(time);
|
||||||
|
lcd_setstatus(time);
|
||||||
|
card.printingHasFinished();
|
||||||
|
card.checkautostart(true);
|
||||||
|
|
||||||
|
if (farm_mode)
|
||||||
|
{
|
||||||
|
prusa_statistics(6);
|
||||||
|
lcd_commands_type = LcdCommands::FarmModeConfirm;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#endif //SDSUPPORT
|
#endif //SDSUPPORT
|
||||||
}
|
}
|
||||||
|
@ -2,9 +2,21 @@
|
|||||||
#define _CONFIG_H
|
#define _CONFIG_H
|
||||||
|
|
||||||
|
|
||||||
|
#include "Configuration_prusa.h"
|
||||||
|
#include "pins.h"
|
||||||
|
|
||||||
|
#define IR_SENSOR_ANALOG (defined(VOLT_IR_PIN) && defined(IR_SENSOR))
|
||||||
|
|
||||||
//ADC configuration
|
//ADC configuration
|
||||||
|
#if !IR_SENSOR_ANALOG
|
||||||
#define ADC_CHAN_MSK 0b0000001001011111 //used AD channels bit mask (0,1,2,3,4,6,9)
|
#define ADC_CHAN_MSK 0b0000001001011111 //used AD channels bit mask (0,1,2,3,4,6,9)
|
||||||
|
#define ADC_DIDR_MSK 0b0000001001011111 //AD channels DIDR mask (1 ~ disabled digital input)
|
||||||
#define ADC_CHAN_CNT 7 //number of used channels)
|
#define ADC_CHAN_CNT 7 //number of used channels)
|
||||||
|
#else //!IR_SENSOR_ANALOG
|
||||||
|
#define ADC_CHAN_MSK 0b0000001101011111 //used AD channels bit mask (0,1,2,3,4,6,8,9)
|
||||||
|
#define ADC_DIDR_MSK 0b0000001001011111 //AD channels DIDR mask (1 ~ disabled digital input)
|
||||||
|
#define ADC_CHAN_CNT 8 //number of used channels)
|
||||||
|
#endif //!IR_SENSOR_ANALOG
|
||||||
#define ADC_OVRSAMPL 16 //oversampling multiplier
|
#define ADC_OVRSAMPL 16 //oversampling multiplier
|
||||||
#define ADC_CALLBACK adc_ready //callback function ()
|
#define ADC_CALLBACK adc_ready //callback function ()
|
||||||
|
|
||||||
@ -42,11 +54,8 @@
|
|||||||
#define W25X20CL_SPCR SPI_SPCR(W25X20CL_SPI_RATE, 1, 1, 1, 0)
|
#define W25X20CL_SPCR SPI_SPCR(W25X20CL_SPI_RATE, 1, 1, 1, 0)
|
||||||
#define W25X20CL_SPSR SPI_SPSR(W25X20CL_SPI_RATE)
|
#define W25X20CL_SPSR SPI_SPSR(W25X20CL_SPI_RATE)
|
||||||
|
|
||||||
#include "boards.h"
|
|
||||||
#include "Configuration_prusa.h"
|
|
||||||
|
|
||||||
//LANG - Multi-language support
|
//LANG - Multi-language support
|
||||||
//#define LANG_MODE 0 // primary language only
|
//define LANG_MODE 0 // primary language only
|
||||||
#define LANG_MODE 1 // sec. language support
|
#define LANG_MODE 1 // sec. language support
|
||||||
|
|
||||||
#define LANG_SIZE_RESERVED 0x3000 // reserved space for secondary language (12288 bytes)
|
#define LANG_SIZE_RESERVED 0x3000 // reserved space for secondary language (12288 bytes)
|
||||||
|
@ -74,7 +74,7 @@ static_assert(sizeof(Sheets) == EEPROM_SHEETS_SIZEOF, "Sizeof(Sheets) is not EEP
|
|||||||
#define EEPROM_UVLO_CURRENT_POSITION_Z (EEPROM_FILE_POSITION - 4) //float for current position in Z
|
#define EEPROM_UVLO_CURRENT_POSITION_Z (EEPROM_FILE_POSITION - 4) //float for current position in Z
|
||||||
#define EEPROM_UVLO_TARGET_HOTEND (EEPROM_UVLO_CURRENT_POSITION_Z - 1)
|
#define EEPROM_UVLO_TARGET_HOTEND (EEPROM_UVLO_CURRENT_POSITION_Z - 1)
|
||||||
#define EEPROM_UVLO_TARGET_BED (EEPROM_UVLO_TARGET_HOTEND - 1)
|
#define EEPROM_UVLO_TARGET_BED (EEPROM_UVLO_TARGET_HOTEND - 1)
|
||||||
#define EEPROM_UVLO_FEEDRATE (EEPROM_UVLO_TARGET_BED - 2)
|
#define EEPROM_UVLO_FEEDRATE (EEPROM_UVLO_TARGET_BED - 2) //uint16_t
|
||||||
#define EEPROM_UVLO_FAN_SPEED (EEPROM_UVLO_FEEDRATE - 1)
|
#define EEPROM_UVLO_FAN_SPEED (EEPROM_UVLO_FEEDRATE - 1)
|
||||||
#define EEPROM_FAN_CHECK_ENABLED (EEPROM_UVLO_FAN_SPEED - 1)
|
#define EEPROM_FAN_CHECK_ENABLED (EEPROM_UVLO_FAN_SPEED - 1)
|
||||||
#define EEPROM_UVLO_MESH_BED_LEVELING (EEPROM_FAN_CHECK_ENABLED - 9*2)
|
#define EEPROM_UVLO_MESH_BED_LEVELING (EEPROM_FAN_CHECK_ENABLED - 9*2)
|
||||||
@ -201,9 +201,20 @@ static_assert(sizeof(Sheets) == EEPROM_SHEETS_SIZEOF, "Sizeof(Sheets) is not EEP
|
|||||||
#define EEPROM_SHEETS_BASE (EEPROM_CHECK_GCODE - EEPROM_SHEETS_SIZEOF) // Sheets
|
#define EEPROM_SHEETS_BASE (EEPROM_CHECK_GCODE - EEPROM_SHEETS_SIZEOF) // Sheets
|
||||||
static Sheets * const EEPROM_Sheets_base = (Sheets*)(EEPROM_SHEETS_BASE);
|
static Sheets * const EEPROM_Sheets_base = (Sheets*)(EEPROM_SHEETS_BASE);
|
||||||
|
|
||||||
|
#define EEPROM_FSENSOR_PCB (EEPROM_SHEETS_BASE-1) // uint8
|
||||||
|
#define EEPROM_FSENSOR_ACTION_NA (EEPROM_FSENSOR_PCB-1) // uint8
|
||||||
|
|
||||||
|
#define EEPROM_UVLO_SAVED_TARGET (EEPROM_FSENSOR_ACTION_NA - 4*4) // 4 x float for saved target for all axes
|
||||||
|
#define EEPROM_UVLO_FEEDMULTIPLY (EEPROM_UVLO_SAVED_TARGET - 2) // uint16_t for feedmultiply
|
||||||
|
|
||||||
|
#define EEPROM_BACKLIGHT_LEVEL_HIGH (EEPROM_UVLO_FEEDMULTIPLY-1) // uint8
|
||||||
|
#define EEPROM_BACKLIGHT_LEVEL_LOW (EEPROM_BACKLIGHT_LEVEL_HIGH-1) // uint8
|
||||||
|
#define EEPROM_BACKLIGHT_MODE (EEPROM_BACKLIGHT_LEVEL_LOW-1) // uint8
|
||||||
|
#define EEPROM_BACKLIGHT_TIMEOUT (EEPROM_BACKLIGHT_MODE-2) // uint16
|
||||||
|
|
||||||
|
|
||||||
//This is supposed to point to last item to allow EEPROM overrun check. Please update when adding new items.
|
//This is supposed to point to last item to allow EEPROM overrun check. Please update when adding new items.
|
||||||
#define EEPROM_LAST_ITEM EEPROM_SHEETS_BASE
|
#define EEPROM_LAST_ITEM EEPROM_BACKLIGHT_TIMEOUT
|
||||||
// !!!!!
|
// !!!!!
|
||||||
// !!!!! this is end of EEPROM section ... all updates MUST BE inserted before this mark !!!!!
|
// !!!!! this is end of EEPROM section ... all updates MUST BE inserted before this mark !!!!!
|
||||||
// !!!!!
|
// !!!!!
|
||||||
|
@ -15,6 +15,10 @@
|
|||||||
#include "mmu.h"
|
#include "mmu.h"
|
||||||
#include "cardreader.h"
|
#include "cardreader.h"
|
||||||
|
|
||||||
|
#include "adc.h"
|
||||||
|
#include "temperature.h"
|
||||||
|
#include "config.h"
|
||||||
|
|
||||||
//! @name Basic parameters
|
//! @name Basic parameters
|
||||||
//! @{
|
//! @{
|
||||||
#define FSENSOR_CHUNK_LEN 0.64F //!< filament sensor chunk length 0.64mm
|
#define FSENSOR_CHUNK_LEN 0.64F //!< filament sensor chunk length 0.64mm
|
||||||
@ -53,15 +57,8 @@ bool fsensor_enabled = true;
|
|||||||
bool fsensor_watch_runout = true;
|
bool fsensor_watch_runout = true;
|
||||||
//! not responding - is set if any communication error occurred during initialization or readout
|
//! not responding - is set if any communication error occurred during initialization or readout
|
||||||
bool fsensor_not_responding = false;
|
bool fsensor_not_responding = false;
|
||||||
//! printing saved
|
|
||||||
bool fsensor_printing_saved = false;
|
|
||||||
//! enable/disable quality meassurement
|
//! enable/disable quality meassurement
|
||||||
bool fsensor_oq_meassure_enabled = false;
|
bool fsensor_oq_meassure_enabled = false;
|
||||||
//! as explained in the CHECK_FSENSOR macro: this flag is set to true when fsensor posts
|
|
||||||
//! the M600 into the command queue, which elliminates the hazard of having posted multiple M600's
|
|
||||||
//! before the first one gets read and started processing.
|
|
||||||
//! Btw., the IR fsensor could do up to 6 posts before the command queue managed to start processing the first M600 ;)
|
|
||||||
static bool fsensor_m600_enqueued = false;
|
|
||||||
|
|
||||||
//! number of errors, updated in ISR
|
//! number of errors, updated in ISR
|
||||||
uint8_t fsensor_err_cnt = 0;
|
uint8_t fsensor_err_cnt = 0;
|
||||||
@ -117,6 +114,13 @@ int16_t fsensor_oq_yd_max;
|
|||||||
uint16_t fsensor_oq_sh_sum;
|
uint16_t fsensor_oq_sh_sum;
|
||||||
//! @}
|
//! @}
|
||||||
|
|
||||||
|
#if IR_SENSOR_ANALOG
|
||||||
|
ClFsensorPCB oFsensorPCB;
|
||||||
|
ClFsensorActionNA oFsensorActionNA;
|
||||||
|
bool bIRsensorStateFlag=false;
|
||||||
|
unsigned long nIRsensorLastTime;
|
||||||
|
#endif //IR_SENSOR_ANALOG
|
||||||
|
|
||||||
void fsensor_stop_and_save_print(void)
|
void fsensor_stop_and_save_print(void)
|
||||||
{
|
{
|
||||||
printf_P(PSTR("fsensor_stop_and_save_print\n"));
|
printf_P(PSTR("fsensor_stop_and_save_print\n"));
|
||||||
@ -126,20 +130,28 @@ void fsensor_stop_and_save_print(void)
|
|||||||
void fsensor_restore_print_and_continue(void)
|
void fsensor_restore_print_and_continue(void)
|
||||||
{
|
{
|
||||||
printf_P(PSTR("fsensor_restore_print_and_continue\n"));
|
printf_P(PSTR("fsensor_restore_print_and_continue\n"));
|
||||||
fsensor_watch_runout = true;
|
|
||||||
fsensor_err_cnt = 0;
|
fsensor_err_cnt = 0;
|
||||||
fsensor_m600_enqueued = false;
|
|
||||||
restore_print_from_ram_and_continue(0); //XYZ = orig, E - no change
|
restore_print_from_ram_and_continue(0); //XYZ = orig, E - no change
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// fsensor_checkpoint_print cuts the current print job at the current position,
|
||||||
|
// allowing new instructions to be inserted in the middle
|
||||||
|
void fsensor_checkpoint_print(void)
|
||||||
|
{
|
||||||
|
printf_P(PSTR("fsensor_checkpoint_print\n"));
|
||||||
|
stop_and_save_print_to_ram(0, 0);
|
||||||
|
restore_print_from_ram_and_continue(0);
|
||||||
|
}
|
||||||
|
|
||||||
void fsensor_init(void)
|
void fsensor_init(void)
|
||||||
{
|
{
|
||||||
#ifdef PAT9125
|
#ifdef PAT9125
|
||||||
uint8_t pat9125 = pat9125_init();
|
uint8_t pat9125 = pat9125_init();
|
||||||
printf_P(PSTR("PAT9125_init:%hhu\n"), pat9125);
|
printf_P(PSTR("PAT9125_init:%hhu\n"), pat9125);
|
||||||
#endif //PAT9125
|
#endif //PAT9125
|
||||||
uint8_t fsensor = eeprom_read_byte((uint8_t*)EEPROM_FSENSOR);
|
uint8_t fsensor = eeprom_read_byte((uint8_t*)EEPROM_FSENSOR);
|
||||||
fsensor_autoload_enabled=eeprom_read_byte((uint8_t*)EEPROM_FSENS_AUTOLOAD_ENABLED);
|
fsensor_autoload_enabled=eeprom_read_byte((uint8_t*)EEPROM_FSENS_AUTOLOAD_ENABLED);
|
||||||
|
fsensor_not_responding = false;
|
||||||
#ifdef PAT9125
|
#ifdef PAT9125
|
||||||
uint8_t oq_meassure_enabled = eeprom_read_byte((uint8_t*)EEPROM_FSENS_OQ_MEASS_ENABLED);
|
uint8_t oq_meassure_enabled = eeprom_read_byte((uint8_t*)EEPROM_FSENS_OQ_MEASS_ENABLED);
|
||||||
fsensor_oq_meassure_enabled = (oq_meassure_enabled == 1)?true:false;
|
fsensor_oq_meassure_enabled = (oq_meassure_enabled == 1)?true:false;
|
||||||
@ -150,19 +162,27 @@ void fsensor_init(void)
|
|||||||
fsensor = 0; //disable sensor
|
fsensor = 0; //disable sensor
|
||||||
fsensor_not_responding = true;
|
fsensor_not_responding = true;
|
||||||
}
|
}
|
||||||
else
|
|
||||||
fsensor_not_responding = false;
|
|
||||||
#endif //PAT9125
|
#endif //PAT9125
|
||||||
|
#if IR_SENSOR_ANALOG
|
||||||
|
bIRsensorStateFlag=false;
|
||||||
|
oFsensorPCB=(ClFsensorPCB)eeprom_read_byte((uint8_t*)EEPROM_FSENSOR_PCB);
|
||||||
|
oFsensorActionNA=(ClFsensorActionNA)eeprom_read_byte((uint8_t*)EEPROM_FSENSOR_ACTION_NA);
|
||||||
|
#endif //IR_SENSOR_ANALOG
|
||||||
if (fsensor)
|
if (fsensor)
|
||||||
fsensor_enable();
|
fsensor_enable(false); // (in this case) EEPROM update is not necessary
|
||||||
else
|
else
|
||||||
fsensor_disable();
|
fsensor_disable(false); // (in this case) EEPROM update is not necessary
|
||||||
printf_P(PSTR("FSensor %S\n"), (fsensor_enabled?PSTR("ENABLED"):PSTR("DISABLED\n")));
|
printf_P(PSTR("FSensor %S"), (fsensor_enabled?PSTR("ENABLED"):PSTR("DISABLED")));
|
||||||
|
#if IR_SENSOR_ANALOG
|
||||||
|
printf_P(PSTR(" (sensor board revision: %S)\n"),(oFsensorPCB==ClFsensorPCB::_Rev03b)?PSTR("03b or newer"):PSTR("03 or older"));
|
||||||
|
#else //IR_SENSOR_ANALOG
|
||||||
|
printf_P(PSTR("\n"));
|
||||||
|
#endif //IR_SENSOR_ANALOG
|
||||||
if (check_for_ir_sensor()) ir_sensor_detected = true;
|
if (check_for_ir_sensor()) ir_sensor_detected = true;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool fsensor_enable(void)
|
bool fsensor_enable(bool bUpdateEEPROM)
|
||||||
{
|
{
|
||||||
#ifdef PAT9125
|
#ifdef PAT9125
|
||||||
if (mmu_enabled == false) { //filament sensor is pat9125, enable only if it is working
|
if (mmu_enabled == false) { //filament sensor is pat9125, enable only if it is working
|
||||||
@ -187,18 +207,34 @@ bool fsensor_enable(void)
|
|||||||
FSensorStateMenu = 1;
|
FSensorStateMenu = 1;
|
||||||
}
|
}
|
||||||
#else // PAT9125
|
#else // PAT9125
|
||||||
fsensor_enabled = true;
|
#if IR_SENSOR_ANALOG
|
||||||
eeprom_update_byte((uint8_t*)EEPROM_FSENSOR, 0x01);
|
if(!fsensor_IR_check())
|
||||||
FSensorStateMenu = 1;
|
{
|
||||||
#endif // PAT9125
|
bUpdateEEPROM=true;
|
||||||
|
fsensor_enabled=false;
|
||||||
|
fsensor_not_responding=true;
|
||||||
|
FSensorStateMenu=0;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
#endif //IR_SENSOR_ANALOG
|
||||||
|
fsensor_enabled=true;
|
||||||
|
fsensor_not_responding=false;
|
||||||
|
FSensorStateMenu=1;
|
||||||
|
#if IR_SENSOR_ANALOG
|
||||||
|
}
|
||||||
|
#endif //IR_SENSOR_ANALOG
|
||||||
|
if(bUpdateEEPROM)
|
||||||
|
eeprom_update_byte((uint8_t*)EEPROM_FSENSOR, FSensorStateMenu);
|
||||||
|
#endif //PAT9125
|
||||||
return fsensor_enabled;
|
return fsensor_enabled;
|
||||||
}
|
}
|
||||||
|
|
||||||
void fsensor_disable(void)
|
void fsensor_disable(bool bUpdateEEPROM)
|
||||||
{
|
{
|
||||||
fsensor_enabled = false;
|
fsensor_enabled = false;
|
||||||
eeprom_update_byte((uint8_t*)EEPROM_FSENSOR, 0x00);
|
|
||||||
FSensorStateMenu = 0;
|
FSensorStateMenu = 0;
|
||||||
|
if(bUpdateEEPROM)
|
||||||
|
eeprom_update_byte((uint8_t*)EEPROM_FSENSOR, 0x00);
|
||||||
}
|
}
|
||||||
|
|
||||||
void fsensor_autoload_set(bool State)
|
void fsensor_autoload_set(bool State)
|
||||||
@ -529,8 +565,6 @@ void fsensor_enque_M600(){
|
|||||||
printf_P(PSTR("fsensor_update - M600\n"));
|
printf_P(PSTR("fsensor_update - M600\n"));
|
||||||
eeprom_update_byte((uint8_t*)EEPROM_FERROR_COUNT, eeprom_read_byte((uint8_t*)EEPROM_FERROR_COUNT) + 1);
|
eeprom_update_byte((uint8_t*)EEPROM_FERROR_COUNT, eeprom_read_byte((uint8_t*)EEPROM_FERROR_COUNT) + 1);
|
||||||
eeprom_update_word((uint16_t*)EEPROM_FERROR_COUNT_TOT, eeprom_read_word((uint16_t*)EEPROM_FERROR_COUNT_TOT) + 1);
|
eeprom_update_word((uint16_t*)EEPROM_FERROR_COUNT_TOT, eeprom_read_word((uint16_t*)EEPROM_FERROR_COUNT_TOT) + 1);
|
||||||
enquecommand_front_P(PSTR("PRUSA fsensor_recover"));
|
|
||||||
fsensor_m600_enqueued = true;
|
|
||||||
enquecommand_front_P((PSTR("M600")));
|
enquecommand_front_P((PSTR("M600")));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -542,7 +576,7 @@ void fsensor_enque_M600(){
|
|||||||
void fsensor_update(void)
|
void fsensor_update(void)
|
||||||
{
|
{
|
||||||
#ifdef PAT9125
|
#ifdef PAT9125
|
||||||
if (fsensor_enabled && fsensor_watch_runout && (fsensor_err_cnt > FSENSOR_ERR_MAX) && ( ! fsensor_m600_enqueued) )
|
if (fsensor_enabled && fsensor_watch_runout && (fsensor_err_cnt > FSENSOR_ERR_MAX))
|
||||||
{
|
{
|
||||||
bool autoload_enabled_tmp = fsensor_autoload_enabled;
|
bool autoload_enabled_tmp = fsensor_autoload_enabled;
|
||||||
fsensor_autoload_enabled = false;
|
fsensor_autoload_enabled = false;
|
||||||
@ -575,24 +609,86 @@ void fsensor_update(void)
|
|||||||
err |= (fsensor_oq_er_sum > 2);
|
err |= (fsensor_oq_er_sum > 2);
|
||||||
err |= (fsensor_oq_yd_sum < (4 * FSENSOR_OQ_MIN_YD));
|
err |= (fsensor_oq_yd_sum < (4 * FSENSOR_OQ_MIN_YD));
|
||||||
|
|
||||||
if (!err)
|
fsensor_restore_print_and_continue();
|
||||||
{
|
|
||||||
printf_P(PSTR("fsensor_err_cnt = 0\n"));
|
|
||||||
fsensor_restore_print_and_continue();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
fsensor_enque_M600();
|
|
||||||
fsensor_watch_runout = false;
|
|
||||||
}
|
|
||||||
fsensor_autoload_enabled = autoload_enabled_tmp;
|
fsensor_autoload_enabled = autoload_enabled_tmp;
|
||||||
fsensor_oq_meassure_enabled = oq_meassure_enabled_tmp;
|
fsensor_oq_meassure_enabled = oq_meassure_enabled_tmp;
|
||||||
|
|
||||||
|
if (!err)
|
||||||
|
printf_P(PSTR("fsensor_err_cnt = 0\n"));
|
||||||
|
else
|
||||||
|
fsensor_enque_M600();
|
||||||
}
|
}
|
||||||
#else //PAT9125
|
#else //PAT9125
|
||||||
if ((digitalRead(IR_SENSOR_PIN) == 1) && CHECK_FSENSOR && fsensor_enabled && ir_sensor_detected && ( ! fsensor_m600_enqueued) )
|
if (CHECK_FSENSOR && fsensor_enabled && ir_sensor_detected)
|
||||||
{
|
{
|
||||||
fsensor_stop_and_save_print();
|
if(digitalRead(IR_SENSOR_PIN))
|
||||||
fsensor_enque_M600();
|
{ // IR_SENSOR_PIN ~ H
|
||||||
|
#if IR_SENSOR_ANALOG
|
||||||
|
if(!bIRsensorStateFlag)
|
||||||
|
{
|
||||||
|
bIRsensorStateFlag=true;
|
||||||
|
nIRsensorLastTime=_millis();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if((_millis()-nIRsensorLastTime)>IR_SENSOR_STEADY)
|
||||||
|
{
|
||||||
|
uint8_t nMUX1,nMUX2;
|
||||||
|
uint16_t nADC;
|
||||||
|
bIRsensorStateFlag=false;
|
||||||
|
// sequence for direct data reading from AD converter
|
||||||
|
DISABLE_TEMPERATURE_INTERRUPT();
|
||||||
|
nMUX1=ADMUX; // ADMUX saving
|
||||||
|
nMUX2=ADCSRB;
|
||||||
|
adc_setmux(VOLT_IR_PIN);
|
||||||
|
ADCSRA|=(1<<ADSC); // first conversion after ADMUX change discarded (preventively)
|
||||||
|
while(ADCSRA&(1<<ADSC))
|
||||||
|
;
|
||||||
|
ADCSRA|=(1<<ADSC); // second conversion used
|
||||||
|
while(ADCSRA&(1<<ADSC))
|
||||||
|
;
|
||||||
|
nADC=ADC;
|
||||||
|
ADMUX=nMUX1; // ADMUX restoring
|
||||||
|
ADCSRB=nMUX2;
|
||||||
|
ENABLE_TEMPERATURE_INTERRUPT();
|
||||||
|
// end of sequence for ...
|
||||||
|
if((oFsensorPCB==ClFsensorPCB::_Rev03b)&&((nADC*OVERSAMPLENR)>((int)IRsensor_Hopen_TRESHOLD)))
|
||||||
|
{
|
||||||
|
fsensor_disable();
|
||||||
|
fsensor_not_responding = true;
|
||||||
|
printf_P(PSTR("IR sensor not responding (%d)!\n"),1);
|
||||||
|
if((ClFsensorActionNA)eeprom_read_byte((uint8_t*)EEPROM_FSENSOR_ACTION_NA)==ClFsensorActionNA::_Pause)
|
||||||
|
if(oFsensorActionNA==ClFsensorActionNA::_Pause)
|
||||||
|
lcd_pause_print();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
#endif //IR_SENSOR_ANALOG
|
||||||
|
fsensor_checkpoint_print();
|
||||||
|
fsensor_enque_M600();
|
||||||
|
#if IR_SENSOR_ANALOG
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{ // IR_SENSOR_PIN ~ L
|
||||||
|
bIRsensorStateFlag=false;
|
||||||
|
#endif //IR_SENSOR_ANALOG
|
||||||
|
}
|
||||||
}
|
}
|
||||||
#endif //PAT9125
|
#endif //PAT9125
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if IR_SENSOR_ANALOG
|
||||||
|
bool fsensor_IR_check()
|
||||||
|
{
|
||||||
|
uint16_t volt_IR_int;
|
||||||
|
bool bCheckResult;
|
||||||
|
|
||||||
|
volt_IR_int=current_voltage_raw_IR;
|
||||||
|
bCheckResult=(volt_IR_int<((int)IRsensor_Lmax_TRESHOLD))||(volt_IR_int>((int)IRsensor_Hmin_TRESHOLD));
|
||||||
|
bCheckResult=bCheckResult&&(!((oFsensorPCB==ClFsensorPCB::_Rev03b)&&(volt_IR_int>((int)IRsensor_Hopen_TRESHOLD))));
|
||||||
|
return(bCheckResult);
|
||||||
|
}
|
||||||
|
#endif //IR_SENSOR_ANALOG
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
#define FSENSOR_H
|
#define FSENSOR_H
|
||||||
|
|
||||||
#include <inttypes.h>
|
#include <inttypes.h>
|
||||||
|
#include "config.h"
|
||||||
|
|
||||||
|
|
||||||
//! minimum meassured chunk length in steps
|
//! minimum meassured chunk length in steps
|
||||||
@ -20,6 +21,8 @@ extern bool fsensor_oq_meassure_enabled;
|
|||||||
extern void fsensor_stop_and_save_print(void);
|
extern void fsensor_stop_and_save_print(void);
|
||||||
//! restore print - restore position and heatup to original temperature
|
//! restore print - restore position and heatup to original temperature
|
||||||
extern void fsensor_restore_print_and_continue(void);
|
extern void fsensor_restore_print_and_continue(void);
|
||||||
|
//! split the current gcode stream to insert new instructions
|
||||||
|
extern void fsensor_checkpoint_print(void);
|
||||||
//! @}
|
//! @}
|
||||||
|
|
||||||
//! initialize
|
//! initialize
|
||||||
@ -27,8 +30,8 @@ extern void fsensor_init(void);
|
|||||||
|
|
||||||
//! @name enable/disable
|
//! @name enable/disable
|
||||||
//! @{
|
//! @{
|
||||||
extern bool fsensor_enable(void);
|
extern bool fsensor_enable(bool bUpdateEEPROM=true);
|
||||||
extern void fsensor_disable(void);
|
extern void fsensor_disable(bool bUpdateEEPROM=true);
|
||||||
//! @}
|
//! @}
|
||||||
|
|
||||||
//autoload feature enabled
|
//autoload feature enabled
|
||||||
@ -65,4 +68,28 @@ extern void fsensor_st_block_begin(block_t* bl);
|
|||||||
extern void fsensor_st_block_chunk(block_t* bl, int cnt);
|
extern void fsensor_st_block_chunk(block_t* bl, int cnt);
|
||||||
//! @}
|
//! @}
|
||||||
|
|
||||||
|
|
||||||
|
#if IR_SENSOR_ANALOG
|
||||||
|
#define IR_SENSOR_STEADY 10 // [ms]
|
||||||
|
|
||||||
|
enum class ClFsensorPCB:uint_least8_t
|
||||||
|
{
|
||||||
|
_Old=0,
|
||||||
|
_Rev03b=1,
|
||||||
|
_Undef=EEPROM_EMPTY_VALUE
|
||||||
|
};
|
||||||
|
|
||||||
|
enum class ClFsensorActionNA:uint_least8_t
|
||||||
|
{
|
||||||
|
_Continue=0,
|
||||||
|
_Pause=1,
|
||||||
|
_Undef=EEPROM_EMPTY_VALUE
|
||||||
|
};
|
||||||
|
|
||||||
|
extern ClFsensorPCB oFsensorPCB;
|
||||||
|
extern ClFsensorActionNA oFsensorActionNA;
|
||||||
|
|
||||||
|
extern bool fsensor_IR_check();
|
||||||
|
#endif //IR_SENSOR_ANALOG
|
||||||
|
|
||||||
#endif //FSENSOR_H
|
#endif //FSENSOR_H
|
||||||
|
@ -17,10 +17,10 @@ uint8_t lang_selected = 0;
|
|||||||
|
|
||||||
#if (LANG_MODE == 0) //primary language only
|
#if (LANG_MODE == 0) //primary language only
|
||||||
|
|
||||||
uint8_t lang_select(uint8_t lang) { return 0; }
|
uint8_t lang_select(__attribute__((unused)) uint8_t lang) { return 0; }
|
||||||
uint8_t lang_get_count() { return 1; }
|
uint8_t lang_get_count() { return 1; }
|
||||||
uint16_t lang_get_code(uint8_t lang) { return LANG_CODE_EN; }
|
uint16_t lang_get_code(__attribute__((unused)) uint8_t lang) { return LANG_CODE_EN; }
|
||||||
const char* lang_get_name_by_code(uint16_t code) { return _n("English"); }
|
const char* lang_get_name_by_code(__attribute__((unused)) uint16_t code) { return _n("English"); }
|
||||||
void lang_reset(void) { }
|
void lang_reset(void) { }
|
||||||
uint8_t lang_is_selected(void) { return 1; }
|
uint8_t lang_is_selected(void) { return 1; }
|
||||||
|
|
||||||
|
@ -184,6 +184,22 @@ static void menu_draw_item_puts_P(char type_char, const char* str)
|
|||||||
lcd_printf_P(PSTR("%c%-18.18S%c"), menu_selection_mark(), str, type_char);
|
lcd_printf_P(PSTR("%c%-18.18S%c"), menu_selection_mark(), str, type_char);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void menu_draw_toggle_puts_P(const char* str, const char* toggle, const uint8_t settings)
|
||||||
|
{
|
||||||
|
//settings:
|
||||||
|
//xxxxxcba
|
||||||
|
//a = selection mark. If it's set(1), then '>' will be used as the first character on the line. Else leave blank
|
||||||
|
//b = toggle string is from progmem
|
||||||
|
//c = do not set cursor at all. Must be handled externally.
|
||||||
|
char lineStr[LCD_WIDTH + 1];
|
||||||
|
const char eol = (toggle == NULL)?LCD_STR_ARROW_RIGHT[0]:' ';
|
||||||
|
if (toggle == NULL) toggle = _T(MSG_NA);
|
||||||
|
sprintf_P(lineStr, PSTR("%c%-18.18S"), (settings & 0x01)?'>':' ', str);
|
||||||
|
sprintf_P(lineStr + LCD_WIDTH - ((settings & 0x02)?strlen_P(toggle):strlen(toggle)) - 3, (settings & 0x02)?PSTR("[%S]%c"):PSTR("[%s]%c"), toggle, eol);
|
||||||
|
if (!(settings & 0x04)) lcd_set_cursor(0, menu_row);
|
||||||
|
fputs(lineStr, lcdout);
|
||||||
|
}
|
||||||
|
|
||||||
//! @brief Format sheet name
|
//! @brief Format sheet name
|
||||||
//!
|
//!
|
||||||
//! @param[in] sheet_E Sheet in EEPROM
|
//! @param[in] sheet_E Sheet in EEPROM
|
||||||
@ -375,6 +391,33 @@ uint8_t menu_item_function_P(const char* str, char number, void (*func)(uint8_t)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
uint8_t menu_item_toggle_P(const char* str, const char* toggle, menu_func_t func, const uint8_t settings)
|
||||||
|
{
|
||||||
|
if (menu_item == menu_line)
|
||||||
|
{
|
||||||
|
if (lcd_draw_update) menu_draw_toggle_puts_P(str, toggle, settings | (menu_selection_mark()=='>'));
|
||||||
|
if (menu_clicked && (lcd_encoder == menu_item))
|
||||||
|
{
|
||||||
|
if (toggle == NULL) // print N/A warning message
|
||||||
|
{
|
||||||
|
menu_submenu(func);
|
||||||
|
return menu_item_ret();
|
||||||
|
}
|
||||||
|
else // do the actual toggling
|
||||||
|
{
|
||||||
|
menu_clicked = false;
|
||||||
|
lcd_consume_click();
|
||||||
|
lcd_update_enabled = 0;
|
||||||
|
if (func) func();
|
||||||
|
lcd_update_enabled = 1;
|
||||||
|
return menu_item_ret();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
menu_item++;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
uint8_t menu_item_gcode_P(const char* str, const char* str_gcode)
|
uint8_t menu_item_gcode_P(const char* str, const char* str_gcode)
|
||||||
{
|
{
|
||||||
if (menu_item == menu_line)
|
if (menu_item == menu_line)
|
||||||
@ -390,17 +433,12 @@ uint8_t menu_item_gcode_P(const char* str, const char* str_gcode)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
const char menu_20x_space[] PROGMEM = " ";
|
|
||||||
|
|
||||||
const char menu_fmt_int3[] PROGMEM = "%c%.15S:%s%3d";
|
const char menu_fmt_int3[] PROGMEM = "%c%.15S:%s%3d";
|
||||||
|
|
||||||
const char menu_fmt_float31[] PROGMEM = "%-12.12S%+8.1f";
|
const char menu_fmt_float31[] PROGMEM = "%-12.12S%+8.1f";
|
||||||
|
|
||||||
const char menu_fmt_float13[] PROGMEM = "%c%-13.13S%+5.3f";
|
const char menu_fmt_float13[] PROGMEM = "%c%-13.13S%+5.3f";
|
||||||
|
|
||||||
const char menu_fmt_float13off[] PROGMEM = "%c%-13.13S%6.6S";
|
|
||||||
|
|
||||||
template<typename T>
|
template<typename T>
|
||||||
static void menu_draw_P(char chr, const char* str, int16_t val);
|
static void menu_draw_P(char chr, const char* str, int16_t val);
|
||||||
|
|
||||||
@ -409,8 +447,8 @@ void menu_draw_P<int16_t*>(char chr, const char* str, int16_t val)
|
|||||||
{
|
{
|
||||||
int text_len = strlen_P(str);
|
int text_len = strlen_P(str);
|
||||||
if (text_len > 15) text_len = 15;
|
if (text_len > 15) text_len = 15;
|
||||||
char spaces[21];
|
char spaces[LCD_WIDTH + 1] = {0};
|
||||||
strcpy_P(spaces, menu_20x_space);
|
memset(spaces,' ', LCD_WIDTH);
|
||||||
if (val <= -100) spaces[15 - text_len - 1] = 0;
|
if (val <= -100) spaces[15 - text_len - 1] = 0;
|
||||||
else spaces[15 - text_len] = 0;
|
else spaces[15 - text_len] = 0;
|
||||||
lcd_printf_P(menu_fmt_int3, chr, str, spaces, val);
|
lcd_printf_P(menu_fmt_int3, chr, str, spaces, val);
|
||||||
@ -423,7 +461,7 @@ void menu_draw_P<uint8_t*>(char chr, const char* str, int16_t val)
|
|||||||
float factor = 1.0f + static_cast<float>(val) / 1000.0f;
|
float factor = 1.0f + static_cast<float>(val) / 1000.0f;
|
||||||
if (val <= _md->minEditValue)
|
if (val <= _md->minEditValue)
|
||||||
{
|
{
|
||||||
lcd_printf_P(menu_fmt_float13off, chr, str, _i(" [off]"));
|
menu_draw_toggle_puts_P(str, _T(MSG_OFF), 0x04 | 0x02 | (chr=='>'));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -118,6 +118,10 @@ extern uint8_t menu_item_function_P(const char* str, menu_func_t func);
|
|||||||
#define MENU_ITEM_FUNCTION_NR_P(str, number, func, fn_par) do { if (menu_item_function_P(str, number, func, fn_par)) return; } while (0)
|
#define MENU_ITEM_FUNCTION_NR_P(str, number, func, fn_par) do { if (menu_item_function_P(str, number, func, fn_par)) return; } while (0)
|
||||||
extern uint8_t menu_item_function_P(const char* str, char number, void (*func)(uint8_t), uint8_t fn_par);
|
extern uint8_t menu_item_function_P(const char* str, char number, void (*func)(uint8_t), uint8_t fn_par);
|
||||||
|
|
||||||
|
#define MENU_ITEM_TOGGLE_P(str, toggle, func) do { if (menu_item_toggle_P(str, toggle, func, 0x02)) return; } while (0)
|
||||||
|
#define MENU_ITEM_TOGGLE(str, toggle, func) do { if (menu_item_toggle_P(str, toggle, func, 0x00)) return; } while (0)
|
||||||
|
extern uint8_t menu_item_toggle_P(const char* str, const char* toggle, menu_func_t func, const uint8_t settings);
|
||||||
|
|
||||||
#define MENU_ITEM_GCODE_P(str, str_gcode) do { if (menu_item_gcode_P(str, str_gcode)) return; } while (0)
|
#define MENU_ITEM_GCODE_P(str, str_gcode) do { if (menu_item_gcode_P(str, str_gcode)) return; } while (0)
|
||||||
extern uint8_t menu_item_gcode_P(const char* str, const char* str_gcode);
|
extern uint8_t menu_item_gcode_P(const char* str, const char* str_gcode);
|
||||||
|
|
||||||
|
@ -9,7 +9,6 @@
|
|||||||
|
|
||||||
//internationalized messages
|
//internationalized messages
|
||||||
const char MSG_AUTO_HOME[] PROGMEM_I1 = ISTR("Auto home"); ////
|
const char MSG_AUTO_HOME[] PROGMEM_I1 = ISTR("Auto home"); ////
|
||||||
const char MSG_AUTO_MODE_ON[] PROGMEM_I1 = ISTR("Mode [auto power]"); ////
|
|
||||||
const char MSG_BABYSTEP_Z[] PROGMEM_I1 = ISTR("Live adjust Z"); //// c=18
|
const char MSG_BABYSTEP_Z[] PROGMEM_I1 = ISTR("Live adjust Z"); //// c=18
|
||||||
const char MSG_BABYSTEP_Z_NOT_SET[] PROGMEM_I1 = ISTR("Distance between tip of the nozzle and the bed surface has not been set yet. Please follow the manual, chapter First steps, section First layer calibration."); ////c=20 r=12
|
const char MSG_BABYSTEP_Z_NOT_SET[] PROGMEM_I1 = ISTR("Distance between tip of the nozzle and the bed surface has not been set yet. Please follow the manual, chapter First steps, section First layer calibration."); ////c=20 r=12
|
||||||
const char MSG_BED[] PROGMEM_I1 = ISTR("Bed"); ////
|
const char MSG_BED[] PROGMEM_I1 = ISTR("Bed"); ////
|
||||||
@ -22,9 +21,7 @@ const char MSG_CARD_MENU[] PROGMEM_I1 = ISTR("Print from SD"); ////
|
|||||||
const char MSG_CONFIRM_NOZZLE_CLEAN[] PROGMEM_I1 = ISTR("Please clean the nozzle for calibration. Click when done."); ////c=20 r=8
|
const char MSG_CONFIRM_NOZZLE_CLEAN[] PROGMEM_I1 = ISTR("Please clean the nozzle for calibration. Click when done."); ////c=20 r=8
|
||||||
const char MSG_COOLDOWN[] PROGMEM_I1 = ISTR("Cooldown"); ////
|
const char MSG_COOLDOWN[] PROGMEM_I1 = ISTR("Cooldown"); ////
|
||||||
const char MSG_CRASH_DETECTED[] PROGMEM_I1 = ISTR("Crash detected."); ////c=20 r=1
|
const char MSG_CRASH_DETECTED[] PROGMEM_I1 = ISTR("Crash detected."); ////c=20 r=1
|
||||||
const char MSG_CRASHDETECT_NA[] PROGMEM_I1 = ISTR("Crash det. [N/A]"); ////
|
const char MSG_CRASHDETECT[] PROGMEM_I1 = ISTR("Crash det."); ////
|
||||||
const char MSG_CRASHDETECT_OFF[] PROGMEM_I1 = ISTR("Crash det. [off]"); ////
|
|
||||||
const char MSG_CRASHDETECT_ON[] PROGMEM_I1 = ISTR("Crash det. [on]"); ////
|
|
||||||
const char MSG_ERROR[] PROGMEM_I1 = ISTR("ERROR:"); ////
|
const char MSG_ERROR[] PROGMEM_I1 = ISTR("ERROR:"); ////
|
||||||
const char MSG_EXTRUDER[] PROGMEM_I1 = ISTR("Extruder"); ////c=17 r=1
|
const char MSG_EXTRUDER[] PROGMEM_I1 = ISTR("Extruder"); ////c=17 r=1
|
||||||
const char MSG_FILAMENT[] PROGMEM_I1 = ISTR("Filament"); ////c=17 r=1
|
const char MSG_FILAMENT[] PROGMEM_I1 = ISTR("Filament"); ////c=17 r=1
|
||||||
@ -40,9 +37,8 @@ const char MSG_FIND_BED_OFFSET_AND_SKEW_LINE2[] PROGMEM_I1 = ISTR(" of 4"); ////
|
|||||||
const char MSG_FINISHING_MOVEMENTS[] PROGMEM_I1 = ISTR("Finishing movements"); ////c=20 r=1
|
const char MSG_FINISHING_MOVEMENTS[] PROGMEM_I1 = ISTR("Finishing movements"); ////c=20 r=1
|
||||||
const char MSG_FOLLOW_CALIBRATION_FLOW[] PROGMEM_I1 = ISTR("Printer has not been calibrated yet. Please follow the manual, chapter First steps, section Calibration flow."); ////c=20 r=8
|
const char MSG_FOLLOW_CALIBRATION_FLOW[] PROGMEM_I1 = ISTR("Printer has not been calibrated yet. Please follow the manual, chapter First steps, section Calibration flow."); ////c=20 r=8
|
||||||
const char MSG_FOLLOW_Z_CALIBRATION_FLOW[] PROGMEM_I1 = ISTR("There is still a need to make Z calibration. Please follow the manual, chapter First steps, section Calibration flow."); ////c=20 r=8
|
const char MSG_FOLLOW_Z_CALIBRATION_FLOW[] PROGMEM_I1 = ISTR("There is still a need to make Z calibration. Please follow the manual, chapter First steps, section Calibration flow."); ////c=20 r=8
|
||||||
const char MSG_FSENS_AUTOLOAD_NA[] PROGMEM_I1 = ISTR("F. autoload [N/A]"); ////c=17 r=1
|
const char MSG_FSENSOR_AUTOLOAD[] PROGMEM_I1 = ISTR("F. autoload"); ////c=17 r=1
|
||||||
const char MSG_FSENSOR_OFF[] PROGMEM_I1 = ISTR("Fil. sensor [off]"); ////
|
const char MSG_FSENSOR[] PROGMEM_I1 = ISTR("Fil. sensor"); ////
|
||||||
const char MSG_FSENSOR_ON[] PROGMEM_I1 = ISTR("Fil. sensor [on]"); ////
|
|
||||||
const char MSG_HEATING[] PROGMEM_I1 = ISTR("Heating"); ////
|
const char MSG_HEATING[] PROGMEM_I1 = ISTR("Heating"); ////
|
||||||
const char MSG_HEATING_COMPLETE[] PROGMEM_I1 = ISTR("Heating done."); ////c=20
|
const char MSG_HEATING_COMPLETE[] PROGMEM_I1 = ISTR("Heating done."); ////c=20
|
||||||
const char MSG_HOMEYZ[] PROGMEM_I1 = ISTR("Calibrate Z"); ////
|
const char MSG_HOMEYZ[] PROGMEM_I1 = ISTR("Calibrate Z"); ////
|
||||||
@ -85,14 +81,16 @@ const char MSG_SELFTEST_FILAMENT_SENSOR[] PROGMEM_I1 = ISTR("Filament sensor");
|
|||||||
const char MSG_SELFTEST_WIRINGERROR[] PROGMEM_I1 = ISTR("Wiring error"); ////
|
const char MSG_SELFTEST_WIRINGERROR[] PROGMEM_I1 = ISTR("Wiring error"); ////
|
||||||
const char MSG_SETTINGS[] PROGMEM_I1 = ISTR("Settings"); ////
|
const char MSG_SETTINGS[] PROGMEM_I1 = ISTR("Settings"); ////
|
||||||
const char MSG_HW_SETUP[] PROGMEM_I1 = ISTR("HW Setup"); ////
|
const char MSG_HW_SETUP[] PROGMEM_I1 = ISTR("HW Setup"); ////
|
||||||
const char MSG_SILENT_MODE_OFF[] PROGMEM_I1 = ISTR("Mode [high power]"); ////
|
const char MSG_MODE[] PROGMEM_I1 = ISTR("Mode"); ////
|
||||||
const char MSG_SILENT_MODE_ON[] PROGMEM_I1 = ISTR("Mode [silent]"); ////
|
const char MSG_HIGH_POWER[] PROGMEM_I1 = ISTR("High power"); ////
|
||||||
const char MSG_STEALTH_MODE_OFF[] PROGMEM_I1 = ISTR("Mode [Normal]"); ////
|
const char MSG_AUTO_POWER[] PROGMEM_I1 = ISTR("Auto power"); ////
|
||||||
const char MSG_STEALTH_MODE_ON[] PROGMEM_I1 = ISTR("Mode [Stealth]"); ////
|
const char MSG_SILENT[] PROGMEM_I1 = ISTR("Silent"); ////
|
||||||
|
const char MSG_NORMAL[] PROGMEM_I1 = ISTR("Normal"); ////
|
||||||
|
const char MSG_STEALTH[] PROGMEM_I1 = ISTR("Stealth"); ////
|
||||||
const char MSG_STEEL_SHEET_CHECK[] PROGMEM_I1 = ISTR("Is steel sheet on heatbed?"); ////c=20 r=2
|
const char MSG_STEEL_SHEET_CHECK[] PROGMEM_I1 = ISTR("Is steel sheet on heatbed?"); ////c=20 r=2
|
||||||
const char MSG_STOP_PRINT[] PROGMEM_I1 = ISTR("Stop print"); ////
|
const char MSG_STOP_PRINT[] PROGMEM_I1 = ISTR("Stop print"); ////
|
||||||
const char MSG_STOPPED[] PROGMEM_I1 = ISTR("STOPPED. "); ////
|
const char MSG_STOPPED[] PROGMEM_I1 = ISTR("STOPPED. "); ////
|
||||||
const char MSG_TEMP_CALIBRATION[] PROGMEM_I1 = ISTR("Temp. cal. "); ////c=20 r=1
|
const char MSG_TEMP_CALIBRATION[] PROGMEM_I1 = ISTR("Temp. cal."); ////c=12 r=1
|
||||||
const char MSG_TEMP_CALIBRATION_DONE[] PROGMEM_I1 = ISTR("Temperature calibration is finished and active. Temp. calibration can be disabled in menu Settings->Temp. cal."); ////c=20 r=12
|
const char MSG_TEMP_CALIBRATION_DONE[] PROGMEM_I1 = ISTR("Temperature calibration is finished and active. Temp. calibration can be disabled in menu Settings->Temp. cal."); ////c=20 r=12
|
||||||
const char MSG_UNLOAD_FILAMENT[] PROGMEM_I1 = ISTR("Unload filament"); ////c=17
|
const char MSG_UNLOAD_FILAMENT[] PROGMEM_I1 = ISTR("Unload filament"); ////c=17
|
||||||
const char MSG_UNLOADING_FILAMENT[] PROGMEM_I1 = ISTR("Unloading filament"); ////c=20 r=1
|
const char MSG_UNLOADING_FILAMENT[] PROGMEM_I1 = ISTR("Unloading filament"); ////c=20 r=1
|
||||||
@ -104,13 +102,48 @@ const char MSG_WIZARD_QUIT[] PROGMEM_I1 = ISTR("You can always resume the Wizard
|
|||||||
const char MSG_YES[] PROGMEM_I1 = ISTR("Yes"); ////
|
const char MSG_YES[] PROGMEM_I1 = ISTR("Yes"); ////
|
||||||
const char MSG_V2_CALIBRATION[] PROGMEM_I1 = ISTR("First layer cal."); ////c=17 r=1
|
const char MSG_V2_CALIBRATION[] PROGMEM_I1 = ISTR("First layer cal."); ////c=17 r=1
|
||||||
const char WELCOME_MSG[] PROGMEM_I1 = ISTR(CUSTOM_MENDEL_NAME " OK."); ////c=20
|
const char WELCOME_MSG[] PROGMEM_I1 = ISTR(CUSTOM_MENDEL_NAME " OK."); ////c=20
|
||||||
|
const char MSG_OFF[] PROGMEM_I1 = ISTR("Off"); ////
|
||||||
|
const char MSG_ON[] PROGMEM_I1 = ISTR("On"); ////
|
||||||
|
const char MSG_NA[] PROGMEM_I1 = ISTR("N/A"); ////
|
||||||
|
const char MSG_AUTO_DEPLETE[] PROGMEM_I1 = ISTR("SpoolJoin"); ////
|
||||||
|
const char MSG_CUTTER[] PROGMEM_I1 = ISTR("Cutter"); ////
|
||||||
|
const char MSG_NONE[] PROGMEM_I1 = ISTR("None"); ////
|
||||||
|
const char MSG_WARN[] PROGMEM_I1 = ISTR("Warn"); ////
|
||||||
|
const char MSG_STRICT[] PROGMEM_I1 = ISTR("Strict"); ////
|
||||||
|
const char MSG_MODEL[] PROGMEM_I1 = ISTR("Model"); ////
|
||||||
|
const char MSG_FIRMWARE[] PROGMEM_I1 = ISTR("Firmware"); ////
|
||||||
|
const char MSG_GCODE[] PROGMEM_I1 = ISTR("Gcode"); ////
|
||||||
|
const char MSG_NOZZLE_DIAMETER[] PROGMEM_I1 = ISTR("Nozzle d."); ////
|
||||||
|
const char MSG_MMU_MODE[] PROGMEM_I1 = ISTR("MMU Mode"); ////
|
||||||
|
const char MSG_SD_CARD[] PROGMEM_I1 = ISTR("SD card"); ////
|
||||||
|
const char MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY[] PROGMEM_I1 = ISTR("FlashAir"); ////
|
||||||
|
const char MSG_SORT[] PROGMEM_I1 = ISTR("Sort"); ////
|
||||||
|
const char MSG_SORT_TIME[] PROGMEM_I1 = ISTR("Time"); ////
|
||||||
|
const char MSG_SORT_ALPHA[] PROGMEM_I1 = ISTR("Alphabet"); ////
|
||||||
|
const char MSG_RPI_PORT[] PROGMEM_I1 = ISTR("RPi port"); ////
|
||||||
|
const char MSG_SOUND[] PROGMEM_I1 = ISTR("Sound"); ////
|
||||||
|
const char MSG_SOUND_LOUD[] PROGMEM_I1 = ISTR("Loud"); ////
|
||||||
|
const char MSG_SOUND_ONCE[] PROGMEM_I1 = ISTR("Once"); ////
|
||||||
|
const char MSG_SOUND_BLIND[] PROGMEM_I1 = ISTR("Assist"); ////
|
||||||
|
const char MSG_MESH[] PROGMEM_I1 = ISTR("Mesh"); ////
|
||||||
|
const char MSG_Z_PROBE_NR[] PROGMEM_I1 = ISTR("Z-probe nr."); ////
|
||||||
|
const char MSG_MAGNETS_COMP[] PROGMEM_I1 = ISTR("Magnets comp."); ////
|
||||||
|
const char MSG_FS_ACTION[] PROGMEM_I1 = ISTR("FS Action"); ////
|
||||||
|
const char MSG_FS_CONTINUE[] PROGMEM_I1 = ISTR("Cont."); ////
|
||||||
|
const char MSG_FS_PAUSE[] PROGMEM_I1 = ISTR("Pause"); ////
|
||||||
|
const char MSG_BRIGHTNESS[] PROGMEM_I1 = ISTR("Brightness"); ////
|
||||||
|
const char MSG_BL_HIGH[] PROGMEM_I1 = ISTR("Level Bright"); ////
|
||||||
|
const char MSG_BL_LOW[] PROGMEM_I1 = ISTR("Level Dimmed"); ////
|
||||||
|
const char MSG_TIMEOUT[] PROGMEM_I1 = ISTR("Timeout"); ////
|
||||||
|
const char MSG_BRIGHT[] PROGMEM_I1 = ISTR("Bright"); ////
|
||||||
|
const char MSG_DIM[] PROGMEM_I1 = ISTR("Dim"); ////
|
||||||
|
const char MSG_AUTO[] PROGMEM_I1 = ISTR("Auto"); ////
|
||||||
|
|
||||||
//not internationalized messages
|
//not internationalized messages
|
||||||
const char MSG_SD_WORKDIR_FAIL[] PROGMEM_N1 = "workDir open failed"; ////
|
const char MSG_SD_WORKDIR_FAIL[] PROGMEM_N1 = "workDir open failed"; ////
|
||||||
const char MSG_BROWNOUT_RESET[] PROGMEM_N1 = " Brown out Reset"; ////
|
const char MSG_BROWNOUT_RESET[] PROGMEM_N1 = " Brown out Reset"; ////
|
||||||
const char MSG_EXTERNAL_RESET[] PROGMEM_N1 = " External Reset"; ////
|
const char MSG_EXTERNAL_RESET[] PROGMEM_N1 = " External Reset"; ////
|
||||||
const char MSG_FILE_SAVED[] PROGMEM_N1 = "Done saving file."; ////
|
const char MSG_FILE_SAVED[] PROGMEM_N1 = "Done saving file."; ////
|
||||||
const char MSG_OFF[] PROGMEM_N1 = "Off"; ////
|
|
||||||
const char MSG_ON[] PROGMEM_N1 = "On "; ////
|
|
||||||
const char MSG_POSITION_UNKNOWN[] PROGMEM_N1 = "Home X/Y before Z"; ////
|
const char MSG_POSITION_UNKNOWN[] PROGMEM_N1 = "Home X/Y before Z"; ////
|
||||||
const char MSG_SOFTWARE_RESET[] PROGMEM_N1 = " Software Reset"; ////
|
const char MSG_SOFTWARE_RESET[] PROGMEM_N1 = " Software Reset"; ////
|
||||||
const char MSG_UNKNOWN_COMMAND[] PROGMEM_N1 = "Unknown command: \""; ////
|
const char MSG_UNKNOWN_COMMAND[] PROGMEM_N1 = "Unknown command: \""; ////
|
||||||
@ -134,3 +167,4 @@ const char MSG_OCTOPRINT_RESUMED[] PROGMEM_N1 = "// action:resumed"; ////
|
|||||||
const char MSG_OCTOPRINT_CANCEL[] PROGMEM_N1 = "// action:cancel"; ////
|
const char MSG_OCTOPRINT_CANCEL[] PROGMEM_N1 = "// action:cancel"; ////
|
||||||
const char MSG_FANCHECK_EXTRUDER[] PROGMEM_N1 = "Err: EXTR. FAN ERROR"; ////c=20
|
const char MSG_FANCHECK_EXTRUDER[] PROGMEM_N1 = "Err: EXTR. FAN ERROR"; ////c=20
|
||||||
const char MSG_FANCHECK_PRINT[] PROGMEM_N1 = "Err: PRINT FAN ERROR"; ////c=20
|
const char MSG_FANCHECK_PRINT[] PROGMEM_N1 = "Err: PRINT FAN ERROR"; ////c=20
|
||||||
|
const char MSG_M112_KILL[] PROGMEM_N1 = "M112 called. Emergency Stop."; ////c=20
|
||||||
|
@ -10,7 +10,6 @@ extern "C" {
|
|||||||
// LCD Menu Messages
|
// LCD Menu Messages
|
||||||
//internationalized messages
|
//internationalized messages
|
||||||
extern const char MSG_AUTO_HOME[];
|
extern const char MSG_AUTO_HOME[];
|
||||||
extern const char MSG_AUTO_MODE_ON[];
|
|
||||||
extern const char MSG_BABYSTEP_Z[];
|
extern const char MSG_BABYSTEP_Z[];
|
||||||
extern const char MSG_BABYSTEP_Z_NOT_SET[];
|
extern const char MSG_BABYSTEP_Z_NOT_SET[];
|
||||||
extern const char MSG_BED[];
|
extern const char MSG_BED[];
|
||||||
@ -23,9 +22,7 @@ extern const char MSG_CARD_MENU[];
|
|||||||
extern const char MSG_CONFIRM_NOZZLE_CLEAN[];
|
extern const char MSG_CONFIRM_NOZZLE_CLEAN[];
|
||||||
extern const char MSG_COOLDOWN[];
|
extern const char MSG_COOLDOWN[];
|
||||||
extern const char MSG_CRASH_DETECTED[];
|
extern const char MSG_CRASH_DETECTED[];
|
||||||
extern const char MSG_CRASHDETECT_NA[];
|
extern const char MSG_CRASHDETECT[];
|
||||||
extern const char MSG_CRASHDETECT_OFF[];
|
|
||||||
extern const char MSG_CRASHDETECT_ON[];
|
|
||||||
extern const char MSG_ERROR[];
|
extern const char MSG_ERROR[];
|
||||||
extern const char MSG_EXTRUDER[];
|
extern const char MSG_EXTRUDER[];
|
||||||
extern const char MSG_FILAMENT[];
|
extern const char MSG_FILAMENT[];
|
||||||
@ -41,9 +38,8 @@ extern const char MSG_FIND_BED_OFFSET_AND_SKEW_LINE2[];
|
|||||||
extern const char MSG_FINISHING_MOVEMENTS[];
|
extern const char MSG_FINISHING_MOVEMENTS[];
|
||||||
extern const char MSG_FOLLOW_CALIBRATION_FLOW[];
|
extern const char MSG_FOLLOW_CALIBRATION_FLOW[];
|
||||||
extern const char MSG_FOLLOW_Z_CALIBRATION_FLOW[];
|
extern const char MSG_FOLLOW_Z_CALIBRATION_FLOW[];
|
||||||
extern const char MSG_FSENS_AUTOLOAD_NA[];
|
extern const char MSG_FSENSOR_AUTOLOAD[];
|
||||||
extern const char MSG_FSENSOR_OFF[];
|
extern const char MSG_FSENSOR[];
|
||||||
extern const char MSG_FSENSOR_ON[];
|
|
||||||
extern const char MSG_HEATING[];
|
extern const char MSG_HEATING[];
|
||||||
extern const char MSG_HEATING_COMPLETE[];
|
extern const char MSG_HEATING_COMPLETE[];
|
||||||
extern const char MSG_HOMEYZ[];
|
extern const char MSG_HOMEYZ[];
|
||||||
@ -85,10 +81,12 @@ extern const char MSG_SELFTEST_FILAMENT_SENSOR[];
|
|||||||
extern const char MSG_SELFTEST_WIRINGERROR[];
|
extern const char MSG_SELFTEST_WIRINGERROR[];
|
||||||
extern const char MSG_SETTINGS[];
|
extern const char MSG_SETTINGS[];
|
||||||
extern const char MSG_HW_SETUP[];
|
extern const char MSG_HW_SETUP[];
|
||||||
extern const char MSG_SILENT_MODE_OFF[];
|
extern const char MSG_MODE[];
|
||||||
extern const char MSG_SILENT_MODE_ON[];
|
extern const char MSG_HIGH_POWER[];
|
||||||
extern const char MSG_STEALTH_MODE_OFF[];
|
extern const char MSG_AUTO_POWER[];
|
||||||
extern const char MSG_STEALTH_MODE_ON[];
|
extern const char MSG_SILENT[];
|
||||||
|
extern const char MSG_NORMAL[];
|
||||||
|
extern const char MSG_STEALTH[];
|
||||||
extern const char MSG_STEEL_SHEET_CHECK[];
|
extern const char MSG_STEEL_SHEET_CHECK[];
|
||||||
extern const char MSG_STOP_PRINT[];
|
extern const char MSG_STOP_PRINT[];
|
||||||
extern const char MSG_STOPPED[];
|
extern const char MSG_STOPPED[];
|
||||||
@ -104,12 +102,47 @@ extern const char MSG_WIZARD_QUIT[];
|
|||||||
extern const char MSG_YES[];
|
extern const char MSG_YES[];
|
||||||
extern const char MSG_V2_CALIBRATION[];
|
extern const char MSG_V2_CALIBRATION[];
|
||||||
extern const char WELCOME_MSG[];
|
extern const char WELCOME_MSG[];
|
||||||
|
extern const char MSG_OFF[];
|
||||||
|
extern const char MSG_ON[];
|
||||||
|
extern const char MSG_NA[];
|
||||||
|
extern const char MSG_AUTO_DEPLETE[];
|
||||||
|
extern const char MSG_CUTTER[];
|
||||||
|
extern const char MSG_NONE[];
|
||||||
|
extern const char MSG_WARN[];
|
||||||
|
extern const char MSG_STRICT[];
|
||||||
|
extern const char MSG_MODEL[];
|
||||||
|
extern const char MSG_FIRMWARE[];
|
||||||
|
extern const char MSG_GCODE[];
|
||||||
|
extern const char MSG_NOZZLE_DIAMETER[];
|
||||||
|
extern const char MSG_MMU_MODE[];
|
||||||
|
extern const char MSG_SD_CARD[];
|
||||||
|
extern const char MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY[];
|
||||||
|
extern const char MSG_SORT[];
|
||||||
|
extern const char MSG_SORT_TIME[];
|
||||||
|
extern const char MSG_SORT_ALPHA[];
|
||||||
|
extern const char MSG_RPI_PORT[];
|
||||||
|
extern const char MSG_SOUND[];
|
||||||
|
extern const char MSG_SOUND_LOUD[];
|
||||||
|
extern const char MSG_SOUND_ONCE[];
|
||||||
|
extern const char MSG_SOUND_BLIND[];
|
||||||
|
extern const char MSG_MESH[];
|
||||||
|
extern const char MSG_Z_PROBE_NR[];
|
||||||
|
extern const char MSG_MAGNETS_COMP[];
|
||||||
|
extern const char MSG_FS_ACTION[];
|
||||||
|
extern const char MSG_FS_CONTINUE[];
|
||||||
|
extern const char MSG_FS_PAUSE[];
|
||||||
|
extern const char MSG_BRIGHTNESS[];
|
||||||
|
extern const char MSG_BL_HIGH[];
|
||||||
|
extern const char MSG_BL_LOW[];
|
||||||
|
extern const char MSG_TIMEOUT[];
|
||||||
|
extern const char MSG_BRIGHT[];
|
||||||
|
extern const char MSG_DIM[];
|
||||||
|
extern const char MSG_AUTO[];
|
||||||
|
|
||||||
//not internationalized messages
|
//not internationalized messages
|
||||||
extern const char MSG_BROWNOUT_RESET[];
|
extern const char MSG_BROWNOUT_RESET[];
|
||||||
extern const char MSG_EXTERNAL_RESET[];
|
extern const char MSG_EXTERNAL_RESET[];
|
||||||
extern const char MSG_FILE_SAVED[];
|
extern const char MSG_FILE_SAVED[];
|
||||||
extern const char MSG_OFF[];
|
|
||||||
extern const char MSG_ON[];
|
|
||||||
extern const char MSG_POSITION_UNKNOWN[];
|
extern const char MSG_POSITION_UNKNOWN[];
|
||||||
extern const char MSG_SOFTWARE_RESET[];
|
extern const char MSG_SOFTWARE_RESET[];
|
||||||
extern const char MSG_UNKNOWN_COMMAND[];
|
extern const char MSG_UNKNOWN_COMMAND[];
|
||||||
@ -135,6 +168,7 @@ extern const char MSG_OCTOPRINT_RESUMED[];
|
|||||||
extern const char MSG_OCTOPRINT_CANCEL[];
|
extern const char MSG_OCTOPRINT_CANCEL[];
|
||||||
extern const char MSG_FANCHECK_EXTRUDER[];
|
extern const char MSG_FANCHECK_EXTRUDER[];
|
||||||
extern const char MSG_FANCHECK_PRINT[];
|
extern const char MSG_FANCHECK_PRINT[];
|
||||||
|
extern const char MSG_M112_KILL[];
|
||||||
|
|
||||||
#if defined(__cplusplus)
|
#if defined(__cplusplus)
|
||||||
}
|
}
|
||||||
|
@ -70,6 +70,7 @@ uint8_t mmu_extruder = MMU_FILAMENT_UNKNOWN;
|
|||||||
uint8_t tmp_extruder = MMU_FILAMENT_UNKNOWN;
|
uint8_t tmp_extruder = MMU_FILAMENT_UNKNOWN;
|
||||||
|
|
||||||
int8_t mmu_finda = -1;
|
int8_t mmu_finda = -1;
|
||||||
|
uint32_t mmu_last_finda_response = 0;
|
||||||
|
|
||||||
int16_t mmu_version = -1;
|
int16_t mmu_version = -1;
|
||||||
|
|
||||||
@ -264,6 +265,7 @@ void mmu_loop(void)
|
|||||||
if (mmu_rx_ok() > 0)
|
if (mmu_rx_ok() > 0)
|
||||||
{
|
{
|
||||||
fscanf_P(uart2io, PSTR("%hhu"), &mmu_finda); //scan finda from buffer
|
fscanf_P(uart2io, PSTR("%hhu"), &mmu_finda); //scan finda from buffer
|
||||||
|
mmu_last_finda_response = _millis();
|
||||||
FDEBUG_PRINTF_P(PSTR("MMU => '%dok'\n"), mmu_finda);
|
FDEBUG_PRINTF_P(PSTR("MMU => '%dok'\n"), mmu_finda);
|
||||||
puts_P(PSTR("MMU - ENABLED"));
|
puts_P(PSTR("MMU - ENABLED"));
|
||||||
mmu_enabled = true;
|
mmu_enabled = true;
|
||||||
@ -376,11 +378,11 @@ void mmu_loop(void)
|
|||||||
if (mmu_rx_ok() > 0)
|
if (mmu_rx_ok() > 0)
|
||||||
{
|
{
|
||||||
fscanf_P(uart2io, PSTR("%hhu"), &mmu_finda); //scan finda from buffer
|
fscanf_P(uart2io, PSTR("%hhu"), &mmu_finda); //scan finda from buffer
|
||||||
|
mmu_last_finda_response = _millis();
|
||||||
FDEBUG_PRINTF_P(PSTR("MMU => '%dok'\n"), mmu_finda);
|
FDEBUG_PRINTF_P(PSTR("MMU => '%dok'\n"), mmu_finda);
|
||||||
//printf_P(PSTR("Eact: %d\n"), int(e_active()));
|
//printf_P(PSTR("Eact: %d\n"), int(e_active()));
|
||||||
if (!mmu_finda && CHECK_FSENSOR && fsensor_enabled) {
|
if (!mmu_finda && CHECK_FSENSOR && fsensor_enabled) {
|
||||||
fsensor_stop_and_save_print();
|
fsensor_checkpoint_print();
|
||||||
enquecommand_front_P(PSTR("PRUSA fsensor_recover")); //then recover
|
|
||||||
ad_markDepleted(mmu_extruder);
|
ad_markDepleted(mmu_extruder);
|
||||||
if (lcd_autoDepleteEnabled() && !ad_allDepleted())
|
if (lcd_autoDepleteEnabled() && !ad_allDepleted())
|
||||||
{
|
{
|
||||||
@ -1355,7 +1357,7 @@ void lcd_mmu_load_to_nozzle(uint8_t filament_nr)
|
|||||||
manage_response(true, true, MMU_TCODE_MOVE);
|
manage_response(true, true, MMU_TCODE_MOVE);
|
||||||
mmu_continue_loading(false);
|
mmu_continue_loading(false);
|
||||||
mmu_extruder = tmp_extruder; //filament change is finished
|
mmu_extruder = tmp_extruder; //filament change is finished
|
||||||
marlin_rise_z();
|
raise_z_above(MIN_Z_FOR_LOAD, false);
|
||||||
mmu_load_to_nozzle();
|
mmu_load_to_nozzle();
|
||||||
load_filament_final_feed();
|
load_filament_final_feed();
|
||||||
st_synchronize();
|
st_synchronize();
|
||||||
@ -1556,34 +1558,27 @@ void mmu_continue_loading(bool blocking)
|
|||||||
increment_load_fail();
|
increment_load_fail();
|
||||||
// no break
|
// no break
|
||||||
case Ls::Retry:
|
case Ls::Retry:
|
||||||
#ifdef MMU_HAS_CUTTER
|
++retry; // overflow not handled, as it is not dangerous.
|
||||||
if (1 == eeprom_read_byte((uint8_t*)EEPROM_MMU_CUTTER_ENABLED))
|
if (retry >= max_retry)
|
||||||
{
|
{
|
||||||
mmu_command(MmuCmd::K0 + tmp_extruder);
|
state = Ls::Unload;
|
||||||
manage_response(true, true, MMU_UNLOAD_MOVE);
|
#ifdef MMU_HAS_CUTTER
|
||||||
}
|
if (1 == eeprom_read_byte((uint8_t*)EEPROM_MMU_CUTTER_ENABLED))
|
||||||
|
{
|
||||||
|
mmu_command(MmuCmd::K0 + tmp_extruder);
|
||||||
|
manage_response(true, true, MMU_UNLOAD_MOVE);
|
||||||
|
}
|
||||||
#endif //MMU_HAS_CUTTER
|
#endif //MMU_HAS_CUTTER
|
||||||
|
}
|
||||||
mmu_command(MmuCmd::T0 + tmp_extruder);
|
mmu_command(MmuCmd::T0 + tmp_extruder);
|
||||||
manage_response(true, true, MMU_TCODE_MOVE);
|
manage_response(true, true, MMU_TCODE_MOVE);
|
||||||
success = load_more();
|
success = load_more();
|
||||||
if (success) success = can_load();
|
if (success) success = can_load();
|
||||||
++retry; // overflow not handled, as it is not dangerous.
|
|
||||||
if (retry >= max_retry) state = Ls::Unload;
|
|
||||||
break;
|
break;
|
||||||
case Ls::Unload:
|
case Ls::Unload:
|
||||||
stop_and_save_print_to_ram(0, 0);
|
stop_and_save_print_to_ram(0, 0);
|
||||||
|
long_pause();
|
||||||
//lift z
|
|
||||||
current_position[Z_AXIS] += Z_PAUSE_LIFT;
|
|
||||||
if (current_position[Z_AXIS] > Z_MAX_POS) current_position[Z_AXIS] = Z_MAX_POS;
|
|
||||||
plan_buffer_line_curposXYZE(15, active_extruder);
|
|
||||||
st_synchronize();
|
|
||||||
|
|
||||||
//Move XY to side
|
|
||||||
current_position[X_AXIS] = X_PAUSE_POS;
|
|
||||||
current_position[Y_AXIS] = Y_PAUSE_POS;
|
|
||||||
plan_buffer_line_curposXYZE(50, active_extruder);
|
|
||||||
st_synchronize();
|
|
||||||
|
|
||||||
mmu_command(MmuCmd::U0);
|
mmu_command(MmuCmd::U0);
|
||||||
manage_response(false, true, MMU_UNLOAD_MOVE);
|
manage_response(false, true, MMU_UNLOAD_MOVE);
|
||||||
|
@ -14,6 +14,7 @@ extern uint8_t mmu_extruder;
|
|||||||
extern uint8_t tmp_extruder;
|
extern uint8_t tmp_extruder;
|
||||||
|
|
||||||
extern int8_t mmu_finda;
|
extern int8_t mmu_finda;
|
||||||
|
extern uint32_t mmu_last_finda_response;
|
||||||
extern bool ir_sensor_detected;
|
extern bool ir_sensor_detected;
|
||||||
|
|
||||||
extern int16_t mmu_version;
|
extern int16_t mmu_version;
|
||||||
|
@ -258,11 +258,11 @@ void optiboot_w25x20cl_enter()
|
|||||||
uint32_t addr = (((uint32_t)rampz) << 16) | address;
|
uint32_t addr = (((uint32_t)rampz) << 16) | address;
|
||||||
// During a single bootloader run, only erase a 64kB block once.
|
// During a single bootloader run, only erase a 64kB block once.
|
||||||
// An 8bit bitmask 'pages_erased' covers 512kB of FLASH memory.
|
// An 8bit bitmask 'pages_erased' covers 512kB of FLASH memory.
|
||||||
if (address == 0 && (pages_erased & (1 << addr)) == 0) {
|
if ((address == 0) && (pages_erased & (1 << (addr >> 16))) == 0) {
|
||||||
w25x20cl_wait_busy();
|
w25x20cl_wait_busy();
|
||||||
w25x20cl_enable_wr();
|
w25x20cl_enable_wr();
|
||||||
w25x20cl_block64_erase(addr);
|
w25x20cl_block64_erase(addr);
|
||||||
pages_erased |= (1 << addr);
|
pages_erased |= (1 << (addr >> 16));
|
||||||
}
|
}
|
||||||
w25x20cl_wait_busy();
|
w25x20cl_wait_busy();
|
||||||
w25x20cl_enable_wr();
|
w25x20cl_enable_wr();
|
||||||
|
@ -71,12 +71,13 @@
|
|||||||
#define HEATER_2_PIN -1
|
#define HEATER_2_PIN -1
|
||||||
#define TEMP_2_PIN -1
|
#define TEMP_2_PIN -1
|
||||||
|
|
||||||
#define TEMP_AMBIENT_PIN 5 //A5
|
#define TEMP_AMBIENT_PIN 6 //A6
|
||||||
|
|
||||||
#define TEMP_PINDA_PIN 3 //A3
|
#define TEMP_PINDA_PIN 3 //A3
|
||||||
|
|
||||||
#define VOLT_PWR_PIN 4 //A4
|
#define VOLT_PWR_PIN 4 //A4
|
||||||
#define VOLT_BED_PIN 9 //A9
|
#define VOLT_BED_PIN 9 //A9
|
||||||
|
#define VOLT_IR_PIN 8 //A8
|
||||||
|
|
||||||
|
|
||||||
#define E0_TMC2130_CS 66
|
#define E0_TMC2130_CS 66
|
||||||
@ -99,7 +100,7 @@
|
|||||||
|
|
||||||
//#define KILL_PIN 32
|
//#define KILL_PIN 32
|
||||||
|
|
||||||
//#define LCD_BL_PIN 5 //backlight control pin
|
#define LCD_BL_PIN 5 //backlight control pin
|
||||||
#define BEEPER 84 // Beeper on AUX-4
|
#define BEEPER 84 // Beeper on AUX-4
|
||||||
#define LCD_PINS_RS 82
|
#define LCD_PINS_RS 82
|
||||||
#define LCD_PINS_ENABLE 61 // !!! changed from 18 (EINY03)
|
#define LCD_PINS_ENABLE 61 // !!! changed from 18 (EINY03)
|
||||||
|
@ -659,15 +659,15 @@ float junction_deviation = 0.1;
|
|||||||
// Add a new linear movement to the buffer. steps_x, _y and _z is the absolute position in
|
// Add a new linear movement to the buffer. steps_x, _y and _z is the absolute position in
|
||||||
// mm. Microseconds specify how many microseconds the move should take to perform. To aid acceleration
|
// mm. Microseconds specify how many microseconds the move should take to perform. To aid acceleration
|
||||||
// calculation the caller must also provide the physical length of the line in millimeters.
|
// calculation the caller must also provide the physical length of the line in millimeters.
|
||||||
void plan_buffer_line(float x, float y, float z, const float &e, float feed_rate, uint8_t extruder)
|
void plan_buffer_line(float x, float y, float z, const float &e, float feed_rate, uint8_t extruder, const float* gcode_target)
|
||||||
{
|
{
|
||||||
// Calculate the buffer head after we push this byte
|
// Calculate the buffer head after we push this byte
|
||||||
int next_buffer_head = next_block_index(block_buffer_head);
|
int next_buffer_head = next_block_index(block_buffer_head);
|
||||||
|
|
||||||
// If the buffer is full: good! That means we are well ahead of the robot.
|
// If the buffer is full: good! That means we are well ahead of the robot.
|
||||||
// Rest here until there is room in the buffer.
|
// Rest here until there is room in the buffer.
|
||||||
|
waiting_inside_plan_buffer_line_print_aborted = false;
|
||||||
if (block_buffer_tail == next_buffer_head) {
|
if (block_buffer_tail == next_buffer_head) {
|
||||||
waiting_inside_plan_buffer_line_print_aborted = false;
|
|
||||||
do {
|
do {
|
||||||
manage_heater();
|
manage_heater();
|
||||||
// Vojtech: Don't disable motors inside the planner!
|
// Vojtech: Don't disable motors inside the planner!
|
||||||
@ -687,6 +687,29 @@ void plan_buffer_line(float x, float y, float z, const float &e, float feed_rate
|
|||||||
planner_update_queue_min_counter();
|
planner_update_queue_min_counter();
|
||||||
#endif /* PLANNER_DIAGNOSTICS */
|
#endif /* PLANNER_DIAGNOSTICS */
|
||||||
|
|
||||||
|
// Prepare to set up new block
|
||||||
|
block_t *block = &block_buffer[block_buffer_head];
|
||||||
|
|
||||||
|
// Mark block as not busy (Not executed by the stepper interrupt, could be still tinkered with.)
|
||||||
|
block->busy = false;
|
||||||
|
|
||||||
|
// Set sdlen for calculating sd position
|
||||||
|
block->sdlen = 0;
|
||||||
|
|
||||||
|
// Save original destination of the move
|
||||||
|
if (gcode_target)
|
||||||
|
memcpy(block->gcode_target, gcode_target, sizeof(block_t::gcode_target));
|
||||||
|
else
|
||||||
|
{
|
||||||
|
block->gcode_target[X_AXIS] = x;
|
||||||
|
block->gcode_target[Y_AXIS] = y;
|
||||||
|
block->gcode_target[Z_AXIS] = z;
|
||||||
|
block->gcode_target[E_AXIS] = e;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Save the global feedrate at scheduling time
|
||||||
|
block->gcode_feedrate = feedrate;
|
||||||
|
|
||||||
#ifdef ENABLE_AUTO_BED_LEVELING
|
#ifdef ENABLE_AUTO_BED_LEVELING
|
||||||
apply_rotation_xyz(plan_bed_level_matrix, x, y, z);
|
apply_rotation_xyz(plan_bed_level_matrix, x, y, z);
|
||||||
#endif // ENABLE_AUTO_BED_LEVELING
|
#endif // ENABLE_AUTO_BED_LEVELING
|
||||||
@ -786,15 +809,6 @@ void plan_buffer_line(float x, float y, float z, const float &e, float feed_rate
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Prepare to set up new block
|
|
||||||
block_t *block = &block_buffer[block_buffer_head];
|
|
||||||
|
|
||||||
// Set sdlen for calculating sd position
|
|
||||||
block->sdlen = 0;
|
|
||||||
|
|
||||||
// Mark block as not busy (Not executed by the stepper interrupt, could be still tinkered with.)
|
|
||||||
block->busy = false;
|
|
||||||
|
|
||||||
// Number of steps for each axis
|
// Number of steps for each axis
|
||||||
#ifndef COREXY
|
#ifndef COREXY
|
||||||
// default non-h-bot planning
|
// default non-h-bot planning
|
||||||
|
@ -116,7 +116,10 @@ typedef struct {
|
|||||||
unsigned long abs_adv_steps_multiplier8; // Factorised by 2^8 to avoid float
|
unsigned long abs_adv_steps_multiplier8; // Factorised by 2^8 to avoid float
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
uint16_t sdlen;
|
// Save/recovery state data
|
||||||
|
float gcode_target[NUM_AXIS]; // Target (abs mm) of the original Gcode instruction
|
||||||
|
uint16_t gcode_feedrate; // Default and/or move feedrate
|
||||||
|
uint16_t sdlen; // Length of the Gcode instruction
|
||||||
} block_t;
|
} block_t;
|
||||||
|
|
||||||
#ifdef LIN_ADVANCE
|
#ifdef LIN_ADVANCE
|
||||||
@ -147,7 +150,7 @@ vector_3 plan_get_position();
|
|||||||
/// The performance penalty is negligible, since these planned lines are usually maintenance moves with the extruder.
|
/// The performance penalty is negligible, since these planned lines are usually maintenance moves with the extruder.
|
||||||
void plan_buffer_line_curposXYZE(float feed_rate, uint8_t extruder);
|
void plan_buffer_line_curposXYZE(float feed_rate, uint8_t extruder);
|
||||||
|
|
||||||
void plan_buffer_line(float x, float y, float z, const float &e, float feed_rate, uint8_t extruder);
|
void plan_buffer_line(float x, float y, float z, const float &e, float feed_rate, uint8_t extruder, const float* gcode_target = NULL);
|
||||||
//void plan_buffer_line(const float &x, const float &y, const float &z, const float &e, float feed_rate, const uint8_t &extruder);
|
//void plan_buffer_line(const float &x, const float &y, const float &z, const float &e, float feed_rate, const uint8_t &extruder);
|
||||||
#endif // ENABLE_AUTO_BED_LEVELING
|
#endif // ENABLE_AUTO_BED_LEVELING
|
||||||
|
|
||||||
@ -238,6 +241,7 @@ FORCE_INLINE bool planner_queue_full() {
|
|||||||
// wait for the steppers to stop,
|
// wait for the steppers to stop,
|
||||||
// update planner's current position and the current_position of the front end.
|
// update planner's current position and the current_position of the front end.
|
||||||
extern void planner_abort_hard();
|
extern void planner_abort_hard();
|
||||||
|
extern bool waiting_inside_plan_buffer_line_print_aborted;
|
||||||
|
|
||||||
#ifdef PREVENT_DANGEROUS_EXTRUDE
|
#ifdef PREVENT_DANGEROUS_EXTRUDE
|
||||||
void set_extrude_min_temp(float temp);
|
void set_extrude_min_temp(float temp);
|
||||||
|
@ -5,6 +5,7 @@
|
|||||||
//#include <inttypes.h>
|
//#include <inttypes.h>
|
||||||
//#include <avr/eeprom.h>
|
//#include <avr/eeprom.h>
|
||||||
//#include "eeprom.h"
|
//#include "eeprom.h"
|
||||||
|
#include "backlight.h"
|
||||||
|
|
||||||
|
|
||||||
//eSOUND_MODE eSoundMode=e_SOUND_MODE_LOUD;
|
//eSOUND_MODE eSoundMode=e_SOUND_MODE_LOUD;
|
||||||
@ -63,6 +64,7 @@ Sound_SaveMode();
|
|||||||
|
|
||||||
//if critical is true then silend and once mode is ignored
|
//if critical is true then silend and once mode is ignored
|
||||||
void Sound_MakeCustom(uint16_t ms,uint16_t tone_,bool critical){
|
void Sound_MakeCustom(uint16_t ms,uint16_t tone_,bool critical){
|
||||||
|
backlight_wake();
|
||||||
if (!critical){
|
if (!critical){
|
||||||
if (eSoundMode != e_SOUND_MODE_SILENT){
|
if (eSoundMode != e_SOUND_MODE_SILENT){
|
||||||
if(!tone_){
|
if(!tone_){
|
||||||
@ -135,6 +137,7 @@ switch(eSoundMode)
|
|||||||
|
|
||||||
static void Sound_DoSound_Blind_Alert(void)
|
static void Sound_DoSound_Blind_Alert(void)
|
||||||
{
|
{
|
||||||
|
backlight_wake(1);
|
||||||
uint8_t nI;
|
uint8_t nI;
|
||||||
|
|
||||||
for(nI=0; nI<20; nI++)
|
for(nI=0; nI<20; nI++)
|
||||||
@ -148,6 +151,7 @@ static void Sound_DoSound_Blind_Alert(void)
|
|||||||
|
|
||||||
static void Sound_DoSound_Encoder_Move(void)
|
static void Sound_DoSound_Encoder_Move(void)
|
||||||
{
|
{
|
||||||
|
backlight_wake();
|
||||||
uint8_t nI;
|
uint8_t nI;
|
||||||
|
|
||||||
for(nI=0;nI<5;nI++)
|
for(nI=0;nI<5;nI++)
|
||||||
@ -161,6 +165,7 @@ uint8_t nI;
|
|||||||
|
|
||||||
static void Sound_DoSound_Echo(void)
|
static void Sound_DoSound_Echo(void)
|
||||||
{
|
{
|
||||||
|
backlight_wake();
|
||||||
uint8_t nI;
|
uint8_t nI;
|
||||||
|
|
||||||
for(nI=0;nI<10;nI++)
|
for(nI=0;nI<10;nI++)
|
||||||
@ -174,6 +179,7 @@ for(nI=0;nI<10;nI++)
|
|||||||
|
|
||||||
static void Sound_DoSound_Prompt(void)
|
static void Sound_DoSound_Prompt(void)
|
||||||
{
|
{
|
||||||
|
backlight_wake(2);
|
||||||
WRITE(BEEPER,HIGH);
|
WRITE(BEEPER,HIGH);
|
||||||
_delay_ms(500);
|
_delay_ms(500);
|
||||||
WRITE(BEEPER,LOW);
|
WRITE(BEEPER,LOW);
|
||||||
@ -181,6 +187,7 @@ WRITE(BEEPER,LOW);
|
|||||||
|
|
||||||
static void Sound_DoSound_Alert(bool bOnce)
|
static void Sound_DoSound_Alert(bool bOnce)
|
||||||
{
|
{
|
||||||
|
backlight_wake();
|
||||||
uint8_t nI,nMax;
|
uint8_t nI,nMax;
|
||||||
|
|
||||||
nMax=bOnce?1:3;
|
nMax=bOnce?1:3;
|
||||||
|
@ -3,12 +3,6 @@
|
|||||||
#define SOUND_H
|
#define SOUND_H
|
||||||
|
|
||||||
|
|
||||||
#define MSG_SOUND_MODE_LOUD "Sound [loud]"
|
|
||||||
#define MSG_SOUND_MODE_ONCE "Sound [once]"
|
|
||||||
#define MSG_SOUND_MODE_SILENT "Sound [silent]"
|
|
||||||
#define MSG_SOUND_MODE_BLIND "Sound [assist]"
|
|
||||||
|
|
||||||
|
|
||||||
#define e_SOUND_MODE_NULL 0xFF
|
#define e_SOUND_MODE_NULL 0xFF
|
||||||
typedef enum
|
typedef enum
|
||||||
{e_SOUND_MODE_LOUD,e_SOUND_MODE_ONCE,e_SOUND_MODE_SILENT,e_SOUND_MODE_BLIND} eSOUND_MODE;
|
{e_SOUND_MODE_LOUD,e_SOUND_MODE_ONCE,e_SOUND_MODE_SILENT,e_SOUND_MODE_BLIND} eSOUND_MODE;
|
||||||
|
@ -44,6 +44,8 @@
|
|||||||
#include "Timer.h"
|
#include "Timer.h"
|
||||||
#include "Configuration_prusa.h"
|
#include "Configuration_prusa.h"
|
||||||
|
|
||||||
|
#include "config.h"
|
||||||
|
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
//=============================public variables============================
|
//=============================public variables============================
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
@ -71,6 +73,10 @@ int current_voltage_raw_pwr = 0;
|
|||||||
int current_voltage_raw_bed = 0;
|
int current_voltage_raw_bed = 0;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if IR_SENSOR_ANALOG
|
||||||
|
int current_voltage_raw_IR = 0;
|
||||||
|
#endif //IR_SENSOR_ANALOG
|
||||||
|
|
||||||
int current_temperature_bed_raw = 0;
|
int current_temperature_bed_raw = 0;
|
||||||
float current_temperature_bed = 0.0;
|
float current_temperature_bed = 0.0;
|
||||||
|
|
||||||
@ -873,7 +879,7 @@ static float analog2temp(int raw, uint8_t e) {
|
|||||||
SERIAL_ERROR_START;
|
SERIAL_ERROR_START;
|
||||||
SERIAL_ERROR((int)e);
|
SERIAL_ERROR((int)e);
|
||||||
SERIAL_ERRORLNPGM(" - Invalid extruder number !");
|
SERIAL_ERRORLNPGM(" - Invalid extruder number !");
|
||||||
kill(PSTR(""), 6);
|
kill(NULL, 6);
|
||||||
return 0.0;
|
return 0.0;
|
||||||
}
|
}
|
||||||
#ifdef HEATER_0_USES_MAX6675
|
#ifdef HEATER_0_USES_MAX6675
|
||||||
@ -1576,11 +1582,14 @@ void adc_ready(void) //callback from adc when sampling finished
|
|||||||
current_voltage_raw_pwr = adc_values[ADC_PIN_IDX(VOLT_PWR_PIN)];
|
current_voltage_raw_pwr = adc_values[ADC_PIN_IDX(VOLT_PWR_PIN)];
|
||||||
#endif
|
#endif
|
||||||
#ifdef AMBIENT_THERMISTOR
|
#ifdef AMBIENT_THERMISTOR
|
||||||
current_temperature_raw_ambient = adc_values[ADC_PIN_IDX(TEMP_AMBIENT_PIN)];
|
current_temperature_raw_ambient = adc_values[ADC_PIN_IDX(TEMP_AMBIENT_PIN)]; // 5->6
|
||||||
#endif //AMBIENT_THERMISTOR
|
#endif //AMBIENT_THERMISTOR
|
||||||
#ifdef VOLT_BED_PIN
|
#ifdef VOLT_BED_PIN
|
||||||
current_voltage_raw_bed = adc_values[ADC_PIN_IDX(VOLT_BED_PIN)]; // 6->9
|
current_voltage_raw_bed = adc_values[ADC_PIN_IDX(VOLT_BED_PIN)]; // 6->9
|
||||||
#endif
|
#endif
|
||||||
|
#if IR_SENSOR_ANALOG
|
||||||
|
current_voltage_raw_IR = adc_values[ADC_PIN_IDX(VOLT_IR_PIN)];
|
||||||
|
#endif //IR_SENSOR_ANALOG
|
||||||
temp_meas_ready = true;
|
temp_meas_ready = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -27,6 +27,8 @@
|
|||||||
#include "stepper.h"
|
#include "stepper.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#include "config.h"
|
||||||
|
|
||||||
|
|
||||||
#ifdef SYSTEM_TIMER_2
|
#ifdef SYSTEM_TIMER_2
|
||||||
|
|
||||||
@ -74,6 +76,9 @@ extern int current_voltage_raw_pwr;
|
|||||||
extern int current_voltage_raw_bed;
|
extern int current_voltage_raw_bed;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if IR_SENSOR_ANALOG
|
||||||
|
extern int current_voltage_raw_IR;
|
||||||
|
#endif //IR_SENSOR_ANALOG
|
||||||
|
|
||||||
#if defined(CONTROLLERFAN_PIN) && CONTROLLERFAN_PIN > -1
|
#if defined(CONTROLLERFAN_PIN) && CONTROLLERFAN_PIN > -1
|
||||||
extern unsigned char soft_pwm_bed;
|
extern unsigned char soft_pwm_bed;
|
||||||
|
@ -24,7 +24,7 @@ uint8_t tmc2130_current_h[4] = TMC2130_CURRENTS_H;
|
|||||||
uint8_t tmc2130_current_r[4] = TMC2130_CURRENTS_R;
|
uint8_t tmc2130_current_r[4] = TMC2130_CURRENTS_R;
|
||||||
|
|
||||||
//running currents for homing
|
//running currents for homing
|
||||||
uint8_t tmc2130_current_r_home[4] = {8, 10, 20, 18};
|
uint8_t tmc2130_current_r_home[4] = TMC2130_CURRENTS_R_HOME;
|
||||||
|
|
||||||
|
|
||||||
//pwm_ampl
|
//pwm_ampl
|
||||||
@ -40,7 +40,7 @@ uint8_t tmc2130_mres[4] = {0, 0, 0, 0}; //will be filed at begin of init
|
|||||||
|
|
||||||
|
|
||||||
uint8_t tmc2130_sg_thr[4] = {TMC2130_SG_THRS_X, TMC2130_SG_THRS_Y, TMC2130_SG_THRS_Z, TMC2130_SG_THRS_E};
|
uint8_t tmc2130_sg_thr[4] = {TMC2130_SG_THRS_X, TMC2130_SG_THRS_Y, TMC2130_SG_THRS_Z, TMC2130_SG_THRS_E};
|
||||||
uint8_t tmc2130_sg_thr_home[4] = {3, 3, TMC2130_SG_THRS_Z, TMC2130_SG_THRS_E};
|
uint8_t tmc2130_sg_thr_home[4] = TMC2130_SG_THRS_HOME;
|
||||||
|
|
||||||
|
|
||||||
uint8_t tmc2130_sg_homing_axes_mask = 0x00;
|
uint8_t tmc2130_sg_homing_axes_mask = 0x00;
|
||||||
@ -427,7 +427,7 @@ void tmc2130_check_overtemp()
|
|||||||
|
|
||||||
void tmc2130_setup_chopper(uint8_t axis, uint8_t mres, uint8_t current_h, uint8_t current_r)
|
void tmc2130_setup_chopper(uint8_t axis, uint8_t mres, uint8_t current_h, uint8_t current_r)
|
||||||
{
|
{
|
||||||
uint8_t intpol = 1;
|
uint8_t intpol = (mres != 0); // intpol to 256 only if microsteps aren't 256
|
||||||
uint8_t toff = tmc2130_chopper_config[axis].toff; // toff = 3 (fchop = 27.778kHz)
|
uint8_t toff = tmc2130_chopper_config[axis].toff; // toff = 3 (fchop = 27.778kHz)
|
||||||
uint8_t hstrt = tmc2130_chopper_config[axis].hstr; //initial 4, modified to 5
|
uint8_t hstrt = tmc2130_chopper_config[axis].hstr; //initial 4, modified to 5
|
||||||
uint8_t hend = tmc2130_chopper_config[axis].hend; //original value = 1
|
uint8_t hend = tmc2130_chopper_config[axis].hend; //original value = 1
|
||||||
@ -600,7 +600,7 @@ void tmc2130_wr_THIGH(uint8_t axis, uint32_t val32)
|
|||||||
|
|
||||||
uint8_t tmc2130_usteps2mres(uint16_t usteps)
|
uint8_t tmc2130_usteps2mres(uint16_t usteps)
|
||||||
{
|
{
|
||||||
uint8_t mres = 8; while (mres && (usteps >>= 1)) mres--;
|
uint8_t mres = 8; while (usteps >>= 1) mres--;
|
||||||
return mres;
|
return mres;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -807,15 +807,15 @@ void tmc2130_goto_step(uint8_t axis, uint8_t step, uint8_t dir, uint16_t delay_u
|
|||||||
{
|
{
|
||||||
dir = tmc2130_get_inv(axis)?0:1;
|
dir = tmc2130_get_inv(axis)?0:1;
|
||||||
int steps = (int)step - (int)(mscnt >> shift);
|
int steps = (int)step - (int)(mscnt >> shift);
|
||||||
if (steps < 0)
|
|
||||||
{
|
|
||||||
dir ^= 1;
|
|
||||||
steps = -steps;
|
|
||||||
}
|
|
||||||
if (steps > static_cast<int>(cnt / 2))
|
if (steps > static_cast<int>(cnt / 2))
|
||||||
{
|
{
|
||||||
dir ^= 1;
|
dir ^= 1;
|
||||||
steps = cnt - steps;
|
steps = cnt - steps; // This can create a negative step value
|
||||||
|
}
|
||||||
|
if (steps < 0)
|
||||||
|
{
|
||||||
|
dir ^= 1;
|
||||||
|
steps = -steps;
|
||||||
}
|
}
|
||||||
cnt = steps;
|
cnt = steps;
|
||||||
}
|
}
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -6,6 +6,9 @@
|
|||||||
#include "conv2str.h"
|
#include "conv2str.h"
|
||||||
#include "menu.h"
|
#include "menu.h"
|
||||||
#include "mesh_bed_calibration.h"
|
#include "mesh_bed_calibration.h"
|
||||||
|
#include "config.h"
|
||||||
|
|
||||||
|
#include "config.h"
|
||||||
|
|
||||||
extern void menu_lcd_longpress_func(void);
|
extern void menu_lcd_longpress_func(void);
|
||||||
extern void menu_lcd_charsetup_func(void);
|
extern void menu_lcd_charsetup_func(void);
|
||||||
@ -47,6 +50,7 @@ unsigned char lcd_choose_color();
|
|||||||
void lcd_load_filament_color_check();
|
void lcd_load_filament_color_check();
|
||||||
//void lcd_mylang();
|
//void lcd_mylang();
|
||||||
|
|
||||||
|
extern void lcd_belttest();
|
||||||
extern bool lcd_selftest();
|
extern bool lcd_selftest();
|
||||||
|
|
||||||
void lcd_menu_statistics();
|
void lcd_menu_statistics();
|
||||||
@ -217,7 +221,9 @@ void lcd_set_degree();
|
|||||||
void lcd_set_progress();
|
void lcd_set_progress();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if (LANG_MODE != 0)
|
||||||
void lcd_language();
|
void lcd_language();
|
||||||
|
#endif
|
||||||
|
|
||||||
void lcd_wizard();
|
void lcd_wizard();
|
||||||
bool lcd_autoDepleteEnabled();
|
bool lcd_autoDepleteEnabled();
|
||||||
@ -244,4 +250,12 @@ enum class WizState : uint8_t
|
|||||||
|
|
||||||
void lcd_wizard(WizState state);
|
void lcd_wizard(WizState state);
|
||||||
|
|
||||||
|
#define VOLT_DIV_REF 5
|
||||||
|
#if IR_SENSOR_ANALOG
|
||||||
|
#define IRsensor_Hmin_TRESHOLD (3.0*1023*OVERSAMPLENR/VOLT_DIV_REF) // ~3.0V (0.6*Vcc)
|
||||||
|
#define IRsensor_Lmax_TRESHOLD (1.5*1023*OVERSAMPLENR/VOLT_DIV_REF) // ~1.5V (0.3*Vcc)
|
||||||
|
#define IRsensor_Hopen_TRESHOLD (4.6*1023*OVERSAMPLENR/VOLT_DIV_REF) // ~4.6V (N.C. @ Ru~20-50k, Rd'=56k, Ru'=10k)
|
||||||
|
#define IRsensor_Ldiode_TRESHOLD (0.3*1023*OVERSAMPLENR/VOLT_DIV_REF) // ~0.3V
|
||||||
|
#endif //IR_SENSOR_ANALOG
|
||||||
|
|
||||||
#endif //ULTRALCD_H
|
#endif //ULTRALCD_H
|
||||||
|
@ -260,11 +260,13 @@
|
|||||||
#define TMC2130_SG_THRS_Y 3 // stallguard sensitivity for Y axis
|
#define TMC2130_SG_THRS_Y 3 // stallguard sensitivity for Y axis
|
||||||
#define TMC2130_SG_THRS_Z 4 // stallguard sensitivity for Z axis
|
#define TMC2130_SG_THRS_Z 4 // stallguard sensitivity for Z axis
|
||||||
#define TMC2130_SG_THRS_E 3 // stallguard sensitivity for E axis
|
#define TMC2130_SG_THRS_E 3 // stallguard sensitivity for E axis
|
||||||
|
#define TMC2130_SG_THRS_HOME {3, 3, TMC2130_SG_THRS_Z, TMC2130_SG_THRS_E}
|
||||||
|
|
||||||
//new settings is possible for vsense = 1, running current value > 31 set vsense to zero and shift both currents by 1 bit right (Z axis only)
|
//new settings is possible for vsense = 1, running current value > 31 set vsense to zero and shift both currents by 1 bit right (Z axis only)
|
||||||
#define TMC2130_CURRENTS_H {16, 20, 35, 30} // default holding currents for all axes
|
#define TMC2130_CURRENTS_H {16, 20, 35, 30} // default holding currents for all axes
|
||||||
#define TMC2130_CURRENTS_R {16, 20, 35, 30} // default running currents for all axes
|
#define TMC2130_CURRENTS_R {16, 20, 35, 30} // default running currents for all axes
|
||||||
#define TMC2130_UNLOAD_CURRENT_R 12 // lowe current for M600 to protect filament sensor
|
#define TMC2130_CURRENTS_R_HOME {8, 10, 20, 18} // homing running currents for all axes
|
||||||
|
// #define TMC2130_UNLOAD_CURRENT_R 12 // lower current for M600 to protect filament sensor - Unused
|
||||||
|
|
||||||
#define TMC2130_STEALTH_Z
|
#define TMC2130_STEALTH_Z
|
||||||
|
|
||||||
|
@ -262,11 +262,13 @@
|
|||||||
#define TMC2130_SG_THRS_Y 3 // stallguard sensitivity for Y axis
|
#define TMC2130_SG_THRS_Y 3 // stallguard sensitivity for Y axis
|
||||||
#define TMC2130_SG_THRS_Z 4 // stallguard sensitivity for Z axis
|
#define TMC2130_SG_THRS_Z 4 // stallguard sensitivity for Z axis
|
||||||
#define TMC2130_SG_THRS_E 3 // stallguard sensitivity for E axis
|
#define TMC2130_SG_THRS_E 3 // stallguard sensitivity for E axis
|
||||||
|
#define TMC2130_SG_THRS_HOME {3, 3, TMC2130_SG_THRS_Z, TMC2130_SG_THRS_E}
|
||||||
|
|
||||||
//new settings is possible for vsense = 1, running current value > 31 set vsense to zero and shift both currents by 1 bit right (Z axis only)
|
//new settings is possible for vsense = 1, running current value > 31 set vsense to zero and shift both currents by 1 bit right (Z axis only)
|
||||||
#define TMC2130_CURRENTS_H {16, 20, 35, 30} // default holding currents for all axes
|
#define TMC2130_CURRENTS_H {16, 20, 35, 30} // default holding currents for all axes
|
||||||
#define TMC2130_CURRENTS_R {16, 20, 35, 30} // default running currents for all axes
|
#define TMC2130_CURRENTS_R {16, 20, 35, 30} // default running currents for all axes
|
||||||
#define TMC2130_UNLOAD_CURRENT_R 12 // lowe current for M600 to protect filament sensor
|
#define TMC2130_CURRENTS_R_HOME {8, 10, 20, 18} // homing running currents for all axes
|
||||||
|
// #define TMC2130_UNLOAD_CURRENT_R 12 // lower current for M600 to protect filament sensor - Unused
|
||||||
|
|
||||||
#define TMC2130_STEALTH_Z
|
#define TMC2130_STEALTH_Z
|
||||||
|
|
||||||
|
117
PF-build.sh
117
PF-build.sh
@ -56,7 +56,7 @@
|
|||||||
# Some may argue that this is only used by a script, BUT as soon someone accidentally or on purpose starts Arduino IDE
|
# Some may argue that this is only used by a script, BUT as soon someone accidentally or on purpose starts Arduino IDE
|
||||||
# it will use the default Arduino IDE folders and so can corrupt the build environment.
|
# it will use the default Arduino IDE folders and so can corrupt the build environment.
|
||||||
#
|
#
|
||||||
# Version: 1.0.6-Build_9
|
# Version: 1.0.6-Build_10
|
||||||
# Change log:
|
# Change log:
|
||||||
# 12 Jan 2019, 3d-gussner, Fixed "compiler.c.elf.flags=-w -Os -Wl,-u,vfprintf -lprintf_flt -lm -Wl,--gc-sections" in 'platform.txt'
|
# 12 Jan 2019, 3d-gussner, Fixed "compiler.c.elf.flags=-w -Os -Wl,-u,vfprintf -lprintf_flt -lm -Wl,--gc-sections" in 'platform.txt'
|
||||||
# 16 Jan 2019, 3d-gussner, Build_2, Added development check to modify 'Configuration.h' to prevent unwanted LCD messages that Firmware is unknown
|
# 16 Jan 2019, 3d-gussner, Build_2, Added development check to modify 'Configuration.h' to prevent unwanted LCD messages that Firmware is unknown
|
||||||
@ -112,7 +112,9 @@
|
|||||||
# Changed Hex-files folder to PF-build-hex as requested in PR
|
# Changed Hex-files folder to PF-build-hex as requested in PR
|
||||||
# 23 Jul 2019, 3d-gussner, Added Finding OS version routine so supporting new OS should get easier
|
# 23 Jul 2019, 3d-gussner, Added Finding OS version routine so supporting new OS should get easier
|
||||||
# 26 Jul 2019, 3d-gussner, Change JSON repository to prusa3d after PR https://github.com/prusa3d/Arduino_Boards/pull/1 was merged
|
# 26 Jul 2019, 3d-gussner, Change JSON repository to prusa3d after PR https://github.com/prusa3d/Arduino_Boards/pull/1 was merged
|
||||||
|
# 23 Sep 2019, 3d-gussner, Prepare PF-build.sh for comming Prusa3d/Arduino_Boards version 1.0.2 Pull Request
|
||||||
|
# 17 Oct 2019, 3d-gussner, Changed folder and check file names to have seperated build enviroments depening on Arduino IDE version and
|
||||||
|
# board-versions.
|
||||||
#### Start check if OSTYPE is supported
|
#### Start check if OSTYPE is supported
|
||||||
OS_FOUND=$( command -v uname)
|
OS_FOUND=$( command -v uname)
|
||||||
|
|
||||||
@ -211,7 +213,8 @@ fi
|
|||||||
#### Set build environment
|
#### Set build environment
|
||||||
ARDUINO_ENV="1.8.5"
|
ARDUINO_ENV="1.8.5"
|
||||||
BUILD_ENV="1.0.6"
|
BUILD_ENV="1.0.6"
|
||||||
BOARD="PrusaResearchRambo"
|
BOARD="rambo"
|
||||||
|
BOARD_PACKAGE_NAME="PrusaResearchRambo"
|
||||||
BOARD_VERSION="1.0.1"
|
BOARD_VERSION="1.0.1"
|
||||||
BOARD_URL="https://raw.githubusercontent.com/prusa3d/Arduino_Boards/master/IDE_Board_Manager/package_prusa3d_index.json"
|
BOARD_URL="https://raw.githubusercontent.com/prusa3d/Arduino_Boards/master/IDE_Board_Manager/package_prusa3d_index.json"
|
||||||
BOARD_FILENAME="prusa3drambo"
|
BOARD_FILENAME="prusa3drambo"
|
||||||
@ -229,6 +232,7 @@ echo ""
|
|||||||
echo "Ardunio IDE :" $ARDUINO_ENV
|
echo "Ardunio IDE :" $ARDUINO_ENV
|
||||||
echo "Build env :" $BUILD_ENV
|
echo "Build env :" $BUILD_ENV
|
||||||
echo "Board :" $BOARD
|
echo "Board :" $BOARD
|
||||||
|
echo "Package name:" $BOARD_PACKAGE_NAME
|
||||||
echo "Specific Lib:" $LIB
|
echo "Specific Lib:" $LIB
|
||||||
echo ""
|
echo ""
|
||||||
|
|
||||||
@ -259,12 +263,12 @@ if [ $TARGET_OS == "windows" ]; then
|
|||||||
wget https://downloads.arduino.cc/arduino-$ARDUINO_ENV-windows.zip || exit 7
|
wget https://downloads.arduino.cc/arduino-$ARDUINO_ENV-windows.zip || exit 7
|
||||||
echo "$(tput sgr 0)"
|
echo "$(tput sgr 0)"
|
||||||
fi
|
fi
|
||||||
if [ ! -d "../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor" ]; then
|
if [[ ! -d "../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor" && ! -e "../PF-build-env-$BUILD_ENV/arduino-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt" ]]; then
|
||||||
echo "$(tput setaf 6)Unzipping Windows 32/64-bit Arduino IDE portable...$(tput setaf 2)"
|
echo "$(tput setaf 6)Unzipping Windows 32/64-bit Arduino IDE portable...$(tput setaf 2)"
|
||||||
sleep 2
|
sleep 2
|
||||||
unzip arduino-$ARDUINO_ENV-windows.zip -d ../PF-build-env-$BUILD_ENV || exit 7
|
unzip arduino-$ARDUINO_ENV-windows.zip -d ../PF-build-env-$BUILD_ENV || exit 7
|
||||||
mv ../PF-build-env-$BUILD_ENV/arduino-$ARDUINO_ENV ../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor
|
mv ../PF-build-env-$BUILD_ENV/arduino-$ARDUINO_ENV ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor
|
||||||
echo "# arduino-$ARDUINO_ENV-$TARGET_OS-$Processor" >> ../PF-build-env-$BUILD_ENV/arduino-$ARDUINO_ENV-$TARGET_OS-$Processor
|
echo "# arduino-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor" >> ../PF-build-env-$BUILD_ENV/arduino-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt
|
||||||
echo "$(tput sgr0)"
|
echo "$(tput sgr0)"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
@ -277,55 +281,55 @@ if [ $TARGET_OS == "linux" ]; then
|
|||||||
wget --no-check-certificate https://downloads.arduino.cc/arduino-$ARDUINO_ENV-linux$Processor.tar.xz || exit 8
|
wget --no-check-certificate https://downloads.arduino.cc/arduino-$ARDUINO_ENV-linux$Processor.tar.xz || exit 8
|
||||||
echo "$(tput sgr 0)"
|
echo "$(tput sgr 0)"
|
||||||
fi
|
fi
|
||||||
if [[ ! -d "../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor" && ! -e "../PF-build-env-$BUILD_ENV/arduino-$ARDUINO_ENV-$TARGET_OS-$Processor.txt" ]]; then
|
if [[ ! -d "../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor" && ! -e "../PF-build-env-$BUILD_ENV/arduino-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt" ]]; then
|
||||||
echo "$(tput setaf 6)Unzipping Linux $Processor Arduino IDE portable...$(tput setaf 2)"
|
echo "$(tput setaf 6)Unzipping Linux $Processor Arduino IDE portable...$(tput setaf 2)"
|
||||||
sleep 2
|
sleep 2
|
||||||
tar -xvf arduino-$ARDUINO_ENV-linux$Processor.tar.xz -C ../PF-build-env-$BUILD_ENV/ || exit 8
|
tar -xvf arduino-$ARDUINO_ENV-linux$Processor.tar.xz -C ../PF-build-env-$BUILD_ENV/ || exit 8
|
||||||
mv ../PF-build-env-$BUILD_ENV/arduino-$ARDUINO_ENV ../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor
|
mv ../PF-build-env-$BUILD_ENV/arduino-$ARDUINO_ENV ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor
|
||||||
echo "# arduino-$ARDUINO_ENV-$TARGET_OS-$Processor" >> ../PF-build-env-$BUILD_ENV/arduino-$ARDUINO_ENV-$TARGET_OS-$Processor.txt
|
echo "# arduino-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor" >> ../PF-build-env-$BUILD_ENV/arduino-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt
|
||||||
echo "$(tput sgr0)"
|
echo "$(tput sgr0)"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
# Make Arduino IDE portable
|
# Make Arduino IDE portable
|
||||||
if [ ! -d ../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor/ ]; then
|
if [ ! -d ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/ ]; then
|
||||||
mkdir ../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor/
|
mkdir ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ ! -d ../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor/portable/ ]; then
|
if [ ! -d ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/ ]; then
|
||||||
mkdir ../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor/portable
|
mkdir ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable
|
||||||
fi
|
fi
|
||||||
if [ ! -d ../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor/portable/output/ ]; then
|
if [ ! -d ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/output/ ]; then
|
||||||
mkdir ../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor/portable/output
|
mkdir ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/output
|
||||||
fi
|
fi
|
||||||
if [ ! -d ../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor/portable/packages/ ]; then
|
if [ ! -d ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/ ]; then
|
||||||
mkdir ../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor/portable/packages
|
mkdir ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages
|
||||||
fi
|
fi
|
||||||
if [ ! -d ../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor/portable/sketchbook/ ]; then
|
if [ ! -d ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/sketchbook/ ]; then
|
||||||
mkdir ../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor/portable/sketchbook
|
mkdir ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/sketchbook
|
||||||
fi
|
fi
|
||||||
if [ ! -d ../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor/portable/sketchbook/libraries/ ]; then
|
if [ ! -d ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/sketchbook/libraries/ ]; then
|
||||||
mkdir ../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor/portable/sketchbook/libraries
|
mkdir ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/sketchbook/libraries
|
||||||
fi
|
fi
|
||||||
if [ ! -d ../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor/portable/staging/ ]; then
|
if [ ! -d ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/staging/ ]; then
|
||||||
mkdir ../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor/portable/staging
|
mkdir ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/staging
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Change Arduino IDE preferences
|
# Change Arduino IDE preferences
|
||||||
if [ ! -e ../PF-build-env-$BUILD_ENV/Preferences-$TARGET_OS-$Processor.txt ]; then
|
if [ ! -e ../PF-build-env-$BUILD_ENV/Preferences-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt ]; then
|
||||||
echo "$(tput setaf 6)Setting $TARGET_OS-$Processor Arduino IDE preferences for portable GUI usage...$(tput setaf 2)"
|
echo "$(tput setaf 6)Setting $ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor Arduino IDE preferences for portable GUI usage...$(tput setaf 2)"
|
||||||
sleep 2
|
sleep 2
|
||||||
echo "update.check"
|
echo "update.check"
|
||||||
sed -i 's/update.check = true/update.check = false/g' ../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor/lib/preferences.txt
|
sed -i 's/update.check = true/update.check = false/g' ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/lib/preferences.txt
|
||||||
echo "board"
|
echo "board"
|
||||||
sed -i 's/board = uno/board = rambo/g' ../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor/lib/preferences.txt
|
sed -i 's/board = uno/board = $BOARD/g' ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/lib/preferences.txt
|
||||||
echo "editor.linenumbers"
|
echo "editor.linenumbers"
|
||||||
sed -i 's/editor.linenumbers = false/editor.linenumbers = true/g' ../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor/lib/preferences.txt
|
sed -i 's/editor.linenumbers = false/editor.linenumbers = true/g' ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/lib/preferences.txt
|
||||||
echo "boardsmanager.additional.urls"
|
echo "boardsmanager.additional.urls"
|
||||||
echo "boardsmanager.additional.urls=$BOARD_URL" >>../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor/lib/preferences.txt
|
echo "boardsmanager.additional.urls=$BOARD_URL" >>../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/lib/preferences.txt
|
||||||
echo "build.verbose=true" >>../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor/lib/preferences.txt
|
echo "build.verbose=true" >>../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/lib/preferences.txt
|
||||||
echo "compiler.cache_core=false" >>../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor/lib/preferences.txt
|
echo "compiler.cache_core=false" >>../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/lib/preferences.txt
|
||||||
echo "compiler.warning_level=all" >>../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor/lib/preferences.txt
|
echo "compiler.warning_level=all" >>../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/lib/preferences.txt
|
||||||
echo "# Preferences-$TARGET_OS-$Processor" >> ../PF-build-env-$BUILD_ENV/Preferences-$TARGET_OS-$Processor.txt
|
echo "# Preferences-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor" >> ../PF-build-env-$BUILD_ENV/Preferences-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt
|
||||||
echo "$(tput sgr0)"
|
echo "$(tput sgr0)"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -336,25 +340,26 @@ if [ ! -f "$BOARD_FILENAME-$BOARD_VERSION.tar.bz2" ]; then
|
|||||||
sleep 2
|
sleep 2
|
||||||
wget $BOARD_FILE_URL || exit 9
|
wget $BOARD_FILE_URL || exit 9
|
||||||
fi
|
fi
|
||||||
if [[ ! -d "../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor/portable/packages/$BOARD/hardware/avr/$BOARD_VERSION" || ! -e "../PF-build-env-$BUILD_ENV/$BOARD_FILENAME-$BOARD_VERSION-$TARGET_OS-$Processor.txt" ]]; then
|
if [[ ! -d "../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME/hardware/avr/$BOARD_VERSION" || ! -e "../PF-build-env-$BUILD_ENV/$BOARD_FILENAME-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt" ]]; then
|
||||||
echo "$(tput setaf 6)Unzipping $BOARD Arduino IDE portable...$(tput setaf 2)"
|
echo "$(tput setaf 6)Unzipping $BOARD_PACKAGE_NAME Arduino IDE portable...$(tput setaf 2)"
|
||||||
sleep 2
|
sleep 2
|
||||||
tar -xvf $BOARD_FILENAME-$BOARD_VERSION.tar.bz2 -C ../PF-build-env-$BUILD_ENV/ || exit 10
|
tar -xvf $BOARD_FILENAME-$BOARD_VERSION.tar.bz2 -C ../PF-build-env-$BUILD_ENV/ || exit 10
|
||||||
if [ ! -d ../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor/portable/packages/$BOARD ]; then
|
if [ ! -d ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME ]; then
|
||||||
mkdir ../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor/portable/packages/$BOARD
|
mkdir ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME
|
||||||
fi
|
fi
|
||||||
if [ ! -d ../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor/portable/packages/$BOARD ]; then
|
if [ ! -d ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME ]; then
|
||||||
mkdir ../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor/portable/packages/$BOARD
|
mkdir ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME
|
||||||
fi
|
fi
|
||||||
if [ ! -d ../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor/portable/packages/$BOARD/hardware ]; then
|
if [ ! -d ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME/hardware ]; then
|
||||||
mkdir ../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor/portable/packages/$BOARD/hardware
|
mkdir ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME/hardware
|
||||||
fi
|
fi
|
||||||
if [ ! -d ../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor/portable/packages/$BOARD/hardware/avr ]; then
|
if [ ! -d ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME/hardware/avr ]; then
|
||||||
mkdir ../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor/portable/packages/$BOARD/hardware/avr
|
mkdir ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME/hardware/avr
|
||||||
fi
|
fi
|
||||||
|
|
||||||
mv ../PF-build-env-$BUILD_ENV/$BOARD_FILENAME-$BOARD_VERSION ../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor/portable/packages/$BOARD/hardware/avr/$BOARD_VERSION
|
mv ../PF-build-env-$BUILD_ENV/$BOARD_FILENAME-$BOARD_VERSION ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/$BOARD_PACKAGE_NAME/hardware/avr/$BOARD_VERSION
|
||||||
echo "# $BOARD_FILENAME-$BOARD_VERSION" >> ../PF-build-env-$BUILD_ENV/$BOARD_FILENAME-$BOARD_VERSION-$TARGET_OS-$Processor.txt
|
echo "# $BOARD_FILENAME-$BOARD_VERSION" >> ../PF-build-env-$BUILD_ENV/$BOARD_FILENAME-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt
|
||||||
|
|
||||||
echo "$(tput sgr 0)"
|
echo "$(tput sgr 0)"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -365,30 +370,30 @@ if [ ! -f "PF-build-env-$BUILD_ENV.zip" ]; then
|
|||||||
wget $PF_BUILD_FILE_URL || exit 11
|
wget $PF_BUILD_FILE_URL || exit 11
|
||||||
echo "$(tput sgr 0)"
|
echo "$(tput sgr 0)"
|
||||||
fi
|
fi
|
||||||
if [ ! -e "../PF-build-env-$BUILD_ENV/PF-build-env-$BUILD_ENV-$TARGET_OS-$Processor.txt" ]; then
|
if [ ! -e "../PF-build-env-$BUILD_ENV/PF-build-env-$BUILD_ENV-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt" ]; then
|
||||||
echo "$(tput setaf 6)Unzipping Prusa Firmware build environment...$(tput setaf 2)"
|
echo "$(tput setaf 6)Unzipping Prusa Firmware build environment...$(tput setaf 2)"
|
||||||
sleep 2
|
sleep 2
|
||||||
unzip -o PF-build-env-$BUILD_ENV.zip -d ../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor || exit 12
|
unzip -o PF-build-env-$BUILD_ENV.zip -d ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor || exit 12
|
||||||
echo "# PF-build-env-$TARGET_OS-$Processor-$BUILD_ENV" >> ../PF-build-env-$BUILD_ENV/PF-build-env-$BUILD_ENV-$TARGET_OS-$Processor.txt
|
echo "# PF-build-env-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor-$BUILD_ENV" >> ../PF-build-env-$BUILD_ENV/PF-build-env-$BUILD_ENV-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt
|
||||||
echo "$(tput sgr0)"
|
echo "$(tput sgr0)"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Check if User updated Arduino IDE 1.8.5 boardsmanager and tools
|
# Check if User updated Arduino IDE 1.8.5 boardsmanager and tools
|
||||||
if [ -d "../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor/portable/packages/arduino/tools" ]; then
|
if [ -d "../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/arduino/tools" ]; then
|
||||||
echo "$(tput setaf 6)Arduino IDE boards / tools have been manually updated...$"
|
echo "$(tput setaf 6)Arduino IDE boards / tools have been manually updated...$"
|
||||||
echo "Please don't update the 'Arduino AVR boards' as this will prevent running this script (tput setaf 2)"
|
echo "Please don't update the 'Arduino AVR boards' as this will prevent running this script (tput setaf 2)"
|
||||||
sleep 2
|
sleep 2
|
||||||
fi
|
fi
|
||||||
if [ -d "../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor/portable/packages/arduino/tools/avr-gcc/4.9.2-atmel3.5.4-arduino2" ]; then
|
if [ -d "../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/arduino/tools/avr-gcc/4.9.2-atmel3.5.4-arduino2" ]; then
|
||||||
echo "$(tput setaf 6)PrusaReasearch compatible tools have been manually updated...$(tput setaf 2)"
|
echo "$(tput setaf 6)PrusaReasearch compatible tools have been manually updated...$(tput setaf 2)"
|
||||||
sleep 2
|
sleep 2
|
||||||
echo "$(tput setaf 6)Copying Prusa Firmware build environment to manually updated boards / tools...$(tput setaf 2)"
|
echo "$(tput setaf 6)Copying Prusa Firmware build environment to manually updated boards / tools...$(tput setaf 2)"
|
||||||
sleep 2
|
sleep 2
|
||||||
cp -f ../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor/hardware/tools/avr/avr/lib/ldscripts/avr6.xn ../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor/portable/packages/arduino/tools/avr-gcc/4.9.2-atmel3.5.4-arduino2/avr/lib/ldscripts/avr6.xn
|
cp -f ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/hardware/tools/avr/avr/lib/ldscripts/avr6.xn ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/arduino/tools/avr-gcc/4.9.2-atmel3.5.4-arduino2/avr/lib/ldscripts/avr6.xn
|
||||||
echo "# PF-build-env-portable-$TARGET_OS-$Processor-$BUILD_ENV" >> ../PF-build-env-$BUILD_ENV/PF-build-env-portable-$BUILD_ENV-$TARGET_OS-$Processor.txt
|
echo "# PF-build-env-portable-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor-$BUILD_ENV" >> ../PF-build-env-$BUILD_ENV/PF-build-env-portable-$BUILD_ENV-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt
|
||||||
echo "$(tput sgr0)"
|
echo "$(tput sgr0)"
|
||||||
fi
|
fi
|
||||||
if [ -d "../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor/portable/packages/arduino/tools/avr-gcc/5.4.0-atmel3.6.1-arduino2" ]; then
|
if [ -d "../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor/portable/packages/arduino/tools/avr-gcc/5.4.0-atmel3.6.1-arduino2" ]; then
|
||||||
echo "$(tput setaf 1)Arduino IDE tools have been updated manually to a non supported version!!!"
|
echo "$(tput setaf 1)Arduino IDE tools have been updated manually to a non supported version!!!"
|
||||||
echo "Delete ../PF-build-env-$BUILD_ENV and start the script again"
|
echo "Delete ../PF-build-env-$BUILD_ENV and start the script again"
|
||||||
echo "Script will not continue until this have been fixed $(tput setaf 2)"
|
echo "Script will not continue until this have been fixed $(tput setaf 2)"
|
||||||
@ -489,7 +494,7 @@ if [ ! -z "$3" ] ; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
#Set BUILD_ENV_PATH
|
#Set BUILD_ENV_PATH
|
||||||
cd ../PF-build-env-$BUILD_ENV/$TARGET_OS-$Processor || exit 24
|
cd ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor || exit 24
|
||||||
BUILD_ENV_PATH="$( pwd -P )"
|
BUILD_ENV_PATH="$( pwd -P )"
|
||||||
|
|
||||||
cd ../..
|
cd ../..
|
||||||
@ -634,8 +639,8 @@ do
|
|||||||
echo "Start to build Prusa Firmware ..."
|
echo "Start to build Prusa Firmware ..."
|
||||||
echo "Using variant $VARIANT$(tput setaf 3)"
|
echo "Using variant $VARIANT$(tput setaf 3)"
|
||||||
sleep 2
|
sleep 2
|
||||||
#$BUILD_ENV_PATH/arduino-builder -dump-prefs -debug-level 10 -compile -hardware $ARDUINO/hardware -hardware $ARDUINO/portable/packages -tools $ARDUINO/tools-builder -tools $ARDUINO/hardware/tools/avr -tools $ARDUINO/portable/packages -built-in-libraries $ARDUINO/libraries -libraries $ARDUINO/portable/sketchbook/libraries -fqbn=$BOARD:avr:rambo -ide-version=10805 -build-path=$BUILD_PATH -warnings=all $SCRIPT_PATH/Firmware/Firmware.ino || exit 14
|
#$BUILD_ENV_PATH/arduino-builder -dump-prefs -debug-level 10 -compile -hardware $ARDUINO/hardware -hardware $ARDUINO/portable/packages -tools $ARDUINO/tools-builder -tools $ARDUINO/hardware/tools/avr -tools $ARDUINO/portable/packages -built-in-libraries $ARDUINO/libraries -libraries $ARDUINO/portable/sketchbook/libraries -fqbn=$BOARD_PACKAGE_NAME:avr:$BOARD -build-path=$BUILD_PATH -warnings=all $SCRIPT_PATH/Firmware/Firmware.ino || exit 14
|
||||||
$BUILD_ENV_PATH/arduino-builder -compile -hardware $ARDUINO/hardware -hardware $ARDUINO/portable/packages -tools $ARDUINO/tools-builder -tools $ARDUINO/hardware/tools/avr -tools $ARDUINO/portable/packages -built-in-libraries $ARDUINO/libraries -libraries $ARDUINO/portable/sketchbook/libraries -fqbn=$BOARD:avr:rambo -ide-version=10805 -build-path=$BUILD_PATH -warnings=all $SCRIPT_PATH/Firmware/Firmware.ino || exit 14
|
$BUILD_ENV_PATH/arduino-builder -compile -hardware $ARDUINO/hardware -hardware $ARDUINO/portable/packages -tools $ARDUINO/tools-builder -tools $ARDUINO/hardware/tools/avr -tools $ARDUINO/portable/packages -built-in-libraries $ARDUINO/libraries -libraries $ARDUINO/portable/sketchbook/libraries -fqbn=$BOARD_PACKAGE_NAME:avr:$BOARD -build-path=$BUILD_PATH -warnings=all $SCRIPT_PATH/Firmware/Firmware.ino || exit 14
|
||||||
echo "$(tput sgr 0)"
|
echo "$(tput sgr 0)"
|
||||||
|
|
||||||
if [ $LANGUAGES == "ALL" ]; then
|
if [ $LANGUAGES == "ALL" ]; then
|
||||||
|
@ -178,6 +178,7 @@ Example:
|
|||||||
|
|
||||||
# 4. Documentation
|
# 4. Documentation
|
||||||
run [doxygen](http://www.doxygen.nl/) in Firmware folder
|
run [doxygen](http://www.doxygen.nl/) in Firmware folder
|
||||||
|
or visit https://prusa3d.github.io/Prusa-Firmware-Doc for doxygen generated output
|
||||||
|
|
||||||
# 5. FAQ
|
# 5. FAQ
|
||||||
Q:I built firmware using Arduino and I see "?" instead of numbers in printer user interface.
|
Q:I built firmware using Arduino and I see "?" instead of numbers in printer user interface.
|
||||||
|
@ -198,7 +198,7 @@ void prusa_statistics(int _message, uint8_t _fil_nr) {
|
|||||||
SERIAL_ECHOLN("}");
|
SERIAL_ECHOLN("}");
|
||||||
status_number = 15;
|
status_number = 15;
|
||||||
}
|
}
|
||||||
else if (isPrintPaused || card.paused)
|
else if (isPrintPaused)
|
||||||
{
|
{
|
||||||
SERIAL_ECHO("{");
|
SERIAL_ECHO("{");
|
||||||
prusa_stat_printerstatus(14);
|
prusa_stat_printerstatus(14);
|
||||||
@ -490,7 +490,7 @@ void prusa_statistics(int _message, uint8_t _fil_nr) {
|
|||||||
{
|
{
|
||||||
prusa_statistics_case0(15);
|
prusa_statistics_case0(15);
|
||||||
}
|
}
|
||||||
else if (isPrintPaused || card.paused)
|
else if (isPrintPaused)
|
||||||
{
|
{
|
||||||
prusa_statistics_case0(14);
|
prusa_statistics_case0(14);
|
||||||
}
|
}
|
||||||
@ -753,7 +753,6 @@ TEST_CASE("Prusa_statistics test", "[prusa_stats]")
|
|||||||
SERIALS_RESET();
|
SERIALS_RESET();
|
||||||
|
|
||||||
isPrintPaused = 0;
|
isPrintPaused = 0;
|
||||||
card.paused = 0;
|
|
||||||
IS_SD_PRINTING = 1;
|
IS_SD_PRINTING = 1;
|
||||||
old_code::prusa_statistics(test_codes[i],0);
|
old_code::prusa_statistics(test_codes[i],0);
|
||||||
new_code::prusa_statistics(test_codes[i],0);
|
new_code::prusa_statistics(test_codes[i],0);
|
||||||
|
212
lang/lang_en.txt
212
lang/lang_en.txt
@ -37,14 +37,8 @@
|
|||||||
#MSG_CONFIRM_CARRIAGE_AT_THE_TOP c=20 r=2
|
#MSG_CONFIRM_CARRIAGE_AT_THE_TOP c=20 r=2
|
||||||
"Are left and right Z~carriages all up?"
|
"Are left and right Z~carriages all up?"
|
||||||
|
|
||||||
#MSG_AUTO_DEPLETE_ON c=17 r=1
|
#MSG_AUTO_DEPLETE c=17 r=1
|
||||||
"SpoolJoin [on]"
|
"SpoolJoin"
|
||||||
|
|
||||||
#
|
|
||||||
"SpoolJoin [N/A]"
|
|
||||||
|
|
||||||
#MSG_AUTO_DEPLETE_OFF c=17 r=1
|
|
||||||
"SpoolJoin [off]"
|
|
||||||
|
|
||||||
#MSG_AUTO_HOME
|
#MSG_AUTO_HOME
|
||||||
"Auto home"
|
"Auto home"
|
||||||
@ -130,18 +124,11 @@
|
|||||||
#
|
#
|
||||||
"Copy selected language?"
|
"Copy selected language?"
|
||||||
|
|
||||||
#MSG_CRASHDETECT_ON
|
#MSG_CRASHDETECT
|
||||||
"Crash det. [on]"
|
"Crash det."
|
||||||
|
|
||||||
#
|
#
|
||||||
"Choose a filament for the First Layer Calibration and select it in the on-screen menu."
|
"Choose a filament for the First Layer Calibration and select it in the on-screen menu."
|
||||||
|
|
||||||
#MSG_CRASHDETECT_NA
|
|
||||||
"Crash det. [N/A]"
|
|
||||||
|
|
||||||
#MSG_CRASHDETECT_OFF
|
|
||||||
"Crash det. [off]"
|
|
||||||
|
|
||||||
#MSG_CRASH_DETECTED c=20 r=1
|
#MSG_CRASH_DETECTED c=20 r=1
|
||||||
"Crash detected."
|
"Crash detected."
|
||||||
|
|
||||||
@ -205,14 +192,8 @@
|
|||||||
#
|
#
|
||||||
"Fail stats MMU"
|
"Fail stats MMU"
|
||||||
|
|
||||||
#MSG_FSENS_AUTOLOAD_ON c=17 r=1
|
#MSG_FSENSOR_AUTOLOAD
|
||||||
"F. autoload [on]"
|
"F. autoload"
|
||||||
|
|
||||||
#MSG_FSENS_AUTOLOAD_NA c=17 r=1
|
|
||||||
"F. autoload [N/A]"
|
|
||||||
|
|
||||||
#MSG_FSENS_AUTOLOAD_OFF c=17 r=1
|
|
||||||
"F. autoload [off]"
|
|
||||||
|
|
||||||
#
|
#
|
||||||
"Fail stats"
|
"Fail stats"
|
||||||
@ -223,20 +204,11 @@
|
|||||||
#MSG_SELFTEST_FAN c=20
|
#MSG_SELFTEST_FAN c=20
|
||||||
"Fan test"
|
"Fan test"
|
||||||
|
|
||||||
#MSG_FANS_CHECK_ON c=17 r=1
|
#MSG_FANS_CHECK
|
||||||
"Fans check [on]"
|
"Fans check"
|
||||||
|
|
||||||
#MSG_FANS_CHECK_OFF c=17 r=1
|
#MSG_FSENSOR
|
||||||
"Fans check [off]"
|
"Fil. sensor"
|
||||||
|
|
||||||
#MSG_FSENSOR_ON
|
|
||||||
"Fil. sensor [on]"
|
|
||||||
|
|
||||||
#MSG_FSENSOR_NA
|
|
||||||
"Fil. sensor [N/A]"
|
|
||||||
|
|
||||||
#MSG_FSENSOR_OFF
|
|
||||||
"Fil. sensor [off]"
|
|
||||||
|
|
||||||
#
|
#
|
||||||
"Filam. runouts"
|
"Filam. runouts"
|
||||||
@ -433,11 +405,14 @@
|
|||||||
#MSG_MMU_OK_RESUMING c=20 r=4
|
#MSG_MMU_OK_RESUMING c=20 r=4
|
||||||
"MMU OK. Resuming..."
|
"MMU OK. Resuming..."
|
||||||
|
|
||||||
#MSG_STEALTH_MODE_OFF
|
#MSG_MODE
|
||||||
"Mode [Normal]"
|
"Mode"
|
||||||
|
|
||||||
#MSG_SILENT_MODE_ON
|
#MSG_NORMAL
|
||||||
"Mode [silent]"
|
"Normal"
|
||||||
|
|
||||||
|
#MSG_SILENT
|
||||||
|
"Silent"
|
||||||
|
|
||||||
#
|
#
|
||||||
"MMU needs user attention."
|
"MMU needs user attention."
|
||||||
@ -445,14 +420,14 @@
|
|||||||
#
|
#
|
||||||
"MMU power fails"
|
"MMU power fails"
|
||||||
|
|
||||||
#MSG_STEALTH_MODE_ON
|
#MSG_STEALTH
|
||||||
"Mode [Stealth]"
|
"Stealth"
|
||||||
|
|
||||||
#MSG_AUTO_MODE_ON
|
#MSG_AUTO_POWER
|
||||||
"Mode [auto power]"
|
"Auto power"
|
||||||
|
|
||||||
#MSG_SILENT_MODE_OFF
|
#MSG_HIGH_POWER
|
||||||
"Mode [high power]"
|
"High power"
|
||||||
|
|
||||||
#
|
#
|
||||||
"MMU2 connected"
|
"MMU2 connected"
|
||||||
@ -478,7 +453,7 @@
|
|||||||
#MSG_NO_CARD
|
#MSG_NO_CARD
|
||||||
"No SD card"
|
"No SD card"
|
||||||
|
|
||||||
#
|
#MSG_NA
|
||||||
"N/A"
|
"N/A"
|
||||||
|
|
||||||
#MSG_NO
|
#MSG_NO
|
||||||
@ -658,20 +633,17 @@
|
|||||||
#MSG_BED_CORRECTION_RIGHT c=14 r=1
|
#MSG_BED_CORRECTION_RIGHT c=14 r=1
|
||||||
"Right side[um]"
|
"Right side[um]"
|
||||||
|
|
||||||
#MSG_SECOND_SERIAL_ON c=17 r=1
|
#MSG_RPI_PORT
|
||||||
"RPi port [on]"
|
"RPi port"
|
||||||
|
|
||||||
#MSG_SECOND_SERIAL_OFF c=17 r=1
|
|
||||||
"RPi port [off]"
|
|
||||||
|
|
||||||
#MSG_WIZARD_RERUN c=20 r=7
|
#MSG_WIZARD_RERUN c=20 r=7
|
||||||
"Running Wizard will delete current calibration results and start from the beginning. Continue?"
|
"Running Wizard will delete current calibration results and start from the beginning. Continue?"
|
||||||
|
|
||||||
#MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_OFF c=19 r=1
|
#MSG_SD_CARD
|
||||||
"SD card [normal]"
|
"SD card"
|
||||||
|
|
||||||
#MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON c=19 r=1
|
#MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY
|
||||||
"SD card [flshAir]"
|
"FlashAir"
|
||||||
|
|
||||||
#
|
#
|
||||||
"Right"
|
"Right"
|
||||||
@ -718,38 +690,38 @@
|
|||||||
#MSG_FILE_CNT c=20 r=4
|
#MSG_FILE_CNT c=20 r=4
|
||||||
"Some files will not be sorted. Max. No. of files in 1 folder for sorting is 100."
|
"Some files will not be sorted. Max. No. of files in 1 folder for sorting is 100."
|
||||||
|
|
||||||
#MSG_SORT_NONE c=17 r=1
|
#MSG_SORT
|
||||||
"Sort [none]"
|
"Sort"
|
||||||
|
|
||||||
#MSG_SORT_TIME c=17 r=1
|
#MSG_NONE
|
||||||
"Sort [time]"
|
"None"
|
||||||
|
|
||||||
|
#MSG_SORT_TIME
|
||||||
|
"Time"
|
||||||
|
|
||||||
#
|
#
|
||||||
"Severe skew:"
|
"Severe skew:"
|
||||||
|
|
||||||
#MSG_SORT_ALPHA c=17 r=1
|
#MSG_SORT_ALPHA
|
||||||
"Sort [alphabet]"
|
"Alphabet"
|
||||||
|
|
||||||
#MSG_SORTING c=20 r=1
|
#MSG_SORTING c=20 r=1
|
||||||
"Sorting files"
|
"Sorting files"
|
||||||
|
|
||||||
#MSG_SOUND_LOUD c=17 r=1
|
#MSG_SOUND_LOUD
|
||||||
"Sound [loud]"
|
"Loud"
|
||||||
|
|
||||||
#
|
#
|
||||||
"Slight skew:"
|
"Slight skew:"
|
||||||
|
|
||||||
#MSG_SOUND_MUTE c=17 r=1
|
#MSG_SOUND
|
||||||
"Sound [mute]"
|
"Sound"
|
||||||
|
|
||||||
#
|
#
|
||||||
"Some problem encountered, Z-leveling enforced ..."
|
"Some problem encountered, Z-leveling enforced ..."
|
||||||
|
|
||||||
#MSG_SOUND_ONCE c=17 r=1
|
#MSG_SOUND_ONCE
|
||||||
"Sound [once]"
|
"Once"
|
||||||
|
|
||||||
#MSG_SOUND_SILENT c=17 r=1
|
|
||||||
"Sound [silent]"
|
|
||||||
|
|
||||||
#MSG_SPEED
|
#MSG_SPEED
|
||||||
"Speed"
|
"Speed"
|
||||||
@ -778,18 +750,12 @@
|
|||||||
#
|
#
|
||||||
"Select filament:"
|
"Select filament:"
|
||||||
|
|
||||||
#MSG_TEMP_CALIBRATION c=20 r=1
|
#MSG_TEMP_CALIBRATION c=12 r=1
|
||||||
"Temp. cal. "
|
"Temp. cal."
|
||||||
|
|
||||||
#MSG_TEMP_CALIBRATION_ON c=20 r=1
|
|
||||||
"Temp. cal. [on]"
|
|
||||||
|
|
||||||
#
|
#
|
||||||
"Select temperature which matches your material."
|
"Select temperature which matches your material."
|
||||||
|
|
||||||
#MSG_TEMP_CALIBRATION_OFF c=20 r=1
|
|
||||||
"Temp. cal. [off]"
|
|
||||||
|
|
||||||
#MSG_CALIBRATION_PINDA_MENU c=17 r=1
|
#MSG_CALIBRATION_PINDA_MENU c=17 r=1
|
||||||
"Temp. calibration"
|
"Temp. calibration"
|
||||||
|
|
||||||
@ -929,7 +895,10 @@
|
|||||||
"Y-correct:"
|
"Y-correct:"
|
||||||
|
|
||||||
#MSG_OFF
|
#MSG_OFF
|
||||||
" [off]"
|
"Off"
|
||||||
|
|
||||||
|
#MSG_ON
|
||||||
|
"On"
|
||||||
|
|
||||||
#
|
#
|
||||||
"Back"
|
"Back"
|
||||||
@ -943,14 +912,14 @@
|
|||||||
#
|
#
|
||||||
"FINDA:"
|
"FINDA:"
|
||||||
|
|
||||||
#
|
#MSG_FIRMWARE
|
||||||
"Firmware [none]"
|
"Firmware"
|
||||||
|
|
||||||
#
|
#MSG_STRICT
|
||||||
"Firmware [strict]"
|
"Strict"
|
||||||
|
|
||||||
#
|
#MSG_WARN
|
||||||
"Firmware [warn]"
|
"Warn"
|
||||||
|
|
||||||
#
|
#
|
||||||
"HW Setup"
|
"HW Setup"
|
||||||
@ -958,20 +927,11 @@
|
|||||||
#
|
#
|
||||||
"IR:"
|
"IR:"
|
||||||
|
|
||||||
#
|
#MSG_MAGNETS_COMP
|
||||||
"Magnets comp.[N/A]"
|
"Magnets comp."
|
||||||
|
|
||||||
#
|
#MSG_MESH
|
||||||
"Magnets comp.[Off]"
|
"Mesh"
|
||||||
|
|
||||||
#
|
|
||||||
"Magnets comp. [On]"
|
|
||||||
|
|
||||||
#
|
|
||||||
"Mesh [3x3]"
|
|
||||||
|
|
||||||
#
|
|
||||||
"Mesh [7x7]"
|
|
||||||
|
|
||||||
#
|
#
|
||||||
"Mesh bed leveling"
|
"Mesh bed leveling"
|
||||||
@ -979,41 +939,17 @@
|
|||||||
#
|
#
|
||||||
"MK3S firmware detected on MK3 printer"
|
"MK3S firmware detected on MK3 printer"
|
||||||
|
|
||||||
#
|
#MSG_MMU_MODE
|
||||||
"MMU Mode [Normal]"
|
"MMU Mode"
|
||||||
|
|
||||||
#
|
|
||||||
"MMU Mode[Stealth]"
|
|
||||||
|
|
||||||
#
|
#
|
||||||
"Mode change in progress ..."
|
"Mode change in progress ..."
|
||||||
|
|
||||||
#
|
#MSG_MODEL
|
||||||
"Model [none]"
|
"Model"
|
||||||
|
|
||||||
#
|
#MSG_NOZZLE_DIAMETER
|
||||||
"Model [strict]"
|
"Nozzle d."
|
||||||
|
|
||||||
#
|
|
||||||
"Model [warn]"
|
|
||||||
|
|
||||||
#
|
|
||||||
"Nozzle d. [0.25]"
|
|
||||||
|
|
||||||
#
|
|
||||||
"Nozzle d. [0.40]"
|
|
||||||
|
|
||||||
#
|
|
||||||
"Nozzle d. [0.60]"
|
|
||||||
|
|
||||||
#
|
|
||||||
"Nozzle [none]"
|
|
||||||
|
|
||||||
#
|
|
||||||
"Nozzle [strict]"
|
|
||||||
|
|
||||||
#
|
|
||||||
"Nozzle [warn]"
|
|
||||||
|
|
||||||
#
|
#
|
||||||
"G-code sliced for a different level. Continue?"
|
"G-code sliced for a different level. Continue?"
|
||||||
@ -1060,8 +996,8 @@
|
|||||||
#
|
#
|
||||||
"Sheet"
|
"Sheet"
|
||||||
|
|
||||||
#
|
#MSG_SOUND_BLIND
|
||||||
"Sound [assist]"
|
"Assist"
|
||||||
|
|
||||||
#
|
#
|
||||||
"Steel sheets"
|
"Steel sheets"
|
||||||
@ -1069,11 +1005,5 @@
|
|||||||
#
|
#
|
||||||
"Z-correct:"
|
"Z-correct:"
|
||||||
|
|
||||||
#
|
#MSG_Z_PROBE_NR
|
||||||
"Z-probe nr. [1]"
|
"Z-probe nr."
|
||||||
|
|
||||||
#
|
|
||||||
"Z-probe nr. [3]"
|
|
||||||
|
|
||||||
#
|
|
||||||
"Z-probe nr. [5]"
|
|
||||||
|
@ -50,18 +50,10 @@
|
|||||||
"Are left and right Z~carriages all up?"
|
"Are left and right Z~carriages all up?"
|
||||||
"Dojely oba Z voziky k~hornimu dorazu?"
|
"Dojely oba Z voziky k~hornimu dorazu?"
|
||||||
|
|
||||||
#MSG_AUTO_DEPLETE_ON c=17 r=1
|
#MSG_AUTO_DEPLETE c=17 r=1
|
||||||
"SpoolJoin [on]"
|
"SpoolJoin"
|
||||||
"SpoolJoin [zap]"
|
|
||||||
|
|
||||||
#
|
|
||||||
"SpoolJoin [N/A]"
|
|
||||||
"\x00"
|
"\x00"
|
||||||
|
|
||||||
#MSG_AUTO_DEPLETE_OFF c=17 r=1
|
|
||||||
"SpoolJoin [off]"
|
|
||||||
"SpoolJoin [vyp]"
|
|
||||||
|
|
||||||
#MSG_AUTO_HOME
|
#MSG_AUTO_HOME
|
||||||
"Auto home"
|
"Auto home"
|
||||||
"\x00"
|
"\x00"
|
||||||
@ -174,21 +166,13 @@
|
|||||||
"Copy selected language?"
|
"Copy selected language?"
|
||||||
"Kopirovat vybrany jazyk?"
|
"Kopirovat vybrany jazyk?"
|
||||||
|
|
||||||
#MSG_CRASHDETECT_ON
|
#MSG_CRASHDETECT
|
||||||
"Crash det. [on]"
|
"Crash det."
|
||||||
"Crash det. [zap]"
|
|
||||||
|
|
||||||
#
|
|
||||||
"Choose a filament for the First Layer Calibration and select it in the on-screen menu."
|
|
||||||
"Zvolte filament pro kalibraci prvni vrstvy z nasledujiciho menu"
|
|
||||||
|
|
||||||
#MSG_CRASHDETECT_NA
|
|
||||||
"Crash det. [N/A]"
|
|
||||||
"\x00"
|
"\x00"
|
||||||
|
|
||||||
#MSG_CRASHDETECT_OFF
|
#
|
||||||
"Crash det. [off]"
|
"Zvolte filament pro kalibraci prvni vrstvy z nasledujiciho menu"
|
||||||
"Crash det. [vyp]"
|
"Choose a filament for the First Layer Calibration and select it in the on-screen menu."
|
||||||
|
|
||||||
#MSG_CRASH_DETECTED c=20 r=1
|
#MSG_CRASH_DETECTED c=20 r=1
|
||||||
"Crash detected."
|
"Crash detected."
|
||||||
@ -274,17 +258,9 @@
|
|||||||
"Fail stats MMU"
|
"Fail stats MMU"
|
||||||
"Selhani MMU"
|
"Selhani MMU"
|
||||||
|
|
||||||
#MSG_FSENS_AUTOLOAD_ON c=17 r=1
|
#MSG_FSENSOR_AUTOLOAD
|
||||||
"F. autoload [on]"
|
"F. autoload"
|
||||||
"F. autozav. [zap]"
|
"F. autozav."
|
||||||
|
|
||||||
#MSG_FSENS_AUTOLOAD_NA c=17 r=1
|
|
||||||
"F. autoload [N/A]"
|
|
||||||
"F. autozav. [N/A]"
|
|
||||||
|
|
||||||
#MSG_FSENS_AUTOLOAD_OFF c=17 r=1
|
|
||||||
"F. autoload [off]"
|
|
||||||
"F. autozav. [vyp]"
|
|
||||||
|
|
||||||
#
|
#
|
||||||
"Fail stats"
|
"Fail stats"
|
||||||
@ -298,25 +274,13 @@
|
|||||||
"Fan test"
|
"Fan test"
|
||||||
"Test ventilatoru"
|
"Test ventilatoru"
|
||||||
|
|
||||||
#MSG_FANS_CHECK_ON c=17 r=1
|
#MSG_FANS_CHECK
|
||||||
"Fans check [on]"
|
"Fans check"
|
||||||
"Kontr. vent.[zap]"
|
"Kontr. vent."
|
||||||
|
|
||||||
#MSG_FANS_CHECK_OFF c=17 r=1
|
#MSG_FSENSOR
|
||||||
"Fans check [off]"
|
"Fil. sensor"
|
||||||
"Kontr. vent.[vyp]"
|
"Fil. senzor"
|
||||||
|
|
||||||
#MSG_FSENSOR_ON
|
|
||||||
"Fil. sensor [on]"
|
|
||||||
"Fil. senzor [zap]"
|
|
||||||
|
|
||||||
#MSG_FSENSOR_NA
|
|
||||||
"Fil. sensor [N/A]"
|
|
||||||
"Fil. senzor [N/A]"
|
|
||||||
|
|
||||||
#MSG_FSENSOR_OFF
|
|
||||||
"Fil. sensor [off]"
|
|
||||||
"Fil. senzor [vyp]"
|
|
||||||
|
|
||||||
#
|
#
|
||||||
"Filam. runouts"
|
"Filam. runouts"
|
||||||
@ -578,13 +542,17 @@
|
|||||||
"MMU OK. Resuming..."
|
"MMU OK. Resuming..."
|
||||||
"MMU OK. Pokracuji..."
|
"MMU OK. Pokracuji..."
|
||||||
|
|
||||||
#MSG_STEALTH_MODE_OFF
|
#MSG_MODE
|
||||||
"Mode [Normal]"
|
"Mode"
|
||||||
"Mod [Normal]"
|
"Mod"
|
||||||
|
|
||||||
#MSG_SILENT_MODE_ON
|
#MSG_NORMAL
|
||||||
"Mode [silent]"
|
"Normal"
|
||||||
"Mod [tichy]"
|
"\x00"
|
||||||
|
|
||||||
|
#MSG_SILENT
|
||||||
|
"Silent"
|
||||||
|
"Tichy"
|
||||||
|
|
||||||
#
|
#
|
||||||
"MMU needs user attention."
|
"MMU needs user attention."
|
||||||
@ -594,17 +562,17 @@
|
|||||||
"MMU power fails"
|
"MMU power fails"
|
||||||
"MMU vypadky proudu"
|
"MMU vypadky proudu"
|
||||||
|
|
||||||
#MSG_STEALTH_MODE_ON
|
#MSG_STEALTH
|
||||||
"Mode [Stealth]"
|
"Stealth"
|
||||||
"Mod [tichy]"
|
"Tichy"
|
||||||
|
|
||||||
#MSG_AUTO_MODE_ON
|
#MSG_AUTO_POWER
|
||||||
"Mode [auto power]"
|
"Auto power"
|
||||||
"Mod [automaticky]"
|
"Automaticky"
|
||||||
|
|
||||||
#MSG_SILENT_MODE_OFF
|
#MSG_HIGH_POWER
|
||||||
"Mode [high power]"
|
"High power"
|
||||||
"Mod [vys. vykon]"
|
"Vys. vykon"
|
||||||
|
|
||||||
#
|
#
|
||||||
"MMU2 connected"
|
"MMU2 connected"
|
||||||
@ -638,7 +606,7 @@
|
|||||||
"No SD card"
|
"No SD card"
|
||||||
"Zadna SD karta"
|
"Zadna SD karta"
|
||||||
|
|
||||||
#
|
#MSG_NA
|
||||||
"N/A"
|
"N/A"
|
||||||
"\x00"
|
"\x00"
|
||||||
|
|
||||||
@ -878,25 +846,21 @@
|
|||||||
"Right side[um]"
|
"Right side[um]"
|
||||||
"Vpravo [um]"
|
"Vpravo [um]"
|
||||||
|
|
||||||
#MSG_SECOND_SERIAL_ON c=17 r=1
|
#MSG_RPI_PORT
|
||||||
"RPi port [on]"
|
"RPi port"
|
||||||
"RPi port [zap]"
|
"\x00"
|
||||||
|
|
||||||
#MSG_SECOND_SERIAL_OFF c=17 r=1
|
|
||||||
"RPi port [off]"
|
|
||||||
"RPi port [vyp]"
|
|
||||||
|
|
||||||
#MSG_WIZARD_RERUN c=20 r=7
|
#MSG_WIZARD_RERUN c=20 r=7
|
||||||
"Running Wizard will delete current calibration results and start from the beginning. Continue?"
|
"Running Wizard will delete current calibration results and start from the beginning. Continue?"
|
||||||
"Spusteni Pruvodce vymaze ulozene vysledky vsech kalibraci a spusti kalibracni proces od zacatku. Pokracovat?"
|
"Spusteni Pruvodce vymaze ulozene vysledky vsech kalibraci a spusti kalibracni proces od zacatku. Pokracovat?"
|
||||||
|
|
||||||
#MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_OFF c=19 r=1
|
#MSG_SD_CARD
|
||||||
"SD card [normal]"
|
"SD card"
|
||||||
"\x00"
|
"\x00"
|
||||||
|
|
||||||
#MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON c=19 r=1
|
#MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY
|
||||||
"SD card [flshAir]"
|
"FlashAir"
|
||||||
"SD card [FlshAir]"
|
"\x00"
|
||||||
|
|
||||||
#
|
#
|
||||||
"Right"
|
"Right"
|
||||||
@ -958,49 +922,49 @@
|
|||||||
"Some files will not be sorted. Max. No. of files in 1 folder for sorting is 100."
|
"Some files will not be sorted. Max. No. of files in 1 folder for sorting is 100."
|
||||||
"Nektere soubory nebudou setrideny. Maximalni pocet souboru ve slozce pro setrideni je 100."
|
"Nektere soubory nebudou setrideny. Maximalni pocet souboru ve slozce pro setrideni je 100."
|
||||||
|
|
||||||
#MSG_SORT_NONE c=17 r=1
|
#MSG_SORT
|
||||||
"Sort [none]"
|
"Sort"
|
||||||
"Trideni [Zadne]"
|
"Trideni"
|
||||||
|
|
||||||
#MSG_SORT_TIME c=17 r=1
|
#MSG_NONE
|
||||||
"Sort [time]"
|
"None"
|
||||||
"Trideni [cas]"
|
"Zadne"
|
||||||
|
|
||||||
|
#MSG_SORT_TIME
|
||||||
|
"Time"
|
||||||
|
"Cas"
|
||||||
|
|
||||||
#
|
#
|
||||||
"Severe skew:"
|
"Severe skew:"
|
||||||
"Tezke zkoseni:"
|
"Tezke zkoseni:"
|
||||||
|
|
||||||
#MSG_SORT_ALPHA c=17 r=1
|
#MSG_SORT_ALPHA
|
||||||
"Sort [alphabet]"
|
"Alphabet"
|
||||||
"Trideni [Abeceda]"
|
"Abeceda"
|
||||||
|
|
||||||
#MSG_SORTING c=20 r=1
|
#MSG_SORTING c=20 r=1
|
||||||
"Sorting files"
|
"Sorting files"
|
||||||
"Trideni souboru"
|
"Trideni souboru"
|
||||||
|
|
||||||
#MSG_SOUND_LOUD c=17 r=1
|
#MSG_SOUND_LOUD
|
||||||
"Sound [loud]"
|
"Loud"
|
||||||
"Zvuk [hlasity]"
|
"Hlasity"
|
||||||
|
|
||||||
#
|
#
|
||||||
"Slight skew:"
|
"Slight skew:"
|
||||||
"Lehke zkoseni:"
|
"Lehke zkoseni:"
|
||||||
|
|
||||||
#MSG_SOUND_MUTE c=17 r=1
|
#MSG_SOUND
|
||||||
"Sound [mute]"
|
"Sound"
|
||||||
"Zvuk [vypnuto]"
|
"Zvuk"
|
||||||
|
|
||||||
#
|
#
|
||||||
"Some problem encountered, Z-leveling enforced ..."
|
"Some problem encountered, Z-leveling enforced ..."
|
||||||
"Vyskytl se problem, srovnavam osu Z ..."
|
"Vyskytl se problem, srovnavam osu Z ..."
|
||||||
|
|
||||||
#MSG_SOUND_ONCE c=17 r=1
|
#MSG_SOUND_ONCE
|
||||||
"Sound [once]"
|
"Once"
|
||||||
"Zvuk [jednou]"
|
"Jednou"
|
||||||
|
|
||||||
#MSG_SOUND_SILENT c=17 r=1
|
|
||||||
"Sound [silent]"
|
|
||||||
"Zvuk [tichy]"
|
|
||||||
|
|
||||||
#MSG_SPEED
|
#MSG_SPEED
|
||||||
"Speed"
|
"Speed"
|
||||||
@ -1038,22 +1002,14 @@
|
|||||||
"Select filament:"
|
"Select filament:"
|
||||||
"Zvolte filament:"
|
"Zvolte filament:"
|
||||||
|
|
||||||
#MSG_TEMP_CALIBRATION c=20 r=1
|
#MSG_TEMP_CALIBRATION c=12 r=1
|
||||||
"Temp. cal. "
|
"Temp. cal."
|
||||||
"Tepl. kal. "
|
"Tepl. kal."
|
||||||
|
|
||||||
#MSG_TEMP_CALIBRATION_ON c=20 r=1
|
|
||||||
"Temp. cal. [on]"
|
|
||||||
"Tepl. kal. [zap]"
|
|
||||||
|
|
||||||
#
|
#
|
||||||
"Select temperature which matches your material."
|
"Select temperature which matches your material."
|
||||||
"Zvolte teplotu, ktera odpovida vasemu materialu."
|
"Zvolte teplotu, ktera odpovida vasemu materialu."
|
||||||
|
|
||||||
#MSG_TEMP_CALIBRATION_OFF c=20 r=1
|
|
||||||
"Temp. cal. [off]"
|
|
||||||
"Tepl. kal. [vyp]"
|
|
||||||
|
|
||||||
#MSG_CALIBRATION_PINDA_MENU c=17 r=1
|
#MSG_CALIBRATION_PINDA_MENU c=17 r=1
|
||||||
"Temp. calibration"
|
"Temp. calibration"
|
||||||
"Teplot. kalibrace"
|
"Teplot. kalibrace"
|
||||||
@ -1232,15 +1188,19 @@
|
|||||||
|
|
||||||
#
|
#
|
||||||
"The printer will start printing a zig-zag line. Rotate the knob until you reach the optimal height. Check the pictures in the handbook (Calibration chapter)."
|
"The printer will start printing a zig-zag line. Rotate the knob until you reach the optimal height. Check the pictures in the handbook (Calibration chapter)."
|
||||||
"\x00"
|
"Tiskarna zacne tisknout lomenou caru. Otacenim tlacitka nastavte optimalni vysku. Postupujte podle obrazku v handbooku (kapitola Kalibrace)."
|
||||||
|
|
||||||
#
|
#
|
||||||
"Y-correct:"
|
"Y-correct:"
|
||||||
"Korekce Y:"
|
"Korekce Y:"
|
||||||
|
|
||||||
#MSG_OFF
|
#MSG_OFF
|
||||||
" [off]"
|
"Off"
|
||||||
" [vyp]"
|
"Vyp"
|
||||||
|
|
||||||
|
#MSG_ON
|
||||||
|
"On"
|
||||||
|
"Zap"
|
||||||
|
|
||||||
#
|
#
|
||||||
"Back"
|
"Back"
|
||||||
@ -1258,17 +1218,17 @@
|
|||||||
"FINDA:"
|
"FINDA:"
|
||||||
"\x00"
|
"\x00"
|
||||||
|
|
||||||
#
|
#MSG_FIRMWARE
|
||||||
"Firmware [none]"
|
"Firmware"
|
||||||
"Firmware [Zadne]"
|
"\x00"
|
||||||
|
|
||||||
#
|
#MSG_STRICT
|
||||||
"Firmware [strict]"
|
"Strict"
|
||||||
"Firmware [Prisne]"
|
"Prisne"
|
||||||
|
|
||||||
#
|
#MSG_WARN
|
||||||
"Firmware [warn]"
|
"Warn"
|
||||||
"Firmware[Varovat]"
|
"Varovat"
|
||||||
|
|
||||||
#
|
#
|
||||||
"HW Setup"
|
"HW Setup"
|
||||||
@ -1278,25 +1238,13 @@
|
|||||||
"IR:"
|
"IR:"
|
||||||
"\x00"
|
"\x00"
|
||||||
|
|
||||||
#
|
#MSG_MAGNETS_COMP
|
||||||
"Magnets comp.[N/A]"
|
"Magnets comp."
|
||||||
"Komp. magnetu[N/A]"
|
"Komp. magnetu"
|
||||||
|
|
||||||
#
|
#MSG_MESH
|
||||||
"Magnets comp.[Off]"
|
"Mesh"
|
||||||
"Komp. magnetu[Vyp]"
|
"\x00"
|
||||||
|
|
||||||
#
|
|
||||||
"Magnets comp. [On]"
|
|
||||||
"Komp. magnetu[Zap]"
|
|
||||||
|
|
||||||
#
|
|
||||||
"Mesh [3x3]"
|
|
||||||
"Mesh [3x3]"
|
|
||||||
|
|
||||||
#
|
|
||||||
"Mesh [7x7]"
|
|
||||||
"Mesh [7x7]"
|
|
||||||
|
|
||||||
#
|
#
|
||||||
"Mesh bed leveling"
|
"Mesh bed leveling"
|
||||||
@ -1306,53 +1254,21 @@
|
|||||||
"MK3S firmware detected on MK3 printer"
|
"MK3S firmware detected on MK3 printer"
|
||||||
"MK3S firmware detekovan na tiskarne MK3"
|
"MK3S firmware detekovan na tiskarne MK3"
|
||||||
|
|
||||||
#
|
#MSG_MMU_MODE
|
||||||
"MMU Mode [Normal]"
|
"MMU Mode"
|
||||||
"MMU mod [Normal]"
|
"MMU mod"
|
||||||
|
|
||||||
#
|
|
||||||
"MMU Mode[Stealth]"
|
|
||||||
"MMU Mod [Tichy]"
|
|
||||||
|
|
||||||
#
|
#
|
||||||
"Mode change in progress ..."
|
"Mode change in progress ..."
|
||||||
"Probiha zmena modu..."
|
"Probiha zmena modu..."
|
||||||
|
|
||||||
#
|
#MSG_MODEL
|
||||||
"Model [none]"
|
"Model"
|
||||||
"Model [Zadne]"
|
"\x00"
|
||||||
|
|
||||||
#
|
#MSG_NOZZLE_DIAMETER
|
||||||
"Model [strict]"
|
"Nozzle d."
|
||||||
"Model [Prisne]"
|
"Tryska"
|
||||||
|
|
||||||
#
|
|
||||||
"Model [warn]"
|
|
||||||
"Model [Varovat]"
|
|
||||||
|
|
||||||
#
|
|
||||||
"Nozzle d. [0.25]"
|
|
||||||
"Tryska [0.25]"
|
|
||||||
|
|
||||||
#
|
|
||||||
"Nozzle d. [0.40]"
|
|
||||||
"Tryska [0.40]"
|
|
||||||
|
|
||||||
#
|
|
||||||
"Nozzle d. [0.60]"
|
|
||||||
"Tryska [0.60]"
|
|
||||||
|
|
||||||
#
|
|
||||||
"Nozzle [none]"
|
|
||||||
"Tryska [Zadne]"
|
|
||||||
|
|
||||||
#
|
|
||||||
"Nozzle [strict]"
|
|
||||||
"Tryska [Prisne]"
|
|
||||||
|
|
||||||
#
|
|
||||||
"Nozzle [warn]"
|
|
||||||
"Tryska [Varovat]"
|
|
||||||
|
|
||||||
#
|
#
|
||||||
"G-code sliced for a different level. Continue?"
|
"G-code sliced for a different level. Continue?"
|
||||||
@ -1414,9 +1330,9 @@
|
|||||||
"Sheet"
|
"Sheet"
|
||||||
"Plat"
|
"Plat"
|
||||||
|
|
||||||
#
|
#MSG_SOUND_BLIND
|
||||||
"Sound [assist]"
|
"Assist"
|
||||||
"Zvuk [Asist.]"
|
"Asist."
|
||||||
|
|
||||||
#
|
#
|
||||||
"Steel sheets"
|
"Steel sheets"
|
||||||
@ -1426,14 +1342,6 @@
|
|||||||
"Z-correct:"
|
"Z-correct:"
|
||||||
"Korekce Z:"
|
"Korekce Z:"
|
||||||
|
|
||||||
#
|
#MSG_Z_PROBE_NR
|
||||||
"Z-probe nr. [1]"
|
"Z-probe nr."
|
||||||
"Pocet mereni Z [1]"
|
"Pocet mereni Z"
|
||||||
|
|
||||||
#
|
|
||||||
"Z-probe nr. [3]"
|
|
||||||
"Pocet mereni Z [3]"
|
|
||||||
|
|
||||||
#
|
|
||||||
"Z-probe nr. [5]"
|
|
||||||
"Pocet mereni Z [5]"
|
|
||||||
|
@ -50,17 +50,9 @@
|
|||||||
"Are left and right Z~carriages all up?"
|
"Are left and right Z~carriages all up?"
|
||||||
"Sind linke+rechte Z- Schlitten ganz oben?"
|
"Sind linke+rechte Z- Schlitten ganz oben?"
|
||||||
|
|
||||||
#MSG_AUTO_DEPLETE_ON c=17 r=1
|
#MSG_AUTO_DEPLETE c=17 r=1
|
||||||
"SpoolJoin [on]"
|
"SpoolJoin"
|
||||||
"SpoolJoin [an]"
|
"\x00"
|
||||||
|
|
||||||
#
|
|
||||||
"SpoolJoin [N/A]"
|
|
||||||
"SpoolJoin [N/V]"
|
|
||||||
|
|
||||||
#MSG_AUTO_DEPLETE_OFF c=17 r=1
|
|
||||||
"SpoolJoin [off]"
|
|
||||||
"SpoolJoin [aus]"
|
|
||||||
|
|
||||||
#MSG_AUTO_HOME
|
#MSG_AUTO_HOME
|
||||||
"Auto home"
|
"Auto home"
|
||||||
@ -174,22 +166,14 @@
|
|||||||
"Copy selected language?"
|
"Copy selected language?"
|
||||||
"Gewaehlte Sprache kopieren?"
|
"Gewaehlte Sprache kopieren?"
|
||||||
|
|
||||||
#MSG_CRASHDETECT_ON
|
#MSG_CRASHDETECT
|
||||||
"Crash det. [on]"
|
"Crash det."
|
||||||
"Crash Erk. [an]"
|
"Crash Erk."
|
||||||
|
|
||||||
#
|
#
|
||||||
"Choose a filament for the First Layer Calibration and select it in the on-screen menu."
|
"Choose a filament for the First Layer Calibration and select it in the on-screen menu."
|
||||||
"Waehlen Sie ein Filament fuer Erste Schichtkalibrierung aus und waehlen Sie es im On-Screen-Menu aus."
|
"Waehlen Sie ein Filament fuer Erste Schichtkalibrierung aus und waehlen Sie es im On-Screen-Menu aus."
|
||||||
|
|
||||||
#MSG_CRASHDETECT_NA
|
|
||||||
"Crash det. [N/A]"
|
|
||||||
"Crash Erk. [nv]"
|
|
||||||
|
|
||||||
#MSG_CRASHDETECT_OFF
|
|
||||||
"Crash det. [off]"
|
|
||||||
"Crash Erk. [aus]"
|
|
||||||
|
|
||||||
#MSG_CRASH_DETECTED c=20 r=1
|
#MSG_CRASH_DETECTED c=20 r=1
|
||||||
"Crash detected."
|
"Crash detected."
|
||||||
"Crash erkannt."
|
"Crash erkannt."
|
||||||
@ -274,17 +258,9 @@
|
|||||||
"Fail stats MMU"
|
"Fail stats MMU"
|
||||||
"MMU-Fehler"
|
"MMU-Fehler"
|
||||||
|
|
||||||
#MSG_FSENS_AUTOLOAD_ON c=17 r=1
|
#MSG_FSENSOR_AUTOLOAD
|
||||||
"F. autoload [on]"
|
"F. autoload"
|
||||||
"F.Autoladen [an]"
|
"F. autoladen"
|
||||||
|
|
||||||
#MSG_FSENS_AUTOLOAD_NA c=17 r=1
|
|
||||||
"F. autoload [N/A]"
|
|
||||||
"F. Autoload [nv]"
|
|
||||||
|
|
||||||
#MSG_FSENS_AUTOLOAD_OFF c=17 r=1
|
|
||||||
"F. autoload [off]"
|
|
||||||
"F. Autoload [aus]"
|
|
||||||
|
|
||||||
#
|
#
|
||||||
"Fail stats"
|
"Fail stats"
|
||||||
@ -298,25 +274,13 @@
|
|||||||
"Fan test"
|
"Fan test"
|
||||||
"Lueftertest"
|
"Lueftertest"
|
||||||
|
|
||||||
#MSG_FANS_CHECK_ON c=17 r=1
|
#MSG_FANS_CHECK
|
||||||
"Fans check [on]"
|
"Fans check"
|
||||||
"Luefter Chk. [an]"
|
"Luefter Chk."
|
||||||
|
|
||||||
#MSG_FANS_CHECK_OFF c=17 r=1
|
#MSG_FSENSOR
|
||||||
"Fans check [off]"
|
"Fil. sensor"
|
||||||
"Luefter Chk.[aus]"
|
"\x00"
|
||||||
|
|
||||||
#MSG_FSENSOR_ON
|
|
||||||
"Fil. sensor [on]"
|
|
||||||
"Fil. Sensor [an]"
|
|
||||||
|
|
||||||
#MSG_FSENSOR_NA
|
|
||||||
"Fil. sensor [N/A]"
|
|
||||||
"Fil. Sensor [nv]"
|
|
||||||
|
|
||||||
#MSG_FSENSOR_OFF
|
|
||||||
"Fil. sensor [off]"
|
|
||||||
"Fil. Sensor [aus]"
|
|
||||||
|
|
||||||
#
|
#
|
||||||
"Filam. runouts"
|
"Filam. runouts"
|
||||||
@ -578,13 +542,17 @@
|
|||||||
"MMU OK. Resuming..."
|
"MMU OK. Resuming..."
|
||||||
"MMU OK. Weiterdrucken..."
|
"MMU OK. Weiterdrucken..."
|
||||||
|
|
||||||
#MSG_STEALTH_MODE_OFF
|
#MSG_MODE
|
||||||
"Mode [Normal]"
|
"Mode"
|
||||||
"Modus [Normal]"
|
"Modus"
|
||||||
|
|
||||||
#MSG_SILENT_MODE_ON
|
#MSG_NORMAL
|
||||||
"Mode [silent]"
|
"Normal"
|
||||||
"Modus [leise]"
|
"\x00"
|
||||||
|
|
||||||
|
#MSG_SILENT
|
||||||
|
"Silent"
|
||||||
|
"Leise"
|
||||||
|
|
||||||
#
|
#
|
||||||
"MMU needs user attention."
|
"MMU needs user attention."
|
||||||
@ -594,17 +562,17 @@
|
|||||||
"MMU power fails"
|
"MMU power fails"
|
||||||
"MMU Netzfehler"
|
"MMU Netzfehler"
|
||||||
|
|
||||||
#MSG_STEALTH_MODE_ON
|
#MSG_STEALTH
|
||||||
"Mode [Stealth]"
|
"Stealth"
|
||||||
"Modus [Stealth]"
|
"\x00"
|
||||||
|
|
||||||
#MSG_AUTO_MODE_ON
|
#MSG_AUTO_POWER
|
||||||
"Mode [auto power]"
|
"Auto power"
|
||||||
"Modus[Auto Power]"
|
"\x00"
|
||||||
|
|
||||||
#MSG_SILENT_MODE_OFF
|
#MSG_HIGH_POWER
|
||||||
"Mode [high power]"
|
"High power"
|
||||||
"Modus[Hohe Leist]"
|
"Hohe leist"
|
||||||
|
|
||||||
#
|
#
|
||||||
"MMU2 connected"
|
"MMU2 connected"
|
||||||
@ -638,9 +606,9 @@
|
|||||||
"No SD card"
|
"No SD card"
|
||||||
"Keine SD Karte"
|
"Keine SD Karte"
|
||||||
|
|
||||||
#
|
#MSG_NA
|
||||||
"N/A"
|
"N/A"
|
||||||
"N.V."
|
"N/V"
|
||||||
|
|
||||||
#MSG_NO
|
#MSG_NO
|
||||||
"No"
|
"No"
|
||||||
@ -878,25 +846,21 @@
|
|||||||
"Right side[um]"
|
"Right side[um]"
|
||||||
"Rechts [um]"
|
"Rechts [um]"
|
||||||
|
|
||||||
#MSG_SECOND_SERIAL_ON c=17 r=1
|
#MSG_RPI_PORT
|
||||||
"RPi port [on]"
|
"RPi port"
|
||||||
"RPi Port [an]"
|
"\x00"
|
||||||
|
|
||||||
#MSG_SECOND_SERIAL_OFF c=17 r=1
|
|
||||||
"RPi port [off]"
|
|
||||||
"RPi Port [aus]"
|
|
||||||
|
|
||||||
#MSG_WIZARD_RERUN c=20 r=7
|
#MSG_WIZARD_RERUN c=20 r=7
|
||||||
"Running Wizard will delete current calibration results and start from the beginning. Continue?"
|
"Running Wizard will delete current calibration results and start from the beginning. Continue?"
|
||||||
"Der Assistent wird die aktuellen Kalibrierungsdaten loeschen und von vorne beginnen. Weiterfahren?"
|
"Der Assistent wird die aktuellen Kalibrierungsdaten loeschen und von vorne beginnen. Weiterfahren?"
|
||||||
|
|
||||||
#MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_OFF c=19 r=1
|
#MSG_SD_CARD
|
||||||
"SD card [normal]"
|
"SD card"
|
||||||
"SD Karte [normal]"
|
"SD Karte"
|
||||||
|
|
||||||
#MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON c=19 r=1
|
#MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY
|
||||||
"SD card [flshAir]"
|
"FlashAir"
|
||||||
"SD Karte[flshAir]"
|
"\x00"
|
||||||
|
|
||||||
#
|
#
|
||||||
"Right"
|
"Right"
|
||||||
@ -958,49 +922,49 @@
|
|||||||
"Some files will not be sorted. Max. No. of files in 1 folder for sorting is 100."
|
"Some files will not be sorted. Max. No. of files in 1 folder for sorting is 100."
|
||||||
"Einige Dateien wur- den nicht sortiert. Max. Dateien pro Verzeichnis = 100."
|
"Einige Dateien wur- den nicht sortiert. Max. Dateien pro Verzeichnis = 100."
|
||||||
|
|
||||||
#MSG_SORT_NONE c=17 r=1
|
#MSG_SORT
|
||||||
"Sort [none]"
|
"Sort"
|
||||||
"Sort. [ohne]"
|
"Sort."
|
||||||
|
|
||||||
#MSG_SORT_TIME c=17 r=1
|
#MSG_NONE
|
||||||
"Sort [time]"
|
"None"
|
||||||
"Sort. [Zeit]"
|
"Ohne"
|
||||||
|
|
||||||
|
#MSG_SORT_TIME
|
||||||
|
"Time"
|
||||||
|
"Zeit"
|
||||||
|
|
||||||
#
|
#
|
||||||
"Severe skew:"
|
"Severe skew:"
|
||||||
"Schwer.Schr:"
|
"Schwer.Schr:"
|
||||||
|
|
||||||
#MSG_SORT_ALPHA c=17 r=1
|
#MSG_SORT_ALPHA
|
||||||
"Sort [alphabet]"
|
"Alphabet"
|
||||||
"Sort. [Alphabet]"
|
"\x00"
|
||||||
|
|
||||||
#MSG_SORTING c=20 r=1
|
#MSG_SORTING c=20 r=1
|
||||||
"Sorting files"
|
"Sorting files"
|
||||||
"Sortiere Dateien"
|
"Sortiere Dateien"
|
||||||
|
|
||||||
#MSG_SOUND_LOUD c=17 r=1
|
#MSG_SOUND_LOUD
|
||||||
"Sound [loud]"
|
"Loud"
|
||||||
"Sound [laut]"
|
"Laut"
|
||||||
|
|
||||||
#
|
#
|
||||||
"Slight skew:"
|
"Slight skew:"
|
||||||
"Leicht.Schr:"
|
"Leicht.Schr:"
|
||||||
|
|
||||||
#MSG_SOUND_MUTE c=17 r=1
|
#MSG_SOUND
|
||||||
"Sound [mute]"
|
"Sound"
|
||||||
"Sound [stumm]"
|
"\x00"
|
||||||
|
|
||||||
#
|
#
|
||||||
"Some problem encountered, Z-leveling enforced ..."
|
"Some problem encountered, Z-leveling enforced ..."
|
||||||
"Fehler aufgetreten, Z-Kalibrierung erforderlich..."
|
"Fehler aufgetreten, Z-Kalibrierung erforderlich..."
|
||||||
|
|
||||||
#MSG_SOUND_ONCE c=17 r=1
|
#MSG_SOUND_ONCE
|
||||||
"Sound [once]"
|
"Once"
|
||||||
"Sound [einmal]"
|
"Einmal"
|
||||||
|
|
||||||
#MSG_SOUND_SILENT c=17 r=1
|
|
||||||
"Sound [silent]"
|
|
||||||
"Sound [leise]"
|
|
||||||
|
|
||||||
#MSG_SPEED
|
#MSG_SPEED
|
||||||
"Speed"
|
"Speed"
|
||||||
@ -1038,22 +1002,14 @@
|
|||||||
"Select filament:"
|
"Select filament:"
|
||||||
"Filament auswaehlen:"
|
"Filament auswaehlen:"
|
||||||
|
|
||||||
#MSG_TEMP_CALIBRATION c=20 r=1
|
#MSG_TEMP_CALIBRATION c=12 r=1
|
||||||
"Temp. cal. "
|
"Temp. cal."
|
||||||
"Temp Kalib. "
|
"Temp Kalib."
|
||||||
|
|
||||||
#MSG_TEMP_CALIBRATION_ON c=20 r=1
|
|
||||||
"Temp. cal. [on]"
|
|
||||||
"Temp. Kal. [an]"
|
|
||||||
|
|
||||||
#
|
#
|
||||||
"Select temperature which matches your material."
|
"Select temperature which matches your material."
|
||||||
"Waehlen Sie die Temperatur, die zu Ihrem Material passt."
|
"Waehlen Sie die Temperatur, die zu Ihrem Material passt."
|
||||||
|
|
||||||
#MSG_TEMP_CALIBRATION_OFF c=20 r=1
|
|
||||||
"Temp. cal. [off]"
|
|
||||||
"Temp. Kal. [aus]"
|
|
||||||
|
|
||||||
#MSG_CALIBRATION_PINDA_MENU c=17 r=1
|
#MSG_CALIBRATION_PINDA_MENU c=17 r=1
|
||||||
"Temp. calibration"
|
"Temp. calibration"
|
||||||
"Temp. kalibrieren"
|
"Temp. kalibrieren"
|
||||||
@ -1232,15 +1188,19 @@
|
|||||||
|
|
||||||
#
|
#
|
||||||
"The printer will start printing a zig-zag line. Rotate the knob until you reach the optimal height. Check the pictures in the handbook (Calibration chapter)."
|
"The printer will start printing a zig-zag line. Rotate the knob until you reach the optimal height. Check the pictures in the handbook (Calibration chapter)."
|
||||||
"\x00"
|
"Der Drucker beginnt mit dem Drucken einer Zickzacklinie. Drehen Sie den Knopf, bis Sie die optimale Hoehe erreicht haben. Ueberpruefen Sie die Bilder im Handbuch (Kapitel Kalibrierung)."
|
||||||
|
|
||||||
#
|
#
|
||||||
"Y-correct:"
|
"Y-correct:"
|
||||||
"Y-Korrektur:"
|
"Y-Korrektur:"
|
||||||
|
|
||||||
#MSG_OFF
|
#MSG_OFF
|
||||||
" [off]"
|
"Off"
|
||||||
" [aus]"
|
"Aus"
|
||||||
|
|
||||||
|
#MSG_ON
|
||||||
|
"On"
|
||||||
|
"An"
|
||||||
|
|
||||||
#
|
#
|
||||||
"Back"
|
"Back"
|
||||||
@ -1258,17 +1218,17 @@
|
|||||||
"FINDA:"
|
"FINDA:"
|
||||||
"\x00"
|
"\x00"
|
||||||
|
|
||||||
#
|
#MSG_FIRMWARE
|
||||||
"Firmware [none]"
|
"Firmware"
|
||||||
"Firmware [ohne]"
|
"\x00"
|
||||||
|
|
||||||
#
|
#MSG_STRICT
|
||||||
"Firmware [strict]"
|
"Strict"
|
||||||
"Firmware [strikt]"
|
"Strikt"
|
||||||
|
|
||||||
#
|
#MSG_WARN
|
||||||
"Firmware [warn]"
|
"Warn"
|
||||||
"Firmware [warnen]"
|
"Warnen"
|
||||||
|
|
||||||
#
|
#
|
||||||
"HW Setup"
|
"HW Setup"
|
||||||
@ -1278,25 +1238,13 @@
|
|||||||
"IR:"
|
"IR:"
|
||||||
"\x00"
|
"\x00"
|
||||||
|
|
||||||
#
|
#MSG_MAGNETS_COMP
|
||||||
"Magnets comp.[N/A]"
|
"Magnets comp."
|
||||||
"Magnet Komp. [nv]"
|
"Magnet Komp."
|
||||||
|
|
||||||
#
|
#MSG_MESH
|
||||||
"Magnets comp.[Off]"
|
"Mesh"
|
||||||
"Magnet Komp. [Aus]"
|
"Gitter"
|
||||||
|
|
||||||
#
|
|
||||||
"Magnets comp. [On]"
|
|
||||||
"Magnet Komp. [An]"
|
|
||||||
|
|
||||||
#
|
|
||||||
"Mesh [3x3]"
|
|
||||||
"Gitter [3x3]"
|
|
||||||
|
|
||||||
#
|
|
||||||
"Mesh [7x7]"
|
|
||||||
"Gitter [7x7]"
|
|
||||||
|
|
||||||
#
|
#
|
||||||
"Mesh bed leveling"
|
"Mesh bed leveling"
|
||||||
@ -1306,53 +1254,21 @@
|
|||||||
"MK3S firmware detected on MK3 printer"
|
"MK3S firmware detected on MK3 printer"
|
||||||
"MK3S-Firmware auf MK3-Drucker erkannt"
|
"MK3S-Firmware auf MK3-Drucker erkannt"
|
||||||
|
|
||||||
#
|
#MSG_MMU_MODE
|
||||||
"MMU Mode [Normal]"
|
"MMU Mode"
|
||||||
"MMU Modus[Normal]"
|
"MMU Modus"
|
||||||
|
|
||||||
#
|
|
||||||
"MMU Mode[Stealth]"
|
|
||||||
"MMU Mod.[Stealth]"
|
|
||||||
|
|
||||||
#
|
#
|
||||||
"Mode change in progress ..."
|
"Mode change in progress ..."
|
||||||
"Moduswechsel erfolgt..."
|
"Moduswechsel erfolgt..."
|
||||||
|
|
||||||
#
|
#MSG_MODEL
|
||||||
"Model [none]"
|
"Model"
|
||||||
"Modell [ohne]"
|
"Modell"
|
||||||
|
|
||||||
#
|
#MSG_NOZZLE_DIAMETER
|
||||||
"Model [strict]"
|
"Nozzle d."
|
||||||
"Modell [strikt]"
|
"Duese D."
|
||||||
|
|
||||||
#
|
|
||||||
"Model [warn]"
|
|
||||||
"Modell [warnen]"
|
|
||||||
|
|
||||||
#
|
|
||||||
"Nozzle d. [0.25]"
|
|
||||||
"Duese D. [0.25]"
|
|
||||||
|
|
||||||
#
|
|
||||||
"Nozzle d. [0.40]"
|
|
||||||
"Duese D. [0.40]"
|
|
||||||
|
|
||||||
#
|
|
||||||
"Nozzle d. [0.60]"
|
|
||||||
"Duese D. [0.60]"
|
|
||||||
|
|
||||||
#
|
|
||||||
"Nozzle [none]"
|
|
||||||
"Duese [ohne]"
|
|
||||||
|
|
||||||
#
|
|
||||||
"Nozzle [strict]"
|
|
||||||
"Duese [strikt]"
|
|
||||||
|
|
||||||
#
|
|
||||||
"Nozzle [warn]"
|
|
||||||
"Duese [warnen]"
|
|
||||||
|
|
||||||
#
|
#
|
||||||
"G-code sliced for a different level. Continue?"
|
"G-code sliced for a different level. Continue?"
|
||||||
@ -1414,9 +1330,9 @@
|
|||||||
"Sheet"
|
"Sheet"
|
||||||
"Blech"
|
"Blech"
|
||||||
|
|
||||||
#
|
#MSG_SOUND_BLIND
|
||||||
"Sound [assist]"
|
"Assist"
|
||||||
"Sound [Assist]"
|
"\x00"
|
||||||
|
|
||||||
#
|
#
|
||||||
"Steel sheets"
|
"Steel sheets"
|
||||||
@ -1426,14 +1342,6 @@
|
|||||||
"Z-correct:"
|
"Z-correct:"
|
||||||
"Z-Korrektur:"
|
"Z-Korrektur:"
|
||||||
|
|
||||||
#
|
#MSG_Z_PROBE_NR
|
||||||
"Z-probe nr. [1]"
|
"Z-probe nr."
|
||||||
"Z-Probe Nr. [1]"
|
"\x00"
|
||||||
|
|
||||||
#
|
|
||||||
"Z-probe nr. [3]"
|
|
||||||
"Z-Probe Nr. [3]"
|
|
||||||
|
|
||||||
#
|
|
||||||
"Z-probe nr. [5]"
|
|
||||||
"Z-Probe Nr. [5]"
|
|
||||||
|
@ -50,16 +50,8 @@
|
|||||||
"Are left and right Z~carriages all up?"
|
"Are left and right Z~carriages all up?"
|
||||||
"Carros Z izq./der. estan arriba maximo?"
|
"Carros Z izq./der. estan arriba maximo?"
|
||||||
|
|
||||||
#MSG_AUTO_DEPLETE_ON c=17 r=1
|
#MSG_AUTO_DEPLETE c=17 r=1
|
||||||
"SpoolJoin [on]"
|
"SpoolJoin"
|
||||||
"\x00"
|
|
||||||
|
|
||||||
#
|
|
||||||
"SpoolJoin [N/A]"
|
|
||||||
"\x00"
|
|
||||||
|
|
||||||
#MSG_AUTO_DEPLETE_OFF c=17 r=1
|
|
||||||
"SpoolJoin [off]"
|
|
||||||
"\x00"
|
"\x00"
|
||||||
|
|
||||||
#MSG_AUTO_HOME
|
#MSG_AUTO_HOME
|
||||||
@ -174,22 +166,14 @@
|
|||||||
"Copy selected language?"
|
"Copy selected language?"
|
||||||
"Copiar idioma seleccionado?"
|
"Copiar idioma seleccionado?"
|
||||||
|
|
||||||
#MSG_CRASHDETECT_ON
|
#MSG_CRASHDETECT
|
||||||
"Crash det. [on]"
|
"Crash det."
|
||||||
"Det. choque [act]"
|
"Det. choque"
|
||||||
|
|
||||||
#
|
#
|
||||||
"Choose a filament for the First Layer Calibration and select it in the on-screen menu."
|
"Choose a filament for the First Layer Calibration and select it in the on-screen menu."
|
||||||
"Escoge un filamento para la Calibracion de la Primera Capa y seleccionalo en el menu en pantalla."
|
"Escoge un filamento para la Calibracion de la Primera Capa y seleccionalo en el menu en pantalla."
|
||||||
|
|
||||||
#MSG_CRASHDETECT_NA
|
|
||||||
"Crash det. [N/A]"
|
|
||||||
"Dec. choque [N/D]"
|
|
||||||
|
|
||||||
#MSG_CRASHDETECT_OFF
|
|
||||||
"Crash det. [off]"
|
|
||||||
"Det. choque [ina]"
|
|
||||||
|
|
||||||
#MSG_CRASH_DETECTED c=20 r=1
|
#MSG_CRASH_DETECTED c=20 r=1
|
||||||
"Crash detected."
|
"Crash detected."
|
||||||
"Choque detectado."
|
"Choque detectado."
|
||||||
@ -274,17 +258,9 @@
|
|||||||
"Fail stats MMU"
|
"Fail stats MMU"
|
||||||
"Estadistica de fallos MMU"
|
"Estadistica de fallos MMU"
|
||||||
|
|
||||||
#MSG_FSENS_AUTOLOAD_ON c=17 r=1
|
#MSG_FSENSOR_AUTOLOAD
|
||||||
"F. autoload [on]"
|
"F. autoload"
|
||||||
"Autocarg.Fil[act]"
|
"Autocarg.fil."
|
||||||
|
|
||||||
#MSG_FSENS_AUTOLOAD_NA c=17 r=1
|
|
||||||
"F. autoload [N/A]"
|
|
||||||
"Autocarg.Fil[N/D]"
|
|
||||||
|
|
||||||
#MSG_FSENS_AUTOLOAD_OFF c=17 r=1
|
|
||||||
"F. autoload [off]"
|
|
||||||
"Autocarg.Fil[ina]"
|
|
||||||
|
|
||||||
#
|
#
|
||||||
"Fail stats"
|
"Fail stats"
|
||||||
@ -298,25 +274,13 @@
|
|||||||
"Fan test"
|
"Fan test"
|
||||||
"Test ventiladores"
|
"Test ventiladores"
|
||||||
|
|
||||||
#MSG_FANS_CHECK_ON c=17 r=1
|
#MSG_FANS_CHECK
|
||||||
"Fans check [on]"
|
"Fans check"
|
||||||
"Comprob.vent[act]"
|
"Comprob.vent"
|
||||||
|
|
||||||
#MSG_FANS_CHECK_OFF c=17 r=1
|
#MSG_FSENSOR
|
||||||
"Fans check [off]"
|
"Fil. sensor"
|
||||||
"Comprob.vent[ina]"
|
"Sensor Fil."
|
||||||
|
|
||||||
#MSG_FSENSOR_ON
|
|
||||||
"Fil. sensor [on]"
|
|
||||||
"Sensor Fil. [act]"
|
|
||||||
|
|
||||||
#MSG_FSENSOR_NA
|
|
||||||
"Fil. sensor [N/A]"
|
|
||||||
"Sensor Fil. [N/D]"
|
|
||||||
|
|
||||||
#MSG_FSENSOR_OFF
|
|
||||||
"Fil. sensor [off]"
|
|
||||||
"Sensor Fil. [ina]"
|
|
||||||
|
|
||||||
#
|
#
|
||||||
"Filam. runouts"
|
"Filam. runouts"
|
||||||
@ -578,13 +542,17 @@
|
|||||||
"MMU OK. Resuming..."
|
"MMU OK. Resuming..."
|
||||||
"MMU OK. Resumiendo..."
|
"MMU OK. Resumiendo..."
|
||||||
|
|
||||||
#MSG_STEALTH_MODE_OFF
|
#MSG_MODE
|
||||||
"Mode [Normal]"
|
"Mode"
|
||||||
"Modo [Normal]"
|
"Modo"
|
||||||
|
|
||||||
#MSG_SILENT_MODE_ON
|
#MSG_NORMAL
|
||||||
"Mode [silent]"
|
"Normal"
|
||||||
"Modo [silencio]"
|
"\x00"
|
||||||
|
|
||||||
|
#MSG_SILENT
|
||||||
|
"Silent"
|
||||||
|
"Silencio"
|
||||||
|
|
||||||
#
|
#
|
||||||
"MMU needs user attention."
|
"MMU needs user attention."
|
||||||
@ -594,17 +562,17 @@
|
|||||||
"MMU power fails"
|
"MMU power fails"
|
||||||
"Fallo de energia en MMU"
|
"Fallo de energia en MMU"
|
||||||
|
|
||||||
#MSG_STEALTH_MODE_ON
|
#MSG_STEALTH
|
||||||
"Mode [Stealth]"
|
"Stealth"
|
||||||
"Modo [Silencio]"
|
"Silencio"
|
||||||
|
|
||||||
#MSG_AUTO_MODE_ON
|
#MSG_AUTO_POWER
|
||||||
"Mode [auto power]"
|
"Auto power"
|
||||||
"Modo[fuerza auto]"
|
"Fuerza auto"
|
||||||
|
|
||||||
#MSG_SILENT_MODE_OFF
|
#MSG_HIGH_POWER
|
||||||
"Mode [high power]"
|
"High power"
|
||||||
"Modo [rend.pleno]"
|
"Rend.pleno"
|
||||||
|
|
||||||
#
|
#
|
||||||
"MMU2 connected"
|
"MMU2 connected"
|
||||||
@ -638,7 +606,7 @@
|
|||||||
"No SD card"
|
"No SD card"
|
||||||
"No hay tarjeta SD"
|
"No hay tarjeta SD"
|
||||||
|
|
||||||
#
|
#MSG_NA
|
||||||
"N/A"
|
"N/A"
|
||||||
"N/A"
|
"N/A"
|
||||||
|
|
||||||
@ -878,25 +846,21 @@
|
|||||||
"Right side[um]"
|
"Right side[um]"
|
||||||
"Derecha [um]"
|
"Derecha [um]"
|
||||||
|
|
||||||
#MSG_SECOND_SERIAL_ON c=17 r=1
|
#MSG_RPI_PORT
|
||||||
"RPi port [on]"
|
"RPi port"
|
||||||
"Puerto RPi [act]"
|
"Puerto RPi"
|
||||||
|
|
||||||
#MSG_SECOND_SERIAL_OFF c=17 r=1
|
|
||||||
"RPi port [off]"
|
|
||||||
"Puerto RPi [ina]"
|
|
||||||
|
|
||||||
#MSG_WIZARD_RERUN c=20 r=7
|
#MSG_WIZARD_RERUN c=20 r=7
|
||||||
"Running Wizard will delete current calibration results and start from the beginning. Continue?"
|
"Running Wizard will delete current calibration results and start from the beginning. Continue?"
|
||||||
"Ejecutar el Wizard borrara los valores de calibracion actuales y comenzara de nuevo. Continuar?"
|
"Ejecutar el Wizard borrara los valores de calibracion actuales y comenzara de nuevo. Continuar?"
|
||||||
|
|
||||||
#MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_OFF c=19 r=1
|
#MSG_SD_CARD
|
||||||
"SD card [normal]"
|
"SD card"
|
||||||
"Tarj. SD [normal]"
|
"Tarj. SD"
|
||||||
|
|
||||||
#MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON c=19 r=1
|
#MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY
|
||||||
"SD card [flshAir]"
|
"FlashAir"
|
||||||
"Tarj. SD[FlshAir]"
|
"\x00"
|
||||||
|
|
||||||
#
|
#
|
||||||
"Right"
|
"Right"
|
||||||
@ -958,49 +922,49 @@
|
|||||||
"Some files will not be sorted. Max. No. of files in 1 folder for sorting is 100."
|
"Some files will not be sorted. Max. No. of files in 1 folder for sorting is 100."
|
||||||
"Algunos archivos no se ordenaran. Maximo 100 archivos por carpeta para ordenar. "
|
"Algunos archivos no se ordenaran. Maximo 100 archivos por carpeta para ordenar. "
|
||||||
|
|
||||||
#MSG_SORT_NONE c=17 r=1
|
#MSG_SORT
|
||||||
"Sort [none]"
|
"Sort"
|
||||||
"Ordenar [ninguno]"
|
"Ordenar"
|
||||||
|
|
||||||
#MSG_SORT_TIME c=17 r=1
|
#MSG_NONE
|
||||||
"Sort [time]"
|
"None"
|
||||||
"Ordenar [fecha]"
|
"Ninguno"
|
||||||
|
|
||||||
|
#MSG_SORT_TIME
|
||||||
|
"Time"
|
||||||
|
"Fecha"
|
||||||
|
|
||||||
#
|
#
|
||||||
"Severe skew:"
|
"Severe skew:"
|
||||||
"Incl.severa:"
|
"Incl.severa:"
|
||||||
|
|
||||||
#MSG_SORT_ALPHA c=17 r=1
|
#MSG_SORT_ALPHA
|
||||||
"Sort [alphabet]"
|
"Alphabet"
|
||||||
"Ordenar [alfabet]"
|
"Alfabet"
|
||||||
|
|
||||||
#MSG_SORTING c=20 r=1
|
#MSG_SORTING c=20 r=1
|
||||||
"Sorting files"
|
"Sorting files"
|
||||||
"Ordenando archivos"
|
"Ordenando archivos"
|
||||||
|
|
||||||
#MSG_SOUND_LOUD c=17 r=1
|
#MSG_SOUND_LOUD
|
||||||
"Sound [loud]"
|
"Loud"
|
||||||
"Sonido [alto]"
|
"Alto"
|
||||||
|
|
||||||
#
|
#
|
||||||
"Slight skew:"
|
"Slight skew:"
|
||||||
"Liger.incl.:"
|
"Liger.incl.:"
|
||||||
|
|
||||||
#MSG_SOUND_MUTE c=17 r=1
|
#MSG_SOUND
|
||||||
"Sound [mute]"
|
"Sound"
|
||||||
"Sonido[silenciad]"
|
"Sonido"
|
||||||
|
|
||||||
#
|
#
|
||||||
"Some problem encountered, Z-leveling enforced ..."
|
"Some problem encountered, Z-leveling enforced ..."
|
||||||
"Problema encontrado, nivelacion Z forzosa ..."
|
"Problema encontrado, nivelacion Z forzosa ..."
|
||||||
|
|
||||||
#MSG_SOUND_ONCE c=17 r=1
|
#MSG_SOUND_ONCE
|
||||||
"Sound [once]"
|
"Once"
|
||||||
"Sonido [una vez]"
|
"Una vez"
|
||||||
|
|
||||||
#MSG_SOUND_SILENT c=17 r=1
|
|
||||||
"Sound [silent]"
|
|
||||||
"Sonido[silencios]"
|
|
||||||
|
|
||||||
#MSG_SPEED
|
#MSG_SPEED
|
||||||
"Speed"
|
"Speed"
|
||||||
@ -1038,22 +1002,14 @@
|
|||||||
"Select filament:"
|
"Select filament:"
|
||||||
"Selecciona filamento:"
|
"Selecciona filamento:"
|
||||||
|
|
||||||
#MSG_TEMP_CALIBRATION c=20 r=1
|
#MSG_TEMP_CALIBRATION c=12 r=1
|
||||||
"Temp. cal. "
|
"Temp. cal."
|
||||||
"Cal. temp. "
|
"Cal. temp."
|
||||||
|
|
||||||
#MSG_TEMP_CALIBRATION_ON c=20 r=1
|
|
||||||
"Temp. cal. [on]"
|
|
||||||
"Cal. temp. [on]"
|
|
||||||
|
|
||||||
#
|
#
|
||||||
"Select temperature which matches your material."
|
"Select temperature which matches your material."
|
||||||
"Selecciona la temperatura adecuada a tu material."
|
"Selecciona la temperatura adecuada a tu material."
|
||||||
|
|
||||||
#MSG_TEMP_CALIBRATION_OFF c=20 r=1
|
|
||||||
"Temp. cal. [off]"
|
|
||||||
"Cal. temp. [off]"
|
|
||||||
|
|
||||||
#MSG_CALIBRATION_PINDA_MENU c=17 r=1
|
#MSG_CALIBRATION_PINDA_MENU c=17 r=1
|
||||||
"Temp. calibration"
|
"Temp. calibration"
|
||||||
"Calibracion temp."
|
"Calibracion temp."
|
||||||
@ -1232,15 +1188,19 @@
|
|||||||
|
|
||||||
#
|
#
|
||||||
"The printer will start printing a zig-zag line. Rotate the knob until you reach the optimal height. Check the pictures in the handbook (Calibration chapter)."
|
"The printer will start printing a zig-zag line. Rotate the knob until you reach the optimal height. Check the pictures in the handbook (Calibration chapter)."
|
||||||
"\x00"
|
"La impresora comenzara a imprimir una linea en zig-zag. Gira el dial hasta que la linea alcance la altura optima. Mira las fotos del manual (Capitulo de calibracion)."
|
||||||
|
|
||||||
#
|
#
|
||||||
"Y-correct:"
|
"Y-correct:"
|
||||||
"Corregir-Y:"
|
"Corregir-Y:"
|
||||||
|
|
||||||
#MSG_OFF
|
#MSG_OFF
|
||||||
" [off]"
|
"Off"
|
||||||
"[apag]"
|
"Ina"
|
||||||
|
|
||||||
|
#MSG_ON
|
||||||
|
"On"
|
||||||
|
"Act"
|
||||||
|
|
||||||
#
|
#
|
||||||
"Back"
|
"Back"
|
||||||
@ -1258,17 +1218,17 @@
|
|||||||
"FINDA:"
|
"FINDA:"
|
||||||
"FINDA:"
|
"FINDA:"
|
||||||
|
|
||||||
#
|
#MSG_FIRMWARE
|
||||||
"Firmware [none]"
|
"Firmware"
|
||||||
"Firmware[ninguno]"
|
"\x00"
|
||||||
|
|
||||||
#
|
#MSG_STRICT
|
||||||
"Firmware [strict]"
|
"Strict"
|
||||||
"Firmware[estrict]"
|
"Estrict"
|
||||||
|
|
||||||
#
|
#MSG_WARN
|
||||||
"Firmware [warn]"
|
"Warn"
|
||||||
"Firmware [aviso]"
|
"Aviso"
|
||||||
|
|
||||||
#
|
#
|
||||||
"HW Setup"
|
"HW Setup"
|
||||||
@ -1278,25 +1238,13 @@
|
|||||||
"IR:"
|
"IR:"
|
||||||
"\x00"
|
"\x00"
|
||||||
|
|
||||||
#
|
#MSG_MAGNETS_COMP
|
||||||
"Magnets comp.[N/A]"
|
"Magnets comp."
|
||||||
"Comp. imanes [N/A]"
|
"Comp. imanes"
|
||||||
|
|
||||||
#
|
#MSG_MESH
|
||||||
"Magnets comp.[Off]"
|
"Mesh"
|
||||||
"Comp. imanes [Off]"
|
"Malla"
|
||||||
|
|
||||||
#
|
|
||||||
"Magnets comp. [On]"
|
|
||||||
"Comp. imanes [On]"
|
|
||||||
|
|
||||||
#
|
|
||||||
"Mesh [3x3]"
|
|
||||||
"Malla [3x3]"
|
|
||||||
|
|
||||||
#
|
|
||||||
"Mesh [7x7]"
|
|
||||||
"Malla [7x7]"
|
|
||||||
|
|
||||||
#
|
#
|
||||||
"Mesh bed leveling"
|
"Mesh bed leveling"
|
||||||
@ -1306,53 +1254,21 @@
|
|||||||
"MK3S firmware detected on MK3 printer"
|
"MK3S firmware detected on MK3 printer"
|
||||||
"Firmware MK3S detectado en impresora MK3"
|
"Firmware MK3S detectado en impresora MK3"
|
||||||
|
|
||||||
#
|
#MSG_MMU_MODE
|
||||||
"MMU Mode [Normal]"
|
"MMU Mode"
|
||||||
"Modo MMU [Normal]"
|
"Modo MMU"
|
||||||
|
|
||||||
#
|
|
||||||
"MMU Mode[Stealth]"
|
|
||||||
"Modo MMU[Silenci]"
|
|
||||||
|
|
||||||
#
|
#
|
||||||
"Mode change in progress ..."
|
"Mode change in progress ..."
|
||||||
"Cambio de modo progresando ..."
|
"Cambio de modo progresando ..."
|
||||||
|
|
||||||
#
|
#MSG_MODEL
|
||||||
"Model [none]"
|
"Model"
|
||||||
"Modelo [ninguno]"
|
"Modelo"
|
||||||
|
|
||||||
#
|
#MSG_NOZZLE_DIAMETER
|
||||||
"Model [strict]"
|
"Nozzle d."
|
||||||
"Modelo [estricto]"
|
"Diam. nozzl"
|
||||||
|
|
||||||
#
|
|
||||||
"Model [warn]"
|
|
||||||
"Modelo [aviso]"
|
|
||||||
|
|
||||||
#
|
|
||||||
"Nozzle d. [0.25]"
|
|
||||||
"Diam. nozzl[0.25]"
|
|
||||||
|
|
||||||
#
|
|
||||||
"Nozzle d. [0.40]"
|
|
||||||
"Diam. nozzl[0.40]"
|
|
||||||
|
|
||||||
#
|
|
||||||
"Nozzle d. [0.60]"
|
|
||||||
"Diam. nozzl[0.60]"
|
|
||||||
|
|
||||||
#
|
|
||||||
"Nozzle [none]"
|
|
||||||
"Nozzle [ninguno]"
|
|
||||||
|
|
||||||
#
|
|
||||||
"Nozzle [strict]"
|
|
||||||
"Nozzle [estricto]"
|
|
||||||
|
|
||||||
#
|
|
||||||
"Nozzle [warn]"
|
|
||||||
"Nozzle [aviso]"
|
|
||||||
|
|
||||||
#
|
#
|
||||||
"G-code sliced for a different level. Continue?"
|
"G-code sliced for a different level. Continue?"
|
||||||
@ -1414,9 +1330,9 @@
|
|||||||
"Sheet"
|
"Sheet"
|
||||||
"Lamina"
|
"Lamina"
|
||||||
|
|
||||||
#
|
#MSG_SOUND_BLIND
|
||||||
"Sound [assist]"
|
"Assist"
|
||||||
"Sonido [asistido]"
|
"Asistido"
|
||||||
|
|
||||||
#
|
#
|
||||||
"Steel sheets"
|
"Steel sheets"
|
||||||
@ -1426,14 +1342,6 @@
|
|||||||
"Z-correct:"
|
"Z-correct:"
|
||||||
"Corregir-Z:"
|
"Corregir-Z:"
|
||||||
|
|
||||||
#
|
#MSG_Z_PROBE_NR
|
||||||
"Z-probe nr. [1]"
|
"Z-probe nr."
|
||||||
"Z-sensor nr. [1]"
|
"Z-sensor nr."
|
||||||
|
|
||||||
#
|
|
||||||
"Z-probe nr. [3]"
|
|
||||||
"Z-sensor nr. [3]"
|
|
||||||
|
|
||||||
#
|
|
||||||
"Z-probe nr. [5]"
|
|
||||||
"Z-sensor nr. [5]"
|
|
||||||
|
@ -50,16 +50,8 @@
|
|||||||
"Are left and right Z~carriages all up?"
|
"Are left and right Z~carriages all up?"
|
||||||
"Z~carriages gauche + droite tout en haut?"
|
"Z~carriages gauche + droite tout en haut?"
|
||||||
|
|
||||||
#MSG_AUTO_DEPLETE_ON c=17 r=1
|
#MSG_AUTO_DEPLETE c=17 r=1
|
||||||
"SpoolJoin [on]"
|
"SpoolJoin"
|
||||||
"\x00"
|
|
||||||
|
|
||||||
#
|
|
||||||
"SpoolJoin [N/A]"
|
|
||||||
"\x00"
|
|
||||||
|
|
||||||
#MSG_AUTO_DEPLETE_OFF c=17 r=1
|
|
||||||
"SpoolJoin [off]"
|
|
||||||
"\x00"
|
"\x00"
|
||||||
|
|
||||||
#MSG_AUTO_HOME
|
#MSG_AUTO_HOME
|
||||||
@ -174,22 +166,14 @@
|
|||||||
"Copy selected language?"
|
"Copy selected language?"
|
||||||
"Copier la langue selectionne?"
|
"Copier la langue selectionne?"
|
||||||
|
|
||||||
#MSG_CRASHDETECT_ON
|
#MSG_CRASHDETECT
|
||||||
"Crash det. [on]"
|
"Crash det."
|
||||||
"Detect.crash [on]"
|
"Detect.crash"
|
||||||
|
|
||||||
#
|
#
|
||||||
"Choose a filament for the First Layer Calibration and select it in the on-screen menu."
|
"Choose a filament for the First Layer Calibration and select it in the on-screen menu."
|
||||||
"Choisissez un filament pour la Calibration de la Premiere Couche et selectionnez-le depuis le menu a l'ecran."
|
"Choisissez un filament pour la Calibration de la Premiere Couche et selectionnez-le depuis le menu a l'ecran."
|
||||||
|
|
||||||
#MSG_CRASHDETECT_NA
|
|
||||||
"Crash det. [N/A]"
|
|
||||||
"Detect.crash[N/A]"
|
|
||||||
|
|
||||||
#MSG_CRASHDETECT_OFF
|
|
||||||
"Crash det. [off]"
|
|
||||||
"Detect.crash[off]"
|
|
||||||
|
|
||||||
#MSG_CRASH_DETECTED c=20 r=1
|
#MSG_CRASH_DETECTED c=20 r=1
|
||||||
"Crash detected."
|
"Crash detected."
|
||||||
"Crash detecte."
|
"Crash detecte."
|
||||||
@ -274,18 +258,9 @@
|
|||||||
"Fail stats MMU"
|
"Fail stats MMU"
|
||||||
"Stat. d'echec MMU"
|
"Stat. d'echec MMU"
|
||||||
|
|
||||||
#MSG_FSENS_AUTOLOAD_ON c=17 r=1
|
#MSG_FSENSOR_AUTOLOAD
|
||||||
"F. autoload [on]"
|
"F. autoload"
|
||||||
"Autochargeur [on]"
|
"Autochargeur"
|
||||||
|
|
||||||
#MSG_FSENS_AUTOLOAD_NA c=17 r=1
|
|
||||||
"F. autoload [N/A]"
|
|
||||||
"Autochargeur[N/A]"
|
|
||||||
|
|
||||||
#MSG_FSENS_AUTOLOAD_OFF c=17 r=1
|
|
||||||
"F. autoload [off]"
|
|
||||||
"Autochargeur[off]"
|
|
||||||
|
|
||||||
#
|
#
|
||||||
"Fail stats"
|
"Fail stats"
|
||||||
"Stat. d'echec"
|
"Stat. d'echec"
|
||||||
@ -298,26 +273,13 @@
|
|||||||
"Fan test"
|
"Fan test"
|
||||||
"Test du ventilateur"
|
"Test du ventilateur"
|
||||||
|
|
||||||
#MSG_FANS_CHECK_ON c=17 r=1
|
#MSG_FANS_CHECK
|
||||||
"Fans check [on]"
|
"Fans check"
|
||||||
"Verif vent. [on]"
|
"Verif vent."
|
||||||
|
|
||||||
#MSG_FANS_CHECK_OFF c=17 r=1
|
|
||||||
"Fans check [off]"
|
|
||||||
"Verif vent. [off]"
|
|
||||||
|
|
||||||
#MSG_FSENSOR_ON
|
|
||||||
"Fil. sensor [on]"
|
|
||||||
"Capteur Fil. [on]"
|
|
||||||
|
|
||||||
#MSG_FSENSOR_NA
|
|
||||||
"Fil. sensor [N/A]"
|
|
||||||
"Capteur Fil.[N/A]"
|
|
||||||
|
|
||||||
#MSG_FSENSOR_OFF
|
|
||||||
"Fil. sensor [off]"
|
|
||||||
"Capteur Fil.[off]"
|
|
||||||
|
|
||||||
|
#MSG_FSENSOR
|
||||||
|
"Fil. sensor"
|
||||||
|
"Capteur Fil."
|
||||||
#
|
#
|
||||||
"Filam. runouts"
|
"Filam. runouts"
|
||||||
"Fins de filament"
|
"Fins de filament"
|
||||||
@ -578,13 +540,17 @@
|
|||||||
"MMU OK. Resuming..."
|
"MMU OK. Resuming..."
|
||||||
"MMU OK. Reprise ..."
|
"MMU OK. Reprise ..."
|
||||||
|
|
||||||
#MSG_STEALTH_MODE_OFF
|
#MSG_MODE
|
||||||
"Mode [Normal]"
|
"Mode"
|
||||||
"\x00"
|
"\x00"
|
||||||
|
|
||||||
#MSG_SILENT_MODE_ON
|
#MSG_NORMAL
|
||||||
"Mode [silent]"
|
"Normal"
|
||||||
"Mode [feutre]"
|
"\x00"
|
||||||
|
|
||||||
|
#MSG_SILENT
|
||||||
|
"Silent"
|
||||||
|
"Feutre"
|
||||||
|
|
||||||
#
|
#
|
||||||
"MMU needs user attention."
|
"MMU needs user attention."
|
||||||
@ -594,17 +560,17 @@
|
|||||||
"MMU power fails"
|
"MMU power fails"
|
||||||
"Echecs alim. MMU"
|
"Echecs alim. MMU"
|
||||||
|
|
||||||
#MSG_STEALTH_MODE_ON
|
#MSG_STEALTH
|
||||||
"Mode [Stealth]"
|
"Stealth"
|
||||||
"Mode [furtif]"
|
"Furtif"
|
||||||
|
|
||||||
#MSG_AUTO_MODE_ON
|
#MSG_AUTO_POWER
|
||||||
"Mode [auto power]"
|
"Auto power"
|
||||||
"Mode [puiss.auto]"
|
"Puiss.auto"
|
||||||
|
|
||||||
#MSG_SILENT_MODE_OFF
|
#MSG_HIGH_POWER
|
||||||
"Mode [high power]"
|
"High power"
|
||||||
"Mode[haute puiss]"
|
"Haute puiss"
|
||||||
|
|
||||||
#
|
#
|
||||||
"MMU2 connected"
|
"MMU2 connected"
|
||||||
@ -638,7 +604,7 @@
|
|||||||
"No SD card"
|
"No SD card"
|
||||||
"Pas de carte SD"
|
"Pas de carte SD"
|
||||||
|
|
||||||
#
|
#MSG_NA
|
||||||
"N/A"
|
"N/A"
|
||||||
"\x00"
|
"\x00"
|
||||||
|
|
||||||
@ -878,25 +844,21 @@
|
|||||||
"Right side[um]"
|
"Right side[um]"
|
||||||
"Droite [um]"
|
"Droite [um]"
|
||||||
|
|
||||||
#MSG_SECOND_SERIAL_ON c=17 r=1
|
#MSG_RPI_PORT
|
||||||
"RPi port [on]"
|
"RPi port"
|
||||||
"Port RPi [on]"
|
"Port RPi"
|
||||||
|
|
||||||
#MSG_SECOND_SERIAL_OFF c=17 r=1
|
|
||||||
"RPi port [off]"
|
|
||||||
"Port RPi [off]"
|
|
||||||
|
|
||||||
#MSG_WIZARD_RERUN c=20 r=7
|
#MSG_WIZARD_RERUN c=20 r=7
|
||||||
"Running Wizard will delete current calibration results and start from the beginning. Continue?"
|
"Running Wizard will delete current calibration results and start from the beginning. Continue?"
|
||||||
"Lancement de l'Assistant supprimera les resultats actuels de calibration et commencera du debut. Continuer?"
|
"Lancement de l'Assistant supprimera les resultats actuels de calibration et commencera du debut. Continuer?"
|
||||||
|
|
||||||
#MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_OFF c=19 r=1
|
#MSG_SD_CARD
|
||||||
"SD card [normal]"
|
"SD card"
|
||||||
"Carte SD [normal]"
|
"Carte SD"
|
||||||
|
|
||||||
#MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON c=19 r=1
|
#MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY
|
||||||
"SD card [flshAir]"
|
"FlashAir"
|
||||||
"Carte SD[flshAir]"
|
"FlshAir"
|
||||||
|
|
||||||
#
|
#
|
||||||
"Right"
|
"Right"
|
||||||
@ -958,50 +920,49 @@
|
|||||||
"Some files will not be sorted. Max. No. of files in 1 folder for sorting is 100."
|
"Some files will not be sorted. Max. No. of files in 1 folder for sorting is 100."
|
||||||
"Certains fichiers ne seront pas tries. Max 100 fichiers tries par dossier."
|
"Certains fichiers ne seront pas tries. Max 100 fichiers tries par dossier."
|
||||||
|
|
||||||
#MSG_SORT_NONE c=17 r=1
|
#MSG_SORT
|
||||||
"Sort [none]"
|
"Sort"
|
||||||
"Tri [aucun]"
|
"Tri"
|
||||||
|
|
||||||
#MSG_SORT_TIME c=17 r=1
|
#MSG_NONE
|
||||||
"Sort [time]"
|
"None"
|
||||||
"Tri [heure]"
|
"Aucun"
|
||||||
|
|
||||||
|
#MSG_SORT_TIME
|
||||||
|
"Time"
|
||||||
|
"Heure"
|
||||||
|
|
||||||
#
|
#
|
||||||
"Severe skew:"
|
"Severe skew:"
|
||||||
"Deviat.sev.:"
|
"Deviat.sev.:"
|
||||||
|
|
||||||
#MSG_SORT_ALPHA c=17 r=1
|
#MSG_SORT_ALPHA
|
||||||
"Sort [alphabet]"
|
"Alphabet"
|
||||||
"Tri [alphabet]"
|
"\x00"
|
||||||
|
|
||||||
#MSG_SORTING c=20 r=1
|
#MSG_SORTING c=20 r=1
|
||||||
"Sorting files"
|
"Sorting files"
|
||||||
"Tri des fichiers"
|
"Tri des fichiers"
|
||||||
|
|
||||||
#MSG_SOUND_LOUD c=17 r=1
|
#MSG_SOUND_LOUD
|
||||||
"Sound [loud]"
|
"Loud"
|
||||||
"Son [fort]"
|
"Fort"
|
||||||
|
|
||||||
#
|
#
|
||||||
"Slight skew:"
|
"Slight skew:"
|
||||||
"Deviat.leg.:"
|
"Deviat.leg.:"
|
||||||
|
|
||||||
#MSG_SOUND_MUTE c=17 r=1
|
#MSG_SOUND
|
||||||
"Sound [mute]"
|
"Sound"
|
||||||
"Son [muet]"
|
"Son"
|
||||||
|
|
||||||
#
|
#
|
||||||
"Some problem encountered, Z-leveling enforced ..."
|
"Some problem encountered, Z-leveling enforced ..."
|
||||||
"Probleme rencontre, cliquez sur le bouton pour niveller l'axe Z..."
|
"Probleme rencontre, cliquez sur le bouton pour niveller l'axe Z..."
|
||||||
|
|
||||||
#MSG_SOUND_ONCE c=17 r=1
|
#MSG_SOUND_ONCE
|
||||||
"Sound [once]"
|
"Once"
|
||||||
"Son [une fois]"
|
"Une fois"
|
||||||
|
|
||||||
#MSG_SOUND_SILENT c=17 r=1
|
|
||||||
"Sound [silent]"
|
|
||||||
"Son [feutre]"
|
|
||||||
|
|
||||||
#MSG_SPEED
|
#MSG_SPEED
|
||||||
"Speed"
|
"Speed"
|
||||||
"Vitesse"
|
"Vitesse"
|
||||||
@ -1038,22 +999,14 @@
|
|||||||
"Select filament:"
|
"Select filament:"
|
||||||
"Selectionnez le filament:"
|
"Selectionnez le filament:"
|
||||||
|
|
||||||
#MSG_TEMP_CALIBRATION c=20 r=1
|
#MSG_TEMP_CALIBRATION c=12 r=1
|
||||||
"Temp. cal. "
|
"Temp. cal."
|
||||||
"Calib. Temp."
|
"Calib. Temp."
|
||||||
|
|
||||||
#MSG_TEMP_CALIBRATION_ON c=20 r=1
|
|
||||||
"Temp. cal. [on]"
|
|
||||||
"Calib. Temp. [on]"
|
|
||||||
|
|
||||||
#
|
#
|
||||||
"Select temperature which matches your material."
|
"Select temperature which matches your material."
|
||||||
"Selectionnez la temperature qui correspond a votre materiau."
|
"Selectionnez la temperature qui correspond a votre materiau."
|
||||||
|
|
||||||
#MSG_TEMP_CALIBRATION_OFF c=20 r=1
|
|
||||||
"Temp. cal. [off]"
|
|
||||||
"Calib. Temp.[off]"
|
|
||||||
|
|
||||||
#MSG_CALIBRATION_PINDA_MENU c=17 r=1
|
#MSG_CALIBRATION_PINDA_MENU c=17 r=1
|
||||||
"Temp. calibration"
|
"Temp. calibration"
|
||||||
"Calibration temp."
|
"Calibration temp."
|
||||||
@ -1232,15 +1185,19 @@
|
|||||||
|
|
||||||
#
|
#
|
||||||
"The printer will start printing a zig-zag line. Rotate the knob until you reach the optimal height. Check the pictures in the handbook (Calibration chapter)."
|
"The printer will start printing a zig-zag line. Rotate the knob until you reach the optimal height. Check the pictures in the handbook (Calibration chapter)."
|
||||||
"\x00"
|
"L'imprimante commencera a imprimer une ligne en zig-zag. Tournez le bouton jusqu'a atteindre la hauteur optimale. Consultez les photos dans le manuel (chapitre Calibration)."
|
||||||
|
|
||||||
#
|
#
|
||||||
"Y-correct:"
|
"Y-correct:"
|
||||||
"Correct-Y:"
|
"Correct-Y:"
|
||||||
|
|
||||||
#MSG_OFF
|
#MSG_OFF
|
||||||
" [off]"
|
"Off"
|
||||||
" [off]"
|
"\x00"
|
||||||
|
|
||||||
|
#MSG_ON
|
||||||
|
"On"
|
||||||
|
"\x00"
|
||||||
|
|
||||||
#
|
#
|
||||||
"Back"
|
"Back"
|
||||||
@ -1258,17 +1215,17 @@
|
|||||||
"FINDA:"
|
"FINDA:"
|
||||||
"FINDA:"
|
"FINDA:"
|
||||||
|
|
||||||
#
|
#MSG_FIRMWARE
|
||||||
"Firmware [none]"
|
"Firmware"
|
||||||
"Firmware [aucune]"
|
"\x00"
|
||||||
|
|
||||||
#
|
#MSG_STRICT
|
||||||
"Firmware [strict]"
|
"Strict"
|
||||||
"Firmware[stricte]"
|
"Stricte"
|
||||||
|
|
||||||
#
|
#MSG_WARN
|
||||||
"Firmware [warn]"
|
"Warn"
|
||||||
"Firmware [avert]"
|
"Avert"
|
||||||
|
|
||||||
#
|
#
|
||||||
"HW Setup"
|
"HW Setup"
|
||||||
@ -1278,24 +1235,12 @@
|
|||||||
"IR:"
|
"IR:"
|
||||||
"IR:"
|
"IR:"
|
||||||
|
|
||||||
#
|
#MSG_MAGNETS_COMP
|
||||||
"Magnets comp.[N/A]"
|
"Magnets comp."
|
||||||
"Compens. aim.[N/A]"
|
"Compens. aim."
|
||||||
|
|
||||||
#
|
#MSG_MESH
|
||||||
"Magnets comp.[Off]"
|
"Mesh"
|
||||||
"Compens. aim.[off]"
|
|
||||||
|
|
||||||
#
|
|
||||||
"Magnets comp. [On]"
|
|
||||||
"Compens. aim. [on]"
|
|
||||||
|
|
||||||
#
|
|
||||||
"Mesh [3x3]"
|
|
||||||
"\x00"
|
|
||||||
|
|
||||||
#
|
|
||||||
"Mesh [7x7]"
|
|
||||||
"\x00"
|
"\x00"
|
||||||
|
|
||||||
#
|
#
|
||||||
@ -1306,53 +1251,21 @@
|
|||||||
"MK3S firmware detected on MK3 printer"
|
"MK3S firmware detected on MK3 printer"
|
||||||
"Firmware MK3S detecte sur imprimante MK3"
|
"Firmware MK3S detecte sur imprimante MK3"
|
||||||
|
|
||||||
#
|
#MSG_MMU_MODE
|
||||||
"MMU Mode [Normal]"
|
"MMU Mode"
|
||||||
"Mode MMU [normal]"
|
"Mode MMU"
|
||||||
|
|
||||||
#
|
|
||||||
"MMU Mode[Stealth]"
|
|
||||||
"Mode MMU [feutre]"
|
|
||||||
|
|
||||||
#
|
#
|
||||||
"Mode change in progress ..."
|
"Mode change in progress ..."
|
||||||
"Changement de mode en cours..."
|
"Changement de mode en cours..."
|
||||||
|
|
||||||
#
|
#MSG_MODEL
|
||||||
"Model [none]"
|
"Model"
|
||||||
"Modele [aucune]"
|
"Modele"
|
||||||
|
|
||||||
#
|
#MSG_NOZZLE_DIAMETER
|
||||||
"Model [strict]"
|
"Nozzle d."
|
||||||
"Modele [stricte]"
|
"Diam. buse"
|
||||||
|
|
||||||
#
|
|
||||||
"Model [warn]"
|
|
||||||
"Modele [avert]"
|
|
||||||
|
|
||||||
#
|
|
||||||
"Nozzle d. [0.25]"
|
|
||||||
"Diam. buse [0.25]"
|
|
||||||
|
|
||||||
#
|
|
||||||
"Nozzle d. [0.40]"
|
|
||||||
"Diam. buse [0.40]"
|
|
||||||
|
|
||||||
#
|
|
||||||
"Nozzle d. [0.60]"
|
|
||||||
"Diam. buse [0.60]"
|
|
||||||
|
|
||||||
#
|
|
||||||
"Nozzle [none]"
|
|
||||||
"Buse [aucune]"
|
|
||||||
|
|
||||||
#
|
|
||||||
"Nozzle [strict]"
|
|
||||||
"Buse [stricte]"
|
|
||||||
|
|
||||||
#
|
|
||||||
"Nozzle [warn]"
|
|
||||||
"Buse [avert]"
|
|
||||||
|
|
||||||
#
|
#
|
||||||
"G-code sliced for a different level. Continue?"
|
"G-code sliced for a different level. Continue?"
|
||||||
@ -1414,9 +1327,9 @@
|
|||||||
"Sheet"
|
"Sheet"
|
||||||
"Plaque"
|
"Plaque"
|
||||||
|
|
||||||
#
|
#MSG_SOUND_BLIND
|
||||||
"Sound [assist]"
|
"Assist"
|
||||||
"Son [assist]"
|
"\x00"
|
||||||
|
|
||||||
#
|
#
|
||||||
"Steel sheets"
|
"Steel sheets"
|
||||||
@ -1426,15 +1339,6 @@
|
|||||||
"Z-correct:"
|
"Z-correct:"
|
||||||
"Correct-Z:"
|
"Correct-Z:"
|
||||||
|
|
||||||
#
|
#MSG_Z_PROBE_NR
|
||||||
"Z-probe nr. [1]"
|
"Z-probe nr."
|
||||||
"Mesurer x-fois [1]"
|
"Mesurer x-fois"
|
||||||
|
|
||||||
#
|
|
||||||
"Z-probe nr. [3]"
|
|
||||||
"Mesurer x-fois [3]"
|
|
||||||
|
|
||||||
#
|
|
||||||
"Z-probe nr. [5]"
|
|
||||||
"Mesurer x-fois [5]"
|
|
||||||
|
|
||||||
|
@ -50,16 +50,8 @@
|
|||||||
"Are left and right Z~carriages all up?"
|
"Are left and right Z~carriages all up?"
|
||||||
"I carrelli Z sin/des sono altezza max?"
|
"I carrelli Z sin/des sono altezza max?"
|
||||||
|
|
||||||
#MSG_AUTO_DEPLETE_ON c=17 r=1
|
#MSG_AUTO_DEPLETE c=17 r=1
|
||||||
"SpoolJoin [on]"
|
"SpoolJoin"
|
||||||
"\x00"
|
|
||||||
|
|
||||||
#
|
|
||||||
"SpoolJoin [N/A]"
|
|
||||||
"\x00"
|
|
||||||
|
|
||||||
#MSG_AUTO_DEPLETE_OFF c=17 r=1
|
|
||||||
"SpoolJoin [off]"
|
|
||||||
"\x00"
|
"\x00"
|
||||||
|
|
||||||
#MSG_AUTO_HOME
|
#MSG_AUTO_HOME
|
||||||
@ -174,22 +166,14 @@
|
|||||||
"Copy selected language?"
|
"Copy selected language?"
|
||||||
"Copiare la lingua selezionata?"
|
"Copiare la lingua selezionata?"
|
||||||
|
|
||||||
#MSG_CRASHDETECT_ON
|
#MSG_CRASHDETECT
|
||||||
"Crash det. [on]"
|
"Crash det."
|
||||||
"Rileva.crash [on]"
|
"Rileva.crash"
|
||||||
|
|
||||||
#
|
#
|
||||||
"Choose a filament for the First Layer Calibration and select it in the on-screen menu."
|
"Choose a filament for the First Layer Calibration and select it in the on-screen menu."
|
||||||
"Scegli un filamento per la calibrazione del primo strato e selezionalo nel menu sullo schermo."
|
"Scegli un filamento per la calibrazione del primo strato e selezionalo nel menu sullo schermo."
|
||||||
|
|
||||||
#MSG_CRASHDETECT_NA
|
|
||||||
"Crash det. [N/A]"
|
|
||||||
"Rileva.crash[N/A]"
|
|
||||||
|
|
||||||
#MSG_CRASHDETECT_OFF
|
|
||||||
"Crash det. [off]"
|
|
||||||
"Rileva.crash[off]"
|
|
||||||
|
|
||||||
#MSG_CRASH_DETECTED c=20 r=1
|
#MSG_CRASH_DETECTED c=20 r=1
|
||||||
"Crash detected."
|
"Crash detected."
|
||||||
"Rilevato impatto."
|
"Rilevato impatto."
|
||||||
@ -274,17 +258,9 @@
|
|||||||
"Fail stats MMU"
|
"Fail stats MMU"
|
||||||
"Stat.fall. MMU"
|
"Stat.fall. MMU"
|
||||||
|
|
||||||
#MSG_FSENS_AUTOLOAD_ON c=17 r=1
|
#MSG_FSENSOR_AUTOLOAD
|
||||||
"F. autoload [on]"
|
"F. autoload"
|
||||||
"Autocar.fil. [on]"
|
"Autocar.fil."
|
||||||
|
|
||||||
#MSG_FSENS_AUTOLOAD_NA c=17 r=1
|
|
||||||
"F. autoload [N/A]"
|
|
||||||
"Autocar.fil.[N/A]"
|
|
||||||
|
|
||||||
#MSG_FSENS_AUTOLOAD_OFF c=17 r=1
|
|
||||||
"F. autoload [off]"
|
|
||||||
"Autocar.fil.[off]"
|
|
||||||
|
|
||||||
#
|
#
|
||||||
"Fail stats"
|
"Fail stats"
|
||||||
@ -298,26 +274,13 @@
|
|||||||
"Fan test"
|
"Fan test"
|
||||||
"Test ventola"
|
"Test ventola"
|
||||||
|
|
||||||
#MSG_FANS_CHECK_ON c=17 r=1
|
#MSG_FANS_CHECK
|
||||||
"Fans check [on]"
|
"Fans check"
|
||||||
"Control.vent [on]"
|
"Control.vent"
|
||||||
|
|
||||||
#MSG_FANS_CHECK_OFF c=17 r=1
|
|
||||||
"Fans check [off]"
|
|
||||||
"Control.vent[off]"
|
|
||||||
|
|
||||||
#MSG_FSENSOR_ON
|
|
||||||
"Fil. sensor [on]"
|
|
||||||
"Sensore fil. [on]"
|
|
||||||
|
|
||||||
#MSG_FSENSOR_NA
|
|
||||||
"Fil. sensor [N/A]"
|
|
||||||
"Sensore fil.[N/A]"
|
|
||||||
|
|
||||||
#MSG_FSENSOR_OFF
|
|
||||||
"Fil. sensor [off]"
|
|
||||||
"Sensore fil.[off]"
|
|
||||||
|
|
||||||
|
#MSG_FSENSOR
|
||||||
|
"Fil. sensor"
|
||||||
|
"Sensore fil."
|
||||||
#
|
#
|
||||||
"Filam. runouts"
|
"Filam. runouts"
|
||||||
"Filam. esauriti"
|
"Filam. esauriti"
|
||||||
@ -578,13 +541,17 @@
|
|||||||
"MMU OK. Resuming..."
|
"MMU OK. Resuming..."
|
||||||
"MMU OK. Riprendendo... "
|
"MMU OK. Riprendendo... "
|
||||||
|
|
||||||
#MSG_STEALTH_MODE_OFF
|
#MSG_MODE
|
||||||
"Mode [Normal]"
|
"Mode"
|
||||||
"Mod. [normale]"
|
"Mod."
|
||||||
|
|
||||||
#MSG_SILENT_MODE_ON
|
#MSG_NORMAL
|
||||||
"Mode [silent]"
|
"Normal"
|
||||||
"Mod. [silenziosa]"
|
"Normale"
|
||||||
|
|
||||||
|
#MSG_SILENT
|
||||||
|
"Silent"
|
||||||
|
"Silenzioso"
|
||||||
|
|
||||||
#
|
#
|
||||||
"MMU needs user attention."
|
"MMU needs user attention."
|
||||||
@ -594,17 +561,17 @@
|
|||||||
"MMU power fails"
|
"MMU power fails"
|
||||||
"Manc. corr. MMU"
|
"Manc. corr. MMU"
|
||||||
|
|
||||||
#MSG_STEALTH_MODE_ON
|
#MSG_STEALTH
|
||||||
"Mode [Stealth]"
|
"Stealth"
|
||||||
"Mod. [silenziosa]"
|
"Silenziosa"
|
||||||
|
|
||||||
#MSG_AUTO_MODE_ON
|
#MSG_AUTO_POWER
|
||||||
"Mode [auto power]"
|
"Auto power"
|
||||||
"Mod. [auto]"
|
"Auto"
|
||||||
|
|
||||||
#MSG_SILENT_MODE_OFF
|
#MSG_HIGH_POWER
|
||||||
"Mode [high power]"
|
"High power"
|
||||||
"Mod. [forte]"
|
"Forte"
|
||||||
|
|
||||||
#
|
#
|
||||||
"MMU2 connected"
|
"MMU2 connected"
|
||||||
@ -638,7 +605,7 @@
|
|||||||
"No SD card"
|
"No SD card"
|
||||||
"Nessuna SD"
|
"Nessuna SD"
|
||||||
|
|
||||||
#
|
#MSG_NA
|
||||||
"N/A"
|
"N/A"
|
||||||
"\x00"
|
"\x00"
|
||||||
|
|
||||||
@ -878,25 +845,21 @@
|
|||||||
"Right side[um]"
|
"Right side[um]"
|
||||||
"Destra [um]"
|
"Destra [um]"
|
||||||
|
|
||||||
#MSG_SECOND_SERIAL_ON c=17 r=1
|
#MSG_RPI_PORT
|
||||||
"RPi port [on]"
|
"RPi port"
|
||||||
"Porta RPi [on]"
|
"Porta RPi"
|
||||||
|
|
||||||
#MSG_SECOND_SERIAL_OFF c=17 r=1
|
|
||||||
"RPi port [off]"
|
|
||||||
"Porta RPi [off]"
|
|
||||||
|
|
||||||
#MSG_WIZARD_RERUN c=20 r=7
|
#MSG_WIZARD_RERUN c=20 r=7
|
||||||
"Running Wizard will delete current calibration results and start from the beginning. Continue?"
|
"Running Wizard will delete current calibration results and start from the beginning. Continue?"
|
||||||
"Se avvi il Wizard perderai la calibrazione preesistente e dovrai ricominciare dall'inizio. Continuare?"
|
"Se avvi il Wizard perderai la calibrazione preesistente e dovrai ricominciare dall'inizio. Continuare?"
|
||||||
|
|
||||||
#MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_OFF c=19 r=1
|
#MSG_SD_CARD
|
||||||
"SD card [normal]"
|
"SD card"
|
||||||
"Mem. SD [normale]"
|
"Mem. SD"
|
||||||
|
|
||||||
#MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON c=19 r=1
|
#MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY
|
||||||
"SD card [flshAir]"
|
"FlashAir"
|
||||||
"Mem. SD [flshAir]"
|
"\x00"
|
||||||
|
|
||||||
#
|
#
|
||||||
"Right"
|
"Right"
|
||||||
@ -958,49 +921,49 @@
|
|||||||
"Some files will not be sorted. Max. No. of files in 1 folder for sorting is 100."
|
"Some files will not be sorted. Max. No. of files in 1 folder for sorting is 100."
|
||||||
"Alcuni file non saranno ordinati. Il numero massimo di file in una cartella e 100 perche siano ordinati."
|
"Alcuni file non saranno ordinati. Il numero massimo di file in una cartella e 100 perche siano ordinati."
|
||||||
|
|
||||||
#MSG_SORT_NONE c=17 r=1
|
#MSG_SORT
|
||||||
"Sort [none]"
|
"Sort"
|
||||||
"Ordina [nessuno]"
|
"Ordina"
|
||||||
|
|
||||||
#MSG_SORT_TIME c=17 r=1
|
#MSG_NONE
|
||||||
"Sort [time]"
|
"None"
|
||||||
"Ordina [cron.]"
|
"Nessuno"
|
||||||
|
|
||||||
|
#MSG_SORT_TIME
|
||||||
|
"Time"
|
||||||
|
"Cron."
|
||||||
|
|
||||||
#
|
#
|
||||||
"Severe skew:"
|
"Severe skew:"
|
||||||
"Devia.grave:"
|
"Devia.grave:"
|
||||||
|
|
||||||
#MSG_SORT_ALPHA c=17 r=1
|
#MSG_SORT_ALPHA
|
||||||
"Sort [alphabet]"
|
"Alphabet"
|
||||||
"Ordine [alfabeti]"
|
"Alfabeti"
|
||||||
|
|
||||||
#MSG_SORTING c=20 r=1
|
#MSG_SORTING c=20 r=1
|
||||||
"Sorting files"
|
"Sorting files"
|
||||||
"Ordinando i file"
|
"Ordinando i file"
|
||||||
|
|
||||||
#MSG_SOUND_LOUD c=17 r=1
|
#MSG_SOUND_LOUD
|
||||||
"Sound [loud]"
|
"Loud"
|
||||||
"Suono [forte]"
|
"Forte"
|
||||||
|
|
||||||
#
|
#
|
||||||
"Slight skew:"
|
"Slight skew:"
|
||||||
"Devia.lieve:"
|
"Devia.lieve:"
|
||||||
|
|
||||||
#MSG_SOUND_MUTE c=17 r=1
|
#MSG_SOUND
|
||||||
"Sound [mute]"
|
"Sound"
|
||||||
"Suono [mute]"
|
"Suono"
|
||||||
|
|
||||||
#
|
#
|
||||||
"Some problem encountered, Z-leveling enforced ..."
|
"Some problem encountered, Z-leveling enforced ..."
|
||||||
"Sono stati rilevati problemi, avviato livellamento Z ..."
|
"Sono stati rilevati problemi, avviato livellamento Z ..."
|
||||||
|
|
||||||
#MSG_SOUND_ONCE c=17 r=1
|
#MSG_SOUND_ONCE
|
||||||
"Sound [once]"
|
"Once"
|
||||||
"Suono [singolo]"
|
"Singolo"
|
||||||
|
|
||||||
#MSG_SOUND_SILENT c=17 r=1
|
|
||||||
"Sound [silent]"
|
|
||||||
"Suono[silenzioso]"
|
|
||||||
|
|
||||||
#MSG_SPEED
|
#MSG_SPEED
|
||||||
"Speed"
|
"Speed"
|
||||||
@ -1038,22 +1001,14 @@
|
|||||||
"Select filament:"
|
"Select filament:"
|
||||||
"Seleziona il filamento:"
|
"Seleziona il filamento:"
|
||||||
|
|
||||||
#MSG_TEMP_CALIBRATION c=20 r=1
|
#MSG_TEMP_CALIBRATION c=12 r=1
|
||||||
"Temp. cal. "
|
"Temp. cal."
|
||||||
"Calib. temp. "
|
"Calib. temp."
|
||||||
|
|
||||||
#MSG_TEMP_CALIBRATION_ON c=20 r=1
|
|
||||||
"Temp. cal. [on]"
|
|
||||||
"Calib. temp. [on]"
|
|
||||||
|
|
||||||
#
|
#
|
||||||
"Select temperature which matches your material."
|
"Select temperature which matches your material."
|
||||||
"Seleziona la temperatura appropriata per il tuo materiale."
|
"Seleziona la temperatura appropriata per il tuo materiale."
|
||||||
|
|
||||||
#MSG_TEMP_CALIBRATION_OFF c=20 r=1
|
|
||||||
"Temp. cal. [off]"
|
|
||||||
"Calib. temp.[off]"
|
|
||||||
|
|
||||||
#MSG_CALIBRATION_PINDA_MENU c=17 r=1
|
#MSG_CALIBRATION_PINDA_MENU c=17 r=1
|
||||||
"Temp. calibration"
|
"Temp. calibration"
|
||||||
"Calib. Temp."
|
"Calib. Temp."
|
||||||
@ -1232,14 +1187,18 @@
|
|||||||
|
|
||||||
#
|
#
|
||||||
"The printer will start printing a zig-zag line. Rotate the knob until you reach the optimal height. Check the pictures in the handbook (Calibration chapter)."
|
"The printer will start printing a zig-zag line. Rotate the knob until you reach the optimal height. Check the pictures in the handbook (Calibration chapter)."
|
||||||
"\x00"
|
"La stampante iniziera a stampare una linea a zig-zag. Gira la manopola fino a che non hai raggiungo l'altezza ottimale. Verifica con le immagini nel manuale (capitolo sulla calibrazione):"
|
||||||
|
|
||||||
#
|
#
|
||||||
"Y-correct:"
|
"Y-correct:"
|
||||||
"Correzione-Y:"
|
"Correzione-Y:"
|
||||||
|
|
||||||
#MSG_OFF
|
#MSG_OFF
|
||||||
" [off]"
|
"Off"
|
||||||
|
"\x00"
|
||||||
|
|
||||||
|
#MSG_ON
|
||||||
|
"On"
|
||||||
"\x00"
|
"\x00"
|
||||||
|
|
||||||
#
|
#
|
||||||
@ -1258,17 +1217,17 @@
|
|||||||
"FINDA:"
|
"FINDA:"
|
||||||
"\x00"
|
"\x00"
|
||||||
|
|
||||||
#
|
#MSG_FIRMWARE
|
||||||
"Firmware [none]"
|
"Firmware"
|
||||||
"Firmware[nessuno]"
|
"\x00"
|
||||||
|
|
||||||
#
|
#MSG_STRICT
|
||||||
"Firmware [strict]"
|
"Strict"
|
||||||
"Firmware [esatto]"
|
"Esatto"
|
||||||
|
|
||||||
#
|
#MSG_WARN
|
||||||
"Firmware [warn]"
|
"Warn"
|
||||||
"Firmware [avviso]"
|
"Avviso"
|
||||||
|
|
||||||
#
|
#
|
||||||
"HW Setup"
|
"HW Setup"
|
||||||
@ -1278,25 +1237,13 @@
|
|||||||
"IR:"
|
"IR:"
|
||||||
"\x00"
|
"\x00"
|
||||||
|
|
||||||
#
|
#MSG_MAGNETS_COMP
|
||||||
"Magnets comp.[N/A]"
|
"Magnets comp."
|
||||||
"Comp. Magneti[N/A]"
|
"Comp. Magneti"
|
||||||
|
|
||||||
#
|
#MSG_MESH
|
||||||
"Magnets comp.[Off]"
|
"Mesh"
|
||||||
"Comp. Magneti[off]"
|
"Griglia"
|
||||||
|
|
||||||
#
|
|
||||||
"Magnets comp. [On]"
|
|
||||||
"Comp. Magneti [on]"
|
|
||||||
|
|
||||||
#
|
|
||||||
"Mesh [3x3]"
|
|
||||||
"Griglia [3x3]"
|
|
||||||
|
|
||||||
#
|
|
||||||
"Mesh [7x7]"
|
|
||||||
"Griglia [7x7]"
|
|
||||||
|
|
||||||
#
|
#
|
||||||
"Mesh bed leveling"
|
"Mesh bed leveling"
|
||||||
@ -1306,53 +1253,21 @@
|
|||||||
"MK3S firmware detected on MK3 printer"
|
"MK3S firmware detected on MK3 printer"
|
||||||
"Firmware MK3S rilevato su stampante MK3"
|
"Firmware MK3S rilevato su stampante MK3"
|
||||||
|
|
||||||
#
|
#MSG_MMU_MODE
|
||||||
"MMU Mode [Normal]"
|
"MMU Mode"
|
||||||
"Modalita MMU [Normale]"
|
"Mod. MMU"
|
||||||
|
|
||||||
#
|
|
||||||
"MMU Mode[Stealth]"
|
|
||||||
"Modalita MMU [Silenziosa]"
|
|
||||||
|
|
||||||
#
|
#
|
||||||
"Mode change in progress ..."
|
"Mode change in progress ..."
|
||||||
"Cambio modalita in corso ..."
|
"Cambio modalita in corso ..."
|
||||||
|
|
||||||
#
|
#MSG_MODEL
|
||||||
"Model [none]"
|
"Model"
|
||||||
"Modello [nessuno]"
|
"Modello"
|
||||||
|
|
||||||
#
|
#MSG_NOZZLE_DIAMETER
|
||||||
"Model [strict]"
|
"Nozzle d."
|
||||||
"Modello [esatto]"
|
"Diam.Ugello"
|
||||||
|
|
||||||
#
|
|
||||||
"Model [warn]"
|
|
||||||
"Modello [avviso]"
|
|
||||||
|
|
||||||
#
|
|
||||||
"Nozzle d. [0.25]"
|
|
||||||
"Diam.Ugello[0.25]"
|
|
||||||
|
|
||||||
#
|
|
||||||
"Nozzle d. [0.40]"
|
|
||||||
"Diam.Ugello[0.40]"
|
|
||||||
|
|
||||||
#
|
|
||||||
"Nozzle d. [0.60]"
|
|
||||||
"Diam.Ugello[0.60]"
|
|
||||||
|
|
||||||
#
|
|
||||||
"Nozzle [none]"
|
|
||||||
"Ugello [nessuno]"
|
|
||||||
|
|
||||||
#
|
|
||||||
"Nozzle [strict]"
|
|
||||||
"Ugello [esatto]"
|
|
||||||
|
|
||||||
#
|
|
||||||
"Nozzle [warn]"
|
|
||||||
"Ugello [avviso]"
|
|
||||||
|
|
||||||
#
|
#
|
||||||
"G-code sliced for a different level. Continue?"
|
"G-code sliced for a different level. Continue?"
|
||||||
@ -1414,9 +1329,9 @@
|
|||||||
"Sheet"
|
"Sheet"
|
||||||
"Piano"
|
"Piano"
|
||||||
|
|
||||||
#
|
#MSG_SOUND_BLIND
|
||||||
"Sound [assist]"
|
"Assist"
|
||||||
"Suono [assist.]"
|
"Assist."
|
||||||
|
|
||||||
#
|
#
|
||||||
"Steel sheets"
|
"Steel sheets"
|
||||||
@ -1426,14 +1341,6 @@
|
|||||||
"Z-correct:"
|
"Z-correct:"
|
||||||
"Correzione-Z:"
|
"Correzione-Z:"
|
||||||
|
|
||||||
#
|
#MSG_Z_PROBE_NR
|
||||||
"Z-probe nr. [1]"
|
"Z-probe nr."
|
||||||
"Z-probe nr. [1]"
|
"\x00"
|
||||||
|
|
||||||
#
|
|
||||||
"Z-probe nr. [3]"
|
|
||||||
"Z-probe nr. [3]"
|
|
||||||
|
|
||||||
#
|
|
||||||
"Z-probe nr. [5]"
|
|
||||||
"Z-probe nr. [5]"
|
|
||||||
|
@ -50,17 +50,9 @@
|
|||||||
"Are left and right Z~carriages all up?"
|
"Are left and right Z~carriages all up?"
|
||||||
"Obydwa konce osi sa na szczycie?"
|
"Obydwa konce osi sa na szczycie?"
|
||||||
|
|
||||||
#MSG_AUTO_DEPLETE_ON c=17 r=1
|
#MSG_AUTO_DEPLETE c=17 r=1
|
||||||
"SpoolJoin [on]"
|
"SpoolJoin"
|
||||||
"SpoolJoin [wl]"
|
"\x00"
|
||||||
|
|
||||||
#
|
|
||||||
"SpoolJoin [N/A]"
|
|
||||||
"SpoolJoin [N/D]"
|
|
||||||
|
|
||||||
#MSG_AUTO_DEPLETE_OFF c=17 r=1
|
|
||||||
"SpoolJoin [off]"
|
|
||||||
"SpoolJoin [wyl]"
|
|
||||||
|
|
||||||
#MSG_AUTO_HOME
|
#MSG_AUTO_HOME
|
||||||
"Auto home"
|
"Auto home"
|
||||||
@ -175,21 +167,13 @@
|
|||||||
"Skopiowac wybrany jezyk?"
|
"Skopiowac wybrany jezyk?"
|
||||||
|
|
||||||
#MSG_CRASHDETECT_ON
|
#MSG_CRASHDETECT_ON
|
||||||
"Crash det. [on]"
|
"Crash det."
|
||||||
"Wykr.zderzen [wl]"
|
"Wykr.zderzen"
|
||||||
|
|
||||||
#
|
#
|
||||||
"Choose a filament for the First Layer Calibration and select it in the on-screen menu."
|
"Choose a filament for the First Layer Calibration and select it in the on-screen menu."
|
||||||
"Wybierz filament do Kalibracji Pierwszej Warstwy i potwierdz w menu ekranowym."
|
"Wybierz filament do Kalibracji Pierwszej Warstwy i potwierdz w menu ekranowym."
|
||||||
|
|
||||||
#MSG_CRASHDETECT_NA
|
|
||||||
"Crash det. [N/A]"
|
|
||||||
"Wykr.zderzen[N/D]"
|
|
||||||
|
|
||||||
#MSG_CRASHDETECT_OFF
|
|
||||||
"Crash det. [off]"
|
|
||||||
"Wykr.zderzen[wyl]"
|
|
||||||
|
|
||||||
#MSG_CRASH_DETECTED c=20 r=1
|
#MSG_CRASH_DETECTED c=20 r=1
|
||||||
"Crash detected."
|
"Crash detected."
|
||||||
"Zderzenie wykryte"
|
"Zderzenie wykryte"
|
||||||
@ -274,17 +258,9 @@
|
|||||||
"Fail stats MMU"
|
"Fail stats MMU"
|
||||||
"Bledy MMU"
|
"Bledy MMU"
|
||||||
|
|
||||||
#MSG_FSENS_AUTOLOAD_ON c=17 r=1
|
#MSG_FSENSOR_AUTOLOAD
|
||||||
"F. autoload [on]"
|
"F. autoload"
|
||||||
"Autolad.fil. [wl]"
|
"Autolad. fil."
|
||||||
|
|
||||||
#MSG_FSENS_AUTOLOAD_NA c=17 r=1
|
|
||||||
"F. autoload [N/A]"
|
|
||||||
"Autolad.fil.[N/D]"
|
|
||||||
|
|
||||||
#MSG_FSENS_AUTOLOAD_OFF c=17 r=1
|
|
||||||
"F. autoload [off]"
|
|
||||||
"Autolad.fil.[wyl]"
|
|
||||||
|
|
||||||
#
|
#
|
||||||
"Fail stats"
|
"Fail stats"
|
||||||
@ -298,25 +274,13 @@
|
|||||||
"Fan test"
|
"Fan test"
|
||||||
"Test wentylatora"
|
"Test wentylatora"
|
||||||
|
|
||||||
#MSG_FANS_CHECK_ON c=17 r=1
|
#MSG_FANS_CHECK
|
||||||
"Fans check [on]"
|
"Fans check"
|
||||||
"Sprawd.went. [wl]"
|
"Sprawd.went."
|
||||||
|
|
||||||
#MSG_FANS_CHECK_OFF c=17 r=1
|
#MSG_FSENSOR
|
||||||
"Fans check [off]"
|
"Fil. sensor"
|
||||||
"Sprawd.went.[wyl]"
|
"Czuj. filam."
|
||||||
|
|
||||||
#MSG_FSENSOR_ON
|
|
||||||
"Fil. sensor [on]"
|
|
||||||
"Czuj. filam. [wl]"
|
|
||||||
|
|
||||||
#MSG_FSENSOR_NA
|
|
||||||
"Fil. sensor [N/A]"
|
|
||||||
"Czuj. filam.[N/D]"
|
|
||||||
|
|
||||||
#MSG_FSENSOR_OFF
|
|
||||||
"Fil. sensor [off]"
|
|
||||||
"Czuj. filam.[wyl]"
|
|
||||||
|
|
||||||
#
|
#
|
||||||
"Filam. runouts"
|
"Filam. runouts"
|
||||||
@ -578,13 +542,17 @@
|
|||||||
"MMU OK. Resuming..."
|
"MMU OK. Resuming..."
|
||||||
"MMU OK. Wznawianie..."
|
"MMU OK. Wznawianie..."
|
||||||
|
|
||||||
#MSG_STEALTH_MODE_OFF
|
#MSG_MODE
|
||||||
"Mode [Normal]"
|
"Mode"
|
||||||
"Tryb [normalny]"
|
"Tryb"
|
||||||
|
|
||||||
#MSG_SILENT_MODE_ON
|
#MSG_NORMAL
|
||||||
"Mode [silent]"
|
"Normal"
|
||||||
"Tryb [cichy]"
|
"Normalny"
|
||||||
|
|
||||||
|
#MSG_SILENT
|
||||||
|
"Silent"
|
||||||
|
"Cichy"
|
||||||
|
|
||||||
#
|
#
|
||||||
"MMU needs user attention."
|
"MMU needs user attention."
|
||||||
@ -594,17 +562,17 @@
|
|||||||
"MMU power fails"
|
"MMU power fails"
|
||||||
"Zaniki zasil. MMU"
|
"Zaniki zasil. MMU"
|
||||||
|
|
||||||
#MSG_STEALTH_MODE_ON
|
#MSG_STEALTH
|
||||||
"Mode [Stealth]"
|
"Stealth"
|
||||||
"Tryb [cichy]"
|
"Cichy"
|
||||||
|
|
||||||
#MSG_AUTO_MODE_ON
|
#MSG_AUTO_POWER
|
||||||
"Mode [auto power]"
|
"Auto power"
|
||||||
"Tryb [automatycz]"
|
"Automatycz"
|
||||||
|
|
||||||
#MSG_SILENT_MODE_OFF
|
#MSG_HIGH_POWER
|
||||||
"Mode [high power]"
|
"High power"
|
||||||
"Tryb[wysoka wyd.]"
|
"Wysoka wyd."
|
||||||
|
|
||||||
#
|
#
|
||||||
"MMU2 connected"
|
"MMU2 connected"
|
||||||
@ -638,7 +606,7 @@
|
|||||||
"No SD card"
|
"No SD card"
|
||||||
"Brak karty SD"
|
"Brak karty SD"
|
||||||
|
|
||||||
#
|
#MSG_NA
|
||||||
"N/A"
|
"N/A"
|
||||||
"N/D"
|
"N/D"
|
||||||
|
|
||||||
@ -878,25 +846,21 @@
|
|||||||
"Right side[um]"
|
"Right side[um]"
|
||||||
"Prawo [um]"
|
"Prawo [um]"
|
||||||
|
|
||||||
#MSG_SECOND_SERIAL_ON c=17 r=1
|
#MSG_RPI_PORT
|
||||||
"RPi port [on]"
|
"RPi port"
|
||||||
"Port RPi [wl]"
|
"Port RPi"
|
||||||
|
|
||||||
#MSG_SECOND_SERIAL_OFF c=17 r=1
|
|
||||||
"RPi port [off]"
|
|
||||||
"Port RPi [wyl]"
|
|
||||||
|
|
||||||
#MSG_WIZARD_RERUN c=20 r=7
|
#MSG_WIZARD_RERUN c=20 r=7
|
||||||
"Running Wizard will delete current calibration results and start from the beginning. Continue?"
|
"Running Wizard will delete current calibration results and start from the beginning. Continue?"
|
||||||
"Wlaczenie Asystenta usunie obecne dane kalibracyjne i zacznie od poczatku. Kontynuowac?"
|
"Wlaczenie Asystenta usunie obecne dane kalibracyjne i zacznie od poczatku. Kontynuowac?"
|
||||||
|
|
||||||
#MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_OFF c=19 r=1
|
#MSG_SD_CARD
|
||||||
"SD card [normal]"
|
"SD card"
|
||||||
"Karta SD [normal]"
|
"Karta SD"
|
||||||
|
|
||||||
#MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON c=19 r=1
|
#MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY
|
||||||
"SD card [flshAir]"
|
"FlashAir"
|
||||||
"Karta SD[FlshAir]"
|
"\x00"
|
||||||
|
|
||||||
#
|
#
|
||||||
"Right"
|
"Right"
|
||||||
@ -958,50 +922,49 @@
|
|||||||
"Some files will not be sorted. Max. No. of files in 1 folder for sorting is 100."
|
"Some files will not be sorted. Max. No. of files in 1 folder for sorting is 100."
|
||||||
"Niektore pliki nie zostana posortowane. Max. liczba plikow w 1 folderze = 100."
|
"Niektore pliki nie zostana posortowane. Max. liczba plikow w 1 folderze = 100."
|
||||||
|
|
||||||
#MSG_SORT_NONE c=17 r=1
|
#MSG_SORT
|
||||||
"Sort [none]"
|
"Sort"
|
||||||
"Sortowanie [brak]"
|
"Sortowanie"
|
||||||
|
|
||||||
#MSG_SORT_TIME c=17 r=1
|
#MSG_NONE
|
||||||
"Sort [time]"
|
"None"
|
||||||
"Sortowanie [czas]"
|
"Brak"
|
||||||
|
|
||||||
|
#MSG_SORT_TIME
|
||||||
|
"Time"
|
||||||
|
"Czas"
|
||||||
|
|
||||||
#
|
#
|
||||||
"Severe skew:"
|
"Severe skew:"
|
||||||
"Znaczny skos:"
|
"Znaczny skos:"
|
||||||
|
|
||||||
#MSG_SORT_ALPHA c=17 r=1
|
#MSG_SORT_ALPHA
|
||||||
"Sort [alphabet]"
|
"Alphabet"
|
||||||
"Sortowanie[alfab]"
|
"Alfab"
|
||||||
|
|
||||||
#MSG_SORTING c=20 r=1
|
#MSG_SORTING c=20 r=1
|
||||||
"Sorting files"
|
"Sorting files"
|
||||||
"Sortowanie plikow"
|
"Sortowanie plikow"
|
||||||
|
|
||||||
#MSG_SOUND_LOUD c=17 r=1
|
#MSG_SOUND_LOUD
|
||||||
"Sound [loud]"
|
"Loud"
|
||||||
"Dzwiek [glosny]"
|
"Glosny"
|
||||||
|
|
||||||
#
|
#
|
||||||
"Slight skew:"
|
"Slight skew:"
|
||||||
"Lekki skos:"
|
"Lekki skos:"
|
||||||
|
|
||||||
#MSG_SOUND_MUTE c=17 r=1
|
#MSG_SOUND
|
||||||
"Sound [mute]"
|
"Sound"
|
||||||
"Dzwiek[wylaczony]"
|
"Dzwiek"
|
||||||
|
|
||||||
#
|
#
|
||||||
"Some problem encountered, Z-leveling enforced ..."
|
"Some problem encountered, Z-leveling enforced ..."
|
||||||
"Wykryto problem, wymuszono poziomowanie osi Z."
|
"Wykryto problem, wymuszono poziomowanie osi Z."
|
||||||
|
|
||||||
#MSG_SOUND_ONCE c=17 r=1
|
#MSG_SOUND_ONCE
|
||||||
"Sound [once]"
|
"Once"
|
||||||
"Dzwiek [1-raz]"
|
"1-raz"
|
||||||
|
|
||||||
#MSG_SOUND_SILENT c=17 r=1
|
|
||||||
"Sound [silent]"
|
|
||||||
"Dzwiek [cichy]"
|
|
||||||
|
|
||||||
#MSG_SPEED
|
#MSG_SPEED
|
||||||
"Speed"
|
"Speed"
|
||||||
"Predkosc"
|
"Predkosc"
|
||||||
@ -1038,22 +1001,14 @@
|
|||||||
"Select filament:"
|
"Select filament:"
|
||||||
"Wybierz filament:"
|
"Wybierz filament:"
|
||||||
|
|
||||||
#MSG_TEMP_CALIBRATION c=20 r=1
|
#MSG_TEMP_CALIBRATION c=12 r=1
|
||||||
"Temp. cal. "
|
"Temp. cal."
|
||||||
"Kalibracja temp."
|
"Kalibracja temp."
|
||||||
|
|
||||||
#MSG_TEMP_CALIBRATION_ON c=20 r=1
|
|
||||||
"Temp. cal. [on]"
|
|
||||||
"Kalibr.temp. [wl]"
|
|
||||||
|
|
||||||
#
|
#
|
||||||
"Select temperature which matches your material."
|
"Select temperature which matches your material."
|
||||||
"Wybierz temperature, ktora odpowiada Twojemu filamentowi."
|
"Wybierz temperature, ktora odpowiada Twojemu filamentowi."
|
||||||
|
|
||||||
#MSG_TEMP_CALIBRATION_OFF c=20 r=1
|
|
||||||
"Temp. cal. [off]"
|
|
||||||
"Kalibr.temp.[wyl]"
|
|
||||||
|
|
||||||
#MSG_CALIBRATION_PINDA_MENU c=17 r=1
|
#MSG_CALIBRATION_PINDA_MENU c=17 r=1
|
||||||
"Temp. calibration"
|
"Temp. calibration"
|
||||||
"Kalibracja temp."
|
"Kalibracja temp."
|
||||||
@ -1232,15 +1187,19 @@
|
|||||||
|
|
||||||
#
|
#
|
||||||
"The printer will start printing a zig-zag line. Rotate the knob until you reach the optimal height. Check the pictures in the handbook (Calibration chapter)."
|
"The printer will start printing a zig-zag line. Rotate the knob until you reach the optimal height. Check the pictures in the handbook (Calibration chapter)."
|
||||||
"\x00"
|
"Drukarka zacznie drukowanie linii w ksztalcie zygzaka. Ustaw optymalna wysokosc obracajac pokretlo. Porownaj z ilustracjami w Podreczniku (rozdzial Kalibracja)."
|
||||||
|
|
||||||
#
|
#
|
||||||
"Y-correct:"
|
"Y-correct:"
|
||||||
"Korekcja-Y:"
|
"Korekcja-Y:"
|
||||||
|
|
||||||
#MSG_OFF
|
#MSG_OFF
|
||||||
" [off]"
|
"Off"
|
||||||
" [wyl]"
|
"Wyl"
|
||||||
|
|
||||||
|
#MSG_ON
|
||||||
|
"On"
|
||||||
|
"Wl"
|
||||||
|
|
||||||
#
|
#
|
||||||
"Back"
|
"Back"
|
||||||
@ -1258,17 +1217,17 @@
|
|||||||
"FINDA:"
|
"FINDA:"
|
||||||
"\x00"
|
"\x00"
|
||||||
|
|
||||||
#
|
#MSG_FIRMWARE
|
||||||
"Firmware [none]"
|
"Firmware"
|
||||||
"Firmware [brak]"
|
"\x00"
|
||||||
|
|
||||||
#
|
#MSG_STRICT
|
||||||
"Firmware [strict]"
|
"Strict"
|
||||||
"Firmware [restr.]"
|
"Restr."
|
||||||
|
|
||||||
#
|
#MSG_WARN
|
||||||
"Firmware [warn]"
|
"Warn"
|
||||||
"Firmware[ostrzez]"
|
"Ostrzez"
|
||||||
|
|
||||||
#
|
#
|
||||||
"HW Setup"
|
"HW Setup"
|
||||||
@ -1278,25 +1237,13 @@
|
|||||||
"IR:"
|
"IR:"
|
||||||
"\x00"
|
"\x00"
|
||||||
|
|
||||||
#
|
#MSG_MAGNETS_COMP
|
||||||
"Magnets comp.[N/A]"
|
"Magnets comp."
|
||||||
"Kor. magnesow[N/D]"
|
"Kor. magnesow"
|
||||||
|
|
||||||
#
|
#MSG_MESH
|
||||||
"Magnets comp.[Off]"
|
"Mesh"
|
||||||
"Kor. magnesow[wyl]"
|
"Siatka"
|
||||||
|
|
||||||
#
|
|
||||||
"Magnets comp. [On]"
|
|
||||||
"Kor. magnesow [wl]"
|
|
||||||
|
|
||||||
#
|
|
||||||
"Mesh [3x3]"
|
|
||||||
"Siatka [3x3]"
|
|
||||||
|
|
||||||
#
|
|
||||||
"Mesh [7x7]"
|
|
||||||
"Siatka [7x7]"
|
|
||||||
|
|
||||||
#
|
#
|
||||||
"Mesh bed leveling"
|
"Mesh bed leveling"
|
||||||
@ -1306,53 +1253,21 @@
|
|||||||
"MK3S firmware detected on MK3 printer"
|
"MK3S firmware detected on MK3 printer"
|
||||||
"Wykryto firmware MK3S w drukarce MK3"
|
"Wykryto firmware MK3S w drukarce MK3"
|
||||||
|
|
||||||
#
|
#MSG_MMU_MODE
|
||||||
"MMU Mode [Normal]"
|
"MMU Mode"
|
||||||
"Tryb MMU[Normaln]"
|
"Tryb MMU"
|
||||||
|
|
||||||
#
|
|
||||||
"MMU Mode[Stealth]"
|
|
||||||
"Tryb MMU[Stealth]"
|
|
||||||
|
|
||||||
#
|
#
|
||||||
"Mode change in progress ..."
|
"Mode change in progress ..."
|
||||||
"Trwa zmiana trybu..."
|
"Trwa zmiana trybu..."
|
||||||
|
|
||||||
#
|
#MSG_MODEL
|
||||||
"Model [none]"
|
"Model"
|
||||||
"Model [brak]"
|
"\x00"
|
||||||
|
|
||||||
#
|
#MSG_NOZZLE_DIAMETER
|
||||||
"Model [strict]"
|
"Nozzle d."
|
||||||
"Model [restrykc.]"
|
"Sr. dyszy"
|
||||||
|
|
||||||
#
|
|
||||||
"Model [warn]"
|
|
||||||
"Model [ostrzez.]"
|
|
||||||
|
|
||||||
#
|
|
||||||
"Nozzle d. [0.25]"
|
|
||||||
"Sr. dyszy [0,25]"
|
|
||||||
|
|
||||||
#
|
|
||||||
"Nozzle d. [0.40]"
|
|
||||||
"Sr. dyszy [0,40]"
|
|
||||||
|
|
||||||
#
|
|
||||||
"Nozzle d. [0.60]"
|
|
||||||
"Sr. dyszy [0,60]"
|
|
||||||
|
|
||||||
#
|
|
||||||
"Nozzle [none]"
|
|
||||||
"Dysza [brak]"
|
|
||||||
|
|
||||||
#
|
|
||||||
"Nozzle [strict]"
|
|
||||||
"Dysza [restrykc.]"
|
|
||||||
|
|
||||||
#
|
|
||||||
"Nozzle [warn]"
|
|
||||||
"Dysza [ostrzez.]"
|
|
||||||
|
|
||||||
#
|
#
|
||||||
"G-code sliced for a different level. Continue?"
|
"G-code sliced for a different level. Continue?"
|
||||||
@ -1414,9 +1329,9 @@
|
|||||||
"Sheet"
|
"Sheet"
|
||||||
"Plyta"
|
"Plyta"
|
||||||
|
|
||||||
#
|
#MSG_SOUND_BLIND
|
||||||
"Sound [assist]"
|
"Assist"
|
||||||
"Dzwiek [asyst.]"
|
"Asyst."
|
||||||
|
|
||||||
#
|
#
|
||||||
"Steel sheets"
|
"Steel sheets"
|
||||||
@ -1426,14 +1341,6 @@
|
|||||||
"Z-correct:"
|
"Z-correct:"
|
||||||
"Korekcja-Z:"
|
"Korekcja-Z:"
|
||||||
|
|
||||||
#
|
#MSG_Z_PROBE_NR
|
||||||
"Z-probe nr. [1]"
|
"Z-probe nr."
|
||||||
"Ilosc Pomiarow [1]"
|
"Ilosc Pomiarow"
|
||||||
|
|
||||||
#
|
|
||||||
"Z-probe nr. [3]"
|
|
||||||
"Ilosc Pomiarow [3]"
|
|
||||||
|
|
||||||
#
|
|
||||||
"Z-probe nr. [5]"
|
|
||||||
"Ilosc Pomiarow [5]"
|
|
||||||
|
Loading…
Reference in New Issue
Block a user