Updated repetier
This commit is contained in:
parent
a0bb6d8315
commit
cbaa0cb12d
33 changed files with 18923 additions and 17089 deletions
|
@ -90,6 +90,18 @@ from 1 and use that as plane.
|
||||||
By now the leveling process is finished. All errors that remain are measuring errors and bumps on
|
By now the leveling process is finished. All errors that remain are measuring errors and bumps on
|
||||||
the bed it self. For deltas you can enable distortion correction to follow the bumps.
|
the bed it self. For deltas you can enable distortion correction to follow the bumps.
|
||||||
|
|
||||||
|
There are 2 ways to consider a changing bed coating, which are defined by Z_PROBE_Z_OFFSET_MODE.
|
||||||
|
Z_PROBE_Z_OFFSET_MODE = 0 means we measure the surface of the bed below any coating. This is e.g.
|
||||||
|
the case with inductive sensors where we put BuildTak on top. In that case we can set Z_PROBE_Z_OFFSET
|
||||||
|
to the thickness of BuildTak to compensate. If we later change the coating, we only change Z_PROBE_Z_OFFSET
|
||||||
|
to new coating thickness.
|
||||||
|
|
||||||
|
Z_PROBE_Z_OFFSET_MODE = 1 means we measure the surface of the coating, e.g. because we have a mechanical switch.
|
||||||
|
In that case we add Z_PROBE_Z_OFFSET for the measured height to compensate for correct distance to bed surface.
|
||||||
|
|
||||||
|
In homing to max we reduce z length by Z_PROBE_Z_OFFSET to get a correct height.
|
||||||
|
In homing to z min we assume z endstop is bed level so we move up Z_PROBE_Z_OFFSET after endstop is hit. This
|
||||||
|
requires the extruder to bend the coating thickness without harm!
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "Repetier.h"
|
#include "Repetier.h"
|
||||||
|
@ -110,19 +122,13 @@ the bed it self. For deltas you can enable distortion correction to follow the b
|
||||||
#define BED_LEVELING_REPETITIONS 1
|
#define BED_LEVELING_REPETITIONS 1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if FEATURE_AUTOLEVEL && FEATURE_Z_PROBE
|
|
||||||
|
|
||||||
class Plane {
|
|
||||||
public:
|
|
||||||
// f(x, y) = ax + by + c
|
|
||||||
float a,b,c;
|
|
||||||
float z(float x,float y) {
|
|
||||||
return a * x + y * b + c;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
class PlaneBuilder {
|
class PlaneBuilder {
|
||||||
float sum_xx,sum_xy,sum_yy,sum_x,sum_y,sum_xz,sum_yz,sum_z,n;
|
float sum_xx,sum_xy,sum_yy,sum_x,sum_y,sum_xz,sum_yz,sum_z,n;
|
||||||
public:
|
public:
|
||||||
|
PlaneBuilder() {
|
||||||
|
reset();
|
||||||
|
}
|
||||||
void reset() {
|
void reset() {
|
||||||
sum_xx = sum_xy = sum_yy = sum_x = sum_y = sum_xz = sum_yz = sum_z = n = 0;
|
sum_xx = sum_xy = sum_yy = sum_x = sum_y = sum_xz = sum_yz = sum_z = n = 0;
|
||||||
}
|
}
|
||||||
|
@ -137,17 +143,21 @@ class PlaneBuilder {
|
||||||
sum_yz += y * z;
|
sum_yz += y * z;
|
||||||
sum_z += z;
|
sum_z += z;
|
||||||
}
|
}
|
||||||
void createPlane(Plane &plane) {
|
void createPlane(Plane &plane,bool silent=false) {
|
||||||
float det = (sum_x * (sum_xy * sum_y - sum_x * sum_yy) + sum_xx * (n * sum_yy - sum_y * sum_y) + sum_xy * (sum_x * sum_y - n * sum_xy));
|
float det = (sum_x * (sum_xy * sum_y - sum_x * sum_yy) + sum_xx * (n * sum_yy - sum_y * sum_y) + sum_xy * (sum_x * sum_y - n * sum_xy));
|
||||||
plane.a = ((sum_xy * sum_y - sum_x * sum_yy) * sum_z + (sum_x * sum_y - n * sum_xy) * sum_yz + sum_xz * (n * sum_yy - sum_y * sum_y)) / det;
|
plane.a = ((sum_xy * sum_y - sum_x * sum_yy) * sum_z + (sum_x * sum_y - n * sum_xy) * sum_yz + sum_xz * (n * sum_yy - sum_y * sum_y)) / det;
|
||||||
plane.b = ((sum_x * sum_xy - sum_xx * sum_y) * sum_z + (n * sum_xx - sum_x * sum_x) * sum_yz + sum_xz * (sum_x * sum_y - n * sum_xy)) / det;
|
plane.b = ((sum_x * sum_xy - sum_xx * sum_y) * sum_z + (n * sum_xx - sum_x * sum_x) * sum_yz + sum_xz * (sum_x * sum_y - n * sum_xy)) / det;
|
||||||
plane.c = ((sum_xx * sum_yy - sum_xy * sum_xy) * sum_z + (sum_x * sum_xy - sum_xx * sum_y) * sum_yz + sum_xz * (sum_xy * sum_y - sum_x * sum_yy)) / det;
|
plane.c = ((sum_xx * sum_yy - sum_xy * sum_xy) * sum_z + (sum_x * sum_xy - sum_xx * sum_y) * sum_yz + sum_xz * (sum_xy * sum_y - sum_x * sum_yy)) / det;
|
||||||
|
if(!silent) {
|
||||||
Com::printF(PSTR("plane: a = "),plane.a,4);
|
Com::printF(PSTR("plane: a = "),plane.a,4);
|
||||||
Com::printF(PSTR(" b = "),plane.b,4);
|
Com::printF(PSTR(" b = "),plane.b,4);
|
||||||
Com::printFLN(PSTR(" c = "),plane.c,4);
|
Com::printFLN(PSTR(" c = "),plane.c,4);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#if FEATURE_AUTOLEVEL && FEATURE_Z_PROBE
|
||||||
|
|
||||||
bool measureAutolevelPlane(Plane &plane) {
|
bool measureAutolevelPlane(Plane &plane) {
|
||||||
PlaneBuilder builder;
|
PlaneBuilder builder;
|
||||||
builder.reset();
|
builder.reset();
|
||||||
|
@ -155,17 +165,17 @@ bool measureAutolevelPlane(Plane &plane) {
|
||||||
float h;
|
float h;
|
||||||
Printer::moveTo(EEPROM::zProbeX1(),EEPROM::zProbeY1(),IGNORE_COORDINATE,IGNORE_COORDINATE,EEPROM::zProbeXYSpeed());
|
Printer::moveTo(EEPROM::zProbeX1(),EEPROM::zProbeY1(),IGNORE_COORDINATE,IGNORE_COORDINATE,EEPROM::zProbeXYSpeed());
|
||||||
h = Printer::runZProbe(false,false);
|
h = Printer::runZProbe(false,false);
|
||||||
if(h < -1)
|
if(h == ILLEGAL_Z_PROBE)
|
||||||
return false;
|
return false;
|
||||||
builder.addPoint(EEPROM::zProbeX1(),EEPROM::zProbeY1(),h);
|
builder.addPoint(EEPROM::zProbeX1(),EEPROM::zProbeY1(),h);
|
||||||
Printer::moveTo(EEPROM::zProbeX2(),EEPROM::zProbeY2(),IGNORE_COORDINATE,IGNORE_COORDINATE,EEPROM::zProbeXYSpeed());
|
Printer::moveTo(EEPROM::zProbeX2(),EEPROM::zProbeY2(),IGNORE_COORDINATE,IGNORE_COORDINATE,EEPROM::zProbeXYSpeed());
|
||||||
h = Printer::runZProbe(false,false);
|
h = Printer::runZProbe(false,false);
|
||||||
if(h < -1)
|
if(h == ILLEGAL_Z_PROBE)
|
||||||
return false;
|
return false;
|
||||||
builder.addPoint(EEPROM::zProbeX2(),EEPROM::zProbeY2(),h);
|
builder.addPoint(EEPROM::zProbeX2(),EEPROM::zProbeY2(),h);
|
||||||
Printer::moveTo(EEPROM::zProbeX3(),EEPROM::zProbeY3(),IGNORE_COORDINATE,IGNORE_COORDINATE,EEPROM::zProbeXYSpeed());
|
Printer::moveTo(EEPROM::zProbeX3(),EEPROM::zProbeY3(),IGNORE_COORDINATE,IGNORE_COORDINATE,EEPROM::zProbeXYSpeed());
|
||||||
h = Printer::runZProbe(false,false);
|
h = Printer::runZProbe(false,false);
|
||||||
if(h < -1)
|
if(h == ILLEGAL_Z_PROBE)
|
||||||
return false;
|
return false;
|
||||||
builder.addPoint(EEPROM::zProbeX3(),EEPROM::zProbeY3(),h);
|
builder.addPoint(EEPROM::zProbeX3(),EEPROM::zProbeY3(),h);
|
||||||
#elif BED_LEVELING_METHOD == 1 // linear regression
|
#elif BED_LEVELING_METHOD == 1 // linear regression
|
||||||
|
@ -182,11 +192,12 @@ bool measureAutolevelPlane(Plane &plane) {
|
||||||
float py = oy + static_cast<float>(ix) * ay + static_cast<float>(iy) * by;
|
float py = oy + static_cast<float>(ix) * ay + static_cast<float>(iy) * by;
|
||||||
Printer::moveTo(px,py,IGNORE_COORDINATE,IGNORE_COORDINATE,EEPROM::zProbeXYSpeed());
|
Printer::moveTo(px,py,IGNORE_COORDINATE,IGNORE_COORDINATE,EEPROM::zProbeXYSpeed());
|
||||||
float h = Printer::runZProbe(false,false);
|
float h = Printer::runZProbe(false,false);
|
||||||
if(h < -1)
|
if(h == ILLEGAL_Z_PROBE)
|
||||||
return false;
|
return false;
|
||||||
builder.addPoint(px,py,h);
|
builder.addPoint(px,py,h);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#elif BED_LEVELING_METHOD == 2 // 4 point symmetric
|
#elif BED_LEVELING_METHOD == 2 // 4 point symmetric
|
||||||
float h1,h2,h3,h4;
|
float h1,h2,h3,h4;
|
||||||
float apx = EEPROM::zProbeX1() - EEPROM::zProbeX2();
|
float apx = EEPROM::zProbeX1() - EEPROM::zProbeX2();
|
||||||
|
@ -202,19 +213,19 @@ bool measureAutolevelPlane(Plane &plane) {
|
||||||
float y1Mirror = EEPROM::zProbeY1() + 2.0 * (xy - EEPROM::zProbeY1());
|
float y1Mirror = EEPROM::zProbeY1() + 2.0 * (xy - EEPROM::zProbeY1());
|
||||||
Printer::moveTo(EEPROM::zProbeX1(),EEPROM::zProbeY1(),IGNORE_COORDINATE,IGNORE_COORDINATE,EEPROM::zProbeXYSpeed());
|
Printer::moveTo(EEPROM::zProbeX1(),EEPROM::zProbeY1(),IGNORE_COORDINATE,IGNORE_COORDINATE,EEPROM::zProbeXYSpeed());
|
||||||
h1 = Printer::runZProbe(false,false);
|
h1 = Printer::runZProbe(false,false);
|
||||||
if(h1 < -1)
|
if(h1 == ILLEGAL_Z_PROBE)
|
||||||
return false;
|
return false;
|
||||||
Printer::moveTo(EEPROM::zProbeX2(),EEPROM::zProbeY2(),IGNORE_COORDINATE,IGNORE_COORDINATE,EEPROM::zProbeXYSpeed());
|
Printer::moveTo(EEPROM::zProbeX2(),EEPROM::zProbeY2(),IGNORE_COORDINATE,IGNORE_COORDINATE,EEPROM::zProbeXYSpeed());
|
||||||
h2 = Printer::runZProbe(false,false);
|
h2 = Printer::runZProbe(false,false);
|
||||||
if(h2 < -1)
|
if(h2 == ILLEGAL_Z_PROBE)
|
||||||
return false;
|
return false;
|
||||||
Printer::moveTo(EEPROM::zProbeX3(),EEPROM::zProbeY3(),IGNORE_COORDINATE,IGNORE_COORDINATE,EEPROM::zProbeXYSpeed());
|
Printer::moveTo(EEPROM::zProbeX3(),EEPROM::zProbeY3(),IGNORE_COORDINATE,IGNORE_COORDINATE,EEPROM::zProbeXYSpeed());
|
||||||
h3 = Printer::runZProbe(false,false);
|
h3 = Printer::runZProbe(false,false);
|
||||||
if(h3 < -1)
|
if(h3 == ILLEGAL_Z_PROBE)
|
||||||
return false;
|
return false;
|
||||||
Printer::moveTo(x1Mirror,y1Mirror,IGNORE_COORDINATE,IGNORE_COORDINATE,EEPROM::zProbeXYSpeed());
|
Printer::moveTo(x1Mirror,y1Mirror,IGNORE_COORDINATE,IGNORE_COORDINATE,EEPROM::zProbeXYSpeed());
|
||||||
h4 = Printer::runZProbe(false,false);
|
h4 = Printer::runZProbe(false,false);
|
||||||
if(h4 < -1)
|
if(h4 == ILLEGAL_Z_PROBE)
|
||||||
return false;
|
return false;
|
||||||
t = h2 + (h3 - h2) * t; // theoretical height for crossing point for symmetric axis
|
t = h2 + (h3 - h2) * t; // theoretical height for crossing point for symmetric axis
|
||||||
h1 = t - (h4 - h1) * 0.5; // remove bending part
|
h1 = t - (h4 - h1) * 0.5; // remove bending part
|
||||||
|
@ -224,13 +235,14 @@ bool measureAutolevelPlane(Plane &plane) {
|
||||||
#else
|
#else
|
||||||
#error Unknown bed leveling method
|
#error Unknown bed leveling method
|
||||||
#endif
|
#endif
|
||||||
builder.createPlane(plane);
|
builder.createPlane(plane,false);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void correctAutolevel(GCode *code,Plane &plane) {
|
void correctAutolevel(GCode *code,Plane &plane) {
|
||||||
#if BED_CORRECTION_METHOD == 0 // rotation matrix
|
#if BED_CORRECTION_METHOD == 0 // rotation matrix
|
||||||
Printer::buildTransformationMatrix(plane.z(EEPROM::zProbeX1(),EEPROM::zProbeY1()),plane.z(EEPROM::zProbeX2(),EEPROM::zProbeY2()),plane.z(EEPROM::zProbeX3(),EEPROM::zProbeY3()));
|
//Printer::buildTransformationMatrix(plane.z(EEPROM::zProbeX1(),EEPROM::zProbeY1()),plane.z(EEPROM::zProbeX2(),EEPROM::zProbeY2()),plane.z(EEPROM::zProbeX3(),EEPROM::zProbeY3()));
|
||||||
|
Printer::buildTransformationMatrix(plane);
|
||||||
#elif BED_CORRECTION_METHOD == 1 // motorized correction
|
#elif BED_CORRECTION_METHOD == 1 // motorized correction
|
||||||
#if !defined(NUM_MOTOR_DRIVERS) || NUM_MOTOR_DRIVERS < 2
|
#if !defined(NUM_MOTOR_DRIVERS) || NUM_MOTOR_DRIVERS < 2
|
||||||
#error You need to define 2 motors for motorized bed correction
|
#error You need to define 2 motors for motorized bed correction
|
||||||
|
@ -242,6 +254,12 @@ void correctAutolevel(GCode *code,Plane &plane) {
|
||||||
// h1 is reference heights, h2 => motor 0, h3 => motor 1
|
// h1 is reference heights, h2 => motor 0, h3 => motor 1
|
||||||
h2 -= h1;
|
h2 -= h1;
|
||||||
h3 -= h1;
|
h3 -= h1;
|
||||||
|
#if defined(LIMIT_MOTORIZED_CORRECTION)
|
||||||
|
if(h2 < -LIMIT_MOTORIZED_CORRECTION) h2 = -LIMIT_MOTORIZED_CORRECTION;
|
||||||
|
if(h2 > LIMIT_MOTORIZED_CORRECTION) h2 = LIMIT_MOTORIZED_CORRECTION;
|
||||||
|
if(h3 < -LIMIT_MOTORIZED_CORRECTION) h3 = -LIMIT_MOTORIZED_CORRECTION;
|
||||||
|
if(h3 > LIMIT_MOTORIZED_CORRECTION) h3 = LIMIT_MOTORIZED_CORRECTION;
|
||||||
|
#endif
|
||||||
MotorDriverInterface *motor2 = getMotorDriver(0);
|
MotorDriverInterface *motor2 = getMotorDriver(0);
|
||||||
MotorDriverInterface *motor3 = getMotorDriver(1);
|
MotorDriverInterface *motor3 = getMotorDriver(1);
|
||||||
motor2->setCurrentAs(0);
|
motor2->setCurrentAs(0);
|
||||||
|
@ -263,7 +281,7 @@ S = 0 : Do not update length - use this if you have not homed before or you mess
|
||||||
S = 1 : Measure zLength so homing works
|
S = 1 : Measure zLength so homing works
|
||||||
S = 2 : Like s = 1 plus store results in EEPROM for next connection.
|
S = 2 : Like s = 1 plus store results in EEPROM for next connection.
|
||||||
*/
|
*/
|
||||||
void runBedLeveling(GCode *com) {
|
bool runBedLeveling(GCode *com) {
|
||||||
float h1,h2,h3,hc,oldFeedrate = Printer::feedrate;
|
float h1,h2,h3,hc,oldFeedrate = Printer::feedrate;
|
||||||
int s = com->hasS() ? com->S : -1;
|
int s = com->hasS() ? com->S : -1;
|
||||||
#if DISTORTION_CORRECTION
|
#if DISTORTION_CORRECTION
|
||||||
|
@ -296,23 +314,20 @@ void runBedLeveling(GCode *com) {
|
||||||
#endif
|
#endif
|
||||||
if(!measureAutolevelPlane(plane)) {
|
if(!measureAutolevelPlane(plane)) {
|
||||||
Com::printErrorFLN(PSTR("Probing had returned errors - autoleveling canceled."));
|
Com::printErrorFLN(PSTR("Probing had returned errors - autoleveling canceled."));
|
||||||
return;
|
return false;
|
||||||
}
|
}
|
||||||
correctAutolevel(com,plane);
|
correctAutolevel(com,plane);
|
||||||
|
|
||||||
// Leveling is finished now update own positions and store leveling data if needed
|
// Leveling is finished now update own positions and store leveling data if needed
|
||||||
float currentZ = plane.z((float)Printer::currentPositionSteps[X_AXIS] * Printer::invAxisStepsPerMM[X_AXIS],(float)Printer::currentPositionSteps[Y_AXIS] * Printer::invAxisStepsPerMM[Y_AXIS]);
|
float currentZ = plane.z((float)Printer::currentPositionSteps[X_AXIS] * Printer::invAxisStepsPerMM[X_AXIS],(float)Printer::currentPositionSteps[Y_AXIS] * Printer::invAxisStepsPerMM[Y_AXIS]);
|
||||||
Com::printF(PSTR("CurrentZ:"),currentZ);Com::printFLN(PSTR(" atZ:"),Printer::currentPosition[Z_AXIS]);
|
Com::printF(PSTR("CurrentZ:"),currentZ);
|
||||||
|
Com::printFLN(PSTR(" atZ:"),Printer::currentPosition[Z_AXIS]);
|
||||||
// With max z endstop we adjust zlength so after next homing we have also a calibrated printer
|
// With max z endstop we adjust zlength so after next homing we have also a calibrated printer
|
||||||
Printer::zMin = 0;
|
Printer::zMin = 0;
|
||||||
#if MAX_HARDWARE_ENDSTOP_Z
|
#if MAX_HARDWARE_ENDSTOP_Z
|
||||||
float xRot,yRot,zRot;
|
float xRot,yRot,zRot;
|
||||||
#if BED_CORRECTION_METHOD != 1
|
|
||||||
Printer::transformFromPrinter(Printer::currentPosition[X_AXIS],Printer::currentPosition[Y_AXIS],Printer::currentPosition[Z_AXIS],xRot,yRot,zRot);
|
Printer::transformFromPrinter(Printer::currentPosition[X_AXIS],Printer::currentPosition[Y_AXIS],Printer::currentPosition[Z_AXIS],xRot,yRot,zRot);
|
||||||
Com::printFLN(PSTR("Z after rotation:"),zRot);
|
Com::printFLN(PSTR("Z after rotation:"),zRot);
|
||||||
#else
|
|
||||||
zRot = Printer::currentPosition[Z_AXIS];
|
|
||||||
#endif
|
|
||||||
// With max z endstop we adjust zlength so after next homing we have also a calibrated printer
|
// With max z endstop we adjust zlength so after next homing we have also a calibrated printer
|
||||||
if(s != 0) {
|
if(s != 0) {
|
||||||
Printer::zLength += currentZ - zRot;
|
Printer::zLength += currentZ - zRot;
|
||||||
|
@ -344,12 +359,12 @@ void runBedLeveling(GCode *com) {
|
||||||
Printer::homeAxis(true, true, true); // shifting z makes positioning invalid, need to recalibrate
|
Printer::homeAxis(true, true, true); // shifting z makes positioning invalid, need to recalibrate
|
||||||
#endif
|
#endif
|
||||||
Printer::feedrate = oldFeedrate;
|
Printer::feedrate = oldFeedrate;
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
void Printer::setAutolevelActive(bool on)
|
void Printer::setAutolevelActive(bool on) {
|
||||||
{
|
|
||||||
#if FEATURE_AUTOLEVEL
|
#if FEATURE_AUTOLEVEL
|
||||||
if(on == isAutolevelActive()) return;
|
if(on == isAutolevelActive()) return;
|
||||||
flag0 = (on ? flag0 | PRINTER_FLAG0_AUTOLEVEL_ACTIVE : flag0 & ~PRINTER_FLAG0_AUTOLEVEL_ACTIVE);
|
flag0 = (on ? flag0 | PRINTER_FLAG0_AUTOLEVEL_ACTIVE : flag0 & ~PRINTER_FLAG0_AUTOLEVEL_ACTIVE);
|
||||||
|
@ -361,20 +376,18 @@ void Printer::setAutolevelActive(bool on)
|
||||||
#endif // FEATURE_AUTOLEVEL
|
#endif // FEATURE_AUTOLEVEL
|
||||||
}
|
}
|
||||||
#if MAX_HARDWARE_ENDSTOP_Z
|
#if MAX_HARDWARE_ENDSTOP_Z
|
||||||
float Printer::runZMaxProbe()
|
float Printer::runZMaxProbe() {
|
||||||
{
|
|
||||||
#if NONLINEAR_SYSTEM
|
#if NONLINEAR_SYSTEM
|
||||||
long startZ = realDeltaPositionSteps[Z_AXIS] = currentDeltaPositionSteps[Z_AXIS]; // update real
|
long startZ = realDeltaPositionSteps[Z_AXIS] = currentNonlinearPositionSteps[Z_AXIS]; // update real
|
||||||
#endif
|
#endif
|
||||||
Commands::waitUntilEndOfAllMoves();
|
Commands::waitUntilEndOfAllMoves();
|
||||||
long probeDepth = 2*(Printer::zMaxSteps-Printer::zMinSteps);
|
long probeDepth = 2*(Printer::zMaxSteps-Printer::zMinSteps);
|
||||||
stepsRemainingAtZHit = -1;
|
stepsRemainingAtZHit = -1;
|
||||||
setZProbingActive(true);
|
setZProbingActive(true);
|
||||||
PrintLine::moveRelativeDistanceInSteps(0,0,probeDepth,0,EEPROM::zProbeSpeed(),true,true);
|
PrintLine::moveRelativeDistanceInSteps(0,0,probeDepth,0,EEPROM::zProbeSpeed(),true,true);
|
||||||
if(stepsRemainingAtZHit < 0)
|
if(stepsRemainingAtZHit < 0) {
|
||||||
{
|
Com::printErrorFLN(PSTR("z-max homing failed"));
|
||||||
Com::printErrorFLN(Com::tZProbeFailed);
|
return ILLEGAL_Z_PROBE;
|
||||||
return -1;
|
|
||||||
}
|
}
|
||||||
setZProbingActive(false);
|
setZProbingActive(false);
|
||||||
currentPositionSteps[Z_AXIS] -= stepsRemainingAtZHit;
|
currentPositionSteps[Z_AXIS] -= stepsRemainingAtZHit;
|
||||||
|
@ -416,8 +429,7 @@ void Printer::finishProbing() {
|
||||||
float oldOffY = Printer::offsetY;
|
float oldOffY = Printer::offsetY;
|
||||||
float oldOffZ = Printer::offsetZ;
|
float oldOffZ = Printer::offsetZ;
|
||||||
GCode::executeFString(Com::tZProbeEndScript);
|
GCode::executeFString(Com::tZProbeEndScript);
|
||||||
if(Extruder::current)
|
if(Extruder::current) {
|
||||||
{
|
|
||||||
Printer::offsetX = -Extruder::current->xOffset * Printer::invAxisStepsPerMM[X_AXIS];
|
Printer::offsetX = -Extruder::current->xOffset * Printer::invAxisStepsPerMM[X_AXIS];
|
||||||
Printer::offsetY = -Extruder::current->yOffset * Printer::invAxisStepsPerMM[Y_AXIS];
|
Printer::offsetY = -Extruder::current->yOffset * Printer::invAxisStepsPerMM[Y_AXIS];
|
||||||
Printer::offsetZ = -Extruder::current->zOffset * Printer::invAxisStepsPerMM[Z_AXIS];
|
Printer::offsetZ = -Extruder::current->zOffset * Printer::invAxisStepsPerMM[Z_AXIS];
|
||||||
|
@ -443,8 +455,7 @@ e) Add bending correction
|
||||||
|
|
||||||
Then we return the measured and corrected z distance.
|
Then we return the measured and corrected z distance.
|
||||||
*/
|
*/
|
||||||
float Printer::runZProbe(bool first,bool last,uint8_t repeat,bool runStartScript)
|
float Printer::runZProbe(bool first,bool last,uint8_t repeat,bool runStartScript) {
|
||||||
{
|
|
||||||
float oldOffX = Printer::offsetX;
|
float oldOffX = Printer::offsetX;
|
||||||
float oldOffY = Printer::offsetY;
|
float oldOffY = Printer::offsetY;
|
||||||
float oldOffZ = Printer::offsetZ;
|
float oldOffZ = Printer::offsetZ;
|
||||||
|
@ -455,12 +466,17 @@ float Printer::runZProbe(bool first,bool last,uint8_t repeat,bool runStartScript
|
||||||
int32_t shortMove = static_cast<int32_t>((float)Z_PROBE_SWITCHING_DISTANCE * axisStepsPerMM[Z_AXIS]); // distance to go up for repeated moves
|
int32_t shortMove = static_cast<int32_t>((float)Z_PROBE_SWITCHING_DISTANCE * axisStepsPerMM[Z_AXIS]); // distance to go up for repeated moves
|
||||||
int32_t lastCorrection = currentPositionSteps[Z_AXIS]; // starting position
|
int32_t lastCorrection = currentPositionSteps[Z_AXIS]; // starting position
|
||||||
#if NONLINEAR_SYSTEM
|
#if NONLINEAR_SYSTEM
|
||||||
realDeltaPositionSteps[Z_AXIS] = currentDeltaPositionSteps[Z_AXIS]; // update real
|
realDeltaPositionSteps[Z_AXIS] = currentNonlinearPositionSteps[Z_AXIS]; // update real
|
||||||
#endif
|
#endif
|
||||||
//int32_t updateZ = 0;
|
//int32_t updateZ = 0;
|
||||||
waitForZProbeStart();
|
waitForZProbeStart();
|
||||||
for(int8_t r = 0; r < repeat; r++)
|
Endstops::update();
|
||||||
{
|
Endstops::update();
|
||||||
|
if(Endstops::zProbe()) {
|
||||||
|
Com::printErrorFLN(PSTR("z-probe triggered before starting probing."));
|
||||||
|
return ILLEGAL_Z_PROBE;
|
||||||
|
}
|
||||||
|
for(int8_t r = 0; r < repeat; r++) {
|
||||||
probeDepth = 2 * (Printer::zMaxSteps - Printer::zMinSteps); // probe should always hit within this distance
|
probeDepth = 2 * (Printer::zMaxSteps - Printer::zMinSteps); // probe should always hit within this distance
|
||||||
stepsRemainingAtZHit = -1; // Marker that we did not hit z probe
|
stepsRemainingAtZHit = -1; // Marker that we did not hit z probe
|
||||||
//int32_t offx = axisStepsPerMM[X_AXIS] * EEPROM::zProbeXOffset();
|
//int32_t offx = axisStepsPerMM[X_AXIS] * EEPROM::zProbeXOffset();
|
||||||
|
@ -468,24 +484,29 @@ float Printer::runZProbe(bool first,bool last,uint8_t repeat,bool runStartScript
|
||||||
//PrintLine::moveRelativeDistanceInSteps(-offx,-offy,0,0,EEPROM::zProbeXYSpeed(),true,true);
|
//PrintLine::moveRelativeDistanceInSteps(-offx,-offy,0,0,EEPROM::zProbeXYSpeed(),true,true);
|
||||||
setZProbingActive(true);
|
setZProbingActive(true);
|
||||||
PrintLine::moveRelativeDistanceInSteps(0, 0, -probeDepth, 0, EEPROM::zProbeSpeed(), true, true);
|
PrintLine::moveRelativeDistanceInSteps(0, 0, -probeDepth, 0, EEPROM::zProbeSpeed(), true, true);
|
||||||
if(stepsRemainingAtZHit < 0)
|
if(stepsRemainingAtZHit < 0) {
|
||||||
{
|
|
||||||
Com::printErrorFLN(Com::tZProbeFailed);
|
Com::printErrorFLN(Com::tZProbeFailed);
|
||||||
return -1;
|
return ILLEGAL_Z_PROBE;
|
||||||
}
|
}
|
||||||
setZProbingActive(false);
|
setZProbingActive(false);
|
||||||
#if NONLINEAR_SYSTEM
|
#if NONLINEAR_SYSTEM
|
||||||
stepsRemainingAtZHit = realDeltaPositionSteps[C_TOWER] - currentDeltaPositionSteps[C_TOWER]; // nonlinear moves may split z so stepsRemainingAtZHit is only what is left from last segment not total move. This corrects the problem.
|
stepsRemainingAtZHit = realDeltaPositionSteps[C_TOWER] - currentNonlinearPositionSteps[C_TOWER]; // nonlinear moves may split z so stepsRemainingAtZHit is only what is left from last segment not total move. This corrects the problem.
|
||||||
#endif
|
#endif
|
||||||
#if DRIVE_SYSTEM == DELTA
|
#if DRIVE_SYSTEM == DELTA
|
||||||
currentDeltaPositionSteps[A_TOWER] += stepsRemainingAtZHit; // Update difference
|
currentNonlinearPositionSteps[A_TOWER] += stepsRemainingAtZHit; // Update difference
|
||||||
currentDeltaPositionSteps[B_TOWER] += stepsRemainingAtZHit;
|
currentNonlinearPositionSteps[B_TOWER] += stepsRemainingAtZHit;
|
||||||
currentDeltaPositionSteps[C_TOWER] += stepsRemainingAtZHit;
|
currentNonlinearPositionSteps[C_TOWER] += stepsRemainingAtZHit;
|
||||||
#endif
|
#endif
|
||||||
currentPositionSteps[Z_AXIS] += stepsRemainingAtZHit; // now current position is correct
|
currentPositionSteps[Z_AXIS] += stepsRemainingAtZHit; // now current position is correct
|
||||||
sum += lastCorrection - currentPositionSteps[Z_AXIS];
|
sum += lastCorrection - currentPositionSteps[Z_AXIS];
|
||||||
if(r + 1 < repeat) // go only shortest possible move up for repetitions
|
if(r + 1 < repeat) {
|
||||||
PrintLine::moveRelativeDistanceInSteps(0, 0, shortMove, 0, EEPROM::zProbeSpeed(), true, false);
|
// go only shortest possible move up for repetitions
|
||||||
|
PrintLine::moveRelativeDistanceInSteps(0, 0, shortMove, 0, EEPROM::zProbeSpeed(), true, true);
|
||||||
|
if(Endstops::zProbe()) {
|
||||||
|
Com::printErrorFLN(PSTR("z-probe did not untrigger on repetitive measurement - maybe you need to increase distance!"));
|
||||||
|
return ILLEGAL_Z_PROBE;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
float distance = static_cast<float>(sum) * invAxisStepsPerMM[Z_AXIS] / static_cast<float>(repeat) + EEPROM::zProbeHeight();
|
float distance = static_cast<float>(sum) * invAxisStepsPerMM[Z_AXIS] / static_cast<float>(repeat) + EEPROM::zProbeHeight();
|
||||||
#if Z_PROBE_Z_OFFSET_MODE == 1
|
#if Z_PROBE_Z_OFFSET_MODE == 1
|
||||||
|
@ -513,7 +534,11 @@ float Printer::runZProbe(bool first,bool last,uint8_t repeat,bool runStartScript
|
||||||
Com::printFLN(Com::tSpaceYColon, realYPosition());
|
Com::printFLN(Com::tSpaceYColon, realYPosition());
|
||||||
#endif
|
#endif
|
||||||
// Go back to start position
|
// Go back to start position
|
||||||
PrintLine::moveRelativeDistanceInSteps(0, 0, lastCorrection - currentPositionSteps[Z_AXIS], 0, EEPROM::zProbeSpeed(), true, false);
|
PrintLine::moveRelativeDistanceInSteps(0, 0, lastCorrection - currentPositionSteps[Z_AXIS], 0, EEPROM::zProbeSpeed(), true, true);
|
||||||
|
if(Endstops::zProbe()) {
|
||||||
|
Com::printErrorFLN(PSTR("z-probe did not untrigger after going back to start position."));
|
||||||
|
return ILLEGAL_Z_PROBE;
|
||||||
|
}
|
||||||
//PrintLine::moveRelativeDistanceInSteps(offx,offy,0,0,EEPROM::zProbeXYSpeed(),true,true);
|
//PrintLine::moveRelativeDistanceInSteps(offx,offy,0,0,EEPROM::zProbeXYSpeed(),true,true);
|
||||||
if(last)
|
if(last)
|
||||||
finishProbing();
|
finishProbing();
|
||||||
|
@ -521,17 +546,16 @@ float Printer::runZProbe(bool first,bool last,uint8_t repeat,bool runStartScript
|
||||||
}
|
}
|
||||||
|
|
||||||
float Printer::bendingCorrectionAt(float x, float y) {
|
float Printer::bendingCorrectionAt(float x, float y) {
|
||||||
RVector3 p0(EEPROM::zProbeX1(),EEPROM::zProbeY1(),EEPROM::bendingCorrectionA());
|
PlaneBuilder builder;
|
||||||
RVector3 p1(EEPROM::zProbeX2(),EEPROM::zProbeY2(),EEPROM::bendingCorrectionB());
|
builder.addPoint(EEPROM::zProbeX1(),EEPROM::zProbeY1(),EEPROM::bendingCorrectionA());
|
||||||
RVector3 p2(EEPROM::zProbeX3(),EEPROM::zProbeY3(),EEPROM::bendingCorrectionC());
|
builder.addPoint(EEPROM::zProbeX2(),EEPROM::zProbeY2(),EEPROM::bendingCorrectionB());
|
||||||
RVector3 a = p1-p0,b = p2 - p0;
|
builder.addPoint(EEPROM::zProbeX3(),EEPROM::zProbeY3(),EEPROM::bendingCorrectionC());
|
||||||
RVector3 n = a.cross(b);
|
Plane plane;
|
||||||
RVector3 l0(x,y,0);
|
builder.createPlane(plane,true);
|
||||||
return ((p0 - l0).scalar(n)) / n.z;
|
return plane.z(x,y);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Printer::waitForZProbeStart()
|
void Printer::waitForZProbeStart() {
|
||||||
{
|
|
||||||
#if Z_PROBE_WAIT_BEFORE_TEST
|
#if Z_PROBE_WAIT_BEFORE_TEST
|
||||||
Endstops::update();
|
Endstops::update();
|
||||||
Endstops::update(); // double test to get right signal. Needed for crosstalk protection.
|
Endstops::update(); // double test to get right signal. Needed for crosstalk protection.
|
||||||
|
@ -543,8 +567,7 @@ void Printer::waitForZProbeStart()
|
||||||
#ifdef DEBUG_PRINT
|
#ifdef DEBUG_PRINT
|
||||||
debugWaitLoop = 3;
|
debugWaitLoop = 3;
|
||||||
#endif
|
#endif
|
||||||
while(!Endstops::zProbe())
|
while(!Endstops::zProbe()) {
|
||||||
{
|
|
||||||
defaultLoopActions();
|
defaultLoopActions();
|
||||||
Endstops::update();
|
Endstops::update();
|
||||||
Endstops::update(); // double test to get right signal. Needed for crosstalk protection.
|
Endstops::update(); // double test to get right signal. Needed for crosstalk protection.
|
||||||
|
@ -553,8 +576,7 @@ void Printer::waitForZProbeStart()
|
||||||
debugWaitLoop = 4;
|
debugWaitLoop = 4;
|
||||||
#endif
|
#endif
|
||||||
HAL::delayMilliseconds(30);
|
HAL::delayMilliseconds(30);
|
||||||
while(Endstops::zProbe())
|
while(Endstops::zProbe()) {
|
||||||
{
|
|
||||||
defaultLoopActions();
|
defaultLoopActions();
|
||||||
Endstops::update();
|
Endstops::update();
|
||||||
Endstops::update(); // double test to get right signal. Needed for crosstalk protection.
|
Endstops::update(); // double test to get right signal. Needed for crosstalk protection.
|
||||||
|
@ -565,33 +587,53 @@ void Printer::waitForZProbeStart()
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if FEATURE_AUTOLEVEL
|
void Printer::transformToPrinter(float x,float y,float z,float &transX,float &transY,float &transZ) {
|
||||||
void Printer::transformToPrinter(float x,float y,float z,float &transX,float &transY,float &transZ)
|
|
||||||
{
|
|
||||||
#if FEATURE_AXISCOMP
|
#if FEATURE_AXISCOMP
|
||||||
// Axis compensation:
|
// Axis compensation:
|
||||||
x = x + y * EEPROM::axisCompTanXY() + z * EEPROM::axisCompTanXZ();
|
x = x + y * EEPROM::axisCompTanXY() + z * EEPROM::axisCompTanXZ();
|
||||||
y = y + z * EEPROM::axisCompTanYZ();
|
y = y + z * EEPROM::axisCompTanYZ();
|
||||||
#endif
|
#endif
|
||||||
|
#if BED_CORRECTION_METHOD != 1 && FEATURE_AUTOLEVEL
|
||||||
|
if(isAutolevelActive()) {
|
||||||
transX = x * autolevelTransformation[0] + y * autolevelTransformation[3] + z * autolevelTransformation[6];
|
transX = x * autolevelTransformation[0] + y * autolevelTransformation[3] + z * autolevelTransformation[6];
|
||||||
transY = x * autolevelTransformation[1] + y * autolevelTransformation[4] + z * autolevelTransformation[7];
|
transY = x * autolevelTransformation[1] + y * autolevelTransformation[4] + z * autolevelTransformation[7];
|
||||||
transZ = x * autolevelTransformation[2] + y * autolevelTransformation[5] + z * autolevelTransformation[8];
|
transZ = x * autolevelTransformation[2] + y * autolevelTransformation[5] + z * autolevelTransformation[8];
|
||||||
|
} else {
|
||||||
|
transX = x;
|
||||||
|
transY = y;
|
||||||
|
transZ = z;
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
transX = x;
|
||||||
|
transY = y;
|
||||||
|
transZ = z;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void Printer::transformFromPrinter(float x,float y,float z,float &transX,float &transY,float &transZ)
|
void Printer::transformFromPrinter(float x,float y,float z,float &transX,float &transY,float &transZ) {
|
||||||
{
|
#if BED_CORRECTION_METHOD != 1 && FEATURE_AUTOLEVEL
|
||||||
|
if(isAutolevelActive()) {
|
||||||
transX = x * autolevelTransformation[0] + y * autolevelTransformation[1] + z * autolevelTransformation[2];
|
transX = x * autolevelTransformation[0] + y * autolevelTransformation[1] + z * autolevelTransformation[2];
|
||||||
transY = x * autolevelTransformation[3] + y * autolevelTransformation[4] + z * autolevelTransformation[5];
|
transY = x * autolevelTransformation[3] + y * autolevelTransformation[4] + z * autolevelTransformation[5];
|
||||||
transZ = x * autolevelTransformation[6] + y * autolevelTransformation[7] + z * autolevelTransformation[8];
|
transZ = x * autolevelTransformation[6] + y * autolevelTransformation[7] + z * autolevelTransformation[8];
|
||||||
|
} else {
|
||||||
|
transX = x;
|
||||||
|
transY = y;
|
||||||
|
transZ = z;
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
transX = x;
|
||||||
|
transY = y;
|
||||||
|
transZ = z;
|
||||||
|
#endif
|
||||||
#if FEATURE_AXISCOMP
|
#if FEATURE_AXISCOMP
|
||||||
// Axis compensation:
|
// Axis compensation:
|
||||||
transY = transY - transZ * EEPROM::axisCompTanYZ();
|
transY = transY - transZ * EEPROM::axisCompTanYZ();
|
||||||
transX = transX - transY * EEPROM::axisCompTanXY() - transZ * EEPROM::axisCompTanXZ();
|
transX = transX - transY * EEPROM::axisCompTanXY() - transZ * EEPROM::axisCompTanXZ();
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
#if FEATURE_AUTOLEVEL
|
||||||
void Printer::resetTransformationMatrix(bool silent)
|
void Printer::resetTransformationMatrix(bool silent) {
|
||||||
{
|
|
||||||
autolevelTransformation[0] = autolevelTransformation[4] = autolevelTransformation[8] = 1;
|
autolevelTransformation[0] = autolevelTransformation[4] = autolevelTransformation[8] = 1;
|
||||||
autolevelTransformation[1] = autolevelTransformation[2] = autolevelTransformation[3] =
|
autolevelTransformation[1] = autolevelTransformation[2] = autolevelTransformation[3] =
|
||||||
autolevelTransformation[5] = autolevelTransformation[6] = autolevelTransformation[7] = 0;
|
autolevelTransformation[5] = autolevelTransformation[6] = autolevelTransformation[7] = 0;
|
||||||
|
@ -599,8 +641,38 @@ void Printer::resetTransformationMatrix(bool silent)
|
||||||
Com::printInfoFLN(Com::tAutolevelReset);
|
Com::printInfoFLN(Com::tAutolevelReset);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Printer::buildTransformationMatrix(float h1,float h2,float h3)
|
void Printer::buildTransformationMatrix(Plane &plane) {
|
||||||
{
|
float z0 = plane.z(0,0);
|
||||||
|
float az = z0-plane.z(1,0); // ax = 1, ay = 0
|
||||||
|
float bz = z0-plane.z(0,1); // bx = 0, by = 1
|
||||||
|
// First z direction
|
||||||
|
autolevelTransformation[6] = -az;
|
||||||
|
autolevelTransformation[7] = -bz;
|
||||||
|
autolevelTransformation[8] = 1;
|
||||||
|
float len = sqrt(az * az + bz * bz + 1);
|
||||||
|
autolevelTransformation[6] /= len;
|
||||||
|
autolevelTransformation[7] /= len;
|
||||||
|
autolevelTransformation[8] /= len;
|
||||||
|
autolevelTransformation[0] = 1;
|
||||||
|
autolevelTransformation[1] = 0;
|
||||||
|
autolevelTransformation[2] = -autolevelTransformation[6]/autolevelTransformation[8];
|
||||||
|
len = sqrt(autolevelTransformation[0] * autolevelTransformation[0] + autolevelTransformation[1] * autolevelTransformation[1] + autolevelTransformation[2] * autolevelTransformation[2]);
|
||||||
|
autolevelTransformation[0] /= len;
|
||||||
|
autolevelTransformation[1] /= len;
|
||||||
|
autolevelTransformation[2] /= len;
|
||||||
|
// cross(z,x) y,z)
|
||||||
|
autolevelTransformation[3] = autolevelTransformation[7] * autolevelTransformation[2] - autolevelTransformation[8] * autolevelTransformation[1];
|
||||||
|
autolevelTransformation[4] = autolevelTransformation[8] * autolevelTransformation[0] - autolevelTransformation[6] * autolevelTransformation[2];
|
||||||
|
autolevelTransformation[5] = autolevelTransformation[6] * autolevelTransformation[1] - autolevelTransformation[7] * autolevelTransformation[0];
|
||||||
|
len = sqrt(autolevelTransformation[3] * autolevelTransformation[3] + autolevelTransformation[4] * autolevelTransformation[4] + autolevelTransformation[5] * autolevelTransformation[5]);
|
||||||
|
autolevelTransformation[3] /= len;
|
||||||
|
autolevelTransformation[4] /= len;
|
||||||
|
autolevelTransformation[5] /= len;
|
||||||
|
|
||||||
|
Com::printArrayFLN(Com::tTransformationMatrix,autolevelTransformation, 9, 6);
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
void Printer::buildTransformationMatrix(float h1,float h2,float h3) {
|
||||||
float ax = EEPROM::zProbeX2() - EEPROM::zProbeX1();
|
float ax = EEPROM::zProbeX2() - EEPROM::zProbeX1();
|
||||||
float ay = EEPROM::zProbeY2() - EEPROM::zProbeY1();
|
float ay = EEPROM::zProbeY2() - EEPROM::zProbeY1();
|
||||||
float az = h1 - h2;
|
float az = h1 - h2;
|
||||||
|
@ -622,7 +694,7 @@ void Printer::buildTransformationMatrix(float h1,float h2,float h3)
|
||||||
// cross(y,z)
|
// cross(y,z)
|
||||||
autolevelTransformation[0] = autolevelTransformation[4] * autolevelTransformation[8] - autolevelTransformation[5] * autolevelTransformation[7];
|
autolevelTransformation[0] = autolevelTransformation[4] * autolevelTransformation[8] - autolevelTransformation[5] * autolevelTransformation[7];
|
||||||
autolevelTransformation[1] = autolevelTransformation[5] * autolevelTransformation[6];// - autolevelTransformation[3] * autolevelTransformation[8];
|
autolevelTransformation[1] = autolevelTransformation[5] * autolevelTransformation[6];// - autolevelTransformation[3] * autolevelTransformation[8];
|
||||||
autolevelTransformation[2] = /*autolevelTransformation[3] * autolevelTransformation[7]*/ - autolevelTransformation[4] * autolevelTransformation[6];
|
autolevelTransformation[2] = autolevelTransformation[3] * autolevelTransformation[7] - autolevelTransformation[4] * autolevelTransformation[6];
|
||||||
len = sqrt(autolevelTransformation[0] * autolevelTransformation[0] + autolevelTransformation[1] * autolevelTransformation[1] + autolevelTransformation[2] * autolevelTransformation[2]);
|
len = sqrt(autolevelTransformation[0] * autolevelTransformation[0] + autolevelTransformation[1] * autolevelTransformation[1] + autolevelTransformation[2] * autolevelTransformation[2]);
|
||||||
autolevelTransformation[0] /= len;
|
autolevelTransformation[0] /= len;
|
||||||
autolevelTransformation[1] /= len;
|
autolevelTransformation[1] /= len;
|
||||||
|
@ -632,4 +704,5 @@ void Printer::buildTransformationMatrix(float h1,float h2,float h3)
|
||||||
autolevelTransformation[5] /= len;
|
autolevelTransformation[5] /= len;
|
||||||
Com::printArrayFLN(Com::tTransformationMatrix,autolevelTransformation, 9, 6);
|
Com::printArrayFLN(Com::tTransformationMatrix,autolevelTransformation, 9, 6);
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
#endif
|
#endif
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -91,6 +91,7 @@ FSTRINGVALUE(Com::tSpaceRaw," RAW")
|
||||||
FSTRINGVALUE(Com::tColon,":")
|
FSTRINGVALUE(Com::tColon,":")
|
||||||
FSTRINGVALUE(Com::tSlash,"/")
|
FSTRINGVALUE(Com::tSlash,"/")
|
||||||
FSTRINGVALUE(Com::tSpaceSlash," /")
|
FSTRINGVALUE(Com::tSpaceSlash," /")
|
||||||
|
FSTRINGVALUE(Com::tFatal,"fatal:")
|
||||||
#if JSON_OUTPUT
|
#if JSON_OUTPUT
|
||||||
FSTRINGVALUE(Com::tJSONDir,"{\"dir\":\"")
|
FSTRINGVALUE(Com::tJSONDir,"{\"dir\":\"")
|
||||||
FSTRINGVALUE(Com::tJSONFiles,"\",\"files\":[")
|
FSTRINGVALUE(Com::tJSONFiles,"\",\"files\":[")
|
||||||
|
@ -153,7 +154,6 @@ FSTRINGVALUE(Com::tMeasureDeltaSteps,"Measure/delta (Steps) =")
|
||||||
FSTRINGVALUE(Com::tMeasureDelta,"Measure/delta =")
|
FSTRINGVALUE(Com::tMeasureDelta,"Measure/delta =")
|
||||||
FSTRINGVALUE(Com::tMeasureOriginReset,"Measured origin set. Measurement reset.")
|
FSTRINGVALUE(Com::tMeasureOriginReset,"Measured origin set. Measurement reset.")
|
||||||
FSTRINGVALUE(Com::tMeasurementAbortedOrigin,"Origin measurement cannot be set. Use only Z-Cartesian (straight up and down) movements and try again.")
|
FSTRINGVALUE(Com::tMeasurementAbortedOrigin,"Origin measurement cannot be set. Use only Z-Cartesian (straight up and down) movements and try again.")
|
||||||
FSTRINGVALUE(Com::tInvalidDeltaCoordinate,"Invalid delta coordinate - move ignored")
|
|
||||||
FSTRINGVALUE(Com::tLevelingCalc,"Leveling calc:")
|
FSTRINGVALUE(Com::tLevelingCalc,"Leveling calc:")
|
||||||
FSTRINGVALUE(Com::tTower1,"Tower 1:")
|
FSTRINGVALUE(Com::tTower1,"Tower 1:")
|
||||||
FSTRINGVALUE(Com::tTower2,"Tower 2:")
|
FSTRINGVALUE(Com::tTower2,"Tower 2:")
|
||||||
|
@ -164,11 +164,21 @@ FSTRINGVALUE(Com::tDeltaAlphaC,"Alpha C(90):")
|
||||||
FSTRINGVALUE(Com::tDeltaRadiusCorrectionA,"Delta Radius A(0):")
|
FSTRINGVALUE(Com::tDeltaRadiusCorrectionA,"Delta Radius A(0):")
|
||||||
FSTRINGVALUE(Com::tDeltaRadiusCorrectionB,"Delta Radius B(0):")
|
FSTRINGVALUE(Com::tDeltaRadiusCorrectionB,"Delta Radius B(0):")
|
||||||
FSTRINGVALUE(Com::tDeltaRadiusCorrectionC,"Delta Radius C(0):")
|
FSTRINGVALUE(Com::tDeltaRadiusCorrectionC,"Delta Radius C(0):")
|
||||||
FSTRINGVALUE(Com::tDBGDeltaNoMoveinDSegment,"No move in delta segment with > 1 segment. This should never happen and may cause a problem!")
|
|
||||||
#endif // DRIVE_SYSTEM
|
#endif // DRIVE_SYSTEM
|
||||||
|
#if NONLINEAR_SYSTEM
|
||||||
#if DRIVE_SYSTEM == TUGA
|
#if DRIVE_SYSTEM == TUGA
|
||||||
FSTRINGVALUE(Com::tInvalidDeltaCoordinate,"Invalid coordinate - move ignored")
|
FSTRINGVALUE(Com::tInvalidDeltaCoordinate,"Invalid coordinate - move ignored")
|
||||||
FSTRINGVALUE(Com::tDBGDeltaNoMoveinDSegment,"No move in delta segment with > 1 segment. This should never happen and may cause a problem!")
|
FSTRINGVALUE(Com::tDBGDeltaNoMoveinDSegment,"No move in delta segment with > 1 segment. This should never happen and may cause a problem!")
|
||||||
|
#elif DRIVE_SYSTEM == DELTA
|
||||||
|
FSTRINGVALUE(Com::tInvalidDeltaCoordinate,"Invalid delta coordinate - move ignored")
|
||||||
|
FSTRINGVALUE(Com::tDBGDeltaNoMoveinDSegment,"No move in delta segment with > 1 segment. This should never happen and may cause a problem!")
|
||||||
|
#else
|
||||||
|
FSTRINGVALUE(Com::tInvalidDeltaCoordinate,"Invalid coordinate - move ignored")
|
||||||
|
FSTRINGVALUE(Com::tDBGDeltaNoMoveinDSegment,"No move in segment with > 1 segment. This should never happen and may cause a problem!")
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if DRIVE_SYSTEM==TUGA
|
||||||
FSTRINGVALUE(Com::tEPRDiagonalRodLength,"Long arm length [mm]")
|
FSTRINGVALUE(Com::tEPRDiagonalRodLength,"Long arm length [mm]")
|
||||||
#endif // DRIVE_SYSTEM
|
#endif // DRIVE_SYSTEM
|
||||||
#ifdef DEBUG_GENERIC
|
#ifdef DEBUG_GENERIC
|
||||||
|
@ -187,7 +197,7 @@ FSTRINGVALUE(Com::tAPIDClassic," Classic PID")
|
||||||
FSTRINGVALUE(Com::tAPIDKp," Kp: ")
|
FSTRINGVALUE(Com::tAPIDKp," Kp: ")
|
||||||
FSTRINGVALUE(Com::tAPIDKi," Ki: ")
|
FSTRINGVALUE(Com::tAPIDKi," Ki: ")
|
||||||
FSTRINGVALUE(Com::tAPIDKd," Kd: ")
|
FSTRINGVALUE(Com::tAPIDKd," Kd: ")
|
||||||
FSTRINGVALUE(Com::tAPIDFailedHigh,"PID Autotune failed! Temperature to high")
|
FSTRINGVALUE(Com::tAPIDFailedHigh,"PID Autotune failed! Temperature too high")
|
||||||
FSTRINGVALUE(Com::tAPIDFailedTimeout,"PID Autotune failed! timeout")
|
FSTRINGVALUE(Com::tAPIDFailedTimeout,"PID Autotune failed! timeout")
|
||||||
FSTRINGVALUE(Com::tAPIDFinished,"PID Autotune finished ! Place the Kp, Ki and Kd constants in the Configuration.h or EEPROM")
|
FSTRINGVALUE(Com::tAPIDFinished,"PID Autotune finished ! Place the Kp, Ki and Kd constants in the Configuration.h or EEPROM")
|
||||||
FSTRINGVALUE(Com::tMTEMPColon,"MTEMP:")
|
FSTRINGVALUE(Com::tMTEMPColon,"MTEMP:")
|
||||||
|
@ -308,6 +318,10 @@ FSTRINGVALUE(Com::tEPRYBacklash,"Y backlash [mm]")
|
||||||
FSTRINGVALUE(Com::tEPRZBacklash,"Z backlash [mm]")
|
FSTRINGVALUE(Com::tEPRZBacklash,"Z backlash [mm]")
|
||||||
FSTRINGVALUE(Com::tEPRMaxJerk,"Max. jerk [mm/s]")
|
FSTRINGVALUE(Com::tEPRMaxJerk,"Max. jerk [mm/s]")
|
||||||
FSTRINGVALUE(Com::tEPRAccelerationFactorAtTop,"Acceleration factor at top [%,100=like bottom]")
|
FSTRINGVALUE(Com::tEPRAccelerationFactorAtTop,"Acceleration factor at top [%,100=like bottom]")
|
||||||
|
#if NONLINEAR_SYSTEM
|
||||||
|
FSTRINGVALUE(Com::tEPRSegmentsPerSecondPrint,"Segments/s for printing")
|
||||||
|
FSTRINGVALUE(Com::tEPRSegmentsPerSecondTravel,"Segments/s for travel")
|
||||||
|
#endif
|
||||||
#if DRIVE_SYSTEM==DELTA
|
#if DRIVE_SYSTEM==DELTA
|
||||||
FSTRINGVALUE(Com::tEPRZAcceleration,"Acceleration [mm/s^2]")
|
FSTRINGVALUE(Com::tEPRZAcceleration,"Acceleration [mm/s^2]")
|
||||||
FSTRINGVALUE(Com::tEPRZTravelAcceleration,"Travel acceleration [mm/s^2]")
|
FSTRINGVALUE(Com::tEPRZTravelAcceleration,"Travel acceleration [mm/s^2]")
|
||||||
|
@ -317,8 +331,6 @@ FSTRINGVALUE(Com::tEPRZHomingFeedrate,"Homing feedrate [mm/s]")
|
||||||
|
|
||||||
FSTRINGVALUE(Com::tEPRDiagonalRodLength,"Diagonal rod length [mm]")
|
FSTRINGVALUE(Com::tEPRDiagonalRodLength,"Diagonal rod length [mm]")
|
||||||
FSTRINGVALUE(Com::tEPRHorizontalRadius,"Horizontal rod radius at 0,0 [mm]")
|
FSTRINGVALUE(Com::tEPRHorizontalRadius,"Horizontal rod radius at 0,0 [mm]")
|
||||||
FSTRINGVALUE(Com::tEPRSegmentsPerSecondPrint,"Segments/s for printing")
|
|
||||||
FSTRINGVALUE(Com::tEPRSegmentsPerSecondTravel,"Segments/s for travel")
|
|
||||||
|
|
||||||
FSTRINGVALUE(Com::tEPRTowerXOffset,"Tower X endstop offset [steps]")
|
FSTRINGVALUE(Com::tEPRTowerXOffset,"Tower X endstop offset [steps]")
|
||||||
FSTRINGVALUE(Com::tEPRTowerYOffset,"Tower Y endstop offset [steps]")
|
FSTRINGVALUE(Com::tEPRTowerYOffset,"Tower Y endstop offset [steps]")
|
||||||
|
|
|
@ -67,6 +67,7 @@ FSTRINGVAR(tFreeRAM)
|
||||||
FSTRINGVAR(tXColon)
|
FSTRINGVAR(tXColon)
|
||||||
FSTRINGVAR(tSlash)
|
FSTRINGVAR(tSlash)
|
||||||
FSTRINGVAR(tSpaceSlash)
|
FSTRINGVAR(tSpaceSlash)
|
||||||
|
FSTRINGVAR(tFatal)
|
||||||
#if JSON_OUTPUT
|
#if JSON_OUTPUT
|
||||||
FSTRINGVAR(tJSONDir)
|
FSTRINGVAR(tJSONDir)
|
||||||
FSTRINGVAR(tJSONFiles)
|
FSTRINGVAR(tJSONFiles)
|
||||||
|
@ -134,13 +135,16 @@ FSTRINGVAR(tEEPROMUpdated)
|
||||||
FSTRINGVAR(tFilamentSlipping)
|
FSTRINGVAR(tFilamentSlipping)
|
||||||
FSTRINGVAR(tPauseCommunication)
|
FSTRINGVAR(tPauseCommunication)
|
||||||
FSTRINGVAR(tContinueCommunication)
|
FSTRINGVAR(tContinueCommunication)
|
||||||
|
#if NONLINEAR_SYSTEM
|
||||||
|
FSTRINGVAR(tInvalidDeltaCoordinate)
|
||||||
|
FSTRINGVAR(tDBGDeltaNoMoveinDSegment)
|
||||||
|
#endif
|
||||||
#if DRIVE_SYSTEM == DELTA
|
#if DRIVE_SYSTEM == DELTA
|
||||||
FSTRINGVAR(tMeasurementReset)
|
FSTRINGVAR(tMeasurementReset)
|
||||||
FSTRINGVAR(tMeasureDeltaSteps)
|
FSTRINGVAR(tMeasureDeltaSteps)
|
||||||
FSTRINGVAR(tMeasureDelta)
|
FSTRINGVAR(tMeasureDelta)
|
||||||
FSTRINGVAR(tMeasureOriginReset)
|
FSTRINGVAR(tMeasureOriginReset)
|
||||||
FSTRINGVAR(tMeasurementAbortedOrigin)
|
FSTRINGVAR(tMeasurementAbortedOrigin)
|
||||||
FSTRINGVAR(tInvalidDeltaCoordinate)
|
|
||||||
FSTRINGVAR(tLevelingCalc)
|
FSTRINGVAR(tLevelingCalc)
|
||||||
FSTRINGVAR(tTower1)
|
FSTRINGVAR(tTower1)
|
||||||
FSTRINGVAR(tTower2)
|
FSTRINGVAR(tTower2)
|
||||||
|
@ -154,12 +158,9 @@ FSTRINGVAR(tDeltaRadiusCorrectionC)
|
||||||
FSTRINGVAR(tDeltaDiagonalCorrectionA)
|
FSTRINGVAR(tDeltaDiagonalCorrectionA)
|
||||||
FSTRINGVAR(tDeltaDiagonalCorrectionB)
|
FSTRINGVAR(tDeltaDiagonalCorrectionB)
|
||||||
FSTRINGVAR(tDeltaDiagonalCorrectionC)
|
FSTRINGVAR(tDeltaDiagonalCorrectionC)
|
||||||
FSTRINGVAR(tDBGDeltaNoMoveinDSegment)
|
|
||||||
FSTRINGVAR(tEPRDeltaMaxRadius)
|
FSTRINGVAR(tEPRDeltaMaxRadius)
|
||||||
#endif // DRIVE_SYSTEM
|
#endif // DRIVE_SYSTEM
|
||||||
#if DRIVE_SYSTEM==TUGA
|
#if DRIVE_SYSTEM==TUGA
|
||||||
FSTRINGVAR(tInvalidDeltaCoordinate)
|
|
||||||
FSTRINGVAR(tDBGDeltaNoMoveinDSegment)
|
|
||||||
FSTRINGVAR(tEPRDiagonalRodLength)
|
FSTRINGVAR(tEPRDiagonalRodLength)
|
||||||
#endif
|
#endif
|
||||||
#ifdef DEBUG_GENERIC
|
#ifdef DEBUG_GENERIC
|
||||||
|
@ -319,8 +320,6 @@ FSTRINGVAR(tEPRYTravelAcceleration)
|
||||||
#else
|
#else
|
||||||
FSTRINGVAR(tEPRDiagonalRodLength)
|
FSTRINGVAR(tEPRDiagonalRodLength)
|
||||||
FSTRINGVAR(tEPRHorizontalRadius)
|
FSTRINGVAR(tEPRHorizontalRadius)
|
||||||
FSTRINGVAR(tEPRSegmentsPerSecondPrint)
|
|
||||||
FSTRINGVAR(tEPRSegmentsPerSecondTravel)
|
|
||||||
FSTRINGVAR(tEPRTowerXOffset)
|
FSTRINGVAR(tEPRTowerXOffset)
|
||||||
FSTRINGVAR(tEPRTowerYOffset)
|
FSTRINGVAR(tEPRTowerYOffset)
|
||||||
FSTRINGVAR(tEPRTowerZOffset)
|
FSTRINGVAR(tEPRTowerZOffset)
|
||||||
|
@ -411,6 +410,10 @@ FSTRINGVAR(tPrinterModeCNC)
|
||||||
#ifdef STARTUP_GCODE
|
#ifdef STARTUP_GCODE
|
||||||
FSTRINGVAR(tStartupGCode)
|
FSTRINGVAR(tStartupGCode)
|
||||||
#endif
|
#endif
|
||||||
|
#if NONLINEAR_SYSTEM
|
||||||
|
FSTRINGVAR(tEPRSegmentsPerSecondPrint)
|
||||||
|
FSTRINGVAR(tEPRSegmentsPerSecondTravel)
|
||||||
|
#endif
|
||||||
|
|
||||||
static void config(FSTRINGPARAM(text));
|
static void config(FSTRINGPARAM(text));
|
||||||
static void config(FSTRINGPARAM(text),int value);
|
static void config(FSTRINGPARAM(text),int value);
|
||||||
|
|
|
@ -47,6 +47,7 @@
|
||||||
#define FAN_PIN -1
|
#define FAN_PIN -1
|
||||||
#undef FAN_BOARD_PIN
|
#undef FAN_BOARD_PIN
|
||||||
#define FAN_BOARD_PIN -1
|
#define FAN_BOARD_PIN -1
|
||||||
|
#define BOARD_FAN_SPEED 255
|
||||||
#define FAN_THERMO_PIN -1
|
#define FAN_THERMO_PIN -1
|
||||||
#define FAN_THERMO_MIN_PWM 128
|
#define FAN_THERMO_MIN_PWM 128
|
||||||
#define FAN_THERMO_MAX_PWM 255
|
#define FAN_THERMO_MAX_PWM 255
|
||||||
|
@ -56,8 +57,8 @@
|
||||||
#define FAN_THERMO_THERMISTOR_TYPE 1
|
#define FAN_THERMO_THERMISTOR_TYPE 1
|
||||||
|
|
||||||
//#define EXTERNALSERIAL use Arduino serial library instead of build in. Requires more ram, has only 63 byte input buffer.
|
//#define EXTERNALSERIAL use Arduino serial library instead of build in. Requires more ram, has only 63 byte input buffer.
|
||||||
// Uncomment the following line if you are using arduino compatible firmware made for Arduino version earlier then 1.0
|
// Uncomment the following line if you are using Arduino compatible firmware made for Arduino version earlier then 1.0
|
||||||
// If it is incompatible you will get compiler errors about write functions not beeing compatible!
|
// If it is incompatible you will get compiler errors about write functions not being compatible!
|
||||||
//#define COMPAT_PRE1
|
//#define COMPAT_PRE1
|
||||||
#define BLUETOOTH_SERIAL -1
|
#define BLUETOOTH_SERIAL -1
|
||||||
#define BLUETOOTH_BAUD 115200
|
#define BLUETOOTH_BAUD 115200
|
||||||
|
@ -76,8 +77,9 @@
|
||||||
#define RETRACT_ON_PAUSE 2
|
#define RETRACT_ON_PAUSE 2
|
||||||
#define PAUSE_START_COMMANDS ""
|
#define PAUSE_START_COMMANDS ""
|
||||||
#define PAUSE_END_COMMANDS ""
|
#define PAUSE_END_COMMANDS ""
|
||||||
#define EXT0_X_OFFSET 0
|
#define SHARED_EXTRUDER_HEATER 0
|
||||||
#define EXT0_Y_OFFSET 2800
|
#define EXT0_X_OFFSET -2800
|
||||||
|
#define EXT0_Y_OFFSET 0
|
||||||
#define EXT0_Z_OFFSET 0
|
#define EXT0_Z_OFFSET 0
|
||||||
#define EXT0_STEPS_PER_MM 1000
|
#define EXT0_STEPS_PER_MM 1000
|
||||||
#define EXT0_TEMPSENSOR_TYPE 8
|
#define EXT0_TEMPSENSOR_TYPE 8
|
||||||
|
@ -88,6 +90,11 @@
|
||||||
#define EXT0_INVERSE 0
|
#define EXT0_INVERSE 0
|
||||||
#define EXT0_ENABLE_PIN ORIG_E0_ENABLE_PIN
|
#define EXT0_ENABLE_PIN ORIG_E0_ENABLE_PIN
|
||||||
#define EXT0_ENABLE_ON 0
|
#define EXT0_ENABLE_ON 0
|
||||||
|
#define EXT0_MIRROR_STEPPER 0
|
||||||
|
#define EXT0_STEP2_PIN ORIG_E0_STEP_PIN
|
||||||
|
#define EXT0_DIR2_PIN ORIG_E0_DIR_PIN
|
||||||
|
#define EXT0_INVERSE2 0
|
||||||
|
#define EXT0_ENABLE2_PIN ORIG_E0_ENABLE_PIN
|
||||||
#define EXT0_MAX_FEEDRATE 50
|
#define EXT0_MAX_FEEDRATE 50
|
||||||
#define EXT0_MAX_START_FEEDRATE 20
|
#define EXT0_MAX_START_FEEDRATE 20
|
||||||
#define EXT0_MAX_ACCELERATION 5000
|
#define EXT0_MAX_ACCELERATION 5000
|
||||||
|
@ -111,8 +118,8 @@
|
||||||
#define EXT0_DECOUPLE_TEST_PERIOD 12000
|
#define EXT0_DECOUPLE_TEST_PERIOD 12000
|
||||||
#define EXT0_JAM_PIN -1
|
#define EXT0_JAM_PIN -1
|
||||||
#define EXT0_JAM_PULLUP 0
|
#define EXT0_JAM_PULLUP 0
|
||||||
#define EXT1_X_OFFSET 0
|
#define EXT1_X_OFFSET 2800
|
||||||
#define EXT1_Y_OFFSET -2800
|
#define EXT1_Y_OFFSET 0
|
||||||
#define EXT1_Z_OFFSET 0
|
#define EXT1_Z_OFFSET 0
|
||||||
#define EXT1_STEPS_PER_MM 1000
|
#define EXT1_STEPS_PER_MM 1000
|
||||||
#define EXT1_TEMPSENSOR_TYPE 8
|
#define EXT1_TEMPSENSOR_TYPE 8
|
||||||
|
@ -123,6 +130,11 @@
|
||||||
#define EXT1_INVERSE 0
|
#define EXT1_INVERSE 0
|
||||||
#define EXT1_ENABLE_PIN ORIG_E1_ENABLE_PIN
|
#define EXT1_ENABLE_PIN ORIG_E1_ENABLE_PIN
|
||||||
#define EXT1_ENABLE_ON 0
|
#define EXT1_ENABLE_ON 0
|
||||||
|
#define EXT1_MIRROR_STEPPER 0
|
||||||
|
#define EXT1_STEP2_PIN ORIG_E1_STEP_PIN
|
||||||
|
#define EXT1_DIR2_PIN ORIG_E1_DIR_PIN
|
||||||
|
#define EXT1_INVERSE2 0
|
||||||
|
#define EXT1_ENABLE2_PIN ORIG_E1_ENABLE_PIN
|
||||||
#define EXT1_MAX_FEEDRATE 50
|
#define EXT1_MAX_FEEDRATE 50
|
||||||
#define EXT1_MAX_START_FEEDRATE 20
|
#define EXT1_MAX_START_FEEDRATE 20
|
||||||
#define EXT1_MAX_ACCELERATION 5000
|
#define EXT1_MAX_ACCELERATION 5000
|
||||||
|
@ -170,10 +182,10 @@
|
||||||
#define JAM_ACTION 0
|
#define JAM_ACTION 0
|
||||||
|
|
||||||
#define RETRACT_DURING_HEATUP true
|
#define RETRACT_DURING_HEATUP true
|
||||||
#define PID_CONTROL_RANGE 20
|
#define PID_CONTROL_RANGE 10
|
||||||
#define SKIP_M109_IF_WITHIN 2
|
#define SKIP_M109_IF_WITHIN 2
|
||||||
#define SCALE_PID_TO_MAX 0
|
#define SCALE_PID_TO_MAX 0
|
||||||
#define TEMP_HYSTERESIS 0
|
#define TEMP_HYSTERESIS 3
|
||||||
#define EXTRUDE_MAXLENGTH 500
|
#define EXTRUDE_MAXLENGTH 500
|
||||||
#define NUM_TEMPS_USERTHERMISTOR0 0
|
#define NUM_TEMPS_USERTHERMISTOR0 0
|
||||||
#define USER_THERMISTORTABLE0 {}
|
#define USER_THERMISTORTABLE0 {}
|
||||||
|
@ -259,8 +271,8 @@ It also can add a delay to wait for spindle to run on full speed.
|
||||||
// ################ Endstop configuration #####################
|
// ################ Endstop configuration #####################
|
||||||
|
|
||||||
#define ENDSTOP_PULLUP_X_MIN true
|
#define ENDSTOP_PULLUP_X_MIN true
|
||||||
#define ENDSTOP_X_MIN_INVERTING false
|
#define ENDSTOP_X_MIN_INVERTING true
|
||||||
#define MIN_HARDWARE_ENDSTOP_X false
|
#define MIN_HARDWARE_ENDSTOP_X true
|
||||||
#define ENDSTOP_PULLUP_Y_MIN true
|
#define ENDSTOP_PULLUP_Y_MIN true
|
||||||
#define ENDSTOP_Y_MIN_INVERTING true
|
#define ENDSTOP_Y_MIN_INVERTING true
|
||||||
#define MIN_HARDWARE_ENDSTOP_Y true
|
#define MIN_HARDWARE_ENDSTOP_Y true
|
||||||
|
@ -268,8 +280,8 @@ It also can add a delay to wait for spindle to run on full speed.
|
||||||
#define ENDSTOP_Z_MIN_INVERTING false
|
#define ENDSTOP_Z_MIN_INVERTING false
|
||||||
#define MIN_HARDWARE_ENDSTOP_Z false
|
#define MIN_HARDWARE_ENDSTOP_Z false
|
||||||
#define ENDSTOP_PULLUP_X_MAX true
|
#define ENDSTOP_PULLUP_X_MAX true
|
||||||
#define ENDSTOP_X_MAX_INVERTING true
|
#define ENDSTOP_X_MAX_INVERTING false
|
||||||
#define MAX_HARDWARE_ENDSTOP_X true
|
#define MAX_HARDWARE_ENDSTOP_X false
|
||||||
#define ENDSTOP_PULLUP_Y_MAX true
|
#define ENDSTOP_PULLUP_Y_MAX true
|
||||||
#define ENDSTOP_Y_MAX_INVERTING false
|
#define ENDSTOP_Y_MAX_INVERTING false
|
||||||
#define MAX_HARDWARE_ENDSTOP_Y false
|
#define MAX_HARDWARE_ENDSTOP_Y false
|
||||||
|
@ -278,10 +290,10 @@ It also can add a delay to wait for spindle to run on full speed.
|
||||||
#define MAX_HARDWARE_ENDSTOP_Z true
|
#define MAX_HARDWARE_ENDSTOP_Z true
|
||||||
#define max_software_endstop_r true
|
#define max_software_endstop_r true
|
||||||
|
|
||||||
#define min_software_endstop_x true
|
#define min_software_endstop_x false
|
||||||
#define min_software_endstop_y false
|
#define min_software_endstop_y false
|
||||||
#define min_software_endstop_z true
|
#define min_software_endstop_z true
|
||||||
#define max_software_endstop_x false
|
#define max_software_endstop_x true
|
||||||
#define max_software_endstop_y true
|
#define max_software_endstop_y true
|
||||||
#define max_software_endstop_z false
|
#define max_software_endstop_z false
|
||||||
#define ENDSTOP_X_BACK_MOVE 5
|
#define ENDSTOP_X_BACK_MOVE 5
|
||||||
|
@ -290,8 +302,8 @@ It also can add a delay to wait for spindle to run on full speed.
|
||||||
#define ENDSTOP_X_RETEST_REDUCTION_FACTOR 3
|
#define ENDSTOP_X_RETEST_REDUCTION_FACTOR 3
|
||||||
#define ENDSTOP_Y_RETEST_REDUCTION_FACTOR 3
|
#define ENDSTOP_Y_RETEST_REDUCTION_FACTOR 3
|
||||||
#define ENDSTOP_Z_RETEST_REDUCTION_FACTOR 3
|
#define ENDSTOP_Z_RETEST_REDUCTION_FACTOR 3
|
||||||
#define ENDSTOP_X_BACK_ON_HOME 10
|
#define ENDSTOP_X_BACK_ON_HOME 0
|
||||||
#define ENDSTOP_Y_BACK_ON_HOME 1
|
#define ENDSTOP_Y_BACK_ON_HOME 0
|
||||||
#define ENDSTOP_Z_BACK_ON_HOME 0
|
#define ENDSTOP_Z_BACK_ON_HOME 0
|
||||||
#define ALWAYS_CHECK_ENDSTOPS 0
|
#define ALWAYS_CHECK_ENDSTOPS 0
|
||||||
|
|
||||||
|
@ -307,7 +319,7 @@ It also can add a delay to wait for spindle to run on full speed.
|
||||||
#define INVERT_X_DIR 0
|
#define INVERT_X_DIR 0
|
||||||
#define INVERT_Y_DIR 0
|
#define INVERT_Y_DIR 0
|
||||||
#define INVERT_Z_DIR 0
|
#define INVERT_Z_DIR 0
|
||||||
#define X_HOME_DIR 1
|
#define X_HOME_DIR -1
|
||||||
#define Y_HOME_DIR -1
|
#define Y_HOME_DIR -1
|
||||||
#define Z_HOME_DIR 1
|
#define Z_HOME_DIR 1
|
||||||
#define X_MAX_LENGTH 155
|
#define X_MAX_LENGTH 155
|
||||||
|
@ -333,7 +345,7 @@ It also can add a delay to wait for spindle to run on full speed.
|
||||||
// ## Movement settings ##
|
// ## Movement settings ##
|
||||||
// ##########################################################################################
|
// ##########################################################################################
|
||||||
|
|
||||||
#define FEATURE_BABYSTEPPING 1
|
#define FEATURE_BABYSTEPPING 0
|
||||||
#define BABYSTEP_MULTIPLICATOR 1
|
#define BABYSTEP_MULTIPLICATOR 1
|
||||||
|
|
||||||
#define DELTA_SEGMENTS_PER_SECOND_PRINT 180 // Move accurate setting for print moves
|
#define DELTA_SEGMENTS_PER_SECOND_PRINT 180 // Move accurate setting for print moves
|
||||||
|
@ -381,6 +393,8 @@ It also can add a delay to wait for spindle to run on full speed.
|
||||||
#define PRINTLINE_CACHE_SIZE 16
|
#define PRINTLINE_CACHE_SIZE 16
|
||||||
#define MOVE_CACHE_LOW 10
|
#define MOVE_CACHE_LOW 10
|
||||||
#define LOW_TICKS_PER_MOVE 250000
|
#define LOW_TICKS_PER_MOVE 250000
|
||||||
|
#define EXTRUDER_SWITCH_XY_SPEED 100
|
||||||
|
#define DUAL_X_AXIS 0
|
||||||
#define FEATURE_TWO_XSTEPPER 0
|
#define FEATURE_TWO_XSTEPPER 0
|
||||||
#define X2_STEP_PIN ORIG_E1_STEP_PIN
|
#define X2_STEP_PIN ORIG_E1_STEP_PIN
|
||||||
#define X2_DIR_PIN ORIG_E1_DIR_PIN
|
#define X2_DIR_PIN ORIG_E1_DIR_PIN
|
||||||
|
@ -408,10 +422,10 @@ It also can add a delay to wait for spindle to run on full speed.
|
||||||
#define ENABLE_POWER_ON_STARTUP 1
|
#define ENABLE_POWER_ON_STARTUP 1
|
||||||
#define POWER_INVERTING 0
|
#define POWER_INVERTING 0
|
||||||
#define KILL_METHOD 1
|
#define KILL_METHOD 1
|
||||||
#define ACK_WITH_LINENUMBER 1
|
#define ACK_WITH_LINENUMBER 0
|
||||||
#define WAITING_IDENTIFIER "wait"
|
#define WAITING_IDENTIFIER "wait"
|
||||||
#define ECHO_ON_EXECUTE 1
|
#define ECHO_ON_EXECUTE 1
|
||||||
#define EEPROM_MODE 2
|
#define EEPROM_MODE 0
|
||||||
#undef PS_ON_PIN
|
#undef PS_ON_PIN
|
||||||
#define PS_ON_PIN ORIG_PS_ON_PIN
|
#define PS_ON_PIN ORIG_PS_ON_PIN
|
||||||
#define JSON_OUTPUT 0
|
#define JSON_OUTPUT 0
|
||||||
|
@ -442,28 +456,30 @@ WARNING: Servos can draw a considerable amount of current. Make sure your system
|
||||||
#define Z_PROBE_Z_OFFSET_MODE 0
|
#define Z_PROBE_Z_OFFSET_MODE 0
|
||||||
#define UI_BED_COATING 1
|
#define UI_BED_COATING 1
|
||||||
#define FEATURE_Z_PROBE 1
|
#define FEATURE_Z_PROBE 1
|
||||||
#define Z_PROBE_BED_DISTANCE 10
|
#define Z_PROBE_BED_DISTANCE 3
|
||||||
#define Z_PROBE_PIN ORIG_Z_MIN_PIN
|
#define Z_PROBE_PIN ORIG_Z_MIN_PIN
|
||||||
#define Z_PROBE_PULLUP 1
|
#define Z_PROBE_PULLUP 1
|
||||||
#define Z_PROBE_ON_HIGH 1
|
#define Z_PROBE_ON_HIGH 1
|
||||||
#define Z_PROBE_X_OFFSET 6.4
|
#define Z_PROBE_X_OFFSET 6.4
|
||||||
#define Z_PROBE_Y_OFFSET 0
|
#define Z_PROBE_Y_OFFSET 0
|
||||||
#define Z_PROBE_WAIT_BEFORE_TEST 0
|
#define Z_PROBE_WAIT_BEFORE_TEST 0
|
||||||
#define Z_PROBE_SPEED 100
|
#define Z_PROBE_SPEED 30
|
||||||
#define Z_PROBE_XY_SPEED 150
|
#define Z_PROBE_XY_SPEED 250
|
||||||
#define Z_PROBE_SWITCHING_DISTANCE 1
|
#define Z_PROBE_SWITCHING_DISTANCE 0.3
|
||||||
#define Z_PROBE_REPETITIONS 1
|
#define Z_PROBE_REPETITIONS 1
|
||||||
#define Z_PROBE_HEIGHT 6.9
|
#define Z_PROBE_HEIGHT 7.2
|
||||||
#define Z_PROBE_START_SCRIPT ""
|
#define Z_PROBE_START_SCRIPT ""
|
||||||
#define Z_PROBE_FINISHED_SCRIPT ""
|
#define Z_PROBE_FINISHED_SCRIPT ""
|
||||||
|
#define Z_PROBE_REQUIRES_HEATING 0
|
||||||
|
#define Z_PROBE_MIN_TEMPERATURE 150
|
||||||
#define FEATURE_AUTOLEVEL 1
|
#define FEATURE_AUTOLEVEL 1
|
||||||
#define Z_PROBE_X1 5
|
#define Z_PROBE_X1 5
|
||||||
#define Z_PROBE_Y1 5
|
#define Z_PROBE_Y1 5
|
||||||
#define Z_PROBE_X2 150
|
#define Z_PROBE_X2 150
|
||||||
#define Z_PROBE_Y2 5
|
#define Z_PROBE_Y2 5
|
||||||
#define Z_PROBE_X3 150
|
#define Z_PROBE_X3 5
|
||||||
#define Z_PROBE_Y3 150
|
#define Z_PROBE_Y3 150
|
||||||
#define BED_LEVELING_METHOD 0
|
#define BED_LEVELING_METHOD 1
|
||||||
#define BED_CORRECTION_METHOD 0
|
#define BED_CORRECTION_METHOD 0
|
||||||
#define BED_LEVELING_GRID_SIZE 5
|
#define BED_LEVELING_GRID_SIZE 5
|
||||||
#define BED_LEVELING_REPETITIONS 5
|
#define BED_LEVELING_REPETITIONS 5
|
||||||
|
@ -490,23 +506,25 @@ WARNING: Servos can draw a considerable amount of current. Make sure your system
|
||||||
#define SD_EXTENDED_DIR 1 /** Show extended directory including file length. Don't use this with Pronterface! */
|
#define SD_EXTENDED_DIR 1 /** Show extended directory including file length. Don't use this with Pronterface! */
|
||||||
#define SD_RUN_ON_STOP ""
|
#define SD_RUN_ON_STOP ""
|
||||||
#define SD_STOP_HEATER_AND_MOTORS_ON_STOP 1
|
#define SD_STOP_HEATER_AND_MOTORS_ON_STOP 1
|
||||||
#define ARC_SUPPORT 1
|
#define ARC_SUPPORT 0
|
||||||
#define FEATURE_MEMORY_POSITION 0
|
#define FEATURE_MEMORY_POSITION 0
|
||||||
#define FEATURE_CHECKSUM_FORCED 0
|
#define FEATURE_CHECKSUM_FORCED 0
|
||||||
#define FEATURE_FAN_CONTROL 0
|
#define FEATURE_FAN_CONTROL 0
|
||||||
#define FEATURE_FAN2_CONTROL 0
|
#define FEATURE_FAN2_CONTROL 0
|
||||||
#define FEATURE_CONTROLLER 0
|
#define FEATURE_CONTROLLER 0
|
||||||
|
#define ADC_KEYPAD_PIN -1
|
||||||
#define LANGUAGE_EN_ACTIVE 1
|
#define LANGUAGE_EN_ACTIVE 1
|
||||||
#define LANGUAGE_DE_ACTIVE 1
|
#define LANGUAGE_DE_ACTIVE 0
|
||||||
#define LANGUAGE_NL_ACTIVE 1
|
#define LANGUAGE_NL_ACTIVE 0
|
||||||
#define LANGUAGE_PT_ACTIVE 1
|
#define LANGUAGE_PT_ACTIVE 0
|
||||||
#define LANGUAGE_IT_ACTIVE 1
|
#define LANGUAGE_IT_ACTIVE 0
|
||||||
#define LANGUAGE_ES_ACTIVE 1
|
#define LANGUAGE_ES_ACTIVE 0
|
||||||
#define LANGUAGE_SE_ACTIVE 1
|
#define LANGUAGE_FI_ACTIVE 0
|
||||||
#define LANGUAGE_FR_ACTIVE 1
|
#define LANGUAGE_SE_ACTIVE 0
|
||||||
#define LANGUAGE_CZ_ACTIVE 1
|
#define LANGUAGE_FR_ACTIVE 0
|
||||||
#define LANGUAGE_PL_ACTIVE 1
|
#define LANGUAGE_CZ_ACTIVE 0
|
||||||
#define LANGUAGE_TR_ACTIVE 1
|
#define LANGUAGE_PL_ACTIVE 0
|
||||||
|
#define LANGUAGE_TR_ACTIVE 0
|
||||||
#define UI_PRINTER_NAME "RepRap"
|
#define UI_PRINTER_NAME "RepRap"
|
||||||
#define UI_PRINTER_COMPANY "Home made"
|
#define UI_PRINTER_COMPANY "Home made"
|
||||||
#define UI_PAGES_DURATION 4000
|
#define UI_PAGES_DURATION 4000
|
||||||
|
@ -564,10 +582,10 @@ Values must be in range 1..255
|
||||||
"xStepsPerMM": 200,
|
"xStepsPerMM": 200,
|
||||||
"yStepsPerMM": 200,
|
"yStepsPerMM": 200,
|
||||||
"zStepsPerMM": 200,
|
"zStepsPerMM": 200,
|
||||||
"xInvert": 0,
|
"xInvert": "0",
|
||||||
"xInvertEnable": 0,
|
"xInvertEnable": 0,
|
||||||
"eepromMode": 2,
|
"eepromMode": 0,
|
||||||
"yInvert": 0,
|
"yInvert": "0",
|
||||||
"yInvertEnable": 0,
|
"yInvertEnable": 0,
|
||||||
"zInvert": 0,
|
"zInvert": 0,
|
||||||
"zInvertEnable": 0,
|
"zInvertEnable": 0,
|
||||||
|
@ -600,11 +618,11 @@ Values must be in range 1..255
|
||||||
"coolerSpeed": 255,
|
"coolerSpeed": 255,
|
||||||
"selectCommands": "",
|
"selectCommands": "",
|
||||||
"deselectCommands": "",
|
"deselectCommands": "",
|
||||||
"xOffset": 0,
|
"xOffset": -14,
|
||||||
"yOffset": 14,
|
"yOffset": null,
|
||||||
"zOffset": 0,
|
"zOffset": 0,
|
||||||
"xOffsetSteps": 0,
|
"xOffsetSteps": -2800,
|
||||||
"yOffsetSteps": 2800,
|
"yOffsetSteps": 0,
|
||||||
"zOffsetSteps": 0,
|
"zOffsetSteps": 0,
|
||||||
"stepper": {
|
"stepper": {
|
||||||
"name": "Extruder 0",
|
"name": "Extruder 0",
|
||||||
|
@ -615,7 +633,15 @@ Values must be in range 1..255
|
||||||
"advanceBacklashSteps": 0,
|
"advanceBacklashSteps": 0,
|
||||||
"decoupleTestPeriod": 12,
|
"decoupleTestPeriod": 12,
|
||||||
"jamPin": -1,
|
"jamPin": -1,
|
||||||
"jamPullup": "0"
|
"jamPullup": "0",
|
||||||
|
"mirror": "0",
|
||||||
|
"invert2": "0",
|
||||||
|
"stepper2": {
|
||||||
|
"name": "Extruder 0",
|
||||||
|
"step": "ORIG_E0_STEP_PIN",
|
||||||
|
"dir": "ORIG_E0_DIR_PIN",
|
||||||
|
"enable": "ORIG_E0_ENABLE_PIN"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 1,
|
"id": 1,
|
||||||
|
@ -645,11 +671,11 @@ Values must be in range 1..255
|
||||||
"coolerSpeed": 255,
|
"coolerSpeed": 255,
|
||||||
"selectCommands": "",
|
"selectCommands": "",
|
||||||
"deselectCommands": "",
|
"deselectCommands": "",
|
||||||
"xOffset": 0,
|
"xOffset": 14,
|
||||||
"yOffset": -14,
|
"yOffset": 0,
|
||||||
"zOffset": 0,
|
"zOffset": 0,
|
||||||
"xOffsetSteps": 0,
|
"xOffsetSteps": 2800,
|
||||||
"yOffsetSteps": -2800,
|
"yOffsetSteps": 0,
|
||||||
"zOffsetSteps": 0,
|
"zOffsetSteps": 0,
|
||||||
"stepper": {
|
"stepper": {
|
||||||
"name": "Extruder 1",
|
"name": "Extruder 1",
|
||||||
|
@ -660,15 +686,23 @@ Values must be in range 1..255
|
||||||
"advanceBacklashSteps": 0,
|
"advanceBacklashSteps": 0,
|
||||||
"decoupleTestPeriod": 12,
|
"decoupleTestPeriod": 12,
|
||||||
"jamPin": -1,
|
"jamPin": -1,
|
||||||
"jamPullup": "0"
|
"jamPullup": "0",
|
||||||
|
"mirror": "0",
|
||||||
|
"invert2": "0",
|
||||||
|
"stepper2": {
|
||||||
|
"name": "Extruder 1",
|
||||||
|
"step": "ORIG_E1_STEP_PIN",
|
||||||
|
"dir": "ORIG_E1_DIR_PIN",
|
||||||
|
"enable": "ORIG_E1_ENABLE_PIN"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"uiLanguage": 0,
|
"uiLanguage": 0,
|
||||||
"uiController": 0,
|
"uiController": 0,
|
||||||
"xMinEndstop": 0,
|
"xMinEndstop": 1,
|
||||||
"yMinEndstop": 1,
|
"yMinEndstop": 1,
|
||||||
"zMinEndstop": 0,
|
"zMinEndstop": 0,
|
||||||
"xMaxEndstop": 1,
|
"xMaxEndstop": 0,
|
||||||
"yMaxEndstop": 0,
|
"yMaxEndstop": 0,
|
||||||
"zMaxEndstop": 1,
|
"zMaxEndstop": 1,
|
||||||
"motherboard": 33,
|
"motherboard": 33,
|
||||||
|
@ -720,11 +754,11 @@ Values must be in range 1..255
|
||||||
"disableY": "0",
|
"disableY": "0",
|
||||||
"disableZ": "0",
|
"disableZ": "0",
|
||||||
"disableE": "0",
|
"disableE": "0",
|
||||||
"xHomeDir": "1",
|
"xHomeDir": "-1",
|
||||||
"yHomeDir": "-1",
|
"yHomeDir": "-1",
|
||||||
"zHomeDir": "1",
|
"zHomeDir": "1",
|
||||||
"xEndstopBack": 10,
|
"xEndstopBack": 0,
|
||||||
"yEndstopBack": 1,
|
"yEndstopBack": 0,
|
||||||
"zEndstopBack": 0,
|
"zEndstopBack": 0,
|
||||||
"deltaSegmentsPerSecondPrint": 180,
|
"deltaSegmentsPerSecondPrint": 180,
|
||||||
"deltaSegmentsPerSecondTravel": 70,
|
"deltaSegmentsPerSecondTravel": 70,
|
||||||
|
@ -758,7 +792,7 @@ Values must be in range 1..255
|
||||||
"enablePowerOnStartup": "1",
|
"enablePowerOnStartup": "1",
|
||||||
"echoOnExecute": "1",
|
"echoOnExecute": "1",
|
||||||
"sendWaits": "1",
|
"sendWaits": "1",
|
||||||
"ackWithLineNumber": "1",
|
"ackWithLineNumber": "0",
|
||||||
"killMethod": 1,
|
"killMethod": 1,
|
||||||
"useAdvance": "0",
|
"useAdvance": "0",
|
||||||
"useQuadraticAdvance": "0",
|
"useQuadraticAdvance": "0",
|
||||||
|
@ -883,15 +917,15 @@ Values must be in range 1..255
|
||||||
"temps": [],
|
"temps": [],
|
||||||
"numEntries": 0
|
"numEntries": 0
|
||||||
},
|
},
|
||||||
"tempHysteresis": 0,
|
"tempHysteresis": 3,
|
||||||
"pidControlRange": 20,
|
"pidControlRange": 10,
|
||||||
"skipM109Within": 2,
|
"skipM109Within": 2,
|
||||||
"extruderFanCoolTemp": 50,
|
"extruderFanCoolTemp": 50,
|
||||||
"minTemp": 150,
|
"minTemp": 150,
|
||||||
"maxTemp": 285,
|
"maxTemp": 285,
|
||||||
"minDefectTemp": -10,
|
"minDefectTemp": -10,
|
||||||
"maxDefectTemp": 290,
|
"maxDefectTemp": 290,
|
||||||
"arcSupport": "1",
|
"arcSupport": "0",
|
||||||
"featureMemoryPositionWatchdog": "0",
|
"featureMemoryPositionWatchdog": "0",
|
||||||
"forceChecksum": "0",
|
"forceChecksum": "0",
|
||||||
"sdExtendedDir": "1",
|
"sdExtendedDir": "1",
|
||||||
|
@ -906,17 +940,17 @@ Values must be in range 1..255
|
||||||
"fanThermoMaxTemp": 60,
|
"fanThermoMaxTemp": 60,
|
||||||
"fanThermoThermistorPin": -1,
|
"fanThermoThermistorPin": -1,
|
||||||
"fanThermoThermistorType": 1,
|
"fanThermoThermistorType": 1,
|
||||||
"scalePidToMax": 0,
|
"scalePidToMax": "0",
|
||||||
"zProbePin": "ORIG_Z_MIN_PIN",
|
"zProbePin": "ORIG_Z_MIN_PIN",
|
||||||
"zProbeBedDistance": 10,
|
"zProbeBedDistance": 3,
|
||||||
"zProbePullup": "1",
|
"zProbePullup": "1",
|
||||||
"zProbeOnHigh": "1",
|
"zProbeOnHigh": "1",
|
||||||
"zProbeXOffset": 6.4,
|
"zProbeXOffset": 6.4,
|
||||||
"zProbeYOffset": 0,
|
"zProbeYOffset": 0,
|
||||||
"zProbeWaitBeforeTest": "0",
|
"zProbeWaitBeforeTest": "0",
|
||||||
"zProbeSpeed": 100,
|
"zProbeSpeed": 30,
|
||||||
"zProbeXYSpeed": 150,
|
"zProbeXYSpeed": 250,
|
||||||
"zProbeHeight": 6.9,
|
"zProbeHeight": 7.2,
|
||||||
"zProbeStartScript": "",
|
"zProbeStartScript": "",
|
||||||
"zProbeFinishedScript": "",
|
"zProbeFinishedScript": "",
|
||||||
"featureAutolevel": "1",
|
"featureAutolevel": "1",
|
||||||
|
@ -924,9 +958,9 @@ Values must be in range 1..255
|
||||||
"zProbeY1": 5,
|
"zProbeY1": 5,
|
||||||
"zProbeX2": 150,
|
"zProbeX2": 150,
|
||||||
"zProbeY2": 5,
|
"zProbeY2": 5,
|
||||||
"zProbeX3": 150,
|
"zProbeX3": 5,
|
||||||
"zProbeY3": 150,
|
"zProbeY3": 150,
|
||||||
"zProbeSwitchingDistance": 1,
|
"zProbeSwitchingDistance": 0.3,
|
||||||
"zProbeRepetitions": 1,
|
"zProbeRepetitions": 1,
|
||||||
"sdSupport": "0",
|
"sdSupport": "0",
|
||||||
"sdCardDetectPin": -1,
|
"sdCardDetectPin": -1,
|
||||||
|
@ -947,7 +981,7 @@ Values must be in range 1..255
|
||||||
"deltaHomeOnPower": "0",
|
"deltaHomeOnPower": "0",
|
||||||
"fanBoardPin": -1,
|
"fanBoardPin": -1,
|
||||||
"heaterPWMSpeed": 0,
|
"heaterPWMSpeed": 0,
|
||||||
"featureBabystepping": "1",
|
"featureBabystepping": "0",
|
||||||
"babystepMultiplicator": 1,
|
"babystepMultiplicator": 1,
|
||||||
"pdmForHeater": "0",
|
"pdmForHeater": "0",
|
||||||
"pdmForCooler": "0",
|
"pdmForCooler": "0",
|
||||||
|
@ -1085,16 +1119,17 @@ Values must be in range 1..255
|
||||||
"zProbeZOffset": 0,
|
"zProbeZOffset": 0,
|
||||||
"uiBedCoating": "1",
|
"uiBedCoating": "1",
|
||||||
"langEN": "1",
|
"langEN": "1",
|
||||||
"langDE": "1",
|
"langDE": "0",
|
||||||
"langNL": "1",
|
"langNL": "0",
|
||||||
"langPT": "1",
|
"langPT": "0",
|
||||||
"langIT": "1",
|
"langIT": "0",
|
||||||
"langES": "1",
|
"langES": "0",
|
||||||
"langSE": "1",
|
"langFI": "0",
|
||||||
"langFR": "1",
|
"langSE": "0",
|
||||||
"langCZ": "1",
|
"langFR": "0",
|
||||||
"langPL": "1",
|
"langCZ": "0",
|
||||||
"langTR": "1",
|
"langPL": "0",
|
||||||
|
"langTR": "0",
|
||||||
"interpolateAccelerationWithZ": 0,
|
"interpolateAccelerationWithZ": 0,
|
||||||
"accelerationFactorTop": 100,
|
"accelerationFactorTop": 100,
|
||||||
"bendingCorrectionA": 0,
|
"bendingCorrectionA": 0,
|
||||||
|
@ -1114,7 +1149,7 @@ Values must be in range 1..255
|
||||||
"cncDirectionCW": "1",
|
"cncDirectionCW": "1",
|
||||||
"startupGCode": "",
|
"startupGCode": "",
|
||||||
"jsonOutput": "0",
|
"jsonOutput": "0",
|
||||||
"bedLevelingMethod": 0,
|
"bedLevelingMethod": 1,
|
||||||
"bedCorrectionMethod": 0,
|
"bedCorrectionMethod": 0,
|
||||||
"bedLevelingGridSize": 5,
|
"bedLevelingGridSize": 5,
|
||||||
"bedLevelingRepetitions": 5,
|
"bedLevelingRepetitions": 5,
|
||||||
|
@ -1124,6 +1159,13 @@ Values must be in range 1..255
|
||||||
"bedMotor2Y": 0,
|
"bedMotor2Y": 0,
|
||||||
"bedMotor3X": 100,
|
"bedMotor3X": 100,
|
||||||
"bedMotor3Y": 200,
|
"bedMotor3Y": 200,
|
||||||
|
"zProbeRequiresHeating": "0",
|
||||||
|
"zProbeMinTemperature": 150,
|
||||||
|
"adcKeypadPin": -1,
|
||||||
|
"sharedExtruderHeater": "0",
|
||||||
|
"extruderSwitchXYSpeed": 100,
|
||||||
|
"dualXAxis": "0",
|
||||||
|
"boardFanSpeed": 255,
|
||||||
"hasMAX6675": false,
|
"hasMAX6675": false,
|
||||||
"hasMAX31855": false,
|
"hasMAX31855": false,
|
||||||
"hasGeneric1": false,
|
"hasGeneric1": false,
|
||||||
|
@ -1133,7 +1175,7 @@ Values must be in range 1..255
|
||||||
"hasUser1": false,
|
"hasUser1": false,
|
||||||
"hasUser2": false,
|
"hasUser2": false,
|
||||||
"numExtruder": 2,
|
"numExtruder": 2,
|
||||||
"version": 92.8,
|
"version": 92.9,
|
||||||
"primaryPortName": ""
|
"primaryPortName": ""
|
||||||
}
|
}
|
||||||
========== End configuration string ==========
|
========== End configuration string ==========
|
||||||
|
|
|
@ -63,7 +63,12 @@ void EEPROM::update(GCode *com)
|
||||||
|
|
||||||
void EEPROM::restoreEEPROMSettingsFromConfiguration()
|
void EEPROM::restoreEEPROMSettingsFromConfiguration()
|
||||||
{
|
{
|
||||||
|
// can only be done right if we also update permanent values not cached!
|
||||||
#if EEPROM_MODE != 0
|
#if EEPROM_MODE != 0
|
||||||
|
EEPROM::initalizeUncached();
|
||||||
|
uint8_t newcheck = computeChecksum();
|
||||||
|
if(newcheck != HAL::eprGetByte(EPR_INTEGRITY_BYTE))
|
||||||
|
HAL::eprSetByte(EPR_INTEGRITY_BYTE, newcheck);
|
||||||
baudrate = BAUDRATE;
|
baudrate = BAUDRATE;
|
||||||
maxInactiveTime = MAX_INACTIVE_TIME * 1000L;
|
maxInactiveTime = MAX_INACTIVE_TIME * 1000L;
|
||||||
stepperInactiveTime = STEPPER_INACTIVE_TIME * 1000L;
|
stepperInactiveTime = STEPPER_INACTIVE_TIME * 1000L;
|
||||||
|
@ -106,6 +111,13 @@ void EEPROM::restoreEEPROMSettingsFromConfiguration()
|
||||||
Printer::xMin = X_MIN_POS;
|
Printer::xMin = X_MIN_POS;
|
||||||
Printer::yMin = Y_MIN_POS;
|
Printer::yMin = Y_MIN_POS;
|
||||||
Printer::zMin = Z_MIN_POS;
|
Printer::zMin = Z_MIN_POS;
|
||||||
|
#if NONLINEAR_SYSTEM
|
||||||
|
#ifdef ROD_RADIUS
|
||||||
|
Printer::radius0 = ROD_RADIUS;
|
||||||
|
#else
|
||||||
|
Printer::radius0 = 0;
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
#if ENABLE_BACKLASH_COMPENSATION
|
#if ENABLE_BACKLASH_COMPENSATION
|
||||||
Printer::backlashX = X_BACKLASH;
|
Printer::backlashX = X_BACKLASH;
|
||||||
Printer::backlashY = Y_BACKLASH;
|
Printer::backlashY = Y_BACKLASH;
|
||||||
|
@ -468,11 +480,13 @@ void EEPROM::initalizeUncached()
|
||||||
HAL::eprSetFloat(EPR_AXISCOMP_TANXZ,AXISCOMP_TANXZ);
|
HAL::eprSetFloat(EPR_AXISCOMP_TANXZ,AXISCOMP_TANXZ);
|
||||||
HAL::eprSetFloat(EPR_Z_PROBE_BED_DISTANCE,Z_PROBE_BED_DISTANCE);
|
HAL::eprSetFloat(EPR_Z_PROBE_BED_DISTANCE,Z_PROBE_BED_DISTANCE);
|
||||||
Printer::zBedOffset = HAL::eprGetFloat(EPR_Z_PROBE_Z_OFFSET);
|
Printer::zBedOffset = HAL::eprGetFloat(EPR_Z_PROBE_Z_OFFSET);
|
||||||
|
#if NONLINEAR_SYSTEM
|
||||||
|
HAL::eprSetInt16(EPR_DELTA_SEGMENTS_PER_SECOND_PRINT,DELTA_SEGMENTS_PER_SECOND_PRINT);
|
||||||
|
HAL::eprSetInt16(EPR_DELTA_SEGMENTS_PER_SECOND_MOVE,DELTA_SEGMENTS_PER_SECOND_MOVE);
|
||||||
|
#endif
|
||||||
#if DRIVE_SYSTEM == DELTA
|
#if DRIVE_SYSTEM == DELTA
|
||||||
HAL::eprSetFloat(EPR_DELTA_DIAGONAL_ROD_LENGTH,DELTA_DIAGONAL_ROD);
|
HAL::eprSetFloat(EPR_DELTA_DIAGONAL_ROD_LENGTH,DELTA_DIAGONAL_ROD);
|
||||||
HAL::eprSetFloat(EPR_DELTA_HORIZONTAL_RADIUS,ROD_RADIUS);
|
HAL::eprSetFloat(EPR_DELTA_HORIZONTAL_RADIUS,ROD_RADIUS);
|
||||||
HAL::eprSetInt16(EPR_DELTA_SEGMENTS_PER_SECOND_PRINT,DELTA_SEGMENTS_PER_SECOND_PRINT);
|
|
||||||
HAL::eprSetInt16(EPR_DELTA_SEGMENTS_PER_SECOND_MOVE,DELTA_SEGMENTS_PER_SECOND_MOVE);
|
|
||||||
HAL::eprSetInt16(EPR_DELTA_TOWERX_OFFSET_STEPS,DELTA_X_ENDSTOP_OFFSET_STEPS);
|
HAL::eprSetInt16(EPR_DELTA_TOWERX_OFFSET_STEPS,DELTA_X_ENDSTOP_OFFSET_STEPS);
|
||||||
HAL::eprSetInt16(EPR_DELTA_TOWERY_OFFSET_STEPS,DELTA_Y_ENDSTOP_OFFSET_STEPS);
|
HAL::eprSetInt16(EPR_DELTA_TOWERY_OFFSET_STEPS,DELTA_Y_ENDSTOP_OFFSET_STEPS);
|
||||||
HAL::eprSetInt16(EPR_DELTA_TOWERZ_OFFSET_STEPS,DELTA_Z_ENDSTOP_OFFSET_STEPS);
|
HAL::eprSetInt16(EPR_DELTA_TOWERZ_OFFSET_STEPS,DELTA_Z_ENDSTOP_OFFSET_STEPS);
|
||||||
|
@ -653,11 +667,13 @@ void EEPROM::readDataFromEEPROM(bool includeExtruder)
|
||||||
}
|
}
|
||||||
if(version < 4)
|
if(version < 4)
|
||||||
{
|
{
|
||||||
|
#if NONLINEAR_SYSTEM
|
||||||
|
HAL::eprSetInt16(EPR_DELTA_SEGMENTS_PER_SECOND_PRINT,DELTA_SEGMENTS_PER_SECOND_PRINT);
|
||||||
|
HAL::eprSetInt16(EPR_DELTA_SEGMENTS_PER_SECOND_MOVE,DELTA_SEGMENTS_PER_SECOND_MOVE);
|
||||||
|
#endif
|
||||||
#if DRIVE_SYSTEM == DELTA
|
#if DRIVE_SYSTEM == DELTA
|
||||||
HAL::eprSetFloat(EPR_DELTA_DIAGONAL_ROD_LENGTH,DELTA_DIAGONAL_ROD);
|
HAL::eprSetFloat(EPR_DELTA_DIAGONAL_ROD_LENGTH,DELTA_DIAGONAL_ROD);
|
||||||
HAL::eprSetFloat(EPR_DELTA_HORIZONTAL_RADIUS,ROD_RADIUS);
|
HAL::eprSetFloat(EPR_DELTA_HORIZONTAL_RADIUS,ROD_RADIUS);
|
||||||
HAL::eprSetInt16(EPR_DELTA_SEGMENTS_PER_SECOND_PRINT,DELTA_SEGMENTS_PER_SECOND_PRINT);
|
|
||||||
HAL::eprSetInt16(EPR_DELTA_SEGMENTS_PER_SECOND_MOVE,DELTA_SEGMENTS_PER_SECOND_MOVE);
|
|
||||||
HAL::eprSetInt16(EPR_DELTA_TOWERX_OFFSET_STEPS,DELTA_X_ENDSTOP_OFFSET_STEPS);
|
HAL::eprSetInt16(EPR_DELTA_TOWERX_OFFSET_STEPS,DELTA_X_ENDSTOP_OFFSET_STEPS);
|
||||||
HAL::eprSetInt16(EPR_DELTA_TOWERY_OFFSET_STEPS,DELTA_Y_ENDSTOP_OFFSET_STEPS);
|
HAL::eprSetInt16(EPR_DELTA_TOWERY_OFFSET_STEPS,DELTA_Y_ENDSTOP_OFFSET_STEPS);
|
||||||
HAL::eprSetInt16(EPR_DELTA_TOWERZ_OFFSET_STEPS,DELTA_Z_ENDSTOP_OFFSET_STEPS);
|
HAL::eprSetInt16(EPR_DELTA_TOWERZ_OFFSET_STEPS,DELTA_Z_ENDSTOP_OFFSET_STEPS);
|
||||||
|
@ -871,7 +887,10 @@ void EEPROM::writeSettings()
|
||||||
writeFloat(EPR_BACKLASH_Y, Com::tEPRYBacklash);
|
writeFloat(EPR_BACKLASH_Y, Com::tEPRYBacklash);
|
||||||
writeFloat(EPR_BACKLASH_Z, Com::tEPRZBacklash);
|
writeFloat(EPR_BACKLASH_Z, Com::tEPRZBacklash);
|
||||||
#endif
|
#endif
|
||||||
|
#if NONLINEAR_SYSTEM
|
||||||
|
writeInt(EPR_DELTA_SEGMENTS_PER_SECOND_MOVE, Com::tEPRSegmentsPerSecondTravel);
|
||||||
|
writeInt(EPR_DELTA_SEGMENTS_PER_SECOND_PRINT, Com::tEPRSegmentsPerSecondPrint);
|
||||||
|
#endif
|
||||||
#if RAMP_ACCELERATION
|
#if RAMP_ACCELERATION
|
||||||
//epr_out_float(EPR_X_MAX_START_SPEED,PSTR("X-axis start speed [mm/s]"));
|
//epr_out_float(EPR_X_MAX_START_SPEED,PSTR("X-axis start speed [mm/s]"));
|
||||||
//epr_out_float(EPR_Y_MAX_START_SPEED,PSTR("Y-axis start speed [mm/s]"));
|
//epr_out_float(EPR_Y_MAX_START_SPEED,PSTR("Y-axis start speed [mm/s]"));
|
||||||
|
@ -888,8 +907,6 @@ void EEPROM::writeSettings()
|
||||||
writeFloat(EPR_DELTA_DIAGONAL_ROD_LENGTH, Com::tEPRDiagonalRodLength);
|
writeFloat(EPR_DELTA_DIAGONAL_ROD_LENGTH, Com::tEPRDiagonalRodLength);
|
||||||
writeFloat(EPR_DELTA_HORIZONTAL_RADIUS, Com::tEPRHorizontalRadius);
|
writeFloat(EPR_DELTA_HORIZONTAL_RADIUS, Com::tEPRHorizontalRadius);
|
||||||
writeFloat(EPR_DELTA_MAX_RADIUS, Com::tEPRDeltaMaxRadius);
|
writeFloat(EPR_DELTA_MAX_RADIUS, Com::tEPRDeltaMaxRadius);
|
||||||
writeInt(EPR_DELTA_SEGMENTS_PER_SECOND_MOVE, Com::tEPRSegmentsPerSecondTravel);
|
|
||||||
writeInt(EPR_DELTA_SEGMENTS_PER_SECOND_PRINT, Com::tEPRSegmentsPerSecondPrint);
|
|
||||||
writeInt(EPR_DELTA_TOWERX_OFFSET_STEPS, Com::tEPRTowerXOffset);
|
writeInt(EPR_DELTA_TOWERX_OFFSET_STEPS, Com::tEPRTowerXOffset);
|
||||||
writeInt(EPR_DELTA_TOWERY_OFFSET_STEPS, Com::tEPRTowerYOffset);
|
writeInt(EPR_DELTA_TOWERY_OFFSET_STEPS, Com::tEPRTowerYOffset);
|
||||||
writeInt(EPR_DELTA_TOWERZ_OFFSET_STEPS, Com::tEPRTowerZOffset);
|
writeInt(EPR_DELTA_TOWERZ_OFFSET_STEPS, Com::tEPRTowerZOffset);
|
||||||
|
|
|
@ -49,14 +49,20 @@ Each of the following events describe the parameter and when it is called.
|
||||||
#define EVENT_START_UI_ACTION(shortAction) {}
|
#define EVENT_START_UI_ACTION(shortAction) {}
|
||||||
// Gets called if a nextPrevius actions gets executed.
|
// Gets called if a nextPrevius actions gets executed.
|
||||||
#define EVENT_START_NEXTPREVIOUS(action,increment) {}
|
#define EVENT_START_NEXTPREVIOUS(action,increment) {}
|
||||||
|
// Gets called before a move is queued. Gives the ability to limit moves.
|
||||||
|
#define EVENT_CONTRAIN_DESTINATION_COORDINATES
|
||||||
|
// Gets called when a fatal error occurs and all actions should be stopped
|
||||||
|
#define EVENT_FATAL_ERROR_OCCURED
|
||||||
|
// Gets called after a M999 to continue from fatal errors
|
||||||
|
#define EVENT_CONTINUE_FROM_FATAL_ERROR
|
||||||
|
|
||||||
// Called to initalize laser pins. Return false to prevent default initalization.
|
// Called to initialize laser pins. Return false to prevent default initialization.
|
||||||
#define EVENT_INITALIZE_LASER true
|
#define EVENT_INITALIZE_LASER true
|
||||||
// Set laser to intensity level 0 = off, 255 = full. Return false if you have overridden the setting routine.
|
// Set laser to intensity level 0 = off, 255 = full. Return false if you have overridden the setting routine.
|
||||||
// with true the default solution will set it as digital value.
|
// with true the default solution will set it as digital value.
|
||||||
#define EVENT_SET_LASER(intensity) true
|
#define EVENT_SET_LASER(intensity) true
|
||||||
|
|
||||||
// Called to initalize cnc pins. Return false to prevent default initalization.
|
// Called to initialize CNC pins. Return false to prevent default initialization.
|
||||||
#define EVENT_INITALIZE_CNC true
|
#define EVENT_INITALIZE_CNC true
|
||||||
// Turn off spindle
|
// Turn off spindle
|
||||||
#define EVENT_SPINDLE_OFF true
|
#define EVENT_SPINDLE_OFF true
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -9,7 +9,7 @@
|
||||||
//#endif
|
//#endif
|
||||||
|
|
||||||
// Updates the temperature of all extruders and heated bed if it's time.
|
// Updates the temperature of all extruders and heated bed if it's time.
|
||||||
// Toggels the heater power if necessary.
|
// Toggles the heater power if necessary.
|
||||||
extern bool reportTempsensorError(); ///< Report defect sensors
|
extern bool reportTempsensorError(); ///< Report defect sensors
|
||||||
extern uint8_t manageMonitor;
|
extern uint8_t manageMonitor;
|
||||||
#define HTR_OFF 0
|
#define HTR_OFF 0
|
||||||
|
@ -25,7 +25,7 @@ extern uint8_t manageMonitor;
|
||||||
#define TEMPERATURE_CONTROLLER_FLAG_JAM 32 //< Indicates a jammed filament
|
#define TEMPERATURE_CONTROLLER_FLAG_JAM 32 //< Indicates a jammed filament
|
||||||
#define TEMPERATURE_CONTROLLER_FLAG_SLOWDOWN 64 //< Indicates a slowed down extruder
|
#define TEMPERATURE_CONTROLLER_FLAG_SLOWDOWN 64 //< Indicates a slowed down extruder
|
||||||
|
|
||||||
/** TemperatureController manages one heater-temperature sensore loop. You can have up to
|
/** TemperatureController manages one heater-temperature sensor loop. You can have up to
|
||||||
4 loops allowing pid/bang bang for up to 3 extruder and the heated bed.
|
4 loops allowing pid/bang bang for up to 3 extruder and the heated bed.
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
@ -35,12 +35,12 @@ public:
|
||||||
uint8_t pwmIndex; ///< pwm index for output control. 0-2 = Extruder, 3 = Fan, 4 = Heated Bed
|
uint8_t pwmIndex; ///< pwm index for output control. 0-2 = Extruder, 3 = Fan, 4 = Heated Bed
|
||||||
uint8_t sensorType; ///< Type of temperature sensor.
|
uint8_t sensorType; ///< Type of temperature sensor.
|
||||||
uint8_t sensorPin; ///< Pin to read extruder temperature.
|
uint8_t sensorPin; ///< Pin to read extruder temperature.
|
||||||
|
int8_t heatManager; ///< How is temperature controlled. 0 = on/off, 1 = PID-Control, 3 = dead time control
|
||||||
int16_t currentTemperature; ///< Current temperature value read from sensor.
|
int16_t currentTemperature; ///< Current temperature value read from sensor.
|
||||||
int16_t targetTemperature; ///< Target temperature value in units of sensor.
|
//int16_t targetTemperature; ///< Target temperature value in units of sensor.
|
||||||
float currentTemperatureC; ///< Current temperature in degC.
|
float currentTemperatureC; ///< Current temperature in degC.
|
||||||
float targetTemperatureC; ///< Target temperature in degC.
|
float targetTemperatureC; ///< Target temperature in degC.
|
||||||
uint32_t lastTemperatureUpdate; ///< Time in millis of the last temperature update.
|
uint32_t lastTemperatureUpdate; ///< Time in millis of the last temperature update.
|
||||||
int8_t heatManager; ///< How is temperature controled. 0 = on/off, 1 = PID-Control, 3 = deat time control
|
|
||||||
#if TEMP_PID
|
#if TEMP_PID
|
||||||
float tempIState; ///< Temp. var. for PID computation.
|
float tempIState; ///< Temp. var. for PID computation.
|
||||||
uint8_t pidDriveMax; ///< Used for windup in PID calculation.
|
uint8_t pidDriveMax; ///< Used for windup in PID calculation.
|
||||||
|
@ -77,6 +77,9 @@ public:
|
||||||
{
|
{
|
||||||
return flags & TEMPERATURE_CONTROLLER_FLAG_DECOUPLE_FULL;
|
return flags & TEMPERATURE_CONTROLLER_FLAG_DECOUPLE_FULL;
|
||||||
}
|
}
|
||||||
|
inline void removeErrorStates() {
|
||||||
|
flags &= ~(TEMPERATURE_CONTROLLER_FLAG_ALARM | TEMPERATURE_CONTROLLER_FLAG_SENSDEFECT | TEMPERATURE_CONTROLLER_FLAG_SENSDECOUPLED);
|
||||||
|
}
|
||||||
inline bool isDecoupleFullOrHold()
|
inline bool isDecoupleFullOrHold()
|
||||||
{
|
{
|
||||||
return flags & (TEMPERATURE_CONTROLLER_FLAG_DECOUPLE_FULL | TEMPERATURE_CONTROLLER_FLAG_DECOUPLE_HOLD);
|
return flags & (TEMPERATURE_CONTROLLER_FLAG_DECOUPLE_FULL | TEMPERATURE_CONTROLLER_FLAG_DECOUPLE_HOLD);
|
||||||
|
@ -122,6 +125,7 @@ public:
|
||||||
{
|
{
|
||||||
return flags & TEMPERATURE_CONTROLLER_FLAG_SENSDECOUPLED;
|
return flags & TEMPERATURE_CONTROLLER_FLAG_SENSDECOUPLED;
|
||||||
}
|
}
|
||||||
|
static void resetAllErrorStates();
|
||||||
#if EXTRUDER_JAM_CONTROL
|
#if EXTRUDER_JAM_CONTROL
|
||||||
inline bool isJammed()
|
inline bool isJammed()
|
||||||
{
|
{
|
||||||
|
|
|
@ -794,19 +794,19 @@ ISR(PWM_TIMER_VECTOR)
|
||||||
#if defined(EXT0_HEATER_PIN) && EXT0_HEATER_PIN > -1
|
#if defined(EXT0_HEATER_PIN) && EXT0_HEATER_PIN > -1
|
||||||
if((pwm_pos_set[0] = (pwm_pos[0] & HEATER_PWM_MASK)) > 0) WRITE(EXT0_HEATER_PIN,!HEATER_PINS_INVERTED);
|
if((pwm_pos_set[0] = (pwm_pos[0] & HEATER_PWM_MASK)) > 0) WRITE(EXT0_HEATER_PIN,!HEATER_PINS_INVERTED);
|
||||||
#endif
|
#endif
|
||||||
#if defined(EXT1_HEATER_PIN) && EXT1_HEATER_PIN > -1 && NUM_EXTRUDER > 1
|
#if defined(EXT1_HEATER_PIN) && EXT1_HEATER_PIN > -1 && NUM_EXTRUDER > 1 && !MIXING_EXTRUDER
|
||||||
if((pwm_pos_set[1] = (pwm_pos[1] & HEATER_PWM_MASK)) > 0) WRITE(EXT1_HEATER_PIN,!HEATER_PINS_INVERTED);
|
if((pwm_pos_set[1] = (pwm_pos[1] & HEATER_PWM_MASK)) > 0) WRITE(EXT1_HEATER_PIN,!HEATER_PINS_INVERTED);
|
||||||
#endif
|
#endif
|
||||||
#if defined(EXT2_HEATER_PIN) && EXT2_HEATER_PIN > -1 && NUM_EXTRUDER > 2
|
#if defined(EXT2_HEATER_PIN) && EXT2_HEATER_PIN > -1 && NUM_EXTRUDER > 2 && !MIXING_EXTRUDER
|
||||||
if((pwm_pos_set[2] = (pwm_pos[2] & HEATER_PWM_MASK)) > 0) WRITE(EXT2_HEATER_PIN,!HEATER_PINS_INVERTED);
|
if((pwm_pos_set[2] = (pwm_pos[2] & HEATER_PWM_MASK)) > 0) WRITE(EXT2_HEATER_PIN,!HEATER_PINS_INVERTED);
|
||||||
#endif
|
#endif
|
||||||
#if defined(EXT3_HEATER_PIN) && EXT3_HEATER_PIN > -1 && NUM_EXTRUDER > 3
|
#if defined(EXT3_HEATER_PIN) && EXT3_HEATER_PIN > -1 && NUM_EXTRUDER > 3 && !MIXING_EXTRUDER
|
||||||
if((pwm_pos_set[3] = (pwm_pos[3] & HEATER_PWM_MASK)) > 0) WRITE(EXT3_HEATER_PIN,!HEATER_PINS_INVERTED);
|
if((pwm_pos_set[3] = (pwm_pos[3] & HEATER_PWM_MASK)) > 0) WRITE(EXT3_HEATER_PIN,!HEATER_PINS_INVERTED);
|
||||||
#endif
|
#endif
|
||||||
#if defined(EXT4_HEATER_PIN) && EXT4_HEATER_PIN > -1 && NUM_EXTRUDER > 4
|
#if defined(EXT4_HEATER_PIN) && EXT4_HEATER_PIN > -1 && NUM_EXTRUDER > 4 && !MIXING_EXTRUDER
|
||||||
if((pwm_pos_set[4] = (pwm_pos[4] & HEATER_PWM_MASK)) > 0) WRITE(EXT4_HEATER_PIN,!HEATER_PINS_INVERTED);
|
if((pwm_pos_set[4] = (pwm_pos[4] & HEATER_PWM_MASK)) > 0) WRITE(EXT4_HEATER_PIN,!HEATER_PINS_INVERTED);
|
||||||
#endif
|
#endif
|
||||||
#if defined(EXT5_HEATER_PIN) && EXT5_HEATER_PIN > -1 && NUM_EXTRUDER > 5
|
#if defined(EXT5_HEATER_PIN) && EXT5_HEATER_PIN > -1 && NUM_EXTRUDER > 5 && !MIXING_EXTRUDER
|
||||||
if((pwm_pos_set[5] = (pwm_pos[5] & HEATER_PWM_MASK)) > 0) WRITE(EXT5_HEATER_PIN, !HEATER_PINS_INVERTED);
|
if((pwm_pos_set[5] = (pwm_pos[5] & HEATER_PWM_MASK)) > 0) WRITE(EXT5_HEATER_PIN, !HEATER_PINS_INVERTED);
|
||||||
#endif
|
#endif
|
||||||
#if HEATED_BED_HEATER_PIN > -1 && HAVE_HEATED_BED
|
#if HEATED_BED_HEATER_PIN > -1 && HAVE_HEATED_BED
|
||||||
|
@ -870,7 +870,7 @@ ISR(PWM_TIMER_VECTOR)
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
#if defined(EXT1_HEATER_PIN) && EXT1_HEATER_PIN > -1 && NUM_EXTRUDER > 1
|
#if defined(EXT1_HEATER_PIN) && EXT1_HEATER_PIN > -1 && NUM_EXTRUDER > 1 && !MIXING_EXTRUDER
|
||||||
#if PDM_FOR_EXTRUDER
|
#if PDM_FOR_EXTRUDER
|
||||||
pulseDensityModulate(EXT1_HEATER_PIN, pwm_pos[1], pwm_pos_set[1], HEATER_PINS_INVERTED);
|
pulseDensityModulate(EXT1_HEATER_PIN, pwm_pos[1], pwm_pos_set[1], HEATER_PINS_INVERTED);
|
||||||
#else
|
#else
|
||||||
|
@ -884,7 +884,7 @@ ISR(PWM_TIMER_VECTOR)
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
#if defined(EXT2_HEATER_PIN) && EXT2_HEATER_PIN > -1 && NUM_EXTRUDER > 2
|
#if defined(EXT2_HEATER_PIN) && EXT2_HEATER_PIN > -1 && NUM_EXTRUDER > 2 && !MIXING_EXTRUDER
|
||||||
#if PDM_FOR_EXTRUDER
|
#if PDM_FOR_EXTRUDER
|
||||||
pulseDensityModulate(EXT2_HEATER_PIN, pwm_pos[2], pwm_pos_set[2], HEATER_PINS_INVERTED);
|
pulseDensityModulate(EXT2_HEATER_PIN, pwm_pos[2], pwm_pos_set[2], HEATER_PINS_INVERTED);
|
||||||
#else
|
#else
|
||||||
|
@ -898,7 +898,7 @@ ISR(PWM_TIMER_VECTOR)
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
#if defined(EXT3_HEATER_PIN) && EXT3_HEATER_PIN>-1 && NUM_EXTRUDER > 3
|
#if defined(EXT3_HEATER_PIN) && EXT3_HEATER_PIN>-1 && NUM_EXTRUDER > 3 && !MIXING_EXTRUDER
|
||||||
#if PDM_FOR_EXTRUDER
|
#if PDM_FOR_EXTRUDER
|
||||||
pulseDensityModulate(EXT3_HEATER_PIN, pwm_pos[3], pwm_pos_set[3], HEATER_PINS_INVERTED);
|
pulseDensityModulate(EXT3_HEATER_PIN, pwm_pos[3], pwm_pos_set[3], HEATER_PINS_INVERTED);
|
||||||
#else
|
#else
|
||||||
|
@ -912,7 +912,7 @@ ISR(PWM_TIMER_VECTOR)
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
#if defined(EXT4_HEATER_PIN) && EXT4_HEATER_PIN > -1 && NUM_EXTRUDER > 4
|
#if defined(EXT4_HEATER_PIN) && EXT4_HEATER_PIN > -1 && NUM_EXTRUDER > 4 && !MIXING_EXTRUDER
|
||||||
#if PDM_FOR_EXTRUDER
|
#if PDM_FOR_EXTRUDER
|
||||||
pulseDensityModulate(EXT4_HEATER_PIN, pwm_pos[4], pwm_pos_set[4], HEATER_PINS_INVERTED);
|
pulseDensityModulate(EXT4_HEATER_PIN, pwm_pos[4], pwm_pos_set[4], HEATER_PINS_INVERTED);
|
||||||
#else
|
#else
|
||||||
|
@ -926,7 +926,7 @@ ISR(PWM_TIMER_VECTOR)
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
#if defined(EXT5_HEATER_PIN) && EXT5_HEATER_PIN>-1 && NUM_EXTRUDER > 5
|
#if defined(EXT5_HEATER_PIN) && EXT5_HEATER_PIN>-1 && NUM_EXTRUDER > 5 && !MIXING_EXTRUDER
|
||||||
#if PDM_FOR_EXTRUDER
|
#if PDM_FOR_EXTRUDER
|
||||||
pulseDensityModulate(EXT5_HEATER_PIN, pwm_pos[5], pwm_pos_set[5], HEATER_PINS_INVERTED);
|
pulseDensityModulate(EXT5_HEATER_PIN, pwm_pos[5], pwm_pos_set[5], HEATER_PINS_INVERTED);
|
||||||
#else
|
#else
|
||||||
|
|
|
@ -713,7 +713,7 @@ public:
|
||||||
WDTCSR = (1<<WDCE) | (1<<WDE); // wdt FIX for arduino mega boards
|
WDTCSR = (1<<WDCE) | (1<<WDE); // wdt FIX for arduino mega boards
|
||||||
WDTCSR = (1<<WDIE) | (1<<WDP3);
|
WDTCSR = (1<<WDIE) | (1<<WDP3);
|
||||||
#else
|
#else
|
||||||
wdt_enable(WDTO_1S);
|
wdt_enable(WDTO_4S);
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
inline static void stopWatchdog()
|
inline static void stopWatchdog()
|
||||||
|
|
|
@ -39,9 +39,10 @@ unsigned long Printer::maxPrintAccelerationStepsPerSquareSecond[E_AXIS_ARRAY];
|
||||||
unsigned long Printer::maxTravelAccelerationStepsPerSquareSecond[E_AXIS_ARRAY];
|
unsigned long Printer::maxTravelAccelerationStepsPerSquareSecond[E_AXIS_ARRAY];
|
||||||
#endif
|
#endif
|
||||||
#if NONLINEAR_SYSTEM
|
#if NONLINEAR_SYSTEM
|
||||||
long Printer::currentDeltaPositionSteps[E_TOWER_ARRAY];
|
long Printer::currentNonlinearPositionSteps[E_TOWER_ARRAY];
|
||||||
uint8_t lastMoveID = 0; // Last move ID
|
uint8_t lastMoveID = 0; // Last move ID
|
||||||
#else
|
#endif
|
||||||
|
#if DRIVE_SYSTEM != DELTA
|
||||||
int32_t Printer::zCorrectionStepsIncluded = 0;
|
int32_t Printer::zCorrectionStepsIncluded = 0;
|
||||||
#endif
|
#endif
|
||||||
int16_t Printer::zBabystepsMissing = 0;
|
int16_t Printer::zBabystepsMissing = 0;
|
||||||
|
@ -127,7 +128,7 @@ float Printer::zLength;
|
||||||
float Printer::zMin;
|
float Printer::zMin;
|
||||||
float Printer::feedrate; ///< Last requested feedrate.
|
float Printer::feedrate; ///< Last requested feedrate.
|
||||||
int Printer::feedrateMultiply; ///< Multiplier for feedrate in percent (factor 1 = 100)
|
int Printer::feedrateMultiply; ///< Multiplier for feedrate in percent (factor 1 = 100)
|
||||||
unsigned int Printer::extrudeMultiply; ///< Flow multiplier in percdent (factor 1 = 100)
|
unsigned int Printer::extrudeMultiply; ///< Flow multiplier in percent (factor 1 = 100)
|
||||||
float Printer::maxJerk; ///< Maximum allowed jerk in mm/s
|
float Printer::maxJerk; ///< Maximum allowed jerk in mm/s
|
||||||
#if DRIVE_SYSTEM != DELTA
|
#if DRIVE_SYSTEM != DELTA
|
||||||
float Printer::maxZJerk; ///< Maximum allowed jerk in z direction in mm/s
|
float Printer::maxZJerk; ///< Maximum allowed jerk in z direction in mm/s
|
||||||
|
@ -135,7 +136,7 @@ float Printer::maxZJerk; ///< Maximum allowed jerk in z direct
|
||||||
float Printer::offsetX; ///< X-offset for different extruder positions.
|
float Printer::offsetX; ///< X-offset for different extruder positions.
|
||||||
float Printer::offsetY; ///< Y-offset for different extruder positions.
|
float Printer::offsetY; ///< Y-offset for different extruder positions.
|
||||||
float Printer::offsetZ; ///< Z-offset for different extruder positions.
|
float Printer::offsetZ; ///< Z-offset for different extruder positions.
|
||||||
speed_t Printer::vMaxReached; ///< Maximumu reached speed
|
speed_t Printer::vMaxReached; ///< Maximum reached speed
|
||||||
uint32_t Printer::msecondsPrinting; ///< Milliseconds of printing time (means time with heated extruder)
|
uint32_t Printer::msecondsPrinting; ///< Milliseconds of printing time (means time with heated extruder)
|
||||||
float Printer::filamentPrinted; ///< mm of filament printed since counting started
|
float Printer::filamentPrinted; ///< mm of filament printed since counting started
|
||||||
#if ENABLE_BACKLASH_COMPENSATION
|
#if ENABLE_BACKLASH_COMPENSATION
|
||||||
|
@ -144,12 +145,12 @@ float Printer::backlashY;
|
||||||
float Printer::backlashZ;
|
float Printer::backlashZ;
|
||||||
uint8_t Printer::backlashDir;
|
uint8_t Printer::backlashDir;
|
||||||
#endif
|
#endif
|
||||||
float Printer::memoryX;
|
float Printer::memoryX = IGNORE_COORDINATE;
|
||||||
float Printer::memoryY;
|
float Printer::memoryY = IGNORE_COORDINATE;
|
||||||
float Printer::memoryZ;
|
float Printer::memoryZ = IGNORE_COORDINATE;
|
||||||
float Printer::memoryE;
|
float Printer::memoryE = IGNORE_COORDINATE;
|
||||||
float Printer::memoryF = -1;
|
float Printer::memoryF = -1;
|
||||||
#if GANTRY
|
#if GANTRY && !defined(FAST_COREXYZ)
|
||||||
int8_t Printer::motorX;
|
int8_t Printer::motorX;
|
||||||
int8_t Printer::motorYorZ;
|
int8_t Printer::motorYorZ;
|
||||||
#endif
|
#endif
|
||||||
|
@ -212,8 +213,13 @@ void Endstops::update() {
|
||||||
newRead |= ENDSTOP_Z2_MINMAX_ID;
|
newRead |= ENDSTOP_Z2_MINMAX_ID;
|
||||||
#endif
|
#endif
|
||||||
#if FEATURE_Z_PROBE
|
#if FEATURE_Z_PROBE
|
||||||
|
#if Z_PROBE_PIN == Z_MIN_PIN && MIN_HARDWARE_ENDSTOP_Z
|
||||||
|
if(newRead & ENDSTOP_Z_MIN_ID) // prevent different results causing confusion
|
||||||
|
newRead |= ENDSTOP_Z_PROBE_ID;
|
||||||
|
#else
|
||||||
if(Z_PROBE_ON_HIGH ? READ(Z_PROBE_PIN) : !READ(Z_PROBE_PIN))
|
if(Z_PROBE_ON_HIGH ? READ(Z_PROBE_PIN) : !READ(Z_PROBE_PIN))
|
||||||
newRead |= ENDSTOP_Z_PROBE_ID;
|
newRead |= ENDSTOP_Z_PROBE_ID;
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
lastRead &= newRead;
|
lastRead &= newRead;
|
||||||
#ifdef EXTENDED_ENDSTOPS
|
#ifdef EXTENDED_ENDSTOPS
|
||||||
|
@ -230,9 +236,7 @@ void Endstops::update() {
|
||||||
lastState2 = lastRead2;
|
lastState2 = lastRead2;
|
||||||
accumulator2 |= lastState2;
|
accumulator2 |= lastState2;
|
||||||
#endif
|
#endif
|
||||||
#ifdef DEBUG_ENDSTOPS
|
if (Printer::debugEndStop()) Endstops::report();
|
||||||
report();
|
|
||||||
#endif
|
|
||||||
} else {
|
} else {
|
||||||
lastState = lastRead;
|
lastState = lastRead;
|
||||||
#ifdef EXTENDED_ENDSTOPS
|
#ifdef EXTENDED_ENDSTOPS
|
||||||
|
@ -287,32 +291,39 @@ void Printer::constrainDestinationCoords()
|
||||||
{
|
{
|
||||||
if(isNoDestinationCheck()) return;
|
if(isNoDestinationCheck()) return;
|
||||||
#if min_software_endstop_x
|
#if min_software_endstop_x
|
||||||
if (destinationSteps[X_AXIS] < xMinSteps) Printer::destinationSteps[X_AXIS] = Printer::xMinSteps;
|
if (Printer::destinationSteps[X_AXIS] < xMinSteps) Printer::destinationSteps[X_AXIS] = Printer::xMinSteps;
|
||||||
#endif
|
#endif
|
||||||
#if min_software_endstop_y
|
#if min_software_endstop_y
|
||||||
if (destinationSteps[Y_AXIS] < yMinSteps) Printer::destinationSteps[Y_AXIS] = Printer::yMinSteps;
|
if (Printer::destinationSteps[Y_AXIS] < yMinSteps) Printer::destinationSteps[Y_AXIS] = Printer::yMinSteps;
|
||||||
#endif
|
#endif
|
||||||
#if min_software_endstop_z
|
#if min_software_endstop_z
|
||||||
if (isAutolevelActive() == false && destinationSteps[Z_AXIS] < zMinSteps && !isZProbingActive()) Printer::destinationSteps[Z_AXIS] = Printer::zMinSteps;
|
if (isAutolevelActive() == false && Printer::destinationSteps[Z_AXIS] < zMinSteps && !isZProbingActive()) Printer::destinationSteps[Z_AXIS] = Printer::zMinSteps;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if max_software_endstop_x
|
#if max_software_endstop_x
|
||||||
if (destinationSteps[X_AXIS] > Printer::xMaxSteps) Printer::destinationSteps[X_AXIS] = Printer::xMaxSteps;
|
if (Printer::destinationSteps[X_AXIS] > Printer::xMaxSteps) Printer::destinationSteps[X_AXIS] = Printer::xMaxSteps;
|
||||||
#endif
|
#endif
|
||||||
#if max_software_endstop_y
|
#if max_software_endstop_y
|
||||||
if (destinationSteps[Y_AXIS] > Printer::yMaxSteps) Printer::destinationSteps[Y_AXIS] = Printer::yMaxSteps;
|
if (Printer::destinationSteps[Y_AXIS] > Printer::yMaxSteps) Printer::destinationSteps[Y_AXIS] = Printer::yMaxSteps;
|
||||||
#endif
|
#endif
|
||||||
#if max_software_endstop_z
|
#if max_software_endstop_z
|
||||||
if (isAutolevelActive() == false && destinationSteps[Z_AXIS] > Printer::zMaxSteps && !isZProbingActive()) Printer::destinationSteps[Z_AXIS] = Printer::zMaxSteps;
|
if (isAutolevelActive() == false && Printer::destinationSteps[Z_AXIS] > Printer::zMaxSteps && !isZProbingActive()) Printer::destinationSteps[Z_AXIS] = Printer::zMaxSteps;
|
||||||
#endif
|
#endif
|
||||||
|
EVENT_CONTRAIN_DESTINATION_COORDINATES
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
void Printer::setDebugLevel(uint8_t newLevel) {
|
void Printer::setDebugLevel(uint8_t newLevel) {
|
||||||
|
if(newLevel != debugLevel) {
|
||||||
debugLevel = newLevel;
|
debugLevel = newLevel;
|
||||||
|
if(debugDryrun()) {
|
||||||
|
// Disable all heaters in case they were on
|
||||||
|
Extruder::disableAllHeater();
|
||||||
|
}
|
||||||
|
}
|
||||||
Com::printFLN(PSTR("DebugLevel:"),(int)newLevel);
|
Com::printFLN(PSTR("DebugLevel:"),(int)newLevel);
|
||||||
}
|
}
|
||||||
void Printer::toggleEcho() {
|
void Printer::toggleEcho() {
|
||||||
setDebugLevel(debugLevel ^ 32);
|
setDebugLevel(debugLevel ^ 1);
|
||||||
}
|
}
|
||||||
void Printer::toggleInfo() {
|
void Printer::toggleInfo() {
|
||||||
setDebugLevel(debugLevel ^ 2);
|
setDebugLevel(debugLevel ^ 2);
|
||||||
|
@ -329,6 +340,9 @@ void Printer::toggleCommunication() {
|
||||||
void Printer::toggleNoMoves() {
|
void Printer::toggleNoMoves() {
|
||||||
setDebugLevel(debugLevel ^ 32);
|
setDebugLevel(debugLevel ^ 32);
|
||||||
}
|
}
|
||||||
|
void Printer::toggleEndStop() {
|
||||||
|
setDebugLevel(debugLevel ^ 64);
|
||||||
|
}
|
||||||
|
|
||||||
bool Printer::isPositionAllowed(float x,float y,float z)
|
bool Printer::isPositionAllowed(float x,float y,float z)
|
||||||
{
|
{
|
||||||
|
@ -390,9 +404,13 @@ void Printer::reportPrinterMode() {
|
||||||
}
|
}
|
||||||
void Printer::updateDerivedParameter()
|
void Printer::updateDerivedParameter()
|
||||||
{
|
{
|
||||||
#if DRIVE_SYSTEM == DELTA
|
#if NONLINEAR_SYSTEM
|
||||||
travelMovesPerSecond = EEPROM::deltaSegmentsPerSecondMove();
|
travelMovesPerSecond = EEPROM::deltaSegmentsPerSecondMove();
|
||||||
printMovesPerSecond = EEPROM::deltaSegmentsPerSecondPrint();
|
printMovesPerSecond = EEPROM::deltaSegmentsPerSecondPrint();
|
||||||
|
if(travelMovesPerSecond < 15) travelMovesPerSecond = 15; // lower values make no sense and can cause serious problems
|
||||||
|
if(printMovesPerSecond < 15) printMovesPerSecond = 15;
|
||||||
|
#endif
|
||||||
|
#if DRIVE_SYSTEM == DELTA
|
||||||
axisStepsPerMM[X_AXIS] = axisStepsPerMM[Y_AXIS] = axisStepsPerMM[Z_AXIS];
|
axisStepsPerMM[X_AXIS] = axisStepsPerMM[Y_AXIS] = axisStepsPerMM[Z_AXIS];
|
||||||
maxAccelerationMMPerSquareSecond[X_AXIS] = maxAccelerationMMPerSquareSecond[Y_AXIS] = maxAccelerationMMPerSquareSecond[Z_AXIS];
|
maxAccelerationMMPerSquareSecond[X_AXIS] = maxAccelerationMMPerSquareSecond[Y_AXIS] = maxAccelerationMMPerSquareSecond[Z_AXIS];
|
||||||
homingFeedrate[X_AXIS] = homingFeedrate[Y_AXIS] = homingFeedrate[Z_AXIS];
|
homingFeedrate[X_AXIS] = homingFeedrate[Y_AXIS] = homingFeedrate[Z_AXIS];
|
||||||
|
@ -489,6 +507,8 @@ void Printer::updateDerivedParameter()
|
||||||
minimumSpeed = accel * sqrt(2.0f / (axisStepsPerMM[X_AXIS]*accel));
|
minimumSpeed = accel * sqrt(2.0f / (axisStepsPerMM[X_AXIS]*accel));
|
||||||
accel = RMath::max(maxAccelerationMMPerSquareSecond[Z_AXIS], maxTravelAccelerationMMPerSquareSecond[Z_AXIS]);
|
accel = RMath::max(maxAccelerationMMPerSquareSecond[Z_AXIS], maxTravelAccelerationMMPerSquareSecond[Z_AXIS]);
|
||||||
minimumZSpeed = accel * sqrt(2.0f / (axisStepsPerMM[Z_AXIS] * accel));
|
minimumZSpeed = accel * sqrt(2.0f / (axisStepsPerMM[Z_AXIS] * accel));
|
||||||
|
//Com::printFLN(PSTR("Minimum Speed:"),minimumSpeed);
|
||||||
|
//Com::printFLN(PSTR("Minimum Speed Z:"),minimumZSpeed);
|
||||||
#if DISTORTION_CORRECTION
|
#if DISTORTION_CORRECTION
|
||||||
distortion.updateDerived();
|
distortion.updateDerived();
|
||||||
#endif // DISTORTION_CORRECTION
|
#endif // DISTORTION_CORRECTION
|
||||||
|
@ -518,7 +538,7 @@ void Printer::kill(uint8_t only_steppers)
|
||||||
Extruder::disableAllExtruderMotors();
|
Extruder::disableAllExtruderMotors();
|
||||||
if(!only_steppers)
|
if(!only_steppers)
|
||||||
{
|
{
|
||||||
for(uint8_t i = 0; i < NUM_TEMPERATURE_LOOPS; i++)
|
for(uint8_t i = 0; i < NUM_EXTRUDER; i++)
|
||||||
Extruder::setTemperatureForExtruder(0, i);
|
Extruder::setTemperatureForExtruder(0, i);
|
||||||
Extruder::setHeatedBedTemperature(0);
|
Extruder::setHeatedBedTemperature(0);
|
||||||
UI_STATUS_UPD_F(Com::translatedF(UI_TEXT_STANDBY_ID));
|
UI_STATUS_UPD_F(Com::translatedF(UI_TEXT_STANDBY_ID));
|
||||||
|
@ -537,6 +557,7 @@ void Printer::kill(uint8_t only_steppers)
|
||||||
#endif
|
#endif
|
||||||
pwm_pos[PWM_BOARD_FAN] = 0;
|
pwm_pos[PWM_BOARD_FAN] = 0;
|
||||||
#endif // FAN_BOARD_PIN
|
#endif // FAN_BOARD_PIN
|
||||||
|
Commands::printTemperatures(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Printer::updateAdvanceFlags()
|
void Printer::updateAdvanceFlags()
|
||||||
|
@ -571,7 +592,7 @@ uint8_t Printer::moveTo(float x,float y,float z,float e,float f)
|
||||||
feedrate = f;
|
feedrate = f;
|
||||||
#if NONLINEAR_SYSTEM
|
#if NONLINEAR_SYSTEM
|
||||||
// Disable software endstop or we get wrong distances when length < real length
|
// Disable software endstop or we get wrong distances when length < real length
|
||||||
if (!PrintLine::queueDeltaMove(ALWAYS_CHECK_ENDSTOPS, true, false))
|
if (!PrintLine::queueNonlinearMove(ALWAYS_CHECK_ENDSTOPS, true, false))
|
||||||
{
|
{
|
||||||
Com::printWarningFLN(PSTR("moveTo / queueDeltaMove returns error"));
|
Com::printWarningFLN(PSTR("moveTo / queueDeltaMove returns error"));
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -598,16 +619,7 @@ uint8_t Printer::moveToReal(float x, float y, float z, float e, float f,bool pat
|
||||||
z = currentPosition[Z_AXIS];
|
z = currentPosition[Z_AXIS];
|
||||||
else
|
else
|
||||||
currentPosition[Z_AXIS] = z;
|
currentPosition[Z_AXIS] = z;
|
||||||
#if FEATURE_AUTOLEVEL
|
|
||||||
if(isAutolevelActive())
|
|
||||||
transformToPrinter(x + Printer::offsetX, y + Printer::offsetY, z + Printer::offsetZ, x, y, z);
|
transformToPrinter(x + Printer::offsetX, y + Printer::offsetY, z + Printer::offsetZ, x, y, z);
|
||||||
else
|
|
||||||
#endif // FEATURE_AUTOLEVEL
|
|
||||||
{
|
|
||||||
x += Printer::offsetX;
|
|
||||||
y += Printer::offsetY;
|
|
||||||
z += Printer::offsetZ;
|
|
||||||
}
|
|
||||||
// There was conflicting use of IGNOR_COORDINATE
|
// There was conflicting use of IGNOR_COORDINATE
|
||||||
destinationSteps[X_AXIS] = static_cast<int32_t>(floor(x * axisStepsPerMM[X_AXIS] + 0.5f));
|
destinationSteps[X_AXIS] = static_cast<int32_t>(floor(x * axisStepsPerMM[X_AXIS] + 0.5f));
|
||||||
destinationSteps[Y_AXIS] = static_cast<int32_t>(floor(y * axisStepsPerMM[Y_AXIS] + 0.5f));
|
destinationSteps[Y_AXIS] = static_cast<int32_t>(floor(y * axisStepsPerMM[Y_AXIS] + 0.5f));
|
||||||
|
@ -622,7 +634,7 @@ uint8_t Printer::moveToReal(float x, float y, float z, float e, float f,bool pat
|
||||||
feedrate = f;
|
feedrate = f;
|
||||||
|
|
||||||
#if NONLINEAR_SYSTEM
|
#if NONLINEAR_SYSTEM
|
||||||
if (!PrintLine::queueDeltaMove(ALWAYS_CHECK_ENDSTOPS, pathOptimize, true))
|
if (!PrintLine::queueNonlinearMove(ALWAYS_CHECK_ENDSTOPS, pathOptimize, true))
|
||||||
{
|
{
|
||||||
Com::printWarningFLN(PSTR("moveToReal / queueDeltaMove returns error"));
|
Com::printWarningFLN(PSTR("moveToReal / queueDeltaMove returns error"));
|
||||||
SHOWM(x);
|
SHOWM(x);
|
||||||
|
@ -653,11 +665,8 @@ void Printer::updateCurrentPosition(bool copyLastCmd)
|
||||||
#else
|
#else
|
||||||
currentPosition[Z_AXIS] = static_cast<float>(currentPositionSteps[Z_AXIS] - zCorrectionStepsIncluded) * invAxisStepsPerMM[Z_AXIS];
|
currentPosition[Z_AXIS] = static_cast<float>(currentPositionSteps[Z_AXIS] - zCorrectionStepsIncluded) * invAxisStepsPerMM[Z_AXIS];
|
||||||
#endif
|
#endif
|
||||||
#if FEATURE_AUTOLEVEL
|
|
||||||
if(isAutolevelActive())
|
|
||||||
transformFromPrinter(currentPosition[X_AXIS], currentPosition[Y_AXIS], currentPosition[Z_AXIS],
|
transformFromPrinter(currentPosition[X_AXIS], currentPosition[Y_AXIS], currentPosition[Z_AXIS],
|
||||||
currentPosition[X_AXIS], currentPosition[Y_AXIS], currentPosition[Z_AXIS]);
|
currentPosition[X_AXIS], currentPosition[Y_AXIS], currentPosition[Z_AXIS]);
|
||||||
#endif // FEATURE_AUTOLEVEL
|
|
||||||
currentPosition[X_AXIS] -= Printer::offsetX;
|
currentPosition[X_AXIS] -= Printer::offsetX;
|
||||||
currentPosition[Y_AXIS] -= Printer::offsetY;
|
currentPosition[Y_AXIS] -= Printer::offsetY;
|
||||||
currentPosition[Z_AXIS] -= Printer::offsetZ;
|
currentPosition[Z_AXIS] -= Printer::offsetZ;
|
||||||
|
@ -674,7 +683,7 @@ void Printer::updateCurrentPosition(bool copyLastCmd)
|
||||||
|
|
||||||
For the computation of the destination, the following facts are considered:
|
For the computation of the destination, the following facts are considered:
|
||||||
- Are units inches or mm.
|
- Are units inches or mm.
|
||||||
- Reltive or absolute positioning with special case only extruder relative.
|
- Relative or absolute positioning with special case only extruder relative.
|
||||||
- Offset in x and y direction for multiple extruder support.
|
- Offset in x and y direction for multiple extruder support.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -705,18 +714,7 @@ uint8_t Printer::setDestinationStepsFromGCode(GCode *com)
|
||||||
if(com->hasY()) currentPosition[Y_AXIS] = (lastCmdPos[Y_AXIS] += convertToMM(com->Y));
|
if(com->hasY()) currentPosition[Y_AXIS] = (lastCmdPos[Y_AXIS] += convertToMM(com->Y));
|
||||||
if(com->hasZ()) currentPosition[Z_AXIS] = (lastCmdPos[Z_AXIS] += convertToMM(com->Z));
|
if(com->hasZ()) currentPosition[Z_AXIS] = (lastCmdPos[Z_AXIS] += convertToMM(com->Z));
|
||||||
}
|
}
|
||||||
#if FEATURE_AUTOLEVEL
|
|
||||||
if(isAutolevelActive())
|
|
||||||
{
|
|
||||||
transformToPrinter(lastCmdPos[X_AXIS] + Printer::offsetX, lastCmdPos[Y_AXIS] + Printer::offsetY, lastCmdPos[Z_AXIS] + Printer::offsetZ, x, y, z);
|
transformToPrinter(lastCmdPos[X_AXIS] + Printer::offsetX, lastCmdPos[Y_AXIS] + Printer::offsetY, lastCmdPos[Z_AXIS] + Printer::offsetZ, x, y, z);
|
||||||
}
|
|
||||||
else
|
|
||||||
#endif // FEATURE_AUTOLEVEL
|
|
||||||
{
|
|
||||||
x = lastCmdPos[X_AXIS] + Printer::offsetX;
|
|
||||||
y = lastCmdPos[Y_AXIS] + Printer::offsetY;
|
|
||||||
z = lastCmdPos[Z_AXIS] + Printer::offsetZ;
|
|
||||||
}
|
|
||||||
destinationSteps[X_AXIS] = static_cast<int32_t>(floor(x * axisStepsPerMM[X_AXIS] + 0.5f));
|
destinationSteps[X_AXIS] = static_cast<int32_t>(floor(x * axisStepsPerMM[X_AXIS] + 0.5f));
|
||||||
destinationSteps[Y_AXIS] = static_cast<int32_t>(floor(y * axisStepsPerMM[Y_AXIS] + 0.5f));
|
destinationSteps[Y_AXIS] = static_cast<int32_t>(floor(y * axisStepsPerMM[Y_AXIS] + 0.5f));
|
||||||
destinationSteps[Z_AXIS] = static_cast<int32_t>(floor(z * axisStepsPerMM[Z_AXIS] + 0.5f));
|
destinationSteps[Z_AXIS] = static_cast<int32_t>(floor(z * axisStepsPerMM[Z_AXIS] + 0.5f));
|
||||||
|
@ -831,7 +829,7 @@ void Printer::setup()
|
||||||
SET_OUTPUT(X_STEP_PIN);
|
SET_OUTPUT(X_STEP_PIN);
|
||||||
SET_OUTPUT(Y_STEP_PIN);
|
SET_OUTPUT(Y_STEP_PIN);
|
||||||
SET_OUTPUT(Z_STEP_PIN);
|
SET_OUTPUT(Z_STEP_PIN);
|
||||||
|
endXYZSteps();
|
||||||
//Initialize Dir Pins
|
//Initialize Dir Pins
|
||||||
#if X_DIR_PIN > -1
|
#if X_DIR_PIN > -1
|
||||||
SET_OUTPUT(X_DIR_PIN);
|
SET_OUTPUT(X_DIR_PIN);
|
||||||
|
@ -856,7 +854,7 @@ void Printer::setup()
|
||||||
SET_OUTPUT(Z_ENABLE_PIN);
|
SET_OUTPUT(Z_ENABLE_PIN);
|
||||||
WRITE(Z_ENABLE_PIN, !Z_ENABLE_ON);
|
WRITE(Z_ENABLE_PIN, !Z_ENABLE_ON);
|
||||||
#endif
|
#endif
|
||||||
#if FEATURE_TWO_XSTEPPER
|
#if FEATURE_TWO_XSTEPPER || DUAL_X_AXIS
|
||||||
SET_OUTPUT(X2_STEP_PIN);
|
SET_OUTPUT(X2_STEP_PIN);
|
||||||
SET_OUTPUT(X2_DIR_PIN);
|
SET_OUTPUT(X2_DIR_PIN);
|
||||||
#if X2_ENABLE_PIN > -1
|
#if X2_ENABLE_PIN > -1
|
||||||
|
@ -1063,7 +1061,7 @@ void Printer::setup()
|
||||||
CNCDriver::initialize();
|
CNCDriver::initialize();
|
||||||
#endif // defined
|
#endif // defined
|
||||||
|
|
||||||
#if GANTRY
|
#if GANTRY && !defined(FAST_COREXYZ)
|
||||||
Printer::motorX = 0;
|
Printer::motorX = 0;
|
||||||
Printer::motorYorZ = 0;
|
Printer::motorYorZ = 0;
|
||||||
#endif
|
#endif
|
||||||
|
@ -1110,7 +1108,7 @@ void Printer::setup()
|
||||||
xMin = X_MIN_POS;
|
xMin = X_MIN_POS;
|
||||||
yMin = Y_MIN_POS;
|
yMin = Y_MIN_POS;
|
||||||
zMin = Z_MIN_POS;
|
zMin = Z_MIN_POS;
|
||||||
#if NONLINEAR_SYSTEM
|
#if DRIVE_SYSTEM == DELTA
|
||||||
radius0 = ROD_RADIUS;
|
radius0 = ROD_RADIUS;
|
||||||
#endif
|
#endif
|
||||||
#if ENABLE_BACKLASH_COMPENSATION
|
#if ENABLE_BACKLASH_COMPENSATION
|
||||||
|
@ -1147,7 +1145,7 @@ void Printer::setup()
|
||||||
HAL::setupTimer();
|
HAL::setupTimer();
|
||||||
|
|
||||||
#if NONLINEAR_SYSTEM
|
#if NONLINEAR_SYSTEM
|
||||||
transformCartesianStepsToDeltaSteps(Printer::currentPositionSteps, Printer::currentDeltaPositionSteps);
|
transformCartesianStepsToDeltaSteps(Printer::currentPositionSteps, Printer::currentNonlinearPositionSteps);
|
||||||
|
|
||||||
#if DELTA_HOME_ON_POWER
|
#if DELTA_HOME_ON_POWER
|
||||||
homeAxis(true,true,true);
|
homeAxis(true,true,true);
|
||||||
|
@ -1242,7 +1240,7 @@ void Printer::deltaMoveToTopEndstops(float feedrate)
|
||||||
Printer::stepsRemainingAtYHit = -1;
|
Printer::stepsRemainingAtYHit = -1;
|
||||||
Printer::stepsRemainingAtZHit = -1;
|
Printer::stepsRemainingAtZHit = -1;
|
||||||
setHoming(true);
|
setHoming(true);
|
||||||
transformCartesianStepsToDeltaSteps(currentPositionSteps, currentDeltaPositionSteps);
|
transformCartesianStepsToDeltaSteps(currentPositionSteps, currentNonlinearPositionSteps);
|
||||||
PrintLine::moveRelativeDistanceInSteps(0, 0, (zMaxSteps + EEPROM::deltaDiagonalRodLength()*axisStepsPerMM[Z_AXIS]) * 1.5, 0, feedrate, true, true);
|
PrintLine::moveRelativeDistanceInSteps(0, 0, (zMaxSteps + EEPROM::deltaDiagonalRodLength()*axisStepsPerMM[Z_AXIS]) * 1.5, 0, feedrate, true, true);
|
||||||
offsetX = offsetY = offsetZ = 0;
|
offsetX = offsetY = offsetZ = 0;
|
||||||
setHoming(false);
|
setHoming(false);
|
||||||
|
@ -1250,7 +1248,7 @@ void Printer::deltaMoveToTopEndstops(float feedrate)
|
||||||
void Printer::homeXAxis()
|
void Printer::homeXAxis()
|
||||||
{
|
{
|
||||||
destinationSteps[X_AXIS] = 0;
|
destinationSteps[X_AXIS] = 0;
|
||||||
if (!PrintLine::queueDeltaMove(true,false,false))
|
if (!PrintLine::queueNonlinearMove(true,false,false))
|
||||||
{
|
{
|
||||||
Com::printWarningFLN(PSTR("homeXAxis / queueDeltaMove returns error"));
|
Com::printWarningFLN(PSTR("homeXAxis / queueDeltaMove returns error"));
|
||||||
}
|
}
|
||||||
|
@ -1258,7 +1256,7 @@ void Printer::homeXAxis()
|
||||||
void Printer::homeYAxis()
|
void Printer::homeYAxis()
|
||||||
{
|
{
|
||||||
Printer::destinationSteps[Y_AXIS] = 0;
|
Printer::destinationSteps[Y_AXIS] = 0;
|
||||||
if (!PrintLine::queueDeltaMove(true,false,false))
|
if (!PrintLine::queueNonlinearMove(true,false,false))
|
||||||
{
|
{
|
||||||
Com::printWarningFLN(PSTR("homeYAxis / queueDeltaMove returns error"));
|
Com::printWarningFLN(PSTR("homeYAxis / queueDeltaMove returns error"));
|
||||||
}
|
}
|
||||||
|
@ -1323,10 +1321,10 @@ void Printer::homeZAxis() // Delta z homing
|
||||||
currentPositionSteps[X_AXIS] = 0; // here we should be
|
currentPositionSteps[X_AXIS] = 0; // here we should be
|
||||||
currentPositionSteps[Y_AXIS] = 0;
|
currentPositionSteps[Y_AXIS] = 0;
|
||||||
currentPositionSteps[Z_AXIS] = zMaxSteps;
|
currentPositionSteps[Z_AXIS] = zMaxSteps;
|
||||||
transformCartesianStepsToDeltaSteps(currentPositionSteps,currentDeltaPositionSteps);
|
transformCartesianStepsToDeltaSteps(currentPositionSteps,currentNonlinearPositionSteps);
|
||||||
currentDeltaPositionSteps[A_TOWER] -= dx;
|
currentNonlinearPositionSteps[A_TOWER] -= dx;
|
||||||
currentDeltaPositionSteps[B_TOWER] -= dy;
|
currentNonlinearPositionSteps[B_TOWER] -= dy;
|
||||||
currentDeltaPositionSteps[C_TOWER] -= dz;
|
currentNonlinearPositionSteps[C_TOWER] -= dz;
|
||||||
PrintLine::moveRelativeDistanceInSteps(0, 0, dm, 0, homingFeedrate[Z_AXIS], true, false);
|
PrintLine::moveRelativeDistanceInSteps(0, 0, dm, 0, homingFeedrate[Z_AXIS], true, false);
|
||||||
currentPositionSteps[X_AXIS] = 0; // now we are really here
|
currentPositionSteps[X_AXIS] = 0; // now we are really here
|
||||||
currentPositionSteps[Y_AXIS] = 0;
|
currentPositionSteps[Y_AXIS] = 0;
|
||||||
|
@ -1334,10 +1332,10 @@ void Printer::homeZAxis() // Delta z homing
|
||||||
coordinateOffset[X_AXIS] = 0;
|
coordinateOffset[X_AXIS] = 0;
|
||||||
coordinateOffset[Y_AXIS] = 0;
|
coordinateOffset[Y_AXIS] = 0;
|
||||||
coordinateOffset[Z_AXIS] = 0;
|
coordinateOffset[Z_AXIS] = 0;
|
||||||
transformCartesianStepsToDeltaSteps(currentPositionSteps, currentDeltaPositionSteps);
|
transformCartesianStepsToDeltaSteps(currentPositionSteps, currentNonlinearPositionSteps);
|
||||||
realDeltaPositionSteps[A_TOWER] = currentDeltaPositionSteps[A_TOWER];
|
realDeltaPositionSteps[A_TOWER] = currentNonlinearPositionSteps[A_TOWER];
|
||||||
realDeltaPositionSteps[B_TOWER] = currentDeltaPositionSteps[B_TOWER];
|
realDeltaPositionSteps[B_TOWER] = currentNonlinearPositionSteps[B_TOWER];
|
||||||
realDeltaPositionSteps[C_TOWER] = currentDeltaPositionSteps[C_TOWER];
|
realDeltaPositionSteps[C_TOWER] = currentNonlinearPositionSteps[C_TOWER];
|
||||||
//maxDeltaPositionSteps = currentDeltaPositionSteps[X_AXIS];
|
//maxDeltaPositionSteps = currentDeltaPositionSteps[X_AXIS];
|
||||||
#if defined(ENDSTOP_Z_BACK_ON_HOME)
|
#if defined(ENDSTOP_Z_BACK_ON_HOME)
|
||||||
if(ENDSTOP_Z_BACK_ON_HOME > 0)
|
if(ENDSTOP_Z_BACK_ON_HOME > 0)
|
||||||
|
@ -1354,7 +1352,7 @@ void Printer::homeAxis(bool xaxis,bool yaxis,bool zaxis) // Delta homing code
|
||||||
if (!(X_MAX_PIN > -1 && Y_MAX_PIN > -1 && Z_MAX_PIN > -1
|
if (!(X_MAX_PIN > -1 && Y_MAX_PIN > -1 && Z_MAX_PIN > -1
|
||||||
&& MAX_HARDWARE_ENDSTOP_X && MAX_HARDWARE_ENDSTOP_Y && MAX_HARDWARE_ENDSTOP_Z))
|
&& MAX_HARDWARE_ENDSTOP_X && MAX_HARDWARE_ENDSTOP_Y && MAX_HARDWARE_ENDSTOP_Z))
|
||||||
{
|
{
|
||||||
Com::printErrorFLN(PSTR("Hardware setup inconsistent. Delta cannot home wihtout max endstops."));
|
Com::printErrorFLN(PSTR("Hardware setup inconsistent. Delta cannot home without max endstops."));
|
||||||
}
|
}
|
||||||
// The delta has to have home capability to zero and set position,
|
// The delta has to have home capability to zero and set position,
|
||||||
// so the redundant check is only an opportunity to
|
// so the redundant check is only an opportunity to
|
||||||
|
@ -1396,7 +1394,7 @@ void Printer::homeXAxis()
|
||||||
currentPositionSteps[X_AXIS] = -steps;
|
currentPositionSteps[X_AXIS] = -steps;
|
||||||
currentPositionSteps[Y_AXIS] = 0;
|
currentPositionSteps[Y_AXIS] = 0;
|
||||||
setHoming(true);
|
setHoming(true);
|
||||||
transformCartesianStepsToDeltaSteps(currentPositionSteps, currentDeltaPositionSteps);
|
transformCartesianStepsToDeltaSteps(currentPositionSteps, currentNonlinearPositionSteps);
|
||||||
PrintLine::moveRelativeDistanceInSteps(2*steps,0,0,0,homingFeedrate[X_AXIS],true,true);
|
PrintLine::moveRelativeDistanceInSteps(2*steps,0,0,0,homingFeedrate[X_AXIS],true,true);
|
||||||
currentPositionSteps[X_AXIS] = (X_HOME_DIR == -1) ? xMinSteps-offX : xMaxSteps+offX;
|
currentPositionSteps[X_AXIS] = (X_HOME_DIR == -1) ? xMinSteps-offX : xMaxSteps+offX;
|
||||||
currentPositionSteps[Y_AXIS] = 0; //(Y_HOME_DIR == -1) ? yMinSteps-offY : yMaxSteps+offY;
|
currentPositionSteps[Y_AXIS] = 0; //(Y_HOME_DIR == -1) ? yMinSteps-offY : yMaxSteps+offY;
|
||||||
|
@ -1414,7 +1412,7 @@ void Printer::homeXAxis()
|
||||||
currentPositionSteps[Y_AXIS] = 0; //(Y_HOME_DIR == -1) ? yMinSteps-offY : yMaxSteps+offY;
|
currentPositionSteps[Y_AXIS] = 0; //(Y_HOME_DIR == -1) ? yMinSteps-offY : yMaxSteps+offY;
|
||||||
coordinateOffset[X_AXIS] = 0;
|
coordinateOffset[X_AXIS] = 0;
|
||||||
coordinateOffset[Y_AXIS] = 0;
|
coordinateOffset[Y_AXIS] = 0;
|
||||||
transformCartesianStepsToDeltaSteps(currentPositionSteps, currentDeltaPositionSteps);
|
transformCartesianStepsToDeltaSteps(currentPositionSteps, currentNonlinearPositionSteps);
|
||||||
#if NUM_EXTRUDER>1
|
#if NUM_EXTRUDER>1
|
||||||
PrintLine::moveRelativeDistanceInSteps((Extruder::current->xOffset-offX) * X_HOME_DIR,(Extruder::current->yOffset-offY) * Y_HOME_DIR,0,0,homingFeedrate[X_AXIS],true,false);
|
PrintLine::moveRelativeDistanceInSteps((Extruder::current->xOffset-offX) * X_HOME_DIR,(Extruder::current->yOffset-offY) * Y_HOME_DIR,0,0,homingFeedrate[X_AXIS],true,false);
|
||||||
#endif
|
#endif
|
||||||
|
@ -1424,12 +1422,48 @@ void Printer::homeYAxis()
|
||||||
{
|
{
|
||||||
// Dummy function x and y homing must occur together
|
// Dummy function x and y homing must occur together
|
||||||
}
|
}
|
||||||
#else // cartesian printer
|
#else // Cartesian printer
|
||||||
void Printer::homeXAxis()
|
void Printer::homeXAxis()
|
||||||
{
|
{
|
||||||
long steps;
|
long steps;
|
||||||
|
UI_STATUS_UPD_F(Com::translatedF(UI_TEXT_HOME_X_ID));
|
||||||
|
Commands::waitUntilEndOfAllMoves();
|
||||||
|
setHoming(true);
|
||||||
|
#if DUAL_X_AXIS && NUM_EXTRUDER == 2
|
||||||
|
Extruder *curExtruder = Extruder::current;
|
||||||
|
Extruder::current = &extruder[0];
|
||||||
|
steps = (Printer::xMaxSteps - Printer::xMinSteps);
|
||||||
|
currentPositionSteps[X_AXIS] = steps;
|
||||||
|
PrintLine::moveRelativeDistanceInSteps(-2 * steps, 0, 0, 0, homingFeedrate[X_AXIS], true, true);
|
||||||
|
setHoming(false);
|
||||||
|
PrintLine::moveRelativeDistanceInSteps(axisStepsPerMM[X_AXIS] * ENDSTOP_X_BACK_MOVE,0,0,0,homingFeedrate[X_AXIS] / ENDSTOP_X_RETEST_REDUCTION_FACTOR, true, false);
|
||||||
|
setHoming(true);
|
||||||
|
PrintLine::moveRelativeDistanceInSteps(-axisStepsPerMM[X_AXIS] * 2 * ENDSTOP_X_BACK_MOVE,0,0,0,homingFeedrate[X_AXIS] / ENDSTOP_X_RETEST_REDUCTION_FACTOR, true, true);
|
||||||
|
setHoming(false);
|
||||||
|
#if defined(ENDSTOP_X_BACK_ON_HOME)
|
||||||
|
if(ENDSTOP_X_BACK_ON_HOME > 0)
|
||||||
|
PrintLine::moveRelativeDistanceInSteps(axisStepsPerMM[X_AXIS] * ENDSTOP_X_BACK_ON_HOME,0,0,0,homingFeedrate[X_AXIS], true, false);
|
||||||
|
#endif
|
||||||
|
Extruder::current = &extruder[1];
|
||||||
|
currentPositionSteps[X_AXIS] = -steps;
|
||||||
|
PrintLine::moveRelativeDistanceInSteps(2 * steps, 0, 0, 0, homingFeedrate[X_AXIS], true, true);
|
||||||
|
setHoming(false);
|
||||||
|
PrintLine::moveRelativeDistanceInSteps(-axisStepsPerMM[X_AXIS] * ENDSTOP_X_BACK_MOVE,0,0,0,homingFeedrate[X_AXIS] / ENDSTOP_X_RETEST_REDUCTION_FACTOR, true, false);
|
||||||
|
setHoming(true);
|
||||||
|
PrintLine::moveRelativeDistanceInSteps(axisStepsPerMM[X_AXIS] * 2 * ENDSTOP_X_BACK_MOVE,0,0,0,homingFeedrate[X_AXIS] / ENDSTOP_X_RETEST_REDUCTION_FACTOR, true, true);
|
||||||
|
setHoming(false);
|
||||||
|
#if defined(ENDSTOP_X_BACK_ON_HOME)
|
||||||
|
if(ENDSTOP_X_BACK_ON_HOME > 0)
|
||||||
|
PrintLine::moveRelativeDistanceInSteps(-axisStepsPerMM[X_AXIS] * ENDSTOP_X_BACK_ON_HOME,0,0,0,homingFeedrate[X_AXIS], true, false);
|
||||||
|
#endif
|
||||||
|
Extruder::current = curExtruder;
|
||||||
|
// Now position current extrude on x = 0
|
||||||
|
PrintLine::moveRelativeDistanceInSteps(-Extruder::current->xOffset, 0, 0, 0, homingFeedrate[X_AXIS], true, true);
|
||||||
|
currentPositionSteps[X_AXIS] = xMinSteps;
|
||||||
|
#else
|
||||||
if ((MIN_HARDWARE_ENDSTOP_X && X_MIN_PIN > -1 && X_HOME_DIR == -1) || (MAX_HARDWARE_ENDSTOP_X && X_MAX_PIN > -1 && X_HOME_DIR == 1))
|
if ((MIN_HARDWARE_ENDSTOP_X && X_MIN_PIN > -1 && X_HOME_DIR == -1) || (MAX_HARDWARE_ENDSTOP_X && X_MAX_PIN > -1 && X_HOME_DIR == 1))
|
||||||
{
|
{
|
||||||
|
coordinateOffset[X_AXIS] = 0;
|
||||||
long offX = 0;
|
long offX = 0;
|
||||||
#if NUM_EXTRUDER > 1
|
#if NUM_EXTRUDER > 1
|
||||||
for(uint8_t i = 0; i < NUM_EXTRUDER; i++)
|
for(uint8_t i = 0; i < NUM_EXTRUDER; i++)
|
||||||
|
@ -1438,14 +1472,18 @@ void Printer::homeXAxis()
|
||||||
#else
|
#else
|
||||||
offX = RMath::min(offX,extruder[i].xOffset);
|
offX = RMath::min(offX,extruder[i].xOffset);
|
||||||
#endif
|
#endif
|
||||||
// Reposition extruder that way, that all extruders can be selected at home pos.
|
// Reposition extruder that way, that all extruders can be selected at home position.
|
||||||
#endif // NUM_EXTRUDER > 1
|
#endif // NUM_EXTRUDER > 1
|
||||||
UI_STATUS_UPD_F(Com::translatedF(UI_TEXT_HOME_X_ID));
|
|
||||||
steps = (Printer::xMaxSteps - Printer::xMinSteps) * X_HOME_DIR;
|
steps = (Printer::xMaxSteps - Printer::xMinSteps) * X_HOME_DIR;
|
||||||
currentPositionSteps[X_AXIS] = -steps;
|
currentPositionSteps[X_AXIS] = -steps;
|
||||||
setHoming(true);
|
#if NONLINEAR_SYSTEM
|
||||||
|
transformCartesianStepsToDeltaSteps(currentPositionSteps, currentNonlinearPositionSteps);
|
||||||
|
#endif
|
||||||
PrintLine::moveRelativeDistanceInSteps(2 * steps, 0, 0, 0, homingFeedrate[X_AXIS], true, true);
|
PrintLine::moveRelativeDistanceInSteps(2 * steps, 0, 0, 0, homingFeedrate[X_AXIS], true, true);
|
||||||
currentPositionSteps[X_AXIS] = (X_HOME_DIR == -1) ? xMinSteps - offX : xMaxSteps + offX;
|
currentPositionSteps[X_AXIS] = (X_HOME_DIR == -1) ? xMinSteps - offX : xMaxSteps + offX;
|
||||||
|
#if NONLINEAR_SYSTEM
|
||||||
|
transformCartesianStepsToDeltaSteps(currentPositionSteps, currentNonlinearPositionSteps);
|
||||||
|
#endif
|
||||||
PrintLine::moveRelativeDistanceInSteps(axisStepsPerMM[X_AXIS] * -ENDSTOP_X_BACK_MOVE * X_HOME_DIR,0,0,0,homingFeedrate[X_AXIS] / ENDSTOP_X_RETEST_REDUCTION_FACTOR, true, false);
|
PrintLine::moveRelativeDistanceInSteps(axisStepsPerMM[X_AXIS] * -ENDSTOP_X_BACK_MOVE * X_HOME_DIR,0,0,0,homingFeedrate[X_AXIS] / ENDSTOP_X_RETEST_REDUCTION_FACTOR, true, false);
|
||||||
PrintLine::moveRelativeDistanceInSteps(axisStepsPerMM[X_AXIS] * 2 * ENDSTOP_X_BACK_MOVE * X_HOME_DIR,0,0,0,homingFeedrate[X_AXIS] / ENDSTOP_X_RETEST_REDUCTION_FACTOR, true, true);
|
PrintLine::moveRelativeDistanceInSteps(axisStepsPerMM[X_AXIS] * 2 * ENDSTOP_X_BACK_MOVE * X_HOME_DIR,0,0,0,homingFeedrate[X_AXIS] / ENDSTOP_X_RETEST_REDUCTION_FACTOR, true, true);
|
||||||
setHoming(false);
|
setHoming(false);
|
||||||
|
@ -1454,6 +1492,9 @@ void Printer::homeXAxis()
|
||||||
PrintLine::moveRelativeDistanceInSteps(axisStepsPerMM[X_AXIS] * -ENDSTOP_X_BACK_ON_HOME * X_HOME_DIR,0,0,0,homingFeedrate[X_AXIS], true, true);
|
PrintLine::moveRelativeDistanceInSteps(axisStepsPerMM[X_AXIS] * -ENDSTOP_X_BACK_ON_HOME * X_HOME_DIR,0,0,0,homingFeedrate[X_AXIS], true, true);
|
||||||
#endif
|
#endif
|
||||||
currentPositionSteps[X_AXIS] = (X_HOME_DIR == -1) ? xMinSteps - offX : xMaxSteps + offX;
|
currentPositionSteps[X_AXIS] = (X_HOME_DIR == -1) ? xMinSteps - offX : xMaxSteps + offX;
|
||||||
|
#if NONLINEAR_SYSTEM
|
||||||
|
transformCartesianStepsToDeltaSteps(currentPositionSteps, currentNonlinearPositionSteps);
|
||||||
|
#endif
|
||||||
#if NUM_EXTRUDER > 1
|
#if NUM_EXTRUDER > 1
|
||||||
#if X_HOME_DIR < 0
|
#if X_HOME_DIR < 0
|
||||||
PrintLine::moveRelativeDistanceInSteps((Extruder::current->xOffset - offX) * X_HOME_DIR,0,0,0,homingFeedrate[X_AXIS], true, true);
|
PrintLine::moveRelativeDistanceInSteps((Extruder::current->xOffset - offX) * X_HOME_DIR,0,0,0,homingFeedrate[X_AXIS], true, true);
|
||||||
|
@ -1462,6 +1503,7 @@ void Printer::homeXAxis()
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void Printer::homeYAxis()
|
void Printer::homeYAxis()
|
||||||
|
@ -1469,6 +1511,7 @@ void Printer::homeYAxis()
|
||||||
long steps;
|
long steps;
|
||||||
if ((MIN_HARDWARE_ENDSTOP_Y && Y_MIN_PIN > -1 && Y_HOME_DIR == -1) || (MAX_HARDWARE_ENDSTOP_Y && Y_MAX_PIN > -1 && Y_HOME_DIR == 1))
|
if ((MIN_HARDWARE_ENDSTOP_Y && Y_MIN_PIN > -1 && Y_HOME_DIR == -1) || (MAX_HARDWARE_ENDSTOP_Y && Y_MAX_PIN > -1 && Y_HOME_DIR == 1))
|
||||||
{
|
{
|
||||||
|
coordinateOffset[Y_AXIS] = 0;
|
||||||
long offY = 0;
|
long offY = 0;
|
||||||
#if NUM_EXTRUDER > 1
|
#if NUM_EXTRUDER > 1
|
||||||
for(uint8_t i = 0; i < NUM_EXTRUDER; i++)
|
for(uint8_t i = 0; i < NUM_EXTRUDER; i++)
|
||||||
|
@ -1483,8 +1526,14 @@ void Printer::homeYAxis()
|
||||||
steps = (yMaxSteps-Printer::yMinSteps) * Y_HOME_DIR;
|
steps = (yMaxSteps-Printer::yMinSteps) * Y_HOME_DIR;
|
||||||
currentPositionSteps[Y_AXIS] = -steps;
|
currentPositionSteps[Y_AXIS] = -steps;
|
||||||
setHoming(true);
|
setHoming(true);
|
||||||
|
#if NONLINEAR_SYSTEM
|
||||||
|
transformCartesianStepsToDeltaSteps(currentPositionSteps, currentNonlinearPositionSteps);
|
||||||
|
#endif
|
||||||
PrintLine::moveRelativeDistanceInSteps(0,2 * steps,0,0,homingFeedrate[Y_AXIS],true,true);
|
PrintLine::moveRelativeDistanceInSteps(0,2 * steps,0,0,homingFeedrate[Y_AXIS],true,true);
|
||||||
currentPositionSteps[Y_AXIS] = (Y_HOME_DIR == -1) ? yMinSteps-offY : yMaxSteps+offY;
|
currentPositionSteps[Y_AXIS] = (Y_HOME_DIR == -1) ? yMinSteps-offY : yMaxSteps+offY;
|
||||||
|
#if NONLINEAR_SYSTEM
|
||||||
|
transformCartesianStepsToDeltaSteps(currentPositionSteps, currentNonlinearPositionSteps);
|
||||||
|
#endif
|
||||||
PrintLine::moveRelativeDistanceInSteps(0,axisStepsPerMM[Y_AXIS] * -ENDSTOP_Y_BACK_MOVE * Y_HOME_DIR,0,0,homingFeedrate[Y_AXIS] / ENDSTOP_X_RETEST_REDUCTION_FACTOR,true,false);
|
PrintLine::moveRelativeDistanceInSteps(0,axisStepsPerMM[Y_AXIS] * -ENDSTOP_Y_BACK_MOVE * Y_HOME_DIR,0,0,homingFeedrate[Y_AXIS] / ENDSTOP_X_RETEST_REDUCTION_FACTOR,true,false);
|
||||||
PrintLine::moveRelativeDistanceInSteps(0,axisStepsPerMM[Y_AXIS] * 2 * ENDSTOP_Y_BACK_MOVE * Y_HOME_DIR,0,0,homingFeedrate[Y_AXIS] / ENDSTOP_X_RETEST_REDUCTION_FACTOR,true,true);
|
PrintLine::moveRelativeDistanceInSteps(0,axisStepsPerMM[Y_AXIS] * 2 * ENDSTOP_Y_BACK_MOVE * Y_HOME_DIR,0,0,homingFeedrate[Y_AXIS] / ENDSTOP_X_RETEST_REDUCTION_FACTOR,true,true);
|
||||||
setHoming(false);
|
setHoming(false);
|
||||||
|
@ -1493,6 +1542,9 @@ void Printer::homeYAxis()
|
||||||
PrintLine::moveRelativeDistanceInSteps(0,axisStepsPerMM[Y_AXIS] * -ENDSTOP_Y_BACK_ON_HOME * Y_HOME_DIR,0,0,homingFeedrate[Y_AXIS],true,false);
|
PrintLine::moveRelativeDistanceInSteps(0,axisStepsPerMM[Y_AXIS] * -ENDSTOP_Y_BACK_ON_HOME * Y_HOME_DIR,0,0,homingFeedrate[Y_AXIS],true,false);
|
||||||
#endif
|
#endif
|
||||||
currentPositionSteps[Y_AXIS] = (Y_HOME_DIR == -1) ? yMinSteps - offY : yMaxSteps + offY;
|
currentPositionSteps[Y_AXIS] = (Y_HOME_DIR == -1) ? yMinSteps - offY : yMaxSteps + offY;
|
||||||
|
#if NONLINEAR_SYSTEM
|
||||||
|
transformCartesianStepsToDeltaSteps(currentPositionSteps, currentNonlinearPositionSteps);
|
||||||
|
#endif
|
||||||
#if NUM_EXTRUDER > 1
|
#if NUM_EXTRUDER > 1
|
||||||
#if Y_HOME_DIR < 0
|
#if Y_HOME_DIR < 0
|
||||||
PrintLine::moveRelativeDistanceInSteps(0,(Extruder::current->yOffset - offY) * Y_HOME_DIR,0,0,homingFeedrate[Y_AXIS],true,false);
|
PrintLine::moveRelativeDistanceInSteps(0,(Extruder::current->yOffset - offY) * Y_HOME_DIR,0,0,homingFeedrate[Y_AXIS],true,false);
|
||||||
|
@ -1504,17 +1556,24 @@ void Printer::homeYAxis()
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
void Printer::homeZAxis() // cartesian homing
|
void Printer::homeZAxis() // Cartesian homing
|
||||||
{
|
{
|
||||||
long steps;
|
long steps;
|
||||||
if ((MIN_HARDWARE_ENDSTOP_Z && Z_MIN_PIN > -1 && Z_HOME_DIR == -1) || (MAX_HARDWARE_ENDSTOP_Z && Z_MAX_PIN > -1 && Z_HOME_DIR == 1))
|
if ((MIN_HARDWARE_ENDSTOP_Z && Z_MIN_PIN > -1 && Z_HOME_DIR == -1) || (MAX_HARDWARE_ENDSTOP_Z && Z_MAX_PIN > -1 && Z_HOME_DIR == 1))
|
||||||
{
|
{
|
||||||
|
coordinateOffset[Z_AXIS] = 0;
|
||||||
UI_STATUS_UPD_F(Com::translatedF(UI_TEXT_HOME_Z_ID));
|
UI_STATUS_UPD_F(Com::translatedF(UI_TEXT_HOME_Z_ID));
|
||||||
steps = (zMaxSteps - zMinSteps) * Z_HOME_DIR;
|
steps = (zMaxSteps - zMinSteps) * Z_HOME_DIR;
|
||||||
currentPositionSteps[Z_AXIS] = -steps;
|
currentPositionSteps[Z_AXIS] = -steps;
|
||||||
setHoming(true);
|
setHoming(true);
|
||||||
|
#if NONLINEAR_SYSTEM
|
||||||
|
transformCartesianStepsToDeltaSteps(currentPositionSteps, currentNonlinearPositionSteps);
|
||||||
|
#endif
|
||||||
PrintLine::moveRelativeDistanceInSteps(0,0,2 * steps,0,homingFeedrate[Z_AXIS],true,true);
|
PrintLine::moveRelativeDistanceInSteps(0,0,2 * steps,0,homingFeedrate[Z_AXIS],true,true);
|
||||||
currentPositionSteps[Z_AXIS] = (Z_HOME_DIR == -1) ? zMinSteps : zMaxSteps;
|
currentPositionSteps[Z_AXIS] = (Z_HOME_DIR == -1) ? zMinSteps : zMaxSteps;
|
||||||
|
#if NONLINEAR_SYSTEM
|
||||||
|
transformCartesianStepsToDeltaSteps(currentPositionSteps, currentNonlinearPositionSteps);
|
||||||
|
#endif
|
||||||
PrintLine::moveRelativeDistanceInSteps(0,0,axisStepsPerMM[Z_AXIS] * -ENDSTOP_Z_BACK_MOVE * Z_HOME_DIR,0,homingFeedrate[Z_AXIS] / ENDSTOP_Z_RETEST_REDUCTION_FACTOR,true,false);
|
PrintLine::moveRelativeDistanceInSteps(0,0,axisStepsPerMM[Z_AXIS] * -ENDSTOP_Z_BACK_MOVE * Z_HOME_DIR,0,homingFeedrate[Z_AXIS] / ENDSTOP_Z_RETEST_REDUCTION_FACTOR,true,false);
|
||||||
#if defined(ZHOME_WAIT_UNSWING) && ZHOME_WAIT_UNSWING > 0
|
#if defined(ZHOME_WAIT_UNSWING) && ZHOME_WAIT_UNSWING > 0
|
||||||
HAL::delayMilliseconds(ZHOME_WAIT_UNSWING);
|
HAL::delayMilliseconds(ZHOME_WAIT_UNSWING);
|
||||||
|
@ -1522,7 +1581,7 @@ void Printer::homeZAxis() // cartesian homing
|
||||||
PrintLine::moveRelativeDistanceInSteps(0,0,axisStepsPerMM[Z_AXIS] * 2 * ENDSTOP_Z_BACK_MOVE * Z_HOME_DIR,0,homingFeedrate[Z_AXIS] / ENDSTOP_Z_RETEST_REDUCTION_FACTOR,true,true);
|
PrintLine::moveRelativeDistanceInSteps(0,0,axisStepsPerMM[Z_AXIS] * 2 * ENDSTOP_Z_BACK_MOVE * Z_HOME_DIR,0,homingFeedrate[Z_AXIS] / ENDSTOP_Z_RETEST_REDUCTION_FACTOR,true,true);
|
||||||
setHoming(false);
|
setHoming(false);
|
||||||
int32_t zCorrection = 0;
|
int32_t zCorrection = 0;
|
||||||
#if MIN_HARDWARE_ENDSTOP_Z && FEATURE_Z_PROBE && Z_PROBE_PIN==Z_MIN_PIN
|
#if Z_HOME_DIR < 0 && MIN_HARDWARE_ENDSTOP_Z && FEATURE_Z_PROBE && Z_PROBE_PIN == Z_MIN_PIN
|
||||||
// Fix error from z probe testing
|
// Fix error from z probe testing
|
||||||
zCorrection -= axisStepsPerMM[Z_AXIS]*EEPROM::zProbeHeight();
|
zCorrection -= axisStepsPerMM[Z_AXIS]*EEPROM::zProbeHeight();
|
||||||
#endif
|
#endif
|
||||||
|
@ -1534,14 +1593,16 @@ void Printer::homeZAxis() // cartesian homing
|
||||||
#if Z_HOME_DIR < 0
|
#if Z_HOME_DIR < 0
|
||||||
// Fix bed coating
|
// Fix bed coating
|
||||||
zCorrection += axisStepsPerMM[Z_AXIS] * Printer::zBedOffset;
|
zCorrection += axisStepsPerMM[Z_AXIS] * Printer::zBedOffset;
|
||||||
|
#else
|
||||||
|
currentPositionSteps[Z_AXIS] -= zBedOffset * axisStepsPerMM[Z_AXIS]; // Correct bed coating
|
||||||
#endif
|
#endif
|
||||||
PrintLine::moveRelativeDistanceInSteps(0,0,zCorrection,0,homingFeedrate[Z_AXIS],true,false);
|
PrintLine::moveRelativeDistanceInSteps(0,0,zCorrection,0,homingFeedrate[Z_AXIS],true,false);
|
||||||
currentPositionSteps[Z_AXIS] = ((Z_HOME_DIR == -1) ? zMinSteps : zMaxSteps - Printer::zBedOffset * axisStepsPerMM[Z_AXIS]);
|
currentPositionSteps[Z_AXIS] = ((Z_HOME_DIR == -1) ? zMinSteps : zMaxSteps - Printer::zBedOffset * axisStepsPerMM[Z_AXIS]);
|
||||||
#if NUM_EXTRUDER > 0
|
#if NUM_EXTRUDER > 0
|
||||||
currentPositionSteps[Z_AXIS] -= Extruder::current->zOffset;
|
currentPositionSteps[Z_AXIS] -= Extruder::current->zOffset;
|
||||||
#endif
|
#endif
|
||||||
#if DRIVE_SYSTEM == TUGA
|
#if NONLINEAR_SYSTEM
|
||||||
currentDeltaPositionSteps[C_TOWER] = currentPositionSteps[Z_AXIS];
|
transformCartesianStepsToDeltaSteps(currentPositionSteps, currentNonlinearPositionSteps);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1578,25 +1639,27 @@ void Printer::homeAxis(bool xaxis,bool yaxis,bool zaxis) // home non-delta print
|
||||||
if(zaxis) homeZAxis();
|
if(zaxis) homeZAxis();
|
||||||
if(yaxis) homeYAxis();
|
if(yaxis) homeYAxis();
|
||||||
if(xaxis) homeXAxis();
|
if(xaxis) homeXAxis();
|
||||||
#elif HOMING_ORDER == HOME_ORDER_ZXYTZ
|
#elif HOMING_ORDER == HOME_ORDER_ZXYTZ || HOMING_ORDER == HOME_ORDER_XYTZ
|
||||||
{
|
{
|
||||||
float actTemp[NUM_EXTRUDER];
|
float actTemp[NUM_EXTRUDER];
|
||||||
for(int i = 0;i < NUM_EXTRUDER; i++)
|
for(int i = 0;i < NUM_EXTRUDER; i++)
|
||||||
actTemp[i] = extruder[i].tempControl.targetTemperatureC;
|
actTemp[i] = extruder[i].tempControl.targetTemperatureC;
|
||||||
if(zaxis) {
|
if(zaxis) {
|
||||||
|
#if HOMING_ORDER == HOME_ORDER_ZXYTZ
|
||||||
homeZAxis();
|
homeZAxis();
|
||||||
Printer::moveToReal(IGNORE_COORDINATE,IGNORE_COORDINATE,ZHOME_HEAT_HEIGHT,IGNORE_COORDINATE,homingFeedrate[Z_AXIS]);
|
Printer::moveToReal(IGNORE_COORDINATE,IGNORE_COORDINATE,ZHOME_HEAT_HEIGHT,IGNORE_COORDINATE,homingFeedrate[Z_AXIS]);
|
||||||
|
#endif
|
||||||
Commands::waitUntilEndOfAllMoves();
|
Commands::waitUntilEndOfAllMoves();
|
||||||
#if ZHOME_HEAT_ALL
|
#if ZHOME_HEAT_ALL
|
||||||
for(int i = 0; i < NUM_EXTRUDER; i++) {
|
for(int i = 0; i < NUM_EXTRUDER; i++) {
|
||||||
Extruder::setTemperatureForExtruder(RMath::max(actTemp[i],static_cast<float>(ZHOME_MIN_TEMPERATURE)),i,false,false);
|
Extruder::setTemperatureForExtruder(RMath::max(actTemp[i],static_cast<float>(ZHOME_MIN_TEMPERATURE)),i,false,false);
|
||||||
}
|
}
|
||||||
for(int i = 0; i < NUM_EXTRUDER; i++) {
|
for(int i = 0; i < NUM_EXTRUDER; i++) {
|
||||||
if(actTemp[i] < ZHOME_MIN_TEMPERATURE)
|
if(extruder[i].tempControl.currentTemperatureC < ZHOME_MIN_TEMPERATURE)
|
||||||
Extruder::setTemperatureForExtruder(RMath::max(actTemp[i],static_cast<float>(ZHOME_MIN_TEMPERATURE)),i,false,true);
|
Extruder::setTemperatureForExtruder(RMath::max(actTemp[i],static_cast<float>(ZHOME_MIN_TEMPERATURE)),i,false,true);
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
if(actTemp[Extruder::current->id] < ZHOME_MIN_TEMPERATURE)
|
if(extruder[Extruder::current->id].tempControl.currentTemperatureC < ZHOME_MIN_TEMPERATURE)
|
||||||
Extruder::setTemperatureForExtruder(RMath::max(actTemp[Extruder::current->id],static_cast<float>(ZHOME_MIN_TEMPERATURE)),Extruder::current->id,false,true);
|
Extruder::setTemperatureForExtruder(RMath::max(actTemp[Extruder::current->id],static_cast<float>(ZHOME_MIN_TEMPERATURE)),Extruder::current->id,false,true);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
@ -1641,16 +1704,17 @@ void Printer::homeAxis(bool xaxis,bool yaxis,bool zaxis) // home non-delta print
|
||||||
currentPositionSteps[Z_AXIS] += Printer::zCorrectionStepsIncluded;
|
currentPositionSteps[Z_AXIS] += Printer::zCorrectionStepsIncluded;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
if(Z_HOME_DIR < 0) startZ = Printer::zMin;
|
||||||
|
else startZ = Printer::zMin + Printer::zLength - zBedOffset;
|
||||||
|
moveToReal(IGNORE_COORDINATE, IGNORE_COORDINATE, ZHOME_HEAT_HEIGHT, IGNORE_COORDINATE, homingFeedrate[X_AXIS]);
|
||||||
#if ZHOME_HEAT_ALL
|
#if ZHOME_HEAT_ALL
|
||||||
for(int i = 0; i < NUM_EXTRUDER; i++)
|
for(int i = 0; i < NUM_EXTRUDER; i++)
|
||||||
Extruder::setTemperatureForExtruder(actTemp[i],i,false,false);
|
Extruder::setTemperatureForExtruder(actTemp[i],i,false,false);
|
||||||
for(int i = 0; i < NUM_EXTRUDER; i++)
|
for(int i = 0; i < NUM_EXTRUDER; i++)
|
||||||
Extruder::setTemperatureForExtruder(actTemp[i],i,false,true);
|
Extruder::setTemperatureForExtruder(actTemp[i],i,false, actTemp[i] > MAX_ROOM_TEMPERATURE);
|
||||||
#else
|
#else
|
||||||
Extruder::setTemperatureForExtruder(actTemp[Extruder::current->id], Extruder::current->id, false, actTemp[Extruder::current->id] > MAX_ROOM_TEMPERATURE);
|
Extruder::setTemperatureForExtruder(actTemp[Extruder::current->id], Extruder::current->id, false, actTemp[Extruder::current->id] > MAX_ROOM_TEMPERATURE);
|
||||||
#endif
|
#endif
|
||||||
if(Z_HOME_DIR < 0) startZ = Printer::zMin;
|
|
||||||
else startZ = Printer::zMin + Printer::zLength - zBedOffset;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -1880,9 +1944,9 @@ void Printer::showConfiguration() {
|
||||||
|
|
||||||
Distortion Printer::distortion;
|
Distortion Printer::distortion;
|
||||||
|
|
||||||
void Printer::measureDistortion(void)
|
bool Printer::measureDistortion(void)
|
||||||
{
|
{
|
||||||
distortion.measure();
|
return distortion.measure();
|
||||||
}
|
}
|
||||||
|
|
||||||
Distortion::Distortion()
|
Distortion::Distortion()
|
||||||
|
@ -1908,9 +1972,9 @@ void Distortion::updateDerived()
|
||||||
step = (2 * Printer::axisStepsPerMM[Z_AXIS] * DISTORTION_CORRECTION_R) / (DISTORTION_CORRECTION_POINTS - 1.0f);
|
step = (2 * Printer::axisStepsPerMM[Z_AXIS] * DISTORTION_CORRECTION_R) / (DISTORTION_CORRECTION_POINTS - 1.0f);
|
||||||
radiusCorrectionSteps = DISTORTION_CORRECTION_R * Printer::axisStepsPerMM[Z_AXIS];
|
radiusCorrectionSteps = DISTORTION_CORRECTION_R * Printer::axisStepsPerMM[Z_AXIS];
|
||||||
#else
|
#else
|
||||||
xCorrectionSteps = (DISTORTION_XMAX - DISTORTION_XMIN) * Printer::axisStepsPerMM[X_AXIS] / DISTORTION_CORRECTION_POINTS;
|
xCorrectionSteps = (DISTORTION_XMAX - DISTORTION_XMIN) * Printer::axisStepsPerMM[X_AXIS] / (DISTORTION_CORRECTION_POINTS - 1);
|
||||||
xOffsetSteps = DISTORTION_XMIN * Printer::axisStepsPerMM[X_AXIS];
|
xOffsetSteps = DISTORTION_XMIN * Printer::axisStepsPerMM[X_AXIS];
|
||||||
yCorrectionSteps = (DISTORTION_YMAX - DISTORTION_YMIN) * Printer::axisStepsPerMM[Y_AXIS] / DISTORTION_CORRECTION_POINTS;
|
yCorrectionSteps = (DISTORTION_YMAX - DISTORTION_YMIN) * Printer::axisStepsPerMM[Y_AXIS] / (DISTORTION_CORRECTION_POINTS - 1);
|
||||||
yOffsetSteps = DISTORTION_YMIN * Printer::axisStepsPerMM[Y_AXIS];
|
yOffsetSteps = DISTORTION_YMIN * Printer::axisStepsPerMM[Y_AXIS];
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -2006,7 +2070,7 @@ void Distortion::extrapolateCorners()
|
||||||
extrapolateCorner(m, m,-1,-1);
|
extrapolateCorner(m, m,-1,-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Distortion::measure(void)
|
bool Distortion::measure(void)
|
||||||
{
|
{
|
||||||
fast8_t ix, iy;
|
fast8_t ix, iy;
|
||||||
float z = EEPROM::zProbeBedDistance() + (EEPROM::zProbeHeight() > 0 ? EEPROM::zProbeHeight() : 0);
|
float z = EEPROM::zProbeBedDistance() + (EEPROM::zProbeHeight() > 0 ? EEPROM::zProbeHeight() : 0);
|
||||||
|
@ -2020,6 +2084,7 @@ void Distortion::measure(void)
|
||||||
#if Z_HOME_DIR < 0 && Z_PROBE_Z_OFFSET_MODE == 1
|
#if Z_HOME_DIR < 0 && Z_PROBE_Z_OFFSET_MODE == 1
|
||||||
zCorrection += Printer::zBedOffset * Printer::axisStepsPerMM[Z_AXIS];
|
zCorrection += Printer::zBedOffset * Printer::axisStepsPerMM[Z_AXIS];
|
||||||
#endif
|
#endif
|
||||||
|
Printer::startProbing(true);
|
||||||
for (iy = DISTORTION_CORRECTION_POINTS - 1; iy >= 0; iy--)
|
for (iy = DISTORTION_CORRECTION_POINTS - 1; iy >= 0; iy--)
|
||||||
for (ix = 0; ix < DISTORTION_CORRECTION_POINTS; ix++)
|
for (ix = 0; ix < DISTORTION_CORRECTION_POINTS; ix++)
|
||||||
{
|
{
|
||||||
|
@ -2031,23 +2096,23 @@ void Distortion::measure(void)
|
||||||
float mty = Printer::invAxisStepsPerMM[Y_AXIS] * (iy * step - radiusCorrectionSteps);
|
float mty = Printer::invAxisStepsPerMM[Y_AXIS] * (iy * step - radiusCorrectionSteps);
|
||||||
#else
|
#else
|
||||||
float mtx = Printer::invAxisStepsPerMM[X_AXIS] * (ix * xCorrectionSteps + xOffsetSteps);
|
float mtx = Printer::invAxisStepsPerMM[X_AXIS] * (ix * xCorrectionSteps + xOffsetSteps);
|
||||||
float mty = Printer::invAxisStepsPerMM[Y_AXIS] * (iy * xCorrectionSteps + yOffsetSteps);
|
float mty = Printer::invAxisStepsPerMM[Y_AXIS] * (iy * yCorrectionSteps + yOffsetSteps);
|
||||||
#endif
|
#endif
|
||||||
//Com::printF(PSTR("mx "),mtx);
|
//Com::printF(PSTR("mx "),mtx);
|
||||||
//Com::printF(PSTR("my "),mty);
|
//Com::printF(PSTR("my "),mty);
|
||||||
//Com::printF(PSTR("ix "),(int)ix);
|
//Com::printF(PSTR("ix "),(int)ix);
|
||||||
//Com::printFLN(PSTR("iy "),(int)iy);
|
//Com::printFLN(PSTR("iy "),(int)iy);
|
||||||
Printer::moveToReal(mtx, mty, z, IGNORE_COORDINATE, EEPROM::zProbeXYSpeed());
|
Printer::moveToReal(mtx, mty, z, IGNORE_COORDINATE, EEPROM::zProbeXYSpeed());
|
||||||
#if DISTORTION_EXTRAPOLATE_CORNERS && DRIVE_SYSTEM == DELTA
|
float zp = Printer::runZProbe(false,false, Z_PROBE_REPETITIONS);
|
||||||
setMatrix(floor(0.5f + Printer::axisStepsPerMM[Z_AXIS] * (z -
|
if(zp == ILLEGAL_Z_PROBE) {
|
||||||
Printer::runZProbe(ix == 1 && iy == DISTORTION_CORRECTION_POINTS - 1, ix == DISTORTION_CORRECTION_POINTS - 2 && iy == 0, Z_PROBE_REPETITIONS))) + zCorrection,
|
Com::printErrorFLN(PSTR("Stopping distortion measurement due to errors."));
|
||||||
matrixIndex(ix,iy));
|
Printer::finishProbing();
|
||||||
#else
|
return false;
|
||||||
setMatrix(floor(0.5f + Printer::axisStepsPerMM[Z_AXIS] * (z -
|
|
||||||
Printer::runZProbe(ix == 0 && iy == DISTORTION_CORRECTION_POINTS - 1, ix == DISTORTION_CORRECTION_POINTS - 1 && iy == 0, Z_PROBE_REPETITIONS))) + zCorrection,
|
|
||||||
matrixIndex(ix,iy));
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
setMatrix(floor(0.5f + Printer::axisStepsPerMM[Z_AXIS] * (z -zp)) + zCorrection,
|
||||||
|
matrixIndex(ix,iy));
|
||||||
|
}
|
||||||
|
Printer::finishProbing();
|
||||||
#if (DRIVE_SYSTEM == DELTA) && DISTORTION_EXTRAPOLATE_CORNERS
|
#if (DRIVE_SYSTEM == DELTA) && DISTORTION_EXTRAPOLATE_CORNERS
|
||||||
extrapolateCorners();
|
extrapolateCorners();
|
||||||
#endif
|
#endif
|
||||||
|
@ -2076,12 +2141,13 @@ void Distortion::measure(void)
|
||||||
}
|
}
|
||||||
showMatrix();
|
showMatrix();
|
||||||
enable(true);
|
enable(true);
|
||||||
|
return true;
|
||||||
//Printer::homeAxis(false, false, true);
|
//Printer::homeAxis(false, false, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
int32_t Distortion::correct(int32_t x, int32_t y, int32_t z) const
|
int32_t Distortion::correct(int32_t x, int32_t y, int32_t z) const
|
||||||
{
|
{
|
||||||
if (!enabled || z > zEnd || Printer::isZProbingActive()) return 0.0f;
|
if (!enabled || z > zEnd || Printer::isZProbingActive()) return 0;
|
||||||
if(false && z == 0) {
|
if(false && z == 0) {
|
||||||
Com::printF(PSTR("correcting ("), x); Com::printF(PSTR(","), y);
|
Com::printF(PSTR("correcting ("), x); Com::printF(PSTR(","), y);
|
||||||
}
|
}
|
||||||
|
@ -2136,7 +2202,8 @@ int32_t Distortion::correct(int32_t x, int32_t y, int32_t z) const
|
||||||
Com::printF(PSTR(" iy= "), fyFloor); Com::printFLN(PSTR(" fy= "), fy);
|
Com::printF(PSTR(" iy= "), fyFloor); Com::printFLN(PSTR(" fy= "), fy);
|
||||||
}
|
}
|
||||||
if (z > zStart && z > 0)
|
if (z > zStart && z > 0)
|
||||||
correction_z *= (zEnd - z) / (zEnd - zStart);
|
//All variables are type int. For calculation we need float values
|
||||||
|
correction_z = (correction_z * static_cast<float>(zEnd - z) / (zEnd - zStart));
|
||||||
/* if(correction_z > 20 || correction_z < -20) {
|
/* if(correction_z > 20 || correction_z < -20) {
|
||||||
Com::printFLN(PSTR("Corr. error too big:"),correction_z);
|
Com::printFLN(PSTR("Corr. error too big:"),correction_z);
|
||||||
Com::printF(PSTR("fxf"),(int)fxFloor);
|
Com::printF(PSTR("fxf"),(int)fxFloor);
|
||||||
|
@ -2183,9 +2250,9 @@ void Distortion::showMatrix() {
|
||||||
#endif
|
#endif
|
||||||
int32_t idx = matrixIndex(ix, iy);
|
int32_t idx = matrixIndex(ix, iy);
|
||||||
float z = getMatrix(idx) * Printer::invAxisStepsPerMM[Z_AXIS];
|
float z = getMatrix(idx) * Printer::invAxisStepsPerMM[Z_AXIS];
|
||||||
Com::printF(PSTR("Distortion correction at px:"),x,2);
|
Com::printF(PSTR("G33 X"),x,2);
|
||||||
Com::printF(PSTR(" py:"),y,2);
|
Com::printF(PSTR(" Y"),y,2);
|
||||||
Com::printFLN(PSTR(" zCoorection:"),z,3);
|
Com::printFLN(PSTR(" Z"),z,3);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2289,7 +2356,7 @@ void Printer::showJSONStatus(int type) {
|
||||||
Com::printF(PSTR(",\"coldExtrudeTemp\":0,\"coldRetractTemp\":0.0,\"geometry\":\""));
|
Com::printF(PSTR(",\"coldExtrudeTemp\":0,\"coldRetractTemp\":0.0,\"geometry\":\""));
|
||||||
#if (DRIVE_SYSTEM == DELTA)
|
#if (DRIVE_SYSTEM == DELTA)
|
||||||
Com::printF(PSTR("delta"));
|
Com::printF(PSTR("delta"));
|
||||||
#elif (DRIVE_SYSTEM == CARTESIAN)
|
#elif (DRIVE_SYSTEM == CARTESIAN || DRIVE_SYSTEM == GANTRY_FAKE)
|
||||||
Com::printF(PSTR("cartesian"));
|
Com::printF(PSTR("cartesian"));
|
||||||
#elif ((DRIVE_SYSTEM == XY_GANTRY) || (DRIVE_SYSTEM == YX_GANTRY))
|
#elif ((DRIVE_SYSTEM == XY_GANTRY) || (DRIVE_SYSTEM == YX_GANTRY))
|
||||||
Com::printF(PSTR("coreXY"));
|
Com::printF(PSTR("coreXY"));
|
||||||
|
@ -2308,7 +2375,7 @@ void Printer::showJSONStatus(int type) {
|
||||||
Com::print('}');
|
Com::print('}');
|
||||||
firstOccurrence = false;
|
firstOccurrence = false;
|
||||||
}
|
}
|
||||||
Com::printFLN(PSTR("]"));
|
Com::printF(PSTR("]"));
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
Com::printF(PSTR(",\"currentLayer\":"));
|
Com::printF(PSTR(",\"currentLayer\":"));
|
||||||
|
@ -2319,7 +2386,7 @@ void Printer::showJSONStatus(int type) {
|
||||||
#else
|
#else
|
||||||
Com::printF(PSTR("-1"));
|
Com::printF(PSTR("-1"));
|
||||||
#endif
|
#endif
|
||||||
Com::printF(PSTR("\",extrRaw\":["));
|
Com::printF(PSTR(",\"extrRaw\":["));
|
||||||
firstOccurrence = true;
|
firstOccurrence = true;
|
||||||
for (int i = 0; i < NUM_EXTRUDER; i++) {
|
for (int i = 0; i < NUM_EXTRUDER; i++) {
|
||||||
if (!firstOccurrence) Com::print(',');
|
if (!firstOccurrence) Com::print(',');
|
||||||
|
@ -2394,7 +2461,7 @@ void Printer::showJSONStatus(int type) {
|
||||||
Com::print(',');
|
Com::print(',');
|
||||||
Com::print(extruder[i].maxFeedrate);
|
Com::print(extruder[i].maxFeedrate);
|
||||||
}
|
}
|
||||||
Com::printFLN(PSTR("]"));
|
Com::printF(PSTR("]"));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -115,6 +115,14 @@ union wizardVar
|
||||||
#define towerBMinSteps Printer::yMinSteps
|
#define towerBMinSteps Printer::yMinSteps
|
||||||
#define towerCMinSteps Printer::zMinSteps
|
#define towerCMinSteps Printer::zMinSteps
|
||||||
|
|
||||||
|
class Plane {
|
||||||
|
public:
|
||||||
|
// f(x, y) = ax + by + c
|
||||||
|
float a,b,c;
|
||||||
|
float z(float x,float y) {
|
||||||
|
return a * x + y * b + c;
|
||||||
|
}
|
||||||
|
};
|
||||||
#if DISTORTION_CORRECTION
|
#if DISTORTION_CORRECTION
|
||||||
class Distortion
|
class Distortion
|
||||||
{
|
{
|
||||||
|
@ -123,7 +131,7 @@ public:
|
||||||
void init();
|
void init();
|
||||||
void enable(bool permanent = true);
|
void enable(bool permanent = true);
|
||||||
void disable(bool permanent = true);
|
void disable(bool permanent = true);
|
||||||
void measure(void);
|
bool measure(void);
|
||||||
int32_t correct(int32_t x, int32_t y, int32_t z) const;
|
int32_t correct(int32_t x, int32_t y, int32_t z) const;
|
||||||
void updateDerived();
|
void updateDerived();
|
||||||
void reportStatus();
|
void reportStatus();
|
||||||
|
@ -187,7 +195,15 @@ public:
|
||||||
static void update();
|
static void update();
|
||||||
static void report();
|
static void report();
|
||||||
static INLINE bool anyXYZMax() {
|
static INLINE bool anyXYZMax() {
|
||||||
return (lastState & (ENDSTOP_X_MAX_ID|ENDSTOP_Z_MAX_ID|ENDSTOP_Z_MAX_ID)) != 0;
|
return (lastState & (ENDSTOP_X_MAX_ID|ENDSTOP_Y_MAX_ID|ENDSTOP_Z_MAX_ID)) != 0;
|
||||||
|
}
|
||||||
|
static INLINE bool anyXYZ() {
|
||||||
|
#ifdef EXTENDED_ENDSTOPS
|
||||||
|
return (lastState & (ENDSTOP_X_MAX_ID|ENDSTOP_Y_MAX_ID|ENDSTOP_Z_MAX_ID|ENDSTOP_X_MIN_ID|ENDSTOP_Y_MIN_ID|ENDSTOP_Z_MIN_ID|ENDSTOP_Z2_MIN_ID)) != 0 ||
|
||||||
|
lastState2 != 0;
|
||||||
|
#else
|
||||||
|
return (lastState & (ENDSTOP_X_MAX_ID|ENDSTOP_Y_MAX_ID|ENDSTOP_Z_MAX_ID|ENDSTOP_X_MIN_ID|ENDSTOP_Y_MIN_ID|ENDSTOP_Z_MIN_ID|ENDSTOP_Z2_MIN_ID)) != 0;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
static INLINE void resetAccumulator() {
|
static INLINE void resetAccumulator() {
|
||||||
accumulator = 0;
|
accumulator = 0;
|
||||||
|
@ -315,7 +331,7 @@ public:
|
||||||
static float extrusionFactor; ///< Extrusion multiply factor
|
static float extrusionFactor; ///< Extrusion multiply factor
|
||||||
#if NONLINEAR_SYSTEM
|
#if NONLINEAR_SYSTEM
|
||||||
static int32_t maxDeltaPositionSteps;
|
static int32_t maxDeltaPositionSteps;
|
||||||
static int32_t currentDeltaPositionSteps[E_TOWER_ARRAY];
|
static int32_t currentNonlinearPositionSteps[E_TOWER_ARRAY];
|
||||||
static floatLong deltaDiagonalStepsSquaredA;
|
static floatLong deltaDiagonalStepsSquaredA;
|
||||||
static floatLong deltaDiagonalStepsSquaredB;
|
static floatLong deltaDiagonalStepsSquaredB;
|
||||||
static floatLong deltaDiagonalStepsSquaredC;
|
static floatLong deltaDiagonalStepsSquaredC;
|
||||||
|
@ -331,7 +347,8 @@ public:
|
||||||
static int16_t travelMovesPerSecond;
|
static int16_t travelMovesPerSecond;
|
||||||
static int16_t printMovesPerSecond;
|
static int16_t printMovesPerSecond;
|
||||||
static float radius0;
|
static float radius0;
|
||||||
#else
|
#endif
|
||||||
|
#if DRIVE_SYSTEM != DELTA
|
||||||
static int32_t zCorrectionStepsIncluded;
|
static int32_t zCorrectionStepsIncluded;
|
||||||
#endif
|
#endif
|
||||||
#if FEATURE_Z_PROBE || MAX_HARDWARE_ENDSTOP_Z || NONLINEAR_SYSTEM
|
#if FEATURE_Z_PROBE || MAX_HARDWARE_ENDSTOP_Z || NONLINEAR_SYSTEM
|
||||||
|
@ -393,7 +410,7 @@ public:
|
||||||
static float memoryZ;
|
static float memoryZ;
|
||||||
static float memoryE;
|
static float memoryE;
|
||||||
static float memoryF;
|
static float memoryF;
|
||||||
#if GANTRY
|
#if GANTRY && !defined(FAST_COREXYZ)
|
||||||
static int8_t motorX;
|
static int8_t motorX;
|
||||||
static int8_t motorYorZ;
|
static int8_t motorYorZ;
|
||||||
#endif
|
#endif
|
||||||
|
@ -433,6 +450,7 @@ public:
|
||||||
static void toggleDryRun();
|
static void toggleDryRun();
|
||||||
static void toggleCommunication();
|
static void toggleCommunication();
|
||||||
static void toggleNoMoves();
|
static void toggleNoMoves();
|
||||||
|
static void toggleEndStop();
|
||||||
static INLINE uint8_t getDebugLevel() {return debugLevel;}
|
static INLINE uint8_t getDebugLevel() {return debugLevel;}
|
||||||
static INLINE bool debugEcho()
|
static INLINE bool debugEcho()
|
||||||
{
|
{
|
||||||
|
@ -464,6 +482,11 @@ public:
|
||||||
return ((debugLevel & 32) != 0);
|
return ((debugLevel & 32) != 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static INLINE bool debugEndStop()
|
||||||
|
{
|
||||||
|
return ((debugLevel & 64) != 0);
|
||||||
|
}
|
||||||
|
|
||||||
static INLINE bool debugFlag(uint8_t flags)
|
static INLINE bool debugFlag(uint8_t flags)
|
||||||
{
|
{
|
||||||
return (debugLevel & flags);
|
return (debugLevel & flags);
|
||||||
|
@ -487,7 +510,7 @@ public:
|
||||||
#if (X_ENABLE_PIN > -1)
|
#if (X_ENABLE_PIN > -1)
|
||||||
WRITE(X_ENABLE_PIN, !X_ENABLE_ON);
|
WRITE(X_ENABLE_PIN, !X_ENABLE_ON);
|
||||||
#endif
|
#endif
|
||||||
#if FEATURE_TWO_XSTEPPER && (X2_ENABLE_PIN > -1)
|
#if (FEATURE_TWO_XSTEPPER || DUAL_X_AXIS) && (X2_ENABLE_PIN > -1)
|
||||||
WRITE(X2_ENABLE_PIN, !X_ENABLE_ON);
|
WRITE(X2_ENABLE_PIN, !X_ENABLE_ON);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
@ -522,7 +545,7 @@ public:
|
||||||
#if (X_ENABLE_PIN > -1)
|
#if (X_ENABLE_PIN > -1)
|
||||||
WRITE(X_ENABLE_PIN, X_ENABLE_ON);
|
WRITE(X_ENABLE_PIN, X_ENABLE_ON);
|
||||||
#endif
|
#endif
|
||||||
#if FEATURE_TWO_XSTEPPER && (X2_ENABLE_PIN > -1)
|
#if (FEATURE_TWO_XSTEPPER || DUAL_X_AXIS) && (X2_ENABLE_PIN > -1)
|
||||||
WRITE(X2_ENABLE_PIN, X_ENABLE_ON);
|
WRITE(X2_ENABLE_PIN, X_ENABLE_ON);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
@ -556,14 +579,14 @@ public:
|
||||||
if(positive)
|
if(positive)
|
||||||
{
|
{
|
||||||
WRITE(X_DIR_PIN,!INVERT_X_DIR);
|
WRITE(X_DIR_PIN,!INVERT_X_DIR);
|
||||||
#if FEATURE_TWO_XSTEPPER
|
#if FEATURE_TWO_XSTEPPER || DUAL_X_AXIS
|
||||||
WRITE(X2_DIR_PIN,!INVERT_X_DIR);
|
WRITE(X2_DIR_PIN,!INVERT_X_DIR);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
WRITE(X_DIR_PIN,INVERT_X_DIR);
|
WRITE(X_DIR_PIN,INVERT_X_DIR);
|
||||||
#if FEATURE_TWO_XSTEPPER
|
#if FEATURE_TWO_XSTEPPER || DUAL_X_AXIS
|
||||||
WRITE(X2_DIR_PIN,INVERT_X_DIR);
|
WRITE(X2_DIR_PIN,INVERT_X_DIR);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
@ -816,7 +839,7 @@ public:
|
||||||
{
|
{
|
||||||
flag0 &= ~PRINTER_FLAG0_STEPPER_DISABLED;
|
flag0 &= ~PRINTER_FLAG0_STEPPER_DISABLED;
|
||||||
#if FAN_BOARD_PIN > -1
|
#if FAN_BOARD_PIN > -1
|
||||||
pwm_pos[PWM_BOARD_FAN] = 255;
|
pwm_pos[PWM_BOARD_FAN] = BOARD_FAN_SPEED;
|
||||||
#endif // FAN_BOARD_PIN
|
#endif // FAN_BOARD_PIN
|
||||||
}
|
}
|
||||||
static INLINE bool isAnyTempsensorDefect()
|
static INLINE bool isAnyTempsensorDefect()
|
||||||
|
@ -826,6 +849,7 @@ public:
|
||||||
static INLINE void setAnyTempsensorDefect()
|
static INLINE void setAnyTempsensorDefect()
|
||||||
{
|
{
|
||||||
flag0 |= PRINTER_FLAG0_TEMPSENSOR_DEFECT;
|
flag0 |= PRINTER_FLAG0_TEMPSENSOR_DEFECT;
|
||||||
|
debugSet(8);
|
||||||
}
|
}
|
||||||
static INLINE void unsetAnyTempsensorDefect()
|
static INLINE void unsetAnyTempsensorDefect()
|
||||||
{
|
{
|
||||||
|
@ -854,7 +878,7 @@ public:
|
||||||
}
|
}
|
||||||
static INLINE void executeXYGantrySteps()
|
static INLINE void executeXYGantrySteps()
|
||||||
{
|
{
|
||||||
#if (GANTRY)
|
#if (GANTRY) && !defined(FAST_COREXYZ)
|
||||||
if(motorX <= -2)
|
if(motorX <= -2)
|
||||||
{
|
{
|
||||||
WRITE(X_STEP_PIN,START_STEP_WITH_HIGH);
|
WRITE(X_STEP_PIN,START_STEP_WITH_HIGH);
|
||||||
|
@ -891,7 +915,7 @@ public:
|
||||||
}
|
}
|
||||||
static INLINE void executeXZGantrySteps()
|
static INLINE void executeXZGantrySteps()
|
||||||
{
|
{
|
||||||
#if (GANTRY)
|
#if (GANTRY) && !defined(FAST_COREXYZ)
|
||||||
if(motorX <= -2)
|
if(motorX <= -2)
|
||||||
{
|
{
|
||||||
WRITE(X_STEP_PIN,START_STEP_WITH_HIGH);
|
WRITE(X_STEP_PIN,START_STEP_WITH_HIGH);
|
||||||
|
@ -910,7 +934,6 @@ public:
|
||||||
}
|
}
|
||||||
if(motorYorZ <= -2)
|
if(motorYorZ <= -2)
|
||||||
{
|
{
|
||||||
//ANALYZER_ON(ANALYZER_CH3); // I dont think i can use these as they are for the y - possible bug area though
|
|
||||||
WRITE(Z_STEP_PIN,START_STEP_WITH_HIGH);
|
WRITE(Z_STEP_PIN,START_STEP_WITH_HIGH);
|
||||||
#if FEATURE_TWO_ZSTEPPER
|
#if FEATURE_TWO_ZSTEPPER
|
||||||
WRITE(Z2_STEP_PIN,START_STEP_WITH_HIGH);
|
WRITE(Z2_STEP_PIN,START_STEP_WITH_HIGH);
|
||||||
|
@ -922,7 +945,6 @@ public:
|
||||||
}
|
}
|
||||||
else if(motorYorZ >= 2)
|
else if(motorYorZ >= 2)
|
||||||
{
|
{
|
||||||
//ANALYZER_ON(ANALYZER_CH3); // I dont think i can use these as they are for the y - possible bug area though
|
|
||||||
WRITE(Z_STEP_PIN,START_STEP_WITH_HIGH);
|
WRITE(Z_STEP_PIN,START_STEP_WITH_HIGH);
|
||||||
#if FEATURE_TWO_ZSTEPPER
|
#if FEATURE_TWO_ZSTEPPER
|
||||||
WRITE(Z2_STEP_PIN,START_STEP_WITH_HIGH);
|
WRITE(Z2_STEP_PIN,START_STEP_WITH_HIGH);
|
||||||
|
@ -936,9 +958,24 @@ public:
|
||||||
}
|
}
|
||||||
static INLINE void startXStep()
|
static INLINE void startXStep()
|
||||||
{
|
{
|
||||||
|
#if DUAL_X_AXIS
|
||||||
|
#if FEATURE_DITTO_PRINTING
|
||||||
|
if(Extruder::dittoMode) {
|
||||||
|
WRITE(X_STEP_PIN,START_STEP_WITH_HIGH);
|
||||||
|
WRITE(X2_STEP_PIN,START_STEP_WITH_HIGH);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
if(Extruder::current->id) {
|
||||||
|
WRITE(X2_STEP_PIN,START_STEP_WITH_HIGH);
|
||||||
|
} else {
|
||||||
|
WRITE(X_STEP_PIN,START_STEP_WITH_HIGH);
|
||||||
|
}
|
||||||
|
#else
|
||||||
WRITE(X_STEP_PIN,START_STEP_WITH_HIGH);
|
WRITE(X_STEP_PIN,START_STEP_WITH_HIGH);
|
||||||
#if FEATURE_TWO_XSTEPPER
|
#if FEATURE_TWO_XSTEPPER
|
||||||
WRITE(X2_STEP_PIN,START_STEP_WITH_HIGH);
|
WRITE(X2_STEP_PIN,START_STEP_WITH_HIGH);
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
static INLINE void startYStep()
|
static INLINE void startYStep()
|
||||||
|
@ -961,7 +998,7 @@ public:
|
||||||
static INLINE void endXYZSteps()
|
static INLINE void endXYZSteps()
|
||||||
{
|
{
|
||||||
WRITE(X_STEP_PIN,!START_STEP_WITH_HIGH);
|
WRITE(X_STEP_PIN,!START_STEP_WITH_HIGH);
|
||||||
#if FEATURE_TWO_XSTEPPER
|
#if FEATURE_TWO_XSTEPPER || DUAL_X_AXIS
|
||||||
WRITE(X2_STEP_PIN,!START_STEP_WITH_HIGH);
|
WRITE(X2_STEP_PIN,!START_STEP_WITH_HIGH);
|
||||||
#endif
|
#endif
|
||||||
WRITE(Y_STEP_PIN,!START_STEP_WITH_HIGH);
|
WRITE(Y_STEP_PIN,!START_STEP_WITH_HIGH);
|
||||||
|
@ -1075,9 +1112,9 @@ public:
|
||||||
#if NONLINEAR_SYSTEM
|
#if NONLINEAR_SYSTEM
|
||||||
static INLINE void setDeltaPositions(long xaxis, long yaxis, long zaxis)
|
static INLINE void setDeltaPositions(long xaxis, long yaxis, long zaxis)
|
||||||
{
|
{
|
||||||
currentDeltaPositionSteps[A_TOWER] = xaxis;
|
currentNonlinearPositionSteps[A_TOWER] = xaxis;
|
||||||
currentDeltaPositionSteps[B_TOWER] = yaxis;
|
currentNonlinearPositionSteps[B_TOWER] = yaxis;
|
||||||
currentDeltaPositionSteps[C_TOWER] = zaxis;
|
currentNonlinearPositionSteps[C_TOWER] = zaxis;
|
||||||
}
|
}
|
||||||
static void deltaMoveToTopEndstops(float feedrate);
|
static void deltaMoveToTopEndstops(float feedrate);
|
||||||
#endif
|
#endif
|
||||||
|
@ -1093,14 +1130,15 @@ public:
|
||||||
#endif
|
#endif
|
||||||
// Moved outside FEATURE_Z_PROBE to allow auto-level functional test on
|
// Moved outside FEATURE_Z_PROBE to allow auto-level functional test on
|
||||||
// system without Z-probe
|
// system without Z-probe
|
||||||
#if FEATURE_AUTOLEVEL
|
|
||||||
static void transformToPrinter(float x,float y,float z,float &transX,float &transY,float &transZ);
|
static void transformToPrinter(float x,float y,float z,float &transX,float &transY,float &transZ);
|
||||||
static void transformFromPrinter(float x,float y,float z,float &transX,float &transY,float &transZ);
|
static void transformFromPrinter(float x,float y,float z,float &transX,float &transY,float &transZ);
|
||||||
|
#if FEATURE_AUTOLEVEL
|
||||||
static void resetTransformationMatrix(bool silent);
|
static void resetTransformationMatrix(bool silent);
|
||||||
static void buildTransformationMatrix(float h1,float h2,float h3);
|
//static void buildTransformationMatrix(float h1,float h2,float h3);
|
||||||
|
static void buildTransformationMatrix(Plane &plane);
|
||||||
#endif
|
#endif
|
||||||
#if DISTORTION_CORRECTION
|
#if DISTORTION_CORRECTION
|
||||||
static void measureDistortion(void);
|
static bool measureDistortion(void);
|
||||||
static Distortion distortion;
|
static Distortion distortion;
|
||||||
#endif
|
#endif
|
||||||
static void MemoryPosition();
|
static void MemoryPosition();
|
||||||
|
@ -1125,7 +1163,6 @@ public:
|
||||||
#if JSON_OUTPUT
|
#if JSON_OUTPUT
|
||||||
static void showJSONStatus(int type);
|
static void showJSONStatus(int type);
|
||||||
#endif
|
#endif
|
||||||
private:
|
|
||||||
static void homeXAxis();
|
static void homeXAxis();
|
||||||
static void homeYAxis();
|
static void homeYAxis();
|
||||||
static void homeZAxis();
|
static void homeZAxis();
|
||||||
|
|
|
@ -24,27 +24,29 @@
|
||||||
|
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#define REPETIER_VERSION "0.92.8"
|
#define REPETIER_VERSION "0.92.9"
|
||||||
|
|
||||||
// ##########################################################################################
|
// ##########################################################################################
|
||||||
// ## Debug configuration ##
|
// ## Debug configuration ##
|
||||||
// ##########################################################################################
|
// ##########################################################################################
|
||||||
// These are run time sqitchable debug flags
|
// These are run time switchable debug flags
|
||||||
enum debugFlags {DEB_ECHO = 0x1, DEB_INFO = 0x2, DEB_ERROR = 0x4,DEB_DRYRUN = 0x8,
|
enum debugFlags {DEB_ECHO = 0x1, DEB_INFO = 0x2, DEB_ERROR = 0x4,DEB_DRYRUN = 0x8,
|
||||||
DEB_COMMUNICATION = 0x10, DEB_NOMOVES = 0x20, DEB_DEBUG = 0x40
|
DEB_COMMUNICATION = 0x10, DEB_NOMOVES = 0x20, DEB_DEBUG = 0x40
|
||||||
};
|
};
|
||||||
|
|
||||||
/** Uncomment, to see detailed data for every move. Only for debugging purposes! */
|
/** Uncomment, to see detailed data for every move. Only for debugging purposes! */
|
||||||
//#define DEBUG_QUEUE_MOVE
|
//#define DEBUG_QUEUE_MOVE
|
||||||
|
/** write infos about path planner changes */
|
||||||
|
//#define DEBUG_PLANNER
|
||||||
/** Allows M111 to set bit 5 (16) which disables all commands except M111. This can be used
|
/** Allows M111 to set bit 5 (16) which disables all commands except M111. This can be used
|
||||||
to test your data througput or search for communication problems. */
|
to test your data throughput or search for communication problems. */
|
||||||
#define INCLUDE_DEBUG_COMMUNICATION 1
|
#define INCLUDE_DEBUG_COMMUNICATION 1
|
||||||
/** Allows M111 so set bit 6 (32) which disables moves, at the first tried step. In combination
|
/** Allows M111 so set bit 6 (32) which disables moves, at the first tried step. In combination
|
||||||
with a dry run, you can test the speed of path computations, which are still performed. */
|
with a dry run, you can test the speed of path computations, which are still performed. */
|
||||||
#define INCLUDE_DEBUG_NO_MOVE 1
|
#define INCLUDE_DEBUG_NO_MOVE 1
|
||||||
/** Writes the free RAM to output, if it is less then at the last test. Should always return
|
/** Writes the free RAM to output, if it is less then at the last test. Should always return
|
||||||
values >500 for safety, since it doesn't catch every function call. Nice to tweak cache
|
values >500 for safety, since it doesn't catch every function call. Nice to tweak cache
|
||||||
usage or for seraching for memory induced errors. Switch it off for production, it costs execution time. */
|
usage or for searching for memory induced errors. Switch it off for production, it costs execution time. */
|
||||||
//#define DEBUG_FREE_MEMORY
|
//#define DEBUG_FREE_MEMORY
|
||||||
//#define DEBUG_ADVANCE
|
//#define DEBUG_ADVANCE
|
||||||
/** If enabled, writes the created generic table to serial port at startup. */
|
/** If enabled, writes the created generic table to serial port at startup. */
|
||||||
|
@ -53,7 +55,7 @@ usage or for seraching for memory induced errors. Switch it off for production,
|
||||||
//#define DEBUG_STEPCOUNT
|
//#define DEBUG_STEPCOUNT
|
||||||
/** This enables code to make M666 drop an ok, so you get problems with communication. It is to test host robustness. */
|
/** This enables code to make M666 drop an ok, so you get problems with communication. It is to test host robustness. */
|
||||||
//#define DEBUG_COM_ERRORS
|
//#define DEBUG_COM_ERRORS
|
||||||
/** Adds a menu point in quick settings to write debg informations to the host in case of hangs where the ui still works. */
|
/** Adds a menu point in quick settings to write debug informations to the host in case of hangs where the ui still works. */
|
||||||
//#define DEBUG_PRINT
|
//#define DEBUG_PRINT
|
||||||
//#define DEBUG_DELTA_OVERFLOW
|
//#define DEBUG_DELTA_OVERFLOW
|
||||||
//#define DEBUG_DELTA_REALPOS
|
//#define DEBUG_DELTA_REALPOS
|
||||||
|
@ -76,6 +78,7 @@ usage or for seraching for memory induced errors. Switch it off for production,
|
||||||
#define BIPOD 5
|
#define BIPOD 5
|
||||||
#define XZ_GANTRY 8
|
#define XZ_GANTRY 8
|
||||||
#define ZX_GANTRY 9
|
#define ZX_GANTRY 9
|
||||||
|
#define GANTRY_FAKE 10
|
||||||
|
|
||||||
#define WIZARD_STACK_SIZE 8
|
#define WIZARD_STACK_SIZE 8
|
||||||
#define IGNORE_COORDINATE 999999
|
#define IGNORE_COORDINATE 999999
|
||||||
|
@ -130,6 +133,7 @@ usage or for seraching for memory induced errors. Switch it off for production,
|
||||||
#define HOME_ORDER_ZXY 5
|
#define HOME_ORDER_ZXY 5
|
||||||
#define HOME_ORDER_ZYX 6
|
#define HOME_ORDER_ZYX 6
|
||||||
#define HOME_ORDER_ZXYTZ 7 // Needs hot hotend for correct homing
|
#define HOME_ORDER_ZXYTZ 7 // Needs hot hotend for correct homing
|
||||||
|
#define HOME_ORDER_XYTZ 8 // Needs hot hotend for correct homing
|
||||||
|
|
||||||
#define NO_CONTROLLER 0
|
#define NO_CONTROLLER 0
|
||||||
#define UICONFIG_CONTROLLER 1
|
#define UICONFIG_CONTROLLER 1
|
||||||
|
@ -155,6 +159,7 @@ usage or for seraching for memory induced errors. Switch it off for production,
|
||||||
#define CONTROLLER_VIKI2 21
|
#define CONTROLLER_VIKI2 21
|
||||||
#define CONTROLLER_LCD_MP_PHARAOH_DUE 22
|
#define CONTROLLER_LCD_MP_PHARAOH_DUE 22
|
||||||
#define CONTROLLER_SPARKLCD_ADAPTER 23
|
#define CONTROLLER_SPARKLCD_ADAPTER 23
|
||||||
|
#define CONTROLLER_ZONESTAR 24
|
||||||
#define CONTROLLER_FELIX_DUE 405
|
#define CONTROLLER_FELIX_DUE 405
|
||||||
|
|
||||||
//direction flags
|
//direction flags
|
||||||
|
@ -183,12 +188,64 @@ usage or for seraching for memory induced errors. Switch it off for production,
|
||||||
#define PRINTER_MODE_FFF 0
|
#define PRINTER_MODE_FFF 0
|
||||||
#define PRINTER_MODE_LASER 1
|
#define PRINTER_MODE_LASER 1
|
||||||
#define PRINTER_MODE_CNC 2
|
#define PRINTER_MODE_CNC 2
|
||||||
// we can not prevent this as some configs need a parameter and others not
|
|
||||||
|
#define ILLEGAL_Z_PROBE -888
|
||||||
|
|
||||||
|
// we can not prevent this as some configurations need a parameter and others not
|
||||||
#pragma GCC diagnostic ignored "-Wunused-parameter"
|
#pragma GCC diagnostic ignored "-Wunused-parameter"
|
||||||
#pragma GCC diagnostic ignored "-Wunused-variable"
|
#pragma GCC diagnostic ignored "-Wunused-variable"
|
||||||
|
|
||||||
#include "Configuration.h"
|
#include "Configuration.h"
|
||||||
|
|
||||||
|
#ifndef SHARED_EXTRUDER_HEATER
|
||||||
|
#define SHARED_EXTRUDER_HEATER 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef DUAL_X_AXIS
|
||||||
|
#define DUAL_X_AXIS 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if SHARED_EXTRUDER_HEATER || MIXING_EXTRUDER
|
||||||
|
#undef EXT1_HEATER_PIN
|
||||||
|
#undef EXT2_HEATER_PIN
|
||||||
|
#undef EXT3_HEATER_PIN
|
||||||
|
#undef EXT4_HEATER_PIN
|
||||||
|
#undef EXT5_HEATER_PIN
|
||||||
|
#define EXT1_HEATER_PIN -1
|
||||||
|
#define EXT2_HEATER_PIN -1
|
||||||
|
#define EXT3_HEATER_PIN -1
|
||||||
|
#define EXT4_HEATER_PIN -1
|
||||||
|
#define EXT5_HEATER_PIN -1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef BOARD_FAN_SPEED
|
||||||
|
#define BOARD_FAN_SPEED
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef MAX_JERK_DISTANCE
|
||||||
|
#define MAX_JERK_DISTANCE 0.6
|
||||||
|
#endif
|
||||||
|
#define XY_GANTRY 1
|
||||||
|
#define YX_GANTRY 2
|
||||||
|
#define DELTA 3
|
||||||
|
#define TUGA 4
|
||||||
|
#define BIPOD 5
|
||||||
|
#define XZ_GANTRY 8
|
||||||
|
#define ZX_GANTRY 9
|
||||||
|
#if defined(FAST_COREXYZ) && !(DRIVE_SYSTEM==XY_GANTRY || DRIVE_SYSTEM==YX_GANTRY || DRIVE_SYSTEM==XZ_GANTRY || DRIVE_SYSTEM==ZX_GANTRY || DRIVE_SYSTEM==GANTRY_FAKE)
|
||||||
|
#undef FAST_COREXYZ
|
||||||
|
#endif
|
||||||
|
#ifdef FAST_COREXYZ
|
||||||
|
#if DELTA_SEGMENTS_PER_SECOND_PRINT < 30
|
||||||
|
#undef DELTA_SEGMENTS_PER_SECOND_PRINT
|
||||||
|
#define DELTA_SEGMENTS_PER_SECOND_PRINT 30 // core is linear, no subsegments needed
|
||||||
|
#endif
|
||||||
|
#if DELTA_SEGMENTS_PER_SECOND_MOVE < 30
|
||||||
|
#undef DELTA_SEGMENTS_PER_SECOND_MOVE
|
||||||
|
#define DELTA_SEGMENTS_PER_SECOND_MOVE 30
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
inline void memcopy2(void *dest,void *source) {
|
inline void memcopy2(void *dest,void *source) {
|
||||||
*((int16_t*)dest) = *((int16_t*)source);
|
*((int16_t*)dest) = *((int16_t*)source);
|
||||||
}
|
}
|
||||||
|
@ -200,6 +257,10 @@ inline void memcopy4(void *dest,void *source) {
|
||||||
#define JSON_OUTPUT 0
|
#define JSON_OUTPUT 0
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if !defined(ZPROBE_MIN_TEMPERATURE) && defined(ZHOME_MIN_TEMPERATURE)
|
||||||
|
#define ZPROBE_MIN_TEMPERATURE ZHOME_MIN_TEMPERATURE
|
||||||
|
#endif
|
||||||
|
|
||||||
#if FEATURE_Z_PROBE && Z_PROBE_PIN < 0
|
#if FEATURE_Z_PROBE && Z_PROBE_PIN < 0
|
||||||
#error You need to define Z_PROBE_PIN to use z probe!
|
#error You need to define Z_PROBE_PIN to use z probe!
|
||||||
#endif
|
#endif
|
||||||
|
@ -256,7 +317,7 @@ inline void memcopy4(void *dest,void *source) {
|
||||||
#define SOFTWARE_LEVELING (defined(FEATURE_SOFTWARE_LEVELING) && (DRIVE_SYSTEM==DELTA))
|
#define SOFTWARE_LEVELING (defined(FEATURE_SOFTWARE_LEVELING) && (DRIVE_SYSTEM==DELTA))
|
||||||
/** \brief Horizontal distance bridged by the diagonal push rod when the end effector is in the center. It is pretty close to 50% of the push rod length (250 mm).
|
/** \brief Horizontal distance bridged by the diagonal push rod when the end effector is in the center. It is pretty close to 50% of the push rod length (250 mm).
|
||||||
*/
|
*/
|
||||||
#ifndef ROD_RADIUS
|
#if !defined(ROD_RADIUS) && DRIVE_SYSTEM == DELTA
|
||||||
#define ROD_RADIUS (PRINTER_RADIUS-END_EFFECTOR_HORIZONTAL_OFFSET-CARRIAGE_HORIZONTAL_OFFSET)
|
#define ROD_RADIUS (PRINTER_RADIUS-END_EFFECTOR_HORIZONTAL_OFFSET-CARRIAGE_HORIZONTAL_OFFSET)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -264,7 +325,7 @@ inline void memcopy4(void *dest,void *source) {
|
||||||
#define UI_SPEEDDEPENDENT_POSITIONING true
|
#define UI_SPEEDDEPENDENT_POSITIONING true
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if DRIVE_SYSTEM==DELTA || DRIVE_SYSTEM==TUGA || DRIVE_SYSTEM==BIPOD
|
#if DRIVE_SYSTEM==DELTA || DRIVE_SYSTEM==TUGA || DRIVE_SYSTEM==BIPOD || defined(FAST_COREXYZ)
|
||||||
#define NONLINEAR_SYSTEM 1
|
#define NONLINEAR_SYSTEM 1
|
||||||
#else
|
#else
|
||||||
#define NONLINEAR_SYSTEM 0
|
#define NONLINEAR_SYSTEM 0
|
||||||
|
@ -274,16 +335,16 @@ inline void memcopy4(void *dest,void *source) {
|
||||||
#define MANUAL_CONTROL 1
|
#define MANUAL_CONTROL 1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define GANTRY ( DRIVE_SYSTEM==XY_GANTRY || DRIVE_SYSTEM==YX_GANTRY || DRIVE_SYSTEM==XZ_GANTRY || DRIVE_SYSTEM==ZX_GANTRY)
|
#define GANTRY ( DRIVE_SYSTEM==XY_GANTRY || DRIVE_SYSTEM==YX_GANTRY || DRIVE_SYSTEM==XZ_GANTRY || DRIVE_SYSTEM==ZX_GANTRY || DRIVE_SYSTEM==GANTRY_FAKE)
|
||||||
|
|
||||||
//Step to split a cirrcle in small Lines
|
//Step to split a circle in small Lines
|
||||||
#ifndef MM_PER_ARC_SEGMENT
|
#ifndef MM_PER_ARC_SEGMENT
|
||||||
#define MM_PER_ARC_SEGMENT 1
|
#define MM_PER_ARC_SEGMENT 1
|
||||||
#define MM_PER_ARC_SEGMENT_BIG 3
|
#define MM_PER_ARC_SEGMENT_BIG 3
|
||||||
#else
|
#else
|
||||||
#define MM_PER_ARC_SEGMENT_BIG MM_PER_ARC_SEGMENT
|
#define MM_PER_ARC_SEGMENT_BIG MM_PER_ARC_SEGMENT
|
||||||
#endif
|
#endif
|
||||||
//After this count of steps a new SIN / COS caluclation is startet to correct the circle interpolation
|
//After this count of steps a new SIN / COS calculation is started to correct the circle interpolation
|
||||||
#define N_ARC_CORRECTION 25
|
#define N_ARC_CORRECTION 25
|
||||||
|
|
||||||
// Test for shared cooler
|
// Test for shared cooler
|
||||||
|
@ -410,7 +471,6 @@ inline void memcopy4(void *dest,void *source) {
|
||||||
#define BED_ANALOG_INPUTS 1
|
#define BED_ANALOG_INPUTS 1
|
||||||
#define BED_SENSOR_INDEX EXT0_ANALOG_INPUTS+EXT1_ANALOG_INPUTS+EXT2_ANALOG_INPUTS+EXT3_ANALOG_INPUTS+EXT4_ANALOG_INPUTS+EXT5_ANALOG_INPUTS
|
#define BED_SENSOR_INDEX EXT0_ANALOG_INPUTS+EXT1_ANALOG_INPUTS+EXT2_ANALOG_INPUTS+EXT3_ANALOG_INPUTS+EXT4_ANALOG_INPUTS+EXT5_ANALOG_INPUTS
|
||||||
#define BED_ANALOG_CHANNEL ACCOMMA5 HEATED_BED_SENSOR_PIN
|
#define BED_ANALOG_CHANNEL ACCOMMA5 HEATED_BED_SENSOR_PIN
|
||||||
#undef BEKOMMA
|
|
||||||
#define BED_KOMMA ,
|
#define BED_KOMMA ,
|
||||||
#else
|
#else
|
||||||
#define BED_ANALOG_INPUTS 0
|
#define BED_ANALOG_INPUTS 0
|
||||||
|
@ -423,9 +483,20 @@ inline void memcopy4(void *dest,void *source) {
|
||||||
#define THERMO_ANALOG_INPUTS 1
|
#define THERMO_ANALOG_INPUTS 1
|
||||||
#define THERMO_ANALOG_INDEX EXT0_ANALOG_INPUTS+EXT1_ANALOG_INPUTS+EXT2_ANALOG_INPUTS+EXT3_ANALOG_INPUTS+EXT4_ANALOG_INPUTS+EXT5_ANALOG_INPUTS+BED_ANALOG_INPUTS
|
#define THERMO_ANALOG_INDEX EXT0_ANALOG_INPUTS+EXT1_ANALOG_INPUTS+EXT2_ANALOG_INPUTS+EXT3_ANALOG_INPUTS+EXT4_ANALOG_INPUTS+EXT5_ANALOG_INPUTS+BED_ANALOG_INPUTS
|
||||||
#define THERMO_ANALOG_CHANNEL BED_KOMMA FAN_THERMO_THERMISTOR_PIN
|
#define THERMO_ANALOG_CHANNEL BED_KOMMA FAN_THERMO_THERMISTOR_PIN
|
||||||
|
#define THERMO_COMMA ,
|
||||||
#else
|
#else
|
||||||
#define THERMO_ANALOG_INPUTS 0
|
#define THERMO_ANALOG_INPUTS 0
|
||||||
#define THERMO_ANALOG_CHANNEL
|
#define THERMO_ANALOG_CHANNEL
|
||||||
|
#define THERMO_COMMA BED_KOMMA
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(ADC_KEYPAD_PIN) && (ADC_KEYPAD_PIN > -1)
|
||||||
|
#define KEYPAD_ANALOG_INPUTS 1
|
||||||
|
#define KEYPAD_ANALOG_INDEX EXT0_ANALOG_INPUTS+EXT1_ANALOG_INPUTS+EXT2_ANALOG_INPUTS+EXT3_ANALOG_INPUTS+EXT4_ANALOG_INPUTS+EXT5_ANALOG_INPUTS+BED_ANALOG_INPUTS+THERMO_ANALOG_INPUTS
|
||||||
|
#define KEYPAD_ANALOG_CHANNEL THERMO_COMMA ADC_KEYPAD_PIN
|
||||||
|
#else
|
||||||
|
#define KEYPAD_ANALOG_INPUTS 0
|
||||||
|
#define KEYPAD_ANALOG_CHANNEL
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef DEBUG_FREE_MEMORY
|
#ifndef DEBUG_FREE_MEMORY
|
||||||
|
@ -435,10 +506,10 @@ inline void memcopy4(void *dest,void *source) {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/** \brief number of analog input signals. Normally 1 for each temperature sensor */
|
/** \brief number of analog input signals. Normally 1 for each temperature sensor */
|
||||||
#define ANALOG_INPUTS (EXT0_ANALOG_INPUTS+EXT1_ANALOG_INPUTS+EXT2_ANALOG_INPUTS+EXT3_ANALOG_INPUTS+EXT4_ANALOG_INPUTS+EXT5_ANALOG_INPUTS+BED_ANALOG_INPUTS+THERMO_ANALOG_INPUTS)
|
#define ANALOG_INPUTS (EXT0_ANALOG_INPUTS+EXT1_ANALOG_INPUTS+EXT2_ANALOG_INPUTS+EXT3_ANALOG_INPUTS+EXT4_ANALOG_INPUTS+EXT5_ANALOG_INPUTS+BED_ANALOG_INPUTS+THERMO_ANALOG_INPUTS+KEYPAD_ANALOG_INPUTS)
|
||||||
#if ANALOG_INPUTS > 0
|
#if ANALOG_INPUTS > 0
|
||||||
/** Channels are the MUX-part of ADMUX register */
|
/** Channels are the MUX-part of ADMUX register */
|
||||||
#define ANALOG_INPUT_CHANNELS {EXT0_ANALOG_CHANNEL EXT1_ANALOG_CHANNEL EXT2_ANALOG_CHANNEL EXT3_ANALOG_CHANNEL EXT4_ANALOG_CHANNEL EXT5_ANALOG_CHANNEL BED_ANALOG_CHANNEL THERMO_ANALOG_CHANNEL}
|
#define ANALOG_INPUT_CHANNELS {EXT0_ANALOG_CHANNEL EXT1_ANALOG_CHANNEL EXT2_ANALOG_CHANNEL EXT3_ANALOG_CHANNEL EXT4_ANALOG_CHANNEL EXT5_ANALOG_CHANNEL BED_ANALOG_CHANNEL THERMO_ANALOG_CHANNEL KEYPAD_ANALOG_CHANNEL}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define MENU_MODE_SD_MOUNTED 1
|
#define MENU_MODE_SD_MOUNTED 1
|
||||||
|
|
|
@ -111,18 +111,18 @@ Custom M Codes
|
||||||
- M209 S<0/1> - Enable/disable autoretraction
|
- M209 S<0/1> - Enable/disable autoretraction
|
||||||
- M220 S<Feedrate multiplier in percent> - Increase/decrease given feedrate
|
- M220 S<Feedrate multiplier in percent> - Increase/decrease given feedrate
|
||||||
- M221 S<Extrusion flow multiplier in percent> - Increase/decrease given flow rate
|
- M221 S<Extrusion flow multiplier in percent> - Increase/decrease given flow rate
|
||||||
- M228 P<pin> S<state 0/1> - Wait for pin getting state S. Add X0 to init as input without pullup and X1 for input with pullup.
|
- M226 P<pin> S<state 0/1> - Wait for pin getting state S. Add X0 to init as input without pullup and X1 for input with pullup.
|
||||||
- M231 S<OPS_MODE> X<Min_Distance> Y<Retract> Z<Backlash> F<ReatrctMove> - Set OPS parameter
|
- M231 S<OPS_MODE> X<Min_Distance> Y<Retract> Z<Backlash> F<ReatrctMove> - Set OPS parameter
|
||||||
- M232 - Read and reset max. advance values
|
- M232 - Read and reset max. advance values
|
||||||
- M233 X<AdvanceK> Y<AdvanceL> - Set temporary advance K-value to X and linear term advanceL to Y
|
- M233 X<AdvanceK> Y<AdvanceL> - Set temporary advance K-value to X and linear term advanceL to Y
|
||||||
- M251 Measure Z steps from homing stop (Delta printers). S0 - Reset, S1 - Print, S2 - Store to Z length (also EEPROM if enabled)
|
- M251 Measure Z steps from homing stop (Delta printers). S0 - Reset, S1 - Print, S2 - Store to Z length (also EEPROM if enabled)
|
||||||
- M280 S<mode> - Set ditto printing mode. mode: 0 = off, 1 = 1 extra extruder, 2 = 2 extra extruder, 3 = 3 extra extruders
|
- M280 S<mode> - Set ditto printing mode. mode: 0 = off, 1 = 1 extra extruder, 2 = 2 extra extruder, 3 = 3 extra extruders
|
||||||
- M281 Test if watchdog is running and working.
|
- M281 Test if watchdog is running and working. Use M281 X0 to disable watchdog on AVR boards. Sometimes needed for boards with old bootloaders to allow reflashing.
|
||||||
- M300 S<Frequency> P<DurationMillis> play frequency
|
- M300 S<Frequency> P<DurationMillis> play frequency
|
||||||
- M302 S<0 or 1> - allow cold extrusion. Without S parameter it will allow. S1 will disallow.
|
- M302 S<0 or 1> - allow cold extrusion. Without S parameter it will allow. S1 will disallow.
|
||||||
- M303 P<extruder/bed> S<printTemerature> X0 R<Repetitions>- Autodetect pid values. Use P<NUM_EXTRUDER> for heated bed. X0 saves result in EEPROM. R is number of cycles.
|
- M303 P<extruder/bed> S<printTemerature> X0 R<Repetitions>- Autodetect pid values. Use P<NUM_EXTRUDER> for heated bed. X0 saves result in EEPROM. R is number of cycles.
|
||||||
- M320 - Activate autolevel
|
- M320 S<0/1> - Activate autolevel, S1 stores it in eeprom
|
||||||
- M321 - Deactivate autolevel
|
- M321 S<0/1> - Deactivate autolevel, S1 stores it in eeprom
|
||||||
- M322 - Reset autolevel matrix
|
- M322 - Reset autolevel matrix
|
||||||
- M323 S0/S1 enable disable distortion correction P0 = not permanent, P1 = permanent = default
|
- M323 S0/S1 enable disable distortion correction P0 = not permanent, P1 = permanent = default
|
||||||
- M340 P<servoId> S<pulseInUS> R<autoOffIn ms>: servoID = 0..3, Servos are controlled by a pulse with normally between 500 and 2500 with 1500ms in center position. 0 turns servo off. R allows automatic disabling after a while.
|
- M340 P<servoId> S<pulseInUS> R<autoOffIn ms>: servoID = 0..3, Servos are controlled by a pulse with normally between 500 and 2500 with 1500ms in center position. 0 turns servo off. R allows automatic disabling after a while.
|
||||||
|
@ -145,6 +145,7 @@ Custom M Codes
|
||||||
- M601 S<1/0> - Pause extruders. Paused extrudes disable heaters and motor. Unpausing reheats extruder to old temp.
|
- M601 S<1/0> - Pause extruders. Paused extrudes disable heaters and motor. Unpausing reheats extruder to old temp.
|
||||||
- M602 S<1/0> P<1/0>- Debug jam control (S) Disable jam control (P). If enabled it will log signal changes and will not trigger jam errors!
|
- M602 S<1/0> P<1/0>- Debug jam control (S) Disable jam control (P). If enabled it will log signal changes and will not trigger jam errors!
|
||||||
- M908 P<address> S<value> : Set stepper current for digipot (RAMBO board)
|
- M908 P<address> S<value> : Set stepper current for digipot (RAMBO board)
|
||||||
|
- M999 - Continue from fatal error. M999 S1 will create a fatal error for testing.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "Repetier.h"
|
#include "Repetier.h"
|
||||||
|
|
|
@ -78,7 +78,11 @@ void SDCard::initsd()
|
||||||
if(READ(SDCARDDETECT) != SDCARDDETECTINVERTED)
|
if(READ(SDCARDDETECT) != SDCARDDETECTINVERTED)
|
||||||
return;
|
return;
|
||||||
#endif
|
#endif
|
||||||
|
HAL::pingWatchdog();
|
||||||
HAL::delayMilliseconds(50); // wait for stabilization of contacts, bootup ...
|
HAL::delayMilliseconds(50); // wait for stabilization of contacts, bootup ...
|
||||||
|
fat.begin(SDSS, SPI_FULL_SPEED); // dummy init of SD_CARD
|
||||||
|
HAL::delayMilliseconds(50); // wait for init end
|
||||||
|
HAL::pingWatchdog();
|
||||||
/*if(dir[0].isOpen())
|
/*if(dir[0].isOpen())
|
||||||
dir[0].close();*/
|
dir[0].close();*/
|
||||||
if(!fat.begin(SDSS, SPI_FULL_SPEED))
|
if(!fat.begin(SDSS, SPI_FULL_SPEED))
|
||||||
|
@ -89,6 +93,7 @@ void SDCard::initsd()
|
||||||
}
|
}
|
||||||
sdactive = true;
|
sdactive = true;
|
||||||
Printer::setMenuMode(MENU_MODE_SD_MOUNTED, true);
|
Printer::setMenuMode(MENU_MODE_SD_MOUNTED, true);
|
||||||
|
HAL::pingWatchdog();
|
||||||
|
|
||||||
fat.chdir();
|
fat.chdir();
|
||||||
if(selectFile("init.g", true))
|
if(selectFile("init.g", true))
|
||||||
|
@ -173,7 +178,7 @@ void SDCard::stopPrint()
|
||||||
GCode::executeFString(PSTR(SD_RUN_ON_STOP));
|
GCode::executeFString(PSTR(SD_RUN_ON_STOP));
|
||||||
if(SD_STOP_HEATER_AND_MOTORS_ON_STOP) {
|
if(SD_STOP_HEATER_AND_MOTORS_ON_STOP) {
|
||||||
Commands::waitUntilEndOfAllMoves();
|
Commands::waitUntilEndOfAllMoves();
|
||||||
Printer::kill(true);
|
Printer::kill(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -43,6 +43,7 @@ int8_t GCode::waitingForResend = -1; ///< Waiting for line to be resend. -1 =
|
||||||
volatile uint8_t GCode::bufferLength = 0; ///< Number of commands stored in gcode_buffer
|
volatile uint8_t GCode::bufferLength = 0; ///< Number of commands stored in gcode_buffer
|
||||||
millis_t GCode::timeOfLastDataPacket = 0; ///< Time, when we got the last data packet. Used to detect missing uint8_ts.
|
millis_t GCode::timeOfLastDataPacket = 0; ///< Time, when we got the last data packet. Used to detect missing uint8_ts.
|
||||||
uint8_t GCode::formatErrors = 0;
|
uint8_t GCode::formatErrors = 0;
|
||||||
|
PGM_P GCode::fatalErrorMsg = NULL; ///< message unset = no fatal error
|
||||||
|
|
||||||
/** \page Repetier-protocol
|
/** \page Repetier-protocol
|
||||||
|
|
||||||
|
@ -221,8 +222,19 @@ void GCode::checkAndPushCommand()
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
lastLineNumber = actLineNumber;
|
lastLineNumber = actLineNumber;
|
||||||
|
} else if(lastLineNumber && !(hasM() && M == 117)) { // once line number always line number!
|
||||||
|
if(Printer::debugErrors())
|
||||||
|
{
|
||||||
|
Com::printErrorFLN(PSTR("Missing linenumber"));
|
||||||
}
|
}
|
||||||
|
requestResend();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if(GCode::hasFatalError() && !(hasM() && M==999)) {
|
||||||
|
GCode::reportFatalError();
|
||||||
|
} else {
|
||||||
pushCommand();
|
pushCommand();
|
||||||
|
}
|
||||||
#ifdef DEBUG_COM_ERRORS
|
#ifdef DEBUG_COM_ERRORS
|
||||||
if(hasM() && M == 667)
|
if(hasM() && M == 667)
|
||||||
return; // omit ok
|
return; // omit ok
|
||||||
|
@ -1010,11 +1022,41 @@ void GCode::printCommand()
|
||||||
Com::println();
|
Com::println();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void GCode::fatalError(FSTRINGPARAM(message)) {
|
||||||
|
fatalErrorMsg = message;
|
||||||
|
#if SDSUPPORT
|
||||||
|
if(sd.sdmode != 0) { // stop sd print to prevent damage
|
||||||
|
sd.stopPrint();
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
if(Printer::currentPosition[Z_AXIS] < Printer::zMin + Printer::zLength - 15)
|
||||||
|
PrintLine::moveRelativeDistanceInStepsReal(0,0,10*Printer::axisStepsPerMM[Z_AXIS],0,Printer::homingFeedrate[Z_AXIS],true,true);
|
||||||
|
EVENT_FATAL_ERROR_OCCURED
|
||||||
|
Commands::waitUntilEndOfAllMoves();
|
||||||
|
Printer::kill(true);
|
||||||
|
reportFatalError();
|
||||||
|
}
|
||||||
|
|
||||||
|
void GCode::reportFatalError() {
|
||||||
|
Com::printF(Com::tFatal);
|
||||||
|
Com::printF(fatalErrorMsg);
|
||||||
|
Com::printFLN(PSTR(" Printer stopped and heaters disabled due to this error. Fix error and restart with M999."));
|
||||||
|
UI_ERROR_P(fatalErrorMsg)
|
||||||
|
}
|
||||||
|
|
||||||
|
void GCode::resetFatalError() {
|
||||||
|
TemperatureController::resetAllErrorStates();
|
||||||
|
fatalErrorMsg = NULL;
|
||||||
|
UI_ERROR("");
|
||||||
|
EVENT_CONTINUE_FROM_FATAL_ERROR
|
||||||
|
Com::printFLN(PSTR("info:Continue from fatal state"));
|
||||||
|
}
|
||||||
|
|
||||||
#if JSON_OUTPUT
|
#if JSON_OUTPUT
|
||||||
|
|
||||||
// --------------------------------------------------------------- //
|
// --------------------------------------------------------------- //
|
||||||
// Code that gets gcode information is adapted from RepRapFirmware //
|
// Code that gets gcode information is adapted from RepRapFirmware //
|
||||||
// Originally licenced under GPL //
|
// Originally licensed under GPL //
|
||||||
// Authors: reprappro, dc42, dcnewman, others //
|
// Authors: reprappro, dc42, dcnewman, others //
|
||||||
// Source: https://github.com/dcnewman/RepRapFirmware //
|
// Source: https://github.com/dcnewman/RepRapFirmware //
|
||||||
// Copy date: 15 Nov 2015 //
|
// Copy date: 15 Nov 2015 //
|
||||||
|
|
|
@ -182,7 +182,12 @@ public:
|
||||||
static void pushCommand();
|
static void pushCommand();
|
||||||
static void executeFString(FSTRINGPARAM(cmd));
|
static void executeFString(FSTRINGPARAM(cmd));
|
||||||
static uint8_t computeBinarySize(char *ptr);
|
static uint8_t computeBinarySize(char *ptr);
|
||||||
|
static void fatalError(FSTRINGPARAM(message));
|
||||||
|
static void reportFatalError();
|
||||||
|
static void resetFatalError();
|
||||||
|
inline static bool hasFatalError() {
|
||||||
|
return fatalErrorMsg != NULL;
|
||||||
|
}
|
||||||
friend class SDCard;
|
friend class SDCard;
|
||||||
friend class UIDisplay;
|
friend class UIDisplay;
|
||||||
private:
|
private:
|
||||||
|
@ -206,6 +211,7 @@ private:
|
||||||
return l;
|
return l;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static FSTRINGPARAM(fatalErrorMsg);
|
||||||
static GCode commandsBuffered[GCODE_BUFFER_SIZE]; ///< Buffer for received commands.
|
static GCode commandsBuffered[GCODE_BUFFER_SIZE]; ///< Buffer for received commands.
|
||||||
static uint8_t bufferReadIndex; ///< Read position in gcode_buffer.
|
static uint8_t bufferReadIndex; ///< Read position in gcode_buffer.
|
||||||
static uint8_t bufferWriteIndex; ///< Write position in gcode_buffer.
|
static uint8_t bufferWriteIndex; ///< Write position in gcode_buffer.
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -53,15 +53,13 @@
|
||||||
// Printing related data
|
// Printing related data
|
||||||
#if NONLINEAR_SYSTEM
|
#if NONLINEAR_SYSTEM
|
||||||
// Allow the delta cache to store segments for every line in line cache. Beware this gets big ... fast.
|
// Allow the delta cache to store segments for every line in line cache. Beware this gets big ... fast.
|
||||||
// DELTASEGMENTS_PER_PRINTLINE *
|
|
||||||
#define DELTA_CACHE_SIZE (DELTASEGMENTS_PER_PRINTLINE * PRINTLINE_CACHE_SIZE)
|
|
||||||
|
|
||||||
class PrintLine;
|
class PrintLine;
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
flag8_t dir; ///< Direction of delta movement.
|
flag8_t dir; ///< Direction of delta movement.
|
||||||
uint16_t deltaSteps[TOWER_ARRAY]; ///< Number of steps in move.
|
uint16_t deltaSteps[TOWER_ARRAY]; ///< Number of steps in move.
|
||||||
inline void checkEndstops(PrintLine *cur,bool checkall);
|
inline bool checkEndstops(PrintLine *cur,bool checkall);
|
||||||
inline void setXMoveFinished()
|
inline void setXMoveFinished()
|
||||||
{
|
{
|
||||||
dir &= ~XSTEP;
|
dir &= ~XSTEP;
|
||||||
|
@ -158,7 +156,7 @@ typedef struct
|
||||||
{
|
{
|
||||||
dir |= X_DIRPOS << axis;
|
dir |= X_DIRPOS << axis;
|
||||||
}
|
}
|
||||||
} DeltaSegment;
|
} NonlinearSegment;
|
||||||
extern uint8_t lastMoveID;
|
extern uint8_t lastMoveID;
|
||||||
#endif
|
#endif
|
||||||
class UIDisplay;
|
class UIDisplay;
|
||||||
|
@ -186,18 +184,18 @@ private:
|
||||||
float speedZ; ///< Speed in z direction at fullInterval in mm/s
|
float speedZ; ///< Speed in z direction at fullInterval in mm/s
|
||||||
float speedE; ///< Speed in E direction at fullInterval in mm/s
|
float speedE; ///< Speed in E direction at fullInterval in mm/s
|
||||||
float fullSpeed; ///< Desired speed mm/s
|
float fullSpeed; ///< Desired speed mm/s
|
||||||
float invFullSpeed; ///< 1.0/fullSpeed for fatser computation
|
float invFullSpeed; ///< 1.0/fullSpeed for faster computation
|
||||||
float accelerationDistance2; ///< Real 2.0*distanceÜacceleration mm²/s²
|
float accelerationDistance2; ///< Real 2.0*distance*acceleration mm²/s²
|
||||||
float maxJunctionSpeed; ///< Max. junction speed between this and next segment
|
float maxJunctionSpeed; ///< Max. junction speed between this and next segment
|
||||||
float startSpeed; ///< Staring speed in mm/s
|
float startSpeed; ///< Starting speed in mm/s
|
||||||
float endSpeed; ///< Exit speed in mm/s
|
float endSpeed; ///< Exit speed in mm/s
|
||||||
float minSpeed;
|
float minSpeed;
|
||||||
float distance;
|
float distance;
|
||||||
#if NONLINEAR_SYSTEM
|
#if NONLINEAR_SYSTEM
|
||||||
uint8_t numDeltaSegments; ///< Number of delta segments left in line. Decremented by stepper timer.
|
uint8_t numNonlinearSegments; ///< Number of delta segments left in line. Decremented by stepper timer.
|
||||||
uint8_t moveID; ///< ID used to identify moves which are all part of the same line
|
uint8_t moveID; ///< ID used to identify moves which are all part of the same line
|
||||||
int32_t numPrimaryStepPerSegment; ///< Number of primary bresenham axis steps in each delta segment
|
int32_t numPrimaryStepPerSegment; ///< Number of primary Bresenham axis steps in each delta segment
|
||||||
DeltaSegment segments[DELTASEGMENTS_PER_PRINTLINE];
|
NonlinearSegment segments[DELTASEGMENTS_PER_PRINTLINE];
|
||||||
#endif
|
#endif
|
||||||
ticks_t fullInterval; ///< interval at full speed in ticks/step.
|
ticks_t fullInterval; ///< interval at full speed in ticks/step.
|
||||||
uint16_t accelSteps; ///< How much steps does it take, to reach the plateau.
|
uint16_t accelSteps; ///< How much steps does it take, to reach the plateau.
|
||||||
|
@ -214,7 +212,7 @@ private:
|
||||||
int32_t advanceStart;
|
int32_t advanceStart;
|
||||||
int32_t advanceEnd;
|
int32_t advanceEnd;
|
||||||
#endif
|
#endif
|
||||||
uint16_t advanceL; ///< Recomputated L value
|
uint16_t advanceL; ///< Recomputed L value
|
||||||
#endif
|
#endif
|
||||||
#ifdef DEBUG_STEPCOUNT
|
#ifdef DEBUG_STEPCOUNT
|
||||||
int32_t totalStepsRemaining;
|
int32_t totalStepsRemaining;
|
||||||
|
@ -345,23 +343,29 @@ public:
|
||||||
|
|
||||||
inline void setXMoveFinished()
|
inline void setXMoveFinished()
|
||||||
{
|
{
|
||||||
#if DRIVE_SYSTEM == CARTESIAN || NONLINEAR_SYSTEM
|
#if DRIVE_SYSTEM==XY_GANTRY || DRIVE_SYSTEM==YX_GANTRY
|
||||||
dir &= ~16;
|
|
||||||
#else
|
|
||||||
dir &= ~48;
|
dir &= ~48;
|
||||||
|
#elif DRIVE_SYSTEM==XZ_GANTRY || DRIVE_SYSTEM==ZX_GANTRY
|
||||||
|
dir &= ~80
|
||||||
|
#else
|
||||||
|
dir &= ~16;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
inline void setYMoveFinished()
|
inline void setYMoveFinished()
|
||||||
{
|
{
|
||||||
#if DRIVE_SYSTEM == CARTESIAN || NONLINEAR_SYSTEM
|
#if DRIVE_SYSTEM==XY_GANTRY || DRIVE_SYSTEM==YX_GANTRY
|
||||||
dir &= ~32;
|
|
||||||
#else
|
|
||||||
dir &= ~48;
|
dir &= ~48;
|
||||||
|
#else
|
||||||
|
dir &= ~32;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
inline void setZMoveFinished()
|
inline void setZMoveFinished()
|
||||||
{
|
{
|
||||||
|
#if DRIVE_SYSTEM==XZ_GANTRY || DRIVE_SYSTEM==ZX_GANTRY
|
||||||
|
dir &= ~80
|
||||||
|
#else
|
||||||
dir &= ~64;
|
dir &= ~64;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
inline void setXYMoveFinished()
|
inline void setXYMoveFinished()
|
||||||
{
|
{
|
||||||
|
@ -515,7 +519,7 @@ public:
|
||||||
}
|
}
|
||||||
INLINE void startXStep()
|
INLINE void startXStep()
|
||||||
{
|
{
|
||||||
#if !(GANTRY)
|
#if !(GANTRY) || defined(FAST_COREXYZ)
|
||||||
Printer::startXStep();
|
Printer::startXStep();
|
||||||
#else
|
#else
|
||||||
#if DRIVE_SYSTEM == XY_GANTRY || DRIVE_SYSTEM == XZ_GANTRY
|
#if DRIVE_SYSTEM == XY_GANTRY || DRIVE_SYSTEM == XZ_GANTRY
|
||||||
|
@ -549,7 +553,7 @@ public:
|
||||||
}
|
}
|
||||||
INLINE void startYStep()
|
INLINE void startYStep()
|
||||||
{
|
{
|
||||||
#if !(GANTRY) || DRIVE_SYSTEM == ZX_GANTRY || DRIVE_SYSTEM == XZ_GANTRY
|
#if !(GANTRY) || DRIVE_SYSTEM == ZX_GANTRY || DRIVE_SYSTEM == XZ_GANTRY || defined(FAST_COREXYZ)
|
||||||
Printer::startYStep();
|
Printer::startYStep();
|
||||||
#else
|
#else
|
||||||
#if DRIVE_SYSTEM == XY_GANTRY
|
#if DRIVE_SYSTEM == XY_GANTRY
|
||||||
|
@ -584,7 +588,7 @@ public:
|
||||||
}
|
}
|
||||||
INLINE void startZStep()
|
INLINE void startZStep()
|
||||||
{
|
{
|
||||||
#if !(GANTRY) || DRIVE_SYSTEM == YX_GANTRY || DRIVE_SYSTEM == XY_GANTRY
|
#if !(GANTRY) || DRIVE_SYSTEM == YX_GANTRY || DRIVE_SYSTEM == XY_GANTRY || defined(FAST_COREXYZ)
|
||||||
Printer::startZStep();
|
Printer::startZStep();
|
||||||
#else
|
#else
|
||||||
#if DRIVE_SYSTEM == XZ_GANTRY
|
#if DRIVE_SYSTEM == XZ_GANTRY
|
||||||
|
@ -617,8 +621,8 @@ public:
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
void updateStepsParameter();
|
void updateStepsParameter();
|
||||||
float safeSpeed();
|
float safeSpeed(fast8_t drivingAxis);
|
||||||
void calculateMove(float axis_diff[],uint8_t pathOptimize);
|
void calculateMove(float axis_diff[],uint8_t pathOptimize,fast8_t distanceBase);
|
||||||
void logLine();
|
void logLine();
|
||||||
INLINE long getWaitTicks()
|
INLINE long getWaitTicks()
|
||||||
{
|
{
|
||||||
|
@ -678,7 +682,7 @@ public:
|
||||||
static inline void backwardPlanner(ufast8_t p,ufast8_t last);
|
static inline void backwardPlanner(ufast8_t p,ufast8_t last);
|
||||||
static void updateTrapezoids();
|
static void updateTrapezoids();
|
||||||
static uint8_t insertWaitMovesIfNeeded(uint8_t pathOptimize, uint8_t waitExtraLines);
|
static uint8_t insertWaitMovesIfNeeded(uint8_t pathOptimize, uint8_t waitExtraLines);
|
||||||
#if NONLINEAR_SYSTEM == 0
|
#if !NONLINEAR_SYSTEM
|
||||||
static void queueCartesianMove(uint8_t check_endstops,uint8_t pathOptimize);
|
static void queueCartesianMove(uint8_t check_endstops,uint8_t pathOptimize);
|
||||||
#if DISTORTION_CORRECTION
|
#if DISTORTION_CORRECTION
|
||||||
static void queueCartesianSegmentTo(uint8_t check_endstops, uint8_t pathOptimize);
|
static void queueCartesianSegmentTo(uint8_t check_endstops, uint8_t pathOptimize);
|
||||||
|
@ -698,9 +702,9 @@ public:
|
||||||
p = (p == PRINTLINE_CACHE_SIZE - 1 ? 0 : p + 1);
|
p = (p == PRINTLINE_CACHE_SIZE - 1 ? 0 : p + 1);
|
||||||
}
|
}
|
||||||
#if NONLINEAR_SYSTEM
|
#if NONLINEAR_SYSTEM
|
||||||
static uint8_t queueDeltaMove(uint8_t check_endstops,uint8_t pathOptimize, uint8_t softEndstop);
|
static uint8_t queueNonlinearMove(uint8_t check_endstops,uint8_t pathOptimize, uint8_t softEndstop);
|
||||||
static inline void queueEMove(int32_t e_diff,uint8_t check_endstops,uint8_t pathOptimize);
|
static inline void queueEMove(int32_t e_diff,uint8_t check_endstops,uint8_t pathOptimize);
|
||||||
inline uint16_t calculateDeltaSubSegments(uint8_t softEndstop);
|
inline uint16_t calculateNonlinearSubSegments(uint8_t softEndstop);
|
||||||
static inline void calculateDirectionAndDelta(int32_t difference[], ufast8_t *dir, int32_t delta[]);
|
static inline void calculateDirectionAndDelta(int32_t difference[], ufast8_t *dir, int32_t delta[]);
|
||||||
static inline uint8_t calculateDistance(float axis_diff[], uint8_t dir, float *distance);
|
static inline uint8_t calculateDistance(float axis_diff[], uint8_t dir, float *distance);
|
||||||
#if SOFTWARE_LEVELING && DRIVE_SYSTEM == DELTA
|
#if SOFTWARE_LEVELING && DRIVE_SYSTEM == DELTA
|
||||||
|
|
|
@ -365,12 +365,9 @@ STEPPER_CURRENT_CONTROL
|
||||||
#if MOTHERBOARD == 3 || MOTHERBOARD == 33 || MOTHERBOARD == 34 || MOTHERBOARD == 35
|
#if MOTHERBOARD == 3 || MOTHERBOARD == 33 || MOTHERBOARD == 34 || MOTHERBOARD == 35
|
||||||
#define KNOWN_BOARD 1
|
#define KNOWN_BOARD 1
|
||||||
|
|
||||||
//////////////////FIX THIS//////////////
|
#if !(defined (__AVR_ATmega1280__ ) || defined (__AVR_ATmega2560__ ))
|
||||||
#ifndef __AVR_ATmega1280__
|
|
||||||
#ifndef __AVR_ATmega2560__
|
|
||||||
#error Oops! Make sure you have 'Arduino Mega' selected from the 'Tools -> Boards' menu.
|
#error Oops! Make sure you have 'Arduino Mega' selected from the 'Tools -> Boards' menu.
|
||||||
#endif
|
#endif
|
||||||
#endif
|
|
||||||
|
|
||||||
// uncomment one of the following lines for RAMPS v1.3 or v1.0, comment both for v1.2 or 1.1
|
// uncomment one of the following lines for RAMPS v1.3 or v1.0, comment both for v1.2 or 1.1
|
||||||
// #define RAMPS_V_1_3
|
// #define RAMPS_V_1_3
|
||||||
|
@ -2000,7 +1997,7 @@ STEPPER_CURRENT_CONTROL
|
||||||
// Thermocouple 1
|
// Thermocouple 1
|
||||||
#define TEMP_4_PIN 4
|
#define TEMP_4_PIN 4
|
||||||
#define THERMOCOUPLE_0_PIN 8
|
#define THERMOCOUPLE_0_PIN 8
|
||||||
#define THERMOCOUPLE_0_PIN 4
|
#define THERMOCOUPLE_1_PIN 4
|
||||||
|
|
||||||
// Beeper on AUX-4
|
// Beeper on AUX-4
|
||||||
#define BEEPER_PIN 64
|
#define BEEPER_PIN 64
|
||||||
|
@ -2200,10 +2197,14 @@ S2(ext)=8
|
||||||
S3(ext)=9
|
S3(ext)=9
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define TEMP_0_PIN 15 // Extruder 1
|
// Extruder 1 - Thermistor 1
|
||||||
#define TEMP_2_PIN 14 // Extruder 2
|
#define TEMP_0_PIN 15
|
||||||
#define TEMP_3_PIN 13 // Extruder 3
|
// Extruder 2 - Thermistor 2
|
||||||
#define TEMP_1_PIN 12 // Heated bed
|
#define TEMP_2_PIN 14
|
||||||
|
// Extruder 3 - Thermistor 3
|
||||||
|
#define TEMP_3_PIN 13
|
||||||
|
// Heated bed - Thermistor 4
|
||||||
|
#define TEMP_1_PIN 12
|
||||||
|
|
||||||
#define THERMOCOUPLE_0_PIN 11
|
#define THERMOCOUPLE_0_PIN 11
|
||||||
#define THERMOCOUPLE_1_PIN 10
|
#define THERMOCOUPLE_1_PIN 10
|
||||||
|
|
|
@ -144,11 +144,11 @@ char displayCache[UI_ROWS][MAX_COLS+1];
|
||||||
// .***. 14
|
// .***. 14
|
||||||
// *.*.* 21
|
// *.*.* 21
|
||||||
// ..*.. 4
|
// ..*.. 4
|
||||||
|
// ..*.. 4
|
||||||
|
// ..*.. 4
|
||||||
// ***.. 28
|
// ***.. 28
|
||||||
// ..... 0
|
// ..... 0
|
||||||
// ..... 0
|
const uint8_t character_back[8] PROGMEM = {4, 14, 21, 4, 4, 4, 28, 0};
|
||||||
// ..... 0
|
|
||||||
const uint8_t character_back[8] PROGMEM = {4,14,21,4,28,0,0,0};
|
|
||||||
// Degrees sign - code 2
|
// Degrees sign - code 2
|
||||||
// ..*.. 4
|
// ..*.. 4
|
||||||
// .*.*. 10
|
// .*.*. 10
|
||||||
|
@ -781,6 +781,9 @@ void initializeLCD()
|
||||||
#ifdef U8GLIB_SSD1306_SW_SPI
|
#ifdef U8GLIB_SSD1306_SW_SPI
|
||||||
u8g_InitSPI(&u8g,&u8g_dev_ssd1306_128x64_sw_spi, UI_DISPLAY_D4_PIN, UI_DISPLAY_ENABLE_PIN, UI_DISPLAY_RS_PIN, U8G_PIN_NONE, U8G_PIN_NONE);
|
u8g_InitSPI(&u8g,&u8g_dev_ssd1306_128x64_sw_spi, UI_DISPLAY_D4_PIN, UI_DISPLAY_ENABLE_PIN, UI_DISPLAY_RS_PIN, U8G_PIN_NONE, U8G_PIN_NONE);
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef U8GLIB_SH1106_SW_SPI
|
||||||
|
u8g_InitSPI(&u8g,&u8g_dev_sh1106_128x64_sw_spi, UI_DISPLAY_D4_PIN, UI_DISPLAY_ENABLE_PIN, UI_DISPLAY_RS_PIN, U8G_PIN_NONE, U8G_PIN_NONE);
|
||||||
|
#endif
|
||||||
#ifdef U8GLIB_KS0108_FAST
|
#ifdef U8GLIB_KS0108_FAST
|
||||||
u8g_Init8Bit(&u8g,&u8g_dev_ks0108_128x64_fast,UI_DISPLAY_D0_PIN,UI_DISPLAY_D1_PIN,UI_DISPLAY_D2_PIN,UI_DISPLAY_D3_PIN,UI_DISPLAY_D4_PIN,UI_DISPLAY_D5_PIN,UI_DISPLAY_D6_PIN,UI_DISPLAY_D7_PIN,UI_DISPLAY_ENABLE_PIN,UI_DISPLAY_CS1,UI_DISPLAY_CS2,
|
u8g_Init8Bit(&u8g,&u8g_dev_ks0108_128x64_fast,UI_DISPLAY_D0_PIN,UI_DISPLAY_D1_PIN,UI_DISPLAY_D2_PIN,UI_DISPLAY_D3_PIN,UI_DISPLAY_D4_PIN,UI_DISPLAY_D5_PIN,UI_DISPLAY_D6_PIN,UI_DISPLAY_D7_PIN,UI_DISPLAY_ENABLE_PIN,UI_DISPLAY_CS1,UI_DISPLAY_CS2,
|
||||||
UI_DISPLAY_DI,UI_DISPLAY_RW_PIN,UI_DISPLAY_RESET_PIN);
|
UI_DISPLAY_DI,UI_DISPLAY_RW_PIN,UI_DISPLAY_RESET_PIN);
|
||||||
|
@ -1258,11 +1261,18 @@ void UIDisplay::parse(const char *txt,bool ram)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 'd':
|
case 'd': // debug boolean
|
||||||
if (c2 == 'o') addStringOnOff(Printer::debugEcho());
|
if (c2 == 'o') addStringOnOff(Printer::debugEcho());
|
||||||
else if(c2 == 'i') addStringOnOff(Printer::debugInfo());
|
if (c2 == 'i') addStringOnOff(Printer::debugInfo());
|
||||||
else if(c2 == 'e') addStringOnOff(Printer::debugErrors());
|
if (c2 == 'e') addStringOnOff(Printer::debugErrors());
|
||||||
else if(c2 == 'd') addStringOnOff(Printer::debugDryrun());
|
if (c2 == 'd') addStringOnOff(Printer::debugDryrun());
|
||||||
|
if (c2 == 'p') addStringOnOff(Printer::debugEndStop());
|
||||||
|
if (c2 == 'x') addStringP(Endstops::xMin() ? ui_selected : ui_unselected);
|
||||||
|
if (c2 == 'X') addStringP(Endstops::xMax() ? ui_selected : ui_unselected);
|
||||||
|
if (c2 == 'y') addStringP(Endstops::yMin() ? ui_selected : ui_unselected);
|
||||||
|
if (c2 == 'Y') addStringP(Endstops::yMax() ? ui_selected : ui_unselected);
|
||||||
|
if (c2 == 'z') addStringP(Endstops::zMin() ? ui_selected : ui_unselected);
|
||||||
|
if (c2 == 'Z') addStringP(Endstops::zMax() ? ui_selected : ui_unselected);
|
||||||
break;
|
break;
|
||||||
case 'D':
|
case 'D':
|
||||||
#if FEATURE_DITTO_PRINTING
|
#if FEATURE_DITTO_PRINTING
|
||||||
|
@ -1294,10 +1304,10 @@ void UIDisplay::parse(const char *txt,bool ram)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
#if NUM_TEMPERATURE_LOOPS > 0
|
||||||
uint8_t eid = NUM_EXTRUDER; // default = BED if c2 not specified extruder number
|
uint8_t eid = NUM_EXTRUDER; // default = BED if c2 not specified extruder number
|
||||||
if(c2 == 'c') eid = Extruder::current->id;
|
if(c2 == 'c') eid = Extruder::current->id;
|
||||||
else if(c2 >= '0' && c2 <= '9') eid = c2 - '0';
|
else if(c2 >= '0' && c2 <= '9') eid = c2 - '0';
|
||||||
#if NUM_TEMPERATURE_LOOPS > 0
|
|
||||||
if(Printer::isAnyTempsensorDefect())
|
if(Printer::isAnyTempsensorDefect())
|
||||||
{
|
{
|
||||||
if(eid == 0 && ++beepdelay > 30) beepdelay = 0; // beep every 30 seconds
|
if(eid == 0 && ++beepdelay > 30) beepdelay = 0; // beep every 30 seconds
|
||||||
|
@ -1646,7 +1656,7 @@ void UIDisplay::parse(const char *txt,bool ram)
|
||||||
break;
|
break;
|
||||||
case 'y':
|
case 'y':
|
||||||
#if DRIVE_SYSTEM == DELTA
|
#if DRIVE_SYSTEM == DELTA
|
||||||
if(c2 >= '0' && c2 <= '3') fvalue = (float)Printer::currentDeltaPositionSteps[c2 - '0']*Printer::invAxisStepsPerMM[c2-'0'];
|
if(c2 >= '0' && c2 <= '3') fvalue = (float)Printer::currentNonlinearPositionSteps[c2 - '0']*Printer::invAxisStepsPerMM[c2-'0'];
|
||||||
addFloat(fvalue,3,2);
|
addFloat(fvalue,3,2);
|
||||||
#endif
|
#endif
|
||||||
break;
|
break;
|
||||||
|
@ -1824,6 +1834,7 @@ void sdrefresh(uint16_t &r,char cache[UI_ROWS][MAX_COLS+1])
|
||||||
// Refresh current menu page
|
// Refresh current menu page
|
||||||
void UIDisplay::refreshPage()
|
void UIDisplay::refreshPage()
|
||||||
{
|
{
|
||||||
|
Endstops::update();
|
||||||
#if UI_DISPLAY_TYPE == DISPLAY_GAMEDUINO2
|
#if UI_DISPLAY_TYPE == DISPLAY_GAMEDUINO2
|
||||||
GD2::refresh();
|
GD2::refresh();
|
||||||
#else
|
#else
|
||||||
|
@ -1837,8 +1848,8 @@ void UIDisplay::refreshPage()
|
||||||
ui_autoreturn_time = HAL::timeInMilliseconds() + UI_AUTORETURN_TO_MENU_AFTER;
|
ui_autoreturn_time = HAL::timeInMilliseconds() + UI_AUTORETURN_TO_MENU_AFTER;
|
||||||
#endif
|
#endif
|
||||||
encoderStartScreen = uid.encoderLast;
|
encoderStartScreen = uid.encoderLast;
|
||||||
|
|
||||||
// Copy result into cache
|
// Copy result into cache
|
||||||
|
Endstops::update();
|
||||||
if(menuLevel == 0) // Top level menu
|
if(menuLevel == 0) // Top level menu
|
||||||
{
|
{
|
||||||
UIMenu *men = (UIMenu*)pgm_read_word(&(ui_pages[menuPos[0]]));
|
UIMenu *men = (UIMenu*)pgm_read_word(&(ui_pages[menuPos[0]]));
|
||||||
|
@ -2021,7 +2032,7 @@ void UIDisplay::refreshPage()
|
||||||
cache[1][0] = '\x0a'; //off
|
cache[1][0] = '\x0a'; //off
|
||||||
#endif
|
#endif
|
||||||
#if HAVE_HEATED_BED
|
#if HAVE_HEATED_BED
|
||||||
//heatbed animated icons
|
//heated bed animated icons
|
||||||
uint8_t lin = 2 - ((NUM_EXTRUDER != 2) ? 1 : 0);
|
uint8_t lin = 2 - ((NUM_EXTRUDER != 2) ? 1 : 0);
|
||||||
if(heatedBedController.targetTemperatureC > 30)
|
if(heatedBedController.targetTemperatureC > 30)
|
||||||
cache[lin][0] = Printer::isAnimation() ? '\x0c' : '\x0d';
|
cache[lin][0] = Printer::isAnimation() ? '\x0c' : '\x0d';
|
||||||
|
@ -2032,7 +2043,7 @@ void UIDisplay::refreshPage()
|
||||||
//fan
|
//fan
|
||||||
fanPercent = Printer::getFanSpeed() * 100 / 255;
|
fanPercent = Printer::getFanSpeed() * 100 / 255;
|
||||||
fanString[1] = 0;
|
fanString[1] = 0;
|
||||||
if(fanPercent > 0) //fan running anmation
|
if(fanPercent > 0) //fan running animation
|
||||||
{
|
{
|
||||||
fanString[0] = Printer::isAnimation() ? '\x0e' : '\x0f';
|
fanString[0] = Printer::isAnimation() ? '\x0e' : '\x0f';
|
||||||
}
|
}
|
||||||
|
@ -2081,11 +2092,11 @@ void UIDisplay::refreshPage()
|
||||||
if(u8g_IsBBXIntersection(&u8g, 0, 30 - UI_FONT_SMALL_HEIGHT, 1, UI_FONT_SMALL_HEIGHT))
|
if(u8g_IsBBXIntersection(&u8g, 0, 30 - UI_FONT_SMALL_HEIGHT, 1, UI_FONT_SMALL_HEIGHT))
|
||||||
printU8GRow(117,30,fanString);
|
printU8GRow(117,30,fanString);
|
||||||
drawVProgressBar(116, 0, 9, 20, fanPercent);
|
drawVProgressBar(116, 0, 9, 20, fanPercent);
|
||||||
if(u8g_IsBBXIntersection(&u8g, 0, 42 - UI_FONT_SMALL_HEIGHT, 1, UI_FONT_SMALL_HEIGHT))
|
|
||||||
printU8GRow(0,42,cache[3]); //mul + extruded
|
|
||||||
if(u8g_IsBBXIntersection(&u8g, 0, 52 - UI_FONT_SMALL_HEIGHT, 1, UI_FONT_SMALL_HEIGHT))
|
|
||||||
printU8GRow(0,52,cache[4]); //buf
|
|
||||||
#endif
|
#endif
|
||||||
|
if(u8g_IsBBXIntersection(&u8g, 0, 42 - UI_FONT_SMALL_HEIGHT, 1, UI_FONT_SMALL_HEIGHT))
|
||||||
|
printU8GRow(0,42,cache[3]); //multiplier + extruded
|
||||||
|
if(u8g_IsBBXIntersection(&u8g, 0, 52 - UI_FONT_SMALL_HEIGHT, 1, UI_FONT_SMALL_HEIGHT))
|
||||||
|
printU8GRow(0,52,cache[4]); //buffer usage
|
||||||
#if SDSUPPORT
|
#if SDSUPPORT
|
||||||
//SD Card
|
//SD Card
|
||||||
if(sd.sdactive && u8g_IsBBXIntersection(&u8g, 66, 52 - UI_FONT_SMALL_HEIGHT, 1, UI_FONT_SMALL_HEIGHT))
|
if(sd.sdactive && u8g_IsBBXIntersection(&u8g, 66, 52 - UI_FONT_SMALL_HEIGHT, 1, UI_FONT_SMALL_HEIGHT))
|
||||||
|
@ -3064,6 +3075,9 @@ int UIDisplay::executeAction(unsigned int action, bool allowMoves)
|
||||||
case UI_ACTION_DEBUG_ERROR:
|
case UI_ACTION_DEBUG_ERROR:
|
||||||
Printer::toggleErrors();
|
Printer::toggleErrors();
|
||||||
break;
|
break;
|
||||||
|
case UI_ACTION_DEBUG_ENDSTOP:
|
||||||
|
Printer::toggleEndStop();
|
||||||
|
break;
|
||||||
case UI_ACTION_DEBUG_DRYRUN:
|
case UI_ACTION_DEBUG_DRYRUN:
|
||||||
Printer::toggleDryRun();
|
Printer::toggleDryRun();
|
||||||
if(Printer::debugDryrun()) // simulate movements without printing
|
if(Printer::debugDryrun()) // simulate movements without printing
|
||||||
|
@ -3460,7 +3474,7 @@ int UIDisplay::executeAction(unsigned int action, bool allowMoves)
|
||||||
Printer::currentPositionSteps[Z_AXIS] = 0;
|
Printer::currentPositionSteps[Z_AXIS] = 0;
|
||||||
Printer::updateDerivedParameter();
|
Printer::updateDerivedParameter();
|
||||||
#if NONLINEAR_SYSTEM
|
#if NONLINEAR_SYSTEM
|
||||||
transformCartesianStepsToDeltaSteps(Printer::currentPositionSteps, Printer::currentDeltaPositionSteps);
|
transformCartesianStepsToDeltaSteps(Printer::currentPositionSteps, Printer::currentNonlinearPositionSteps);
|
||||||
#endif
|
#endif
|
||||||
Printer::updateCurrentPosition(true);
|
Printer::updateCurrentPosition(true);
|
||||||
Com::printFLN(Com::tZProbePrinterHeight, Printer::zLength);
|
Com::printFLN(Com::tZProbePrinterHeight, Printer::zLength);
|
||||||
|
@ -3587,6 +3601,8 @@ int UIDisplay::executeAction(unsigned int action, bool allowMoves)
|
||||||
case UI_ACTION_LANGUAGE_FR:
|
case UI_ACTION_LANGUAGE_FR:
|
||||||
case UI_ACTION_LANGUAGE_CZ:
|
case UI_ACTION_LANGUAGE_CZ:
|
||||||
case UI_ACTION_LANGUAGE_PL:
|
case UI_ACTION_LANGUAGE_PL:
|
||||||
|
case UI_ACTION_LANGUAGE_TR:
|
||||||
|
case UI_ACTION_LANGUAGE_FI:
|
||||||
Com::selectLanguage(action - UI_ACTION_LANGUAGE_EN);
|
Com::selectLanguage(action - UI_ACTION_LANGUAGE_EN);
|
||||||
#if EEPROM_MODE != 0
|
#if EEPROM_MODE != 0
|
||||||
EEPROM::storeDataIntoEEPROM(0); // remember for next start
|
EEPROM::storeDataIntoEEPROM(0); // remember for next start
|
||||||
|
|
141
Repetier/ui.h
141
Repetier/ui.h
|
@ -125,6 +125,7 @@ What display type do you use?
|
||||||
#define UI_ACTION_FAN_FULL 1054
|
#define UI_ACTION_FAN_FULL 1054
|
||||||
#define UI_ACTION_FEEDRATE_MULTIPLY 1055
|
#define UI_ACTION_FEEDRATE_MULTIPLY 1055
|
||||||
#define UI_ACTION_STEPPER_INACTIVE 1056
|
#define UI_ACTION_STEPPER_INACTIVE 1056
|
||||||
|
|
||||||
#define UI_ACTION_PID_PGAIN 1058
|
#define UI_ACTION_PID_PGAIN 1058
|
||||||
#define UI_ACTION_PID_IGAIN 1059
|
#define UI_ACTION_PID_IGAIN 1059
|
||||||
#define UI_ACTION_PID_DGAIN 1060
|
#define UI_ACTION_PID_DGAIN 1060
|
||||||
|
@ -141,10 +142,7 @@ What display type do you use?
|
||||||
#define UI_ACTION_PID_MAX 1071
|
#define UI_ACTION_PID_MAX 1071
|
||||||
#define UI_ACTION_ADVANCE_K 1072
|
#define UI_ACTION_ADVANCE_K 1072
|
||||||
#define UI_ACTION_SET_ORIGIN 1073
|
#define UI_ACTION_SET_ORIGIN 1073
|
||||||
#define UI_ACTION_DEBUG_ECHO 1074
|
|
||||||
#define UI_ACTION_DEBUG_INFO 1075
|
|
||||||
#define UI_ACTION_DEBUG_ERROR 1076
|
|
||||||
#define UI_ACTION_DEBUG_DRYRUN 1077
|
|
||||||
#define UI_ACTION_POWER 1078
|
#define UI_ACTION_POWER 1078
|
||||||
#define UI_ACTION_PREHEAT_PLA 1079
|
#define UI_ACTION_PREHEAT_PLA 1079
|
||||||
#define UI_ACTION_COOLDOWN 1080
|
#define UI_ACTION_COOLDOWN 1080
|
||||||
|
@ -203,6 +201,12 @@ What display type do you use?
|
||||||
#define UI_DITTO_2 1136
|
#define UI_DITTO_2 1136
|
||||||
#define UI_DITTO_3 1137
|
#define UI_DITTO_3 1137
|
||||||
|
|
||||||
|
#define UI_ACTION_DEBUG_ECHO 1150
|
||||||
|
#define UI_ACTION_DEBUG_INFO 1151
|
||||||
|
#define UI_ACTION_DEBUG_ERROR 1152
|
||||||
|
#define UI_ACTION_DEBUG_DRYRUN 1153
|
||||||
|
#define UI_ACTION_DEBUG_ENDSTOP 1154
|
||||||
|
|
||||||
#define UI_ACTION_SD_PRI_PAU_CONT 1200
|
#define UI_ACTION_SD_PRI_PAU_CONT 1200
|
||||||
#define UI_ACTION_FAN_SUSPEND 1201
|
#define UI_ACTION_FAN_SUSPEND 1201
|
||||||
#define UI_ACTION_AUTOLEVEL_ONOFF 1202
|
#define UI_ACTION_AUTOLEVEL_ONOFF 1202
|
||||||
|
@ -232,6 +236,8 @@ What display type do you use?
|
||||||
#define UI_ACTION_LANGUAGE_FR 1707
|
#define UI_ACTION_LANGUAGE_FR 1707
|
||||||
#define UI_ACTION_LANGUAGE_CZ 1708
|
#define UI_ACTION_LANGUAGE_CZ 1708
|
||||||
#define UI_ACTION_LANGUAGE_PL 1709
|
#define UI_ACTION_LANGUAGE_PL 1709
|
||||||
|
#define UI_ACTION_LANGUAGE_TR 1710
|
||||||
|
#define UI_ACTION_LANGUAGE_FI 1711
|
||||||
|
|
||||||
#define UI_ACTION_MENU_XPOS 4000
|
#define UI_ACTION_MENU_XPOS 4000
|
||||||
#define UI_ACTION_MENU_YPOS 4001
|
#define UI_ACTION_MENU_YPOS 4001
|
||||||
|
@ -309,13 +315,13 @@ extern const int8_t encoder_table[16] PROGMEM ;
|
||||||
//#ifdef COMPILE_I2C_DRIVER
|
//#ifdef COMPILE_I2C_DRIVER
|
||||||
|
|
||||||
/*************************************************************************
|
/*************************************************************************
|
||||||
* Title: C include file for the I2C master interface
|
Title: C include file for the I2C master interface
|
||||||
* (i2cmaster.S or twimaster.c)
|
(i2cmaster.S or twimaster.c)
|
||||||
* Author: Peter Fleury <pfleury@gmx.ch> http://jump.to/fleury
|
Author: Peter Fleury <pfleury@gmx.ch> http://jump.to/fleury
|
||||||
* File: $Id: i2cmaster.h,v 1.10 2005/03/06 22:39:57 Peter Exp $
|
File: $Id: i2cmaster.h,v 1.10 2005/03/06 22:39:57 Peter Exp $
|
||||||
* Software: AVR-GCC 3.4.3 / avr-libc 1.2.3
|
Software: AVR-GCC 3.4.3 / avr-libc 1.2.3
|
||||||
* Target: any AVR device
|
Target: any AVR device
|
||||||
* Usage: see Doxygen manual
|
Usage: see Doxygen manual
|
||||||
**************************************************************************/
|
**************************************************************************/
|
||||||
|
|
||||||
|
|
||||||
|
@ -567,9 +573,13 @@ class UIDisplay {
|
||||||
char printCols[MAX_COLS + 1];
|
char printCols[MAX_COLS + 1];
|
||||||
void addInt(int value, uint8_t digits, char fillChar = ' '); // Print int into printCols
|
void addInt(int value, uint8_t digits, char fillChar = ' '); // Print int into printCols
|
||||||
void addLong(long value, int8_t digits);
|
void addLong(long value, int8_t digits);
|
||||||
inline void addLong(long value) {addLong(value, -11);};
|
inline void addLong(long value) {
|
||||||
|
addLong(value, -11);
|
||||||
|
};
|
||||||
void addFloat(float number, char fixdigits, uint8_t digits);
|
void addFloat(float number, char fixdigits, uint8_t digits);
|
||||||
inline void addFloat(float number) {addFloat(number, -9,2);};
|
inline void addFloat(float number) {
|
||||||
|
addFloat(number, -9, 2);
|
||||||
|
};
|
||||||
void addStringP(PGM_P text);
|
void addStringP(PGM_P text);
|
||||||
void addStringOnOff(uint8_t);
|
void addStringOnOff(uint8_t);
|
||||||
void addChar(const char c);
|
void addChar(const char c);
|
||||||
|
@ -597,8 +607,12 @@ class UIDisplay {
|
||||||
void adjustMenuPos();
|
void adjustMenuPos();
|
||||||
void setStatusP(PGM_P txt, bool error = false);
|
void setStatusP(PGM_P txt, bool error = false);
|
||||||
void setStatus(const char *txt, bool error = false);
|
void setStatus(const char *txt, bool error = false);
|
||||||
inline void setOutputMaskBits(unsigned int bits) {outputMask |= bits;}
|
inline void setOutputMaskBits(unsigned int bits) {
|
||||||
inline void unsetOutputMaskBits(unsigned int bits) {outputMask &= ~bits;}
|
outputMask |= bits;
|
||||||
|
}
|
||||||
|
inline void unsetOutputMaskBits(unsigned int bits) {
|
||||||
|
outputMask &= ~bits;
|
||||||
|
}
|
||||||
void updateSDFileCount();
|
void updateSDFileCount();
|
||||||
void goDir(char *name);
|
void goDir(char *name);
|
||||||
bool isDirname(char *name);
|
bool isDirname(char *name);
|
||||||
|
@ -681,7 +695,6 @@ void uiCheckSlowKeys(uint16_t &action) {}
|
||||||
#define UI_ENCODER_B 37
|
#define UI_ENCODER_B 37
|
||||||
#define UI_ENCODER_CLICK 31
|
#define UI_ENCODER_CLICK 31
|
||||||
#define UI_RESET_PIN 41
|
#define UI_RESET_PIN 41
|
||||||
|
|
||||||
#else // Smartcontroller
|
#else // Smartcontroller
|
||||||
|
|
||||||
#if MOTHERBOARD == 701 // Megatronics v2.0
|
#if MOTHERBOARD == 701 // Megatronics v2.0
|
||||||
|
@ -689,6 +702,10 @@ void uiCheckSlowKeys(uint16_t &action) {}
|
||||||
#define UI_DISPLAY_RS_PIN 14
|
#define UI_DISPLAY_RS_PIN 14
|
||||||
#define UI_DISPLAY_RW_PIN -1
|
#define UI_DISPLAY_RW_PIN -1
|
||||||
#define UI_DISPLAY_ENABLE_PIN 15
|
#define UI_DISPLAY_ENABLE_PIN 15
|
||||||
|
#define UI_DISPLAY_D0_PIN -1
|
||||||
|
#define UI_DISPLAY_D1_PIN -1
|
||||||
|
#define UI_DISPLAY_D2_PIN -1
|
||||||
|
#define UI_DISPLAY_D3_PIN -1
|
||||||
#define UI_DISPLAY_D4_PIN 30
|
#define UI_DISPLAY_D4_PIN 30
|
||||||
#define UI_DISPLAY_D5_PIN 31
|
#define UI_DISPLAY_D5_PIN 31
|
||||||
#define UI_DISPLAY_D6_PIN 32
|
#define UI_DISPLAY_D6_PIN 32
|
||||||
|
@ -704,6 +721,10 @@ void uiCheckSlowKeys(uint16_t &action) {}
|
||||||
#define UI_DISPLAY_RS_PIN 32
|
#define UI_DISPLAY_RS_PIN 32
|
||||||
#define UI_DISPLAY_RW_PIN -1
|
#define UI_DISPLAY_RW_PIN -1
|
||||||
#define UI_DISPLAY_ENABLE_PIN 31
|
#define UI_DISPLAY_ENABLE_PIN 31
|
||||||
|
#define UI_DISPLAY_D0_PIN -1
|
||||||
|
#define UI_DISPLAY_D1_PIN -1
|
||||||
|
#define UI_DISPLAY_D2_PIN -1
|
||||||
|
#define UI_DISPLAY_D3_PIN -1
|
||||||
#define UI_DISPLAY_D4_PIN 14
|
#define UI_DISPLAY_D4_PIN 14
|
||||||
#define UI_DISPLAY_D5_PIN 30
|
#define UI_DISPLAY_D5_PIN 30
|
||||||
#define UI_DISPLAY_D6_PIN 39
|
#define UI_DISPLAY_D6_PIN 39
|
||||||
|
@ -712,6 +733,7 @@ void uiCheckSlowKeys(uint16_t &action) {}
|
||||||
#define UI_ENCODER_B 44
|
#define UI_ENCODER_B 44
|
||||||
#define UI_ENCODER_CLICK 33
|
#define UI_ENCODER_CLICK 33
|
||||||
#define UI_INVERT_MENU_DIRECTION 1
|
#define UI_INVERT_MENU_DIRECTION 1
|
||||||
|
#define UI_RESET_PIN -1
|
||||||
|
|
||||||
#elif MOTHERBOARD == 80 // Rumba has different pins as RAMPS!
|
#elif MOTHERBOARD == 80 // Rumba has different pins as RAMPS!
|
||||||
|
|
||||||
|
@ -720,10 +742,10 @@ void uiCheckSlowKeys(uint16_t &action) {}
|
||||||
#define UI_DISPLAY_RS_PIN 19
|
#define UI_DISPLAY_RS_PIN 19
|
||||||
#define UI_DISPLAY_RW_PIN -1
|
#define UI_DISPLAY_RW_PIN -1
|
||||||
#define UI_DISPLAY_ENABLE_PIN 42
|
#define UI_DISPLAY_ENABLE_PIN 42
|
||||||
#define UI_DISPLAY_D0_PIN 18
|
#define UI_DISPLAY_D0_PIN -1
|
||||||
#define UI_DISPLAY_D1_PIN 38
|
#define UI_DISPLAY_D1_PIN -1
|
||||||
#define UI_DISPLAY_D2_PIN 41
|
#define UI_DISPLAY_D2_PIN -1
|
||||||
#define UI_DISPLAY_D3_PIN 40
|
#define UI_DISPLAY_D3_PIN -1
|
||||||
#define UI_DISPLAY_D4_PIN 18
|
#define UI_DISPLAY_D4_PIN 18
|
||||||
#define UI_DISPLAY_D5_PIN 38
|
#define UI_DISPLAY_D5_PIN 38
|
||||||
#define UI_DISPLAY_D6_PIN 41
|
#define UI_DISPLAY_D6_PIN 41
|
||||||
|
@ -833,7 +855,9 @@ void uiCheckSlowKeys(uint16_t &action) {}
|
||||||
#if FEATURE_CONTROLLER == CONTROLLER_BAM_DICE_DUE
|
#if FEATURE_CONTROLLER == CONTROLLER_BAM_DICE_DUE
|
||||||
#define UI_ENCODER_SPEED 2
|
#define UI_ENCODER_SPEED 2
|
||||||
#endif
|
#endif
|
||||||
|
#ifndef UI_INVERT_MENU_DIRECTION
|
||||||
#define UI_INVERT_MENU_DIRECTION 0
|
#define UI_INVERT_MENU_DIRECTION 0
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef UI_MAIN
|
#ifdef UI_MAIN
|
||||||
void uiInitKeys() {
|
void uiInitKeys() {
|
||||||
|
@ -1832,7 +1856,7 @@ void uiCheckSlowKeys(uint16_t &action) {}
|
||||||
#define SPI_CHAN 0
|
#define SPI_CHAN 0
|
||||||
|
|
||||||
#undef SDSUPPORT
|
#undef SDSUPPORT
|
||||||
#define SDSUPPORT 0 // sd card does not work reliable due to spi charing
|
#define SDSUPPORT 0 // sd card does not work reliable due to spi sharing
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#undef BEEPER_PIN
|
#undef BEEPER_PIN
|
||||||
|
@ -1859,7 +1883,6 @@ void uiCheckSlowKeys(uint16_t &action) {}
|
||||||
// PWM1 Pin
|
// PWM1 Pin
|
||||||
#define BLUE_STATUS_LED 5
|
#define BLUE_STATUS_LED 5
|
||||||
|
|
||||||
|
|
||||||
#else
|
#else
|
||||||
#error No predefined Viki 2 mapping for your board available
|
#error No predefined Viki 2 mapping for your board available
|
||||||
#endif
|
#endif
|
||||||
|
@ -1928,6 +1951,80 @@ void uiCheckSlowKeys(uint16_t &action) {}
|
||||||
#endif
|
#endif
|
||||||
#endif // CONTROLLER_LCD_MP_PHARAOH_DUE
|
#endif // CONTROLLER_LCD_MP_PHARAOH_DUE
|
||||||
|
|
||||||
|
#if FEATURE_CONTROLLER == CONTROLLER_ZONESTAR
|
||||||
|
|
||||||
|
// Keypad
|
||||||
|
#if !defined(ADC_KEYPAD_PIN) || (ADC_KEYPAD_PIN < 0)
|
||||||
|
#error CONTROLLER_ZONESTAR requres ADC_KEYPAD_PIN = 1 defined in Configuration.h
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// This must be defined in the Configuration.h since used in ADC tables
|
||||||
|
//#define ADC_KEYPAD_PIN 1 // A1 (D30, analog numbering)
|
||||||
|
|
||||||
|
// Display
|
||||||
|
#define UI_DISPLAY_TYPE DISPLAY_4BIT
|
||||||
|
#define UI_DISPLAY_CHARSET 1
|
||||||
|
#define UI_COLS 20
|
||||||
|
#define UI_ROWS 4
|
||||||
|
|
||||||
|
#define UI_DISPLAY_ENABLE_PIN 29 // A2
|
||||||
|
#define UI_DISPLAY_RS_PIN 28 // A3
|
||||||
|
#define UI_DISPLAY_RW_PIN -1
|
||||||
|
#define UI_DISPLAY_D4_PIN 10
|
||||||
|
#define UI_DISPLAY_D5_PIN 11
|
||||||
|
#define UI_DISPLAY_D6_PIN 16
|
||||||
|
#define UI_DISPLAY_D7_PIN 17
|
||||||
|
|
||||||
|
// UI
|
||||||
|
#define UI_HAS_KEYS 1
|
||||||
|
#define UI_HAS_BACK_KEY 1
|
||||||
|
#define UI_DELAYPERCHAR 50
|
||||||
|
#define UI_INVERT_MENU_DIRECTION 1
|
||||||
|
|
||||||
|
// Opportunity to override the Enter key via Configuration.h
|
||||||
|
// By default it duplicates the Right key, but could be set to
|
||||||
|
// anything else, e.g. UI_ACTION_TOP_MENU.
|
||||||
|
#ifndef ADC_KEYPAD_CENTER_ACTION
|
||||||
|
#define ADC_KEYPAD_CENTER_ACTION UI_ACTION_OK
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef UI_MAIN
|
||||||
|
// Nothing to init since ADC is read in a loop if ADC_KEYPAD_PIN > -1
|
||||||
|
inline void uiInitKeys() {}
|
||||||
|
|
||||||
|
// Read and decode ADC keypad (fast reads)
|
||||||
|
void uiCheckKeys(uint16_t &action) {
|
||||||
|
struct {
|
||||||
|
uint16_t min;
|
||||||
|
uint16_t max;
|
||||||
|
uint16_t action;
|
||||||
|
} keys[] = {
|
||||||
|
{ 300, 500, UI_ACTION_BACK }, // Left
|
||||||
|
{ 570, 870, UI_ACTION_PREVIOUS }, // Up
|
||||||
|
{ 1150, 1450, ADC_KEYPAD_CENTER_ACTION }, // Center
|
||||||
|
{ 1900, 2200, UI_ACTION_OK }, // Right
|
||||||
|
{ 2670, 2870, UI_ACTION_NEXT } // Down
|
||||||
|
};
|
||||||
|
const uint8_t numOfKeys = sizeof(keys) / sizeof(keys[0]);
|
||||||
|
|
||||||
|
extern volatile uint16_t osAnalogInputValues[ANALOG_INPUTS];
|
||||||
|
uint16_t adc = osAnalogInputValues[KEYPAD_ANALOG_INDEX] >> (ANALOG_REDUCE_BITS);
|
||||||
|
if (adc < 4000) {
|
||||||
|
for (int8_t i = 0; i < numOfKeys; ++i) {
|
||||||
|
if ((adc > keys[i].min) && (adc < keys[i].max)) {
|
||||||
|
action = keys[i].action;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Read and decode ADC keypad (slow reads)
|
||||||
|
inline void uiCheckSlowKeys(uint16_t &action) {}
|
||||||
|
#endif // UI_MAIN
|
||||||
|
|
||||||
|
#endif // CONTROLLER_ZONESTAR
|
||||||
|
|
||||||
#ifndef UI_HAS_I2C_ENCODER
|
#ifndef UI_HAS_I2C_ENCODER
|
||||||
#define UI_HAS_I2C_ENCODER 0
|
#define UI_HAS_I2C_ENCODER 0
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -113,6 +113,8 @@ What display type do you use?
|
||||||
#define U8GLIB_ST7920
|
#define U8GLIB_ST7920
|
||||||
// SSD1306 with software SPI
|
// SSD1306 with software SPI
|
||||||
//#define U8GLIB_SSD1306_SW_SPI
|
//#define U8GLIB_SSD1306_SW_SPI
|
||||||
|
// SH1106 with software SPI
|
||||||
|
// U8GLIB_SH1106_SW_SPI
|
||||||
// SSD1306 over I2C using hardware I2C pins
|
// SSD1306 over I2C using hardware I2C pins
|
||||||
//#define U8GLIB_SSD1306_I2C
|
//#define U8GLIB_SSD1306_I2C
|
||||||
// For the 8 bit ks0108 display you need to set these pins
|
// For the 8 bit ks0108 display you need to set these pins
|
||||||
|
|
|
@ -96,6 +96,7 @@ TRANS(UI_TEXT_DBG_ECHO_EN);
|
||||||
TRANS(UI_TEXT_DBG_INFO_EN);
|
TRANS(UI_TEXT_DBG_INFO_EN);
|
||||||
TRANS(UI_TEXT_DBG_ERROR_EN);
|
TRANS(UI_TEXT_DBG_ERROR_EN);
|
||||||
TRANS(UI_TEXT_DBG_DRYRUN_EN);
|
TRANS(UI_TEXT_DBG_DRYRUN_EN);
|
||||||
|
TRANS(UI_TEXT_DBG_ENDSTOP_EN);
|
||||||
TRANS(UI_TEXT_OPS_OFF_EN);
|
TRANS(UI_TEXT_OPS_OFF_EN);
|
||||||
TRANS(UI_TEXT_OPS_CLASSIC_EN);
|
TRANS(UI_TEXT_OPS_CLASSIC_EN);
|
||||||
TRANS(UI_TEXT_OPS_FAST_EN);
|
TRANS(UI_TEXT_OPS_FAST_EN);
|
||||||
|
@ -566,7 +567,8 @@ PGM_P const translations_en[NUM_TRANSLATED_WORDS] PROGMEM = {
|
||||||
FUI_TEXT_OFFSETS_EN,
|
FUI_TEXT_OFFSETS_EN,
|
||||||
FUI_TEXT_X_OFFSET_EN,
|
FUI_TEXT_X_OFFSET_EN,
|
||||||
FUI_TEXT_Y_OFFSET_EN,
|
FUI_TEXT_Y_OFFSET_EN,
|
||||||
FUI_TEXT_Z_OFFSET_EN
|
FUI_TEXT_Z_OFFSET_EN,
|
||||||
|
FUI_TEXT_DBG_ENDSTOP_EN
|
||||||
};
|
};
|
||||||
#define LANG_EN_TABLE translations_en
|
#define LANG_EN_TABLE translations_en
|
||||||
#else
|
#else
|
||||||
|
@ -638,6 +640,7 @@ TRANS(UI_TEXT_DBG_ECHO_DE);
|
||||||
TRANS(UI_TEXT_DBG_INFO_DE);
|
TRANS(UI_TEXT_DBG_INFO_DE);
|
||||||
TRANS(UI_TEXT_DBG_ERROR_DE);
|
TRANS(UI_TEXT_DBG_ERROR_DE);
|
||||||
TRANS(UI_TEXT_DBG_DRYRUN_DE);
|
TRANS(UI_TEXT_DBG_DRYRUN_DE);
|
||||||
|
TRANS(UI_TEXT_DBG_ENDSTOP_DE);
|
||||||
TRANS(UI_TEXT_OPS_OFF_DE);
|
TRANS(UI_TEXT_OPS_OFF_DE);
|
||||||
TRANS(UI_TEXT_OPS_CLASSIC_DE);
|
TRANS(UI_TEXT_OPS_CLASSIC_DE);
|
||||||
TRANS(UI_TEXT_OPS_FAST_DE);
|
TRANS(UI_TEXT_OPS_FAST_DE);
|
||||||
|
@ -1107,7 +1110,8 @@ PGM_P const translations_de[NUM_TRANSLATED_WORDS] PROGMEM = {
|
||||||
FUI_TEXT_OFFSETS_DE,
|
FUI_TEXT_OFFSETS_DE,
|
||||||
FUI_TEXT_X_OFFSET_DE,
|
FUI_TEXT_X_OFFSET_DE,
|
||||||
FUI_TEXT_Y_OFFSET_DE,
|
FUI_TEXT_Y_OFFSET_DE,
|
||||||
FUI_TEXT_Z_OFFSET_DE
|
FUI_TEXT_Z_OFFSET_DE,
|
||||||
|
FUI_TEXT_DBG_ENDSTOP_DE
|
||||||
};
|
};
|
||||||
#define LANG_DE_TABLE translations_de
|
#define LANG_DE_TABLE translations_de
|
||||||
#else
|
#else
|
||||||
|
@ -1179,6 +1183,7 @@ TRANS(UI_TEXT_DBG_ECHO_NL);
|
||||||
TRANS(UI_TEXT_DBG_INFO_NL);
|
TRANS(UI_TEXT_DBG_INFO_NL);
|
||||||
TRANS(UI_TEXT_DBG_ERROR_NL);
|
TRANS(UI_TEXT_DBG_ERROR_NL);
|
||||||
TRANS(UI_TEXT_DBG_DRYRUN_NL);
|
TRANS(UI_TEXT_DBG_DRYRUN_NL);
|
||||||
|
TRANS(UI_TEXT_DBG_ENDSTOP_NL);
|
||||||
TRANS(UI_TEXT_OPS_OFF_NL);
|
TRANS(UI_TEXT_OPS_OFF_NL);
|
||||||
TRANS(UI_TEXT_OPS_CLASSIC_NL);
|
TRANS(UI_TEXT_OPS_CLASSIC_NL);
|
||||||
TRANS(UI_TEXT_OPS_FAST_NL);
|
TRANS(UI_TEXT_OPS_FAST_NL);
|
||||||
|
@ -1648,7 +1653,8 @@ PGM_P const translations_nl[NUM_TRANSLATED_WORDS] PROGMEM = {
|
||||||
FUI_TEXT_OFFSETS_NL,
|
FUI_TEXT_OFFSETS_NL,
|
||||||
FUI_TEXT_X_OFFSET_NL,
|
FUI_TEXT_X_OFFSET_NL,
|
||||||
FUI_TEXT_Y_OFFSET_NL,
|
FUI_TEXT_Y_OFFSET_NL,
|
||||||
FUI_TEXT_Z_OFFSET_NL
|
FUI_TEXT_Z_OFFSET_NL,
|
||||||
|
FUI_TEXT_DBG_ENDSTOP_NL
|
||||||
};
|
};
|
||||||
#define LANG_NL_TABLE translations_nl
|
#define LANG_NL_TABLE translations_nl
|
||||||
#else
|
#else
|
||||||
|
@ -1721,6 +1727,7 @@ TRANS(UI_TEXT_DBG_ECHO_PT);
|
||||||
TRANS(UI_TEXT_DBG_INFO_PT);
|
TRANS(UI_TEXT_DBG_INFO_PT);
|
||||||
TRANS(UI_TEXT_DBG_ERROR_PT);
|
TRANS(UI_TEXT_DBG_ERROR_PT);
|
||||||
TRANS(UI_TEXT_DBG_DRYRUN_PT);
|
TRANS(UI_TEXT_DBG_DRYRUN_PT);
|
||||||
|
TRANS(UI_TEXT_DBG_ENDSTOP_PT);
|
||||||
TRANS(UI_TEXT_OPS_OFF_PT);
|
TRANS(UI_TEXT_OPS_OFF_PT);
|
||||||
TRANS(UI_TEXT_OPS_CLASSIC_PT);
|
TRANS(UI_TEXT_OPS_CLASSIC_PT);
|
||||||
TRANS(UI_TEXT_OPS_FAST_PT);
|
TRANS(UI_TEXT_OPS_FAST_PT);
|
||||||
|
@ -2190,7 +2197,8 @@ PGM_P const translations_pt[NUM_TRANSLATED_WORDS] PROGMEM = {
|
||||||
FUI_TEXT_OFFSETS_PT,
|
FUI_TEXT_OFFSETS_PT,
|
||||||
FUI_TEXT_X_OFFSET_PT,
|
FUI_TEXT_X_OFFSET_PT,
|
||||||
FUI_TEXT_Y_OFFSET_PT,
|
FUI_TEXT_Y_OFFSET_PT,
|
||||||
FUI_TEXT_Z_OFFSET_PT
|
FUI_TEXT_Z_OFFSET_PT,
|
||||||
|
FUI_TEXT_DBG_ENDSTOP_PT
|
||||||
};
|
};
|
||||||
#define LANG_PT_TABLE translations_pt
|
#define LANG_PT_TABLE translations_pt
|
||||||
#else
|
#else
|
||||||
|
@ -2263,6 +2271,7 @@ TRANS(UI_TEXT_DBG_ECHO_IT);
|
||||||
TRANS(UI_TEXT_DBG_INFO_IT);
|
TRANS(UI_TEXT_DBG_INFO_IT);
|
||||||
TRANS(UI_TEXT_DBG_ERROR_IT);
|
TRANS(UI_TEXT_DBG_ERROR_IT);
|
||||||
TRANS(UI_TEXT_DBG_DRYRUN_IT);
|
TRANS(UI_TEXT_DBG_DRYRUN_IT);
|
||||||
|
TRANS(UI_TEXT_DBG_ENDSTOP_IT);
|
||||||
TRANS(UI_TEXT_OPS_OFF_IT);
|
TRANS(UI_TEXT_OPS_OFF_IT);
|
||||||
TRANS(UI_TEXT_OPS_CLASSIC_IT);
|
TRANS(UI_TEXT_OPS_CLASSIC_IT);
|
||||||
TRANS(UI_TEXT_OPS_FAST_IT);
|
TRANS(UI_TEXT_OPS_FAST_IT);
|
||||||
|
@ -2732,7 +2741,8 @@ PGM_P const translations_it[NUM_TRANSLATED_WORDS] PROGMEM = {
|
||||||
FUI_TEXT_OFFSETS_IT,
|
FUI_TEXT_OFFSETS_IT,
|
||||||
FUI_TEXT_X_OFFSET_IT,
|
FUI_TEXT_X_OFFSET_IT,
|
||||||
FUI_TEXT_Y_OFFSET_IT,
|
FUI_TEXT_Y_OFFSET_IT,
|
||||||
FUI_TEXT_Z_OFFSET_IT
|
FUI_TEXT_Z_OFFSET_IT,
|
||||||
|
FUI_TEXT_DBG_ENDSTOP_IT
|
||||||
};
|
};
|
||||||
#define LANG_IT_TABLE translations_it
|
#define LANG_IT_TABLE translations_it
|
||||||
#else
|
#else
|
||||||
|
@ -2805,6 +2815,7 @@ TRANS(UI_TEXT_DBG_ECHO_ES);
|
||||||
TRANS(UI_TEXT_DBG_INFO_ES);
|
TRANS(UI_TEXT_DBG_INFO_ES);
|
||||||
TRANS(UI_TEXT_DBG_ERROR_ES);
|
TRANS(UI_TEXT_DBG_ERROR_ES);
|
||||||
TRANS(UI_TEXT_DBG_DRYRUN_ES);
|
TRANS(UI_TEXT_DBG_DRYRUN_ES);
|
||||||
|
TRANS(UI_TEXT_DBG_ENDSTOP_ES);
|
||||||
TRANS(UI_TEXT_OPS_OFF_ES);
|
TRANS(UI_TEXT_OPS_OFF_ES);
|
||||||
TRANS(UI_TEXT_OPS_CLASSIC_ES);
|
TRANS(UI_TEXT_OPS_CLASSIC_ES);
|
||||||
TRANS(UI_TEXT_OPS_FAST_ES);
|
TRANS(UI_TEXT_OPS_FAST_ES);
|
||||||
|
@ -3274,7 +3285,8 @@ PGM_P const translations_es[NUM_TRANSLATED_WORDS] PROGMEM = {
|
||||||
FUI_TEXT_OFFSETS_ES,
|
FUI_TEXT_OFFSETS_ES,
|
||||||
FUI_TEXT_X_OFFSET_ES,
|
FUI_TEXT_X_OFFSET_ES,
|
||||||
FUI_TEXT_Y_OFFSET_ES,
|
FUI_TEXT_Y_OFFSET_ES,
|
||||||
FUI_TEXT_Z_OFFSET_ES
|
FUI_TEXT_Z_OFFSET_ES,
|
||||||
|
FUI_TEXT_DBG_ENDSTOP_ES
|
||||||
};
|
};
|
||||||
#define LANG_ES_TABLE translations_es
|
#define LANG_ES_TABLE translations_es
|
||||||
#else
|
#else
|
||||||
|
@ -3347,6 +3359,7 @@ TRANS(UI_TEXT_DBG_ECHO_SE);
|
||||||
TRANS(UI_TEXT_DBG_INFO_SE);
|
TRANS(UI_TEXT_DBG_INFO_SE);
|
||||||
TRANS(UI_TEXT_DBG_ERROR_SE);
|
TRANS(UI_TEXT_DBG_ERROR_SE);
|
||||||
TRANS(UI_TEXT_DBG_DRYRUN_SE);
|
TRANS(UI_TEXT_DBG_DRYRUN_SE);
|
||||||
|
TRANS(UI_TEXT_DBG_ENDSTOP_SE);
|
||||||
TRANS(UI_TEXT_OPS_OFF_SE);
|
TRANS(UI_TEXT_OPS_OFF_SE);
|
||||||
TRANS(UI_TEXT_OPS_CLASSIC_SE);
|
TRANS(UI_TEXT_OPS_CLASSIC_SE);
|
||||||
TRANS(UI_TEXT_OPS_FAST_SE);
|
TRANS(UI_TEXT_OPS_FAST_SE);
|
||||||
|
@ -3816,7 +3829,8 @@ PGM_P const translations_se[NUM_TRANSLATED_WORDS] PROGMEM = {
|
||||||
FUI_TEXT_OFFSETS_SE,
|
FUI_TEXT_OFFSETS_SE,
|
||||||
FUI_TEXT_X_OFFSET_SE,
|
FUI_TEXT_X_OFFSET_SE,
|
||||||
FUI_TEXT_Y_OFFSET_SE,
|
FUI_TEXT_Y_OFFSET_SE,
|
||||||
FUI_TEXT_Z_OFFSET_SE
|
FUI_TEXT_Z_OFFSET_SE,
|
||||||
|
FUI_TEXT_DBG_ENDSTOP_SE
|
||||||
};
|
};
|
||||||
#define LANG_SE_TABLE translations_se
|
#define LANG_SE_TABLE translations_se
|
||||||
#else
|
#else
|
||||||
|
@ -3889,6 +3903,7 @@ TRANS(UI_TEXT_DBG_ECHO_FR);
|
||||||
TRANS(UI_TEXT_DBG_INFO_FR);
|
TRANS(UI_TEXT_DBG_INFO_FR);
|
||||||
TRANS(UI_TEXT_DBG_ERROR_FR);
|
TRANS(UI_TEXT_DBG_ERROR_FR);
|
||||||
TRANS(UI_TEXT_DBG_DRYRUN_FR);
|
TRANS(UI_TEXT_DBG_DRYRUN_FR);
|
||||||
|
TRANS(UI_TEXT_DBG_ENDSTOP_FR);
|
||||||
TRANS(UI_TEXT_OPS_OFF_FR);
|
TRANS(UI_TEXT_OPS_OFF_FR);
|
||||||
TRANS(UI_TEXT_OPS_CLASSIC_FR);
|
TRANS(UI_TEXT_OPS_CLASSIC_FR);
|
||||||
TRANS(UI_TEXT_OPS_FAST_FR);
|
TRANS(UI_TEXT_OPS_FAST_FR);
|
||||||
|
@ -4358,7 +4373,8 @@ PGM_P const translations_fr[NUM_TRANSLATED_WORDS] PROGMEM = {
|
||||||
FUI_TEXT_OFFSETS_FR,
|
FUI_TEXT_OFFSETS_FR,
|
||||||
FUI_TEXT_X_OFFSET_FR,
|
FUI_TEXT_X_OFFSET_FR,
|
||||||
FUI_TEXT_Y_OFFSET_FR,
|
FUI_TEXT_Y_OFFSET_FR,
|
||||||
FUI_TEXT_Z_OFFSET_FR
|
FUI_TEXT_Z_OFFSET_FR,
|
||||||
|
FUI_TEXT_DBG_ENDSTOP_FR
|
||||||
};
|
};
|
||||||
#define LANG_FR_TABLE translations_fr
|
#define LANG_FR_TABLE translations_fr
|
||||||
#else
|
#else
|
||||||
|
@ -4431,6 +4447,7 @@ TRANS(UI_TEXT_DBG_ECHO_CZ);
|
||||||
TRANS(UI_TEXT_DBG_INFO_CZ);
|
TRANS(UI_TEXT_DBG_INFO_CZ);
|
||||||
TRANS(UI_TEXT_DBG_ERROR_CZ);
|
TRANS(UI_TEXT_DBG_ERROR_CZ);
|
||||||
TRANS(UI_TEXT_DBG_DRYRUN_CZ);
|
TRANS(UI_TEXT_DBG_DRYRUN_CZ);
|
||||||
|
TRANS(UI_TEXT_DBG_ENDSTOP_CZ);
|
||||||
TRANS(UI_TEXT_OPS_OFF_CZ);
|
TRANS(UI_TEXT_OPS_OFF_CZ);
|
||||||
TRANS(UI_TEXT_OPS_CLASSIC_CZ);
|
TRANS(UI_TEXT_OPS_CLASSIC_CZ);
|
||||||
TRANS(UI_TEXT_OPS_FAST_CZ);
|
TRANS(UI_TEXT_OPS_FAST_CZ);
|
||||||
|
@ -4900,7 +4917,8 @@ PGM_P const translations_cz[NUM_TRANSLATED_WORDS] PROGMEM = {
|
||||||
FUI_TEXT_OFFSETS_CZ,
|
FUI_TEXT_OFFSETS_CZ,
|
||||||
FUI_TEXT_X_OFFSET_CZ,
|
FUI_TEXT_X_OFFSET_CZ,
|
||||||
FUI_TEXT_Y_OFFSET_CZ,
|
FUI_TEXT_Y_OFFSET_CZ,
|
||||||
FUI_TEXT_Z_OFFSET_CZ
|
FUI_TEXT_Z_OFFSET_CZ,
|
||||||
|
FUI_TEXT_DBG_ENDSTOP_CZ
|
||||||
};
|
};
|
||||||
#define LANG_CZ_TABLE translations_cz
|
#define LANG_CZ_TABLE translations_cz
|
||||||
#else
|
#else
|
||||||
|
@ -4973,6 +4991,7 @@ TRANS(UI_TEXT_DBG_ECHO_PL);
|
||||||
TRANS(UI_TEXT_DBG_INFO_PL);
|
TRANS(UI_TEXT_DBG_INFO_PL);
|
||||||
TRANS(UI_TEXT_DBG_ERROR_PL);
|
TRANS(UI_TEXT_DBG_ERROR_PL);
|
||||||
TRANS(UI_TEXT_DBG_DRYRUN_PL);
|
TRANS(UI_TEXT_DBG_DRYRUN_PL);
|
||||||
|
TRANS(UI_TEXT_DBG_ENDSTOP_PL);
|
||||||
TRANS(UI_TEXT_OPS_OFF_PL);
|
TRANS(UI_TEXT_OPS_OFF_PL);
|
||||||
TRANS(UI_TEXT_OPS_CLASSIC_PL);
|
TRANS(UI_TEXT_OPS_CLASSIC_PL);
|
||||||
TRANS(UI_TEXT_OPS_FAST_PL);
|
TRANS(UI_TEXT_OPS_FAST_PL);
|
||||||
|
@ -5442,7 +5461,8 @@ PGM_P const translations_pl[NUM_TRANSLATED_WORDS] PROGMEM = {
|
||||||
FUI_TEXT_OFFSETS_PL,
|
FUI_TEXT_OFFSETS_PL,
|
||||||
FUI_TEXT_X_OFFSET_PL,
|
FUI_TEXT_X_OFFSET_PL,
|
||||||
FUI_TEXT_Y_OFFSET_PL,
|
FUI_TEXT_Y_OFFSET_PL,
|
||||||
FUI_TEXT_Z_OFFSET_PL
|
FUI_TEXT_Z_OFFSET_PL,
|
||||||
|
FUI_TEXT_DBG_ENDSTOP_PL
|
||||||
};
|
};
|
||||||
#define LANG_PL_TABLE translations_pl
|
#define LANG_PL_TABLE translations_pl
|
||||||
#else
|
#else
|
||||||
|
@ -5514,6 +5534,7 @@ TRANS(UI_TEXT_DBG_ECHO_TR);
|
||||||
TRANS(UI_TEXT_DBG_INFO_TR);
|
TRANS(UI_TEXT_DBG_INFO_TR);
|
||||||
TRANS(UI_TEXT_DBG_ERROR_TR);
|
TRANS(UI_TEXT_DBG_ERROR_TR);
|
||||||
TRANS(UI_TEXT_DBG_DRYRUN_TR);
|
TRANS(UI_TEXT_DBG_DRYRUN_TR);
|
||||||
|
TRANS(UI_TEXT_DBG_ENDSTOP_TR);
|
||||||
TRANS(UI_TEXT_OPS_OFF_TR);
|
TRANS(UI_TEXT_OPS_OFF_TR);
|
||||||
TRANS(UI_TEXT_OPS_CLASSIC_TR);
|
TRANS(UI_TEXT_OPS_CLASSIC_TR);
|
||||||
TRANS(UI_TEXT_OPS_FAST_TR);
|
TRANS(UI_TEXT_OPS_FAST_TR);
|
||||||
|
@ -5984,13 +6005,558 @@ PGM_P const translations_TR[NUM_TRANSLATED_WORDS] PROGMEM = {
|
||||||
FUI_TEXT_OFFSETS_TR,
|
FUI_TEXT_OFFSETS_TR,
|
||||||
FUI_TEXT_X_OFFSET_TR,
|
FUI_TEXT_X_OFFSET_TR,
|
||||||
FUI_TEXT_Y_OFFSET_TR,
|
FUI_TEXT_Y_OFFSET_TR,
|
||||||
FUI_TEXT_Z_OFFSET_TR
|
FUI_TEXT_Z_OFFSET_TR,
|
||||||
|
FUI_TEXT_DBG_ENDSTOP_TR
|
||||||
};
|
};
|
||||||
#define LANG_TR_TABLE translations_TR
|
#define LANG_TR_TABLE translations_TR
|
||||||
#else
|
#else
|
||||||
#define LANG_TR_TABLE NULL
|
#define LANG_TR_TABLE NULL
|
||||||
#endif // LANGUAGE_TR_ACTIVE
|
#endif // LANGUAGE_TR_ACTIVE
|
||||||
|
|
||||||
|
#if LANGUAGE_TR_ACTIVE
|
||||||
|
TRANS(UI_TEXT_ON_FI);
|
||||||
|
TRANS(UI_TEXT_OFF_FI);
|
||||||
|
TRANS(UI_TEXT_NA_FI);
|
||||||
|
TRANS(UI_TEXT_YES_FI);
|
||||||
|
TRANS(UI_TEXT_NO_FI);
|
||||||
|
TRANS(UI_TEXT_PRINT_POS_FI);
|
||||||
|
TRANS(UI_TEXT_PRINTING_FI);
|
||||||
|
TRANS(UI_TEXT_IDLE_FI);
|
||||||
|
TRANS(UI_TEXT_NOSDCARD_FI);
|
||||||
|
TRANS(UI_TEXT_ERROR_FI);
|
||||||
|
TRANS(UI_TEXT_BACK_FI);
|
||||||
|
TRANS(UI_TEXT_QUICK_SETTINGS_FI);
|
||||||
|
TRANS(UI_TEXT_ERRORMSG_FI);
|
||||||
|
TRANS(UI_TEXT_CONFIGURATION_FI);
|
||||||
|
TRANS(UI_TEXT_POSITION_FI);
|
||||||
|
TRANS(UI_TEXT_EXTRUDER_FI);
|
||||||
|
TRANS(UI_TEXT_SD_CARD_FI);
|
||||||
|
TRANS(UI_TEXT_DEBUGGING_FI);
|
||||||
|
TRANS(UI_TEXT_HOME_DELTA_FI);
|
||||||
|
TRANS(UI_TEXT_HOME_ALL_FI);
|
||||||
|
TRANS(UI_TEXT_HOME_X_FI);
|
||||||
|
TRANS(UI_TEXT_HOME_Y_FI);
|
||||||
|
TRANS(UI_TEXT_HOME_Z_FI);
|
||||||
|
TRANS(UI_TEXT_PREHEAT_PLA_FI);
|
||||||
|
TRANS(UI_TEXT_PREHEAT_ABS_FI);
|
||||||
|
TRANS(UI_TEXT_LIGHTS_ONOFF_FI);
|
||||||
|
TRANS(UI_TEXT_COOLDOWN_FI);
|
||||||
|
TRANS(UI_TEXT_SET_TO_ORIGIN_FI);
|
||||||
|
TRANS(UI_TEXT_DISABLE_STEPPER_FI);
|
||||||
|
TRANS(UI_TEXT_X_POSITION_FI);
|
||||||
|
TRANS(UI_TEXT_X_POS_FAST_FI);
|
||||||
|
TRANS(UI_TEXT_Y_POSITION_FI);
|
||||||
|
TRANS(UI_TEXT_Y_POS_FAST_FI);
|
||||||
|
TRANS(UI_TEXT_Z_POSITION_FI);
|
||||||
|
TRANS(UI_TEXT_Z_POS_FAST_FI);
|
||||||
|
TRANS(UI_TEXT_E_POSITION_FI);
|
||||||
|
TRANS(UI_TEXT_BED_TEMP_FI);
|
||||||
|
TRANS(UI_TEXT_EXTR0_TEMP_FI);
|
||||||
|
TRANS(UI_TEXT_EXTR1_TEMP_FI);
|
||||||
|
TRANS(UI_TEXT_EXTR2_TEMP_FI);
|
||||||
|
TRANS(UI_TEXT_EXTR0_OFF_FI);
|
||||||
|
TRANS(UI_TEXT_EXTR1_OFF_FI);
|
||||||
|
TRANS(UI_TEXT_EXTR2_OFF_FI);
|
||||||
|
TRANS(UI_TEXT_EXTR0_SELECT_FI);
|
||||||
|
TRANS(UI_TEXT_EXTR1_SELECT_FI);
|
||||||
|
TRANS(UI_TEXT_EXTR2_SELECT_FI);
|
||||||
|
TRANS(UI_TEXT_EXTR_ORIGIN_FI);
|
||||||
|
TRANS(UI_TEXT_PRINT_X_FI);
|
||||||
|
TRANS(UI_TEXT_PRINT_Y_FI);
|
||||||
|
TRANS(UI_TEXT_PRINT_Z_FI);
|
||||||
|
TRANS(UI_TEXT_PRINT_Z_DELTA_FI);
|
||||||
|
TRANS(UI_TEXT_MOVE_X_FI);
|
||||||
|
TRANS(UI_TEXT_MOVE_Y_FI);
|
||||||
|
TRANS(UI_TEXT_MOVE_Z_FI);
|
||||||
|
TRANS(UI_TEXT_MOVE_Z_DELTA_FI);
|
||||||
|
TRANS(UI_TEXT_JERK_FI);
|
||||||
|
TRANS(UI_TEXT_ZJERK_FI);
|
||||||
|
TRANS(UI_TEXT_ACCELERATION_FI);
|
||||||
|
TRANS(UI_TEXT_STORE_TO_EEPROM_FI);
|
||||||
|
TRANS(UI_TEXT_LOAD_EEPROM_FI);
|
||||||
|
TRANS(UI_TEXT_DBG_ECHO_FI);
|
||||||
|
TRANS(UI_TEXT_DBG_INFO_FI);
|
||||||
|
TRANS(UI_TEXT_DBG_ERROR_FI);
|
||||||
|
TRANS(UI_TEXT_DBG_DRYRUN_FI);
|
||||||
|
TRANS(UI_TEXT_DBG_ENDSTOP_FI);
|
||||||
|
TRANS(UI_TEXT_OPS_OFF_FI);
|
||||||
|
TRANS(UI_TEXT_OPS_CLASSIC_FI);
|
||||||
|
TRANS(UI_TEXT_OPS_FAST_FI);
|
||||||
|
TRANS(UI_TEXT_OPS_RETRACT_FI);
|
||||||
|
TRANS(UI_TEXT_OPS_BACKSLASH_FI);
|
||||||
|
TRANS(UI_TEXT_OPS_MINDIST_FI);
|
||||||
|
TRANS(UI_TEXT_OPS_MOVE_AFTER_FI);
|
||||||
|
TRANS(UI_TEXT_ANTI_OOZE_FI);
|
||||||
|
TRANS(UI_TEXT_PRINT_FILE_FI);
|
||||||
|
TRANS(UI_TEXT_PAUSE_PRINT_FI);
|
||||||
|
TRANS(UI_TEXT_CONTINUE_PRINT_FI);
|
||||||
|
TRANS(UI_TEXT_UNMOUNT_CARD_FI);
|
||||||
|
TRANS(UI_TEXT_MOUNT_CARD_FI);
|
||||||
|
TRANS(UI_TEXT_DELETE_FILE_FI);
|
||||||
|
TRANS(UI_TEXT_FEEDRATE_FI);
|
||||||
|
TRANS(UI_TEXT_FEED_MAX_X_FI);
|
||||||
|
TRANS(UI_TEXT_FEED_MAX_Y_FI);
|
||||||
|
TRANS(UI_TEXT_FEED_MAX_Z_FI);
|
||||||
|
TRANS(UI_TEXT_FEED_MAX_Z_DELTA_FI);
|
||||||
|
TRANS(UI_TEXT_FEED_HOME_X_FI);
|
||||||
|
TRANS(UI_TEXT_FEED_HOME_Y_FI);
|
||||||
|
TRANS(UI_TEXT_FEED_HOME_Z_FI);
|
||||||
|
TRANS(UI_TEXT_FEED_HOME_Z_DELTA_FI);
|
||||||
|
TRANS(UI_TEXT_ACTION_XPOSITION4A_FI);
|
||||||
|
TRANS(UI_TEXT_ACTION_XPOSITION4B_FI);
|
||||||
|
TRANS(UI_TEXT_ACTION_XPOSITION4C_FI);
|
||||||
|
TRANS(UI_TEXT_ACTION_XPOSITION4D_FI);
|
||||||
|
TRANS(UI_TEXT_ACTION_YPOSITION4A_FI);
|
||||||
|
TRANS(UI_TEXT_ACTION_YPOSITION4B_FI);
|
||||||
|
TRANS(UI_TEXT_ACTION_YPOSITION4C_FI);
|
||||||
|
TRANS(UI_TEXT_ACTION_YPOSITION4D_FI);
|
||||||
|
TRANS(UI_TEXT_ACTION_ZPOSITION4A_FI);
|
||||||
|
TRANS(UI_TEXT_ACTION_ZPOSITION4B_FI);
|
||||||
|
TRANS(UI_TEXT_ACTION_ZPOSITION4C_FI);
|
||||||
|
TRANS(UI_TEXT_ACTION_ZPOSITION4D_FI);
|
||||||
|
TRANS(UI_TEXT_ACTION_XPOSITION_FAST4A_FI);
|
||||||
|
TRANS(UI_TEXT_ACTION_XPOSITION_FAST4B_FI);
|
||||||
|
TRANS(UI_TEXT_ACTION_XPOSITION_FAST4C_FI);
|
||||||
|
TRANS(UI_TEXT_ACTION_XPOSITION_FAST4D_FI);
|
||||||
|
TRANS(UI_TEXT_ACTION_YPOSITION_FAST4A_FI);
|
||||||
|
TRANS(UI_TEXT_ACTION_YPOSITION_FAST4B_FI);
|
||||||
|
TRANS(UI_TEXT_ACTION_YPOSITION_FAST4C_FI);
|
||||||
|
TRANS(UI_TEXT_ACTION_YPOSITION_FAST4D_FI);
|
||||||
|
TRANS(UI_TEXT_ACTION_ZPOSITION_FAST4A_FI);
|
||||||
|
TRANS(UI_TEXT_ACTION_ZPOSITION_FAST4B_FI);
|
||||||
|
TRANS(UI_TEXT_ACTION_ZPOSITION_FAST4C_FI);
|
||||||
|
TRANS(UI_TEXT_ACTION_ZPOSITION_FAST4D_FI);
|
||||||
|
TRANS(UI_TEXT_ACTION_EPOSITION_FAST2A_FI);
|
||||||
|
TRANS(UI_TEXT_ACTION_EPOSITION_FAST2B_FI);
|
||||||
|
TRANS(UI_TEXT_ACTION_XPOSITION2A_FI);
|
||||||
|
TRANS(UI_TEXT_ACTION_XPOSITION2B_FI);
|
||||||
|
TRANS(UI_TEXT_ACTION_YPOSITION2A_FI);
|
||||||
|
TRANS(UI_TEXT_ACTION_YPOSITION2B_FI);
|
||||||
|
TRANS(UI_TEXT_ACTION_ZPOSITION2A_FI);
|
||||||
|
TRANS(UI_TEXT_ACTION_ZPOSITION2B_FI);
|
||||||
|
TRANS(UI_TEXT_ACTION_XPOSITION_FAST2A_FI);
|
||||||
|
TRANS(UI_TEXT_ACTION_XPOSITION_FAST2B_FI);
|
||||||
|
TRANS(UI_TEXT_ACTION_YPOSITION_FAST2A_FI);
|
||||||
|
TRANS(UI_TEXT_ACTION_YPOSITION_FAST2B_FI);
|
||||||
|
TRANS(UI_TEXT_ACTION_ZPOSITION_FAST2A_FI);
|
||||||
|
TRANS(UI_TEXT_ACTION_ZPOSITION_FAST2B_FI);
|
||||||
|
TRANS(UI_TEXT_FANSPEED_FI);
|
||||||
|
TRANS(UI_TEXT_ACTION_FANSPEED_FI);
|
||||||
|
TRANS(UI_TEXT_FAN_OFF_FI);
|
||||||
|
TRANS(UI_TEXT_FAN_25_FI);
|
||||||
|
TRANS(UI_TEXT_FAN_50_FI);
|
||||||
|
TRANS(UI_TEXT_FAN_75_FI);
|
||||||
|
TRANS(UI_TEXT_FAN_FULL_FI);
|
||||||
|
TRANS(UI_TEXT_STEPPER_INACTIVE_FI);
|
||||||
|
TRANS(UI_TEXT_STEPPER_INACTIVE2A_FI);
|
||||||
|
TRANS(UI_TEXT_STEPPER_INACTIVE2B_FI);
|
||||||
|
TRANS(UI_TEXT_POWER_INACTIVE_FI);
|
||||||
|
TRANS(UI_TEXT_POWER_INACTIVE2A_FI);
|
||||||
|
TRANS(UI_TEXT_POWER_INACTIVE2B_FI);
|
||||||
|
TRANS(UI_TEXT_GENERAL_FI);
|
||||||
|
TRANS(UI_TEXT_BAUDRATE_FI);
|
||||||
|
TRANS(UI_TEXT_EXTR_STEPS_FI);
|
||||||
|
TRANS(UI_TEXT_EXTR_START_FEED_FI);
|
||||||
|
TRANS(UI_TEXT_EXTR_MAX_FEED_FI);
|
||||||
|
TRANS(UI_TEXT_EXTR_ACCEL_FI);
|
||||||
|
TRANS(UI_TEXT_EXTR_WATCH_FI);
|
||||||
|
TRANS(UI_TEXT_EXTR_ADVANCE_L_FI);
|
||||||
|
TRANS(UI_TEXT_EXTR_ADVANCE_K_FI);
|
||||||
|
TRANS(UI_TEXT_EXTR_MANAGER_FI);
|
||||||
|
TRANS(UI_TEXT_EXTR_PGAIN_FI);
|
||||||
|
TRANS(UI_TEXT_EXTR_DEADTIME_FI);
|
||||||
|
TRANS(UI_TEXT_EXTR_DMAX_DT_FI);
|
||||||
|
TRANS(UI_TEXT_EXTR_IGAIN_FI);
|
||||||
|
TRANS(UI_TEXT_EXTR_DGAIN_FI);
|
||||||
|
TRANS(UI_TEXT_EXTR_DMIN_FI);
|
||||||
|
TRANS(UI_TEXT_EXTR_DMAX_FI);
|
||||||
|
TRANS(UI_TEXT_EXTR_PMAX_FI);
|
||||||
|
TRANS(UI_TEXT_EXTR_XOFF_FI);
|
||||||
|
TRANS(UI_TEXT_EXTR_YOFF_FI);
|
||||||
|
TRANS(UI_TEXT_STRING_HM_BANGBANG_FI);
|
||||||
|
TRANS(UI_TEXT_STRING_HM_PID_FI);
|
||||||
|
TRANS(UI_TEXT_STRING_ACTION_FI);
|
||||||
|
TRANS(UI_TEXT_HEATING_EXTRUDER_FI);
|
||||||
|
TRANS(UI_TEXT_HEATING_BED_FI);
|
||||||
|
TRANS(UI_TEXT_KILLED_FI);
|
||||||
|
TRANS(UI_TEXT_STEPPER_DISABLED_FI);
|
||||||
|
TRANS(UI_TEXT_EEPROM_STOREDA_FI);
|
||||||
|
TRANS(UI_TEXT_EEPROM_STOREDB_FI);
|
||||||
|
TRANS(UI_TEXT_EEPROM_LOADEDA_FI);
|
||||||
|
TRANS(UI_TEXT_EEPROM_LOADEDB_FI);
|
||||||
|
TRANS(UI_TEXT_UPLOADING_FI);
|
||||||
|
TRANS(UI_TEXT_PAGE_BUFFER_FI);
|
||||||
|
TRANS(UI_TEXT_PAGE_EXTRUDER_FI);
|
||||||
|
TRANS(UI_TEXT_PAGE_EXTRUDER1_FI);
|
||||||
|
TRANS(UI_TEXT_PAGE_EXTRUDER2_FI);
|
||||||
|
TRANS(UI_TEXT_PAGE_EXTRUDER3_FI);
|
||||||
|
TRANS(UI_TEXT_PAGE_BED_FI);
|
||||||
|
TRANS(UI_TEXT_SPEED_MULTIPLY_FI);
|
||||||
|
TRANS(UI_TEXT_FLOW_MULTIPLY_FI);
|
||||||
|
TRANS(UI_TEXT_SHOW_MEASUREMENT_FI);
|
||||||
|
TRANS(UI_TEXT_RESET_MEASUREMENT_FI);
|
||||||
|
TRANS(UI_TEXT_SET_MEASURED_ORIGIN_FI);
|
||||||
|
TRANS(UI_TEXT_ZCALIB_FI);
|
||||||
|
TRANS(UI_TEXT_SET_P1_FI);
|
||||||
|
TRANS(UI_TEXT_SET_P2_FI);
|
||||||
|
TRANS(UI_TEXT_SET_P3_FI);
|
||||||
|
TRANS(UI_TEXT_CALCULATE_LEVELING_FI);
|
||||||
|
TRANS(UI_TEXT_LEVEL_FI);
|
||||||
|
TRANS(UI_TEXT_EXTR_WAIT_RETRACT_TEMP_FI);
|
||||||
|
TRANS(UI_TEXT_EXTR_WAIT_RETRACT_UNITS_FI);
|
||||||
|
TRANS(UI_TEXT_SD_REMOVED_FI);
|
||||||
|
TRANS(UI_TEXT_SD_INSERTED_FI);
|
||||||
|
TRANS(UI_TEXT_PRINTER_READY_FI);
|
||||||
|
TRANS(UI_TEXT_PRINTTIME_DAYS_FI);
|
||||||
|
TRANS(UI_TEXT_PRINTTIME_HOURS_FI);
|
||||||
|
TRANS(UI_TEXT_PRINTTIME_MINUTES_FI);
|
||||||
|
TRANS(UI_TEXT_PRINT_TIME_FI);
|
||||||
|
TRANS(UI_TEXT_PRINT_FILAMENT_FI);
|
||||||
|
TRANS(UI_TEXT_PRINTED_FI);
|
||||||
|
TRANS(UI_TEXT_POWER_FI);
|
||||||
|
TRANS(UI_TEXT_STRING_HM_DEADTIME_FI);
|
||||||
|
TRANS(UI_TEXT_STRING_HM_SLOWBANG_FI);
|
||||||
|
TRANS(UI_TEXT_STOP_PRINT_FI);
|
||||||
|
TRANS(UI_TEXT_Z_BABYSTEPPING_FI);
|
||||||
|
TRANS(UI_TEXT_CHANGE_FILAMENT_FI);
|
||||||
|
TRANS(UI_TEXT_WIZ_CH_FILAMENT1_FI);
|
||||||
|
TRANS(UI_TEXT_WIZ_CH_FILAMENT2_FI);
|
||||||
|
TRANS(UI_TEXT_WIZ_CH_FILAMENT3_FI);
|
||||||
|
TRANS(UI_TEXT_CLICK_DONE_FI);
|
||||||
|
TRANS(UI_TEXT_AUTOLEVEL_ONOFF_FI);
|
||||||
|
TRANS(UI_TEXT_SERVOPOS_FI);
|
||||||
|
TRANS(UI_TEXT_IGNORE_M106_FI);
|
||||||
|
TRANS(UI_TEXT_WIZ_REHEAT1_FI);
|
||||||
|
TRANS(UI_TEXT_WIZ_REHEAT2_FI);
|
||||||
|
TRANS(UI_TEXT_WIZ_WAITTEMP1_FI);
|
||||||
|
TRANS(UI_TEXT_WIZ_WAITTEMP2_FI);
|
||||||
|
TRANS(UI_TEXT_EXTRUDER_JAM_FI);
|
||||||
|
TRANS(UI_TEXT_STANDBY_FI);
|
||||||
|
TRANS(UI_TEXT_BED_COATING_FI);
|
||||||
|
TRANS(UI_TEXT_BED_COATING_SET1_FI);
|
||||||
|
TRANS(UI_TEXT_BED_COATING_SET2_FI);
|
||||||
|
TRANS(UI_TEXT_NOCOATING_FI);
|
||||||
|
TRANS(UI_TEXT_BUILDTAK_FI);
|
||||||
|
TRANS(UI_TEXT_KAPTON_FI);
|
||||||
|
TRANS(UI_TEXT_BLUETAPE_FI);
|
||||||
|
TRANS(UI_TEXT_PETTAPE_FI);
|
||||||
|
TRANS(UI_TEXT_GLUESTICK_FI);
|
||||||
|
TRANS(UI_TEXT_CUSTOM_FI);
|
||||||
|
TRANS(UI_TEXT_COATING_CUSTOM_FI);
|
||||||
|
TRANS(UI_TEXT_LANGUAGE_FI);
|
||||||
|
TRANS(UI_TEXT_MAINPAGE6_1_FI);
|
||||||
|
TRANS(UI_TEXT_MAINPAGE6_2_FI);
|
||||||
|
TRANS(UI_TEXT_MAINPAGE6_3_FI);
|
||||||
|
TRANS(UI_TEXT_MAINPAGE6_4_FI);
|
||||||
|
TRANS(UI_TEXT_MAINPAGE6_5_FI);
|
||||||
|
TRANS(UI_TEXT_MAINPAGE6_6_FI);
|
||||||
|
TRANS(UI_TEXT_MAINPAGE_TEMP_BED_FI);
|
||||||
|
TRANS(UI_TEXT_MAINPAGE_BED_FI);
|
||||||
|
TRANS(UI_TEXT_MAINPAGE_Z_BUF_FI);
|
||||||
|
TRANS(UI_TEXT_MAINPAGE_MUL_EUSAGE_FI);
|
||||||
|
TRANS(UI_TEXT_MAINPAGE_XY_FI);
|
||||||
|
TRANS(UI_TEXT_PRINT_TIME_VALUE_FI);
|
||||||
|
TRANS(UI_TEXT_PRINT_FILAMENT_VALUE_FI);
|
||||||
|
TRANS(UI_TEXT_METER_PRINTED_FI);
|
||||||
|
TRANS(UI_TEXT_STATUS_FI);
|
||||||
|
TRANS(UI_TEXT_EMPTY_FI);
|
||||||
|
TRANS(UI_TEXT_TEMP_SET_FI);
|
||||||
|
TRANS(UI_TEXT_CURRENT_TEMP_FI);
|
||||||
|
TRANS(UI_TEXT_COATING_THICKNESS_FI);
|
||||||
|
TRANS(UI_TEXT_EXTR3_TEMP_FI);
|
||||||
|
TRANS(UI_TEXT_EXTR4_TEMP_FI);
|
||||||
|
TRANS(UI_TEXT_EXTR5_TEMP_FI);
|
||||||
|
TRANS(UI_TEXT_EXTR3_OFF_FI);
|
||||||
|
TRANS(UI_TEXT_EXTR4_OFF_FI);
|
||||||
|
TRANS(UI_TEXT_EXTR5_OFF_FI);
|
||||||
|
TRANS(UI_TEXT_EXTR3_SELECT_FI);
|
||||||
|
TRANS(UI_TEXT_EXTR4_SELECT_FI);
|
||||||
|
TRANS(UI_TEXT_EXTR5_SELECT_FI);
|
||||||
|
TRANS(UI_TEXT_DITTO_0_FI);
|
||||||
|
TRANS(UI_TEXT_DITTO_1_FI);
|
||||||
|
TRANS(UI_TEXT_DITTO_2_FI);
|
||||||
|
TRANS(UI_TEXT_DITTO_3_FI);
|
||||||
|
TRANS(UI_TEXT_ZPROBE_HEIGHT_FI);
|
||||||
|
TRANS(UI_TEXT_OFFSETS_FI);
|
||||||
|
TRANS(UI_TEXT_X_OFFSET_FI);
|
||||||
|
TRANS(UI_TEXT_Y_OFFSET_FI);
|
||||||
|
TRANS(UI_TEXT_Z_OFFSET_FI);
|
||||||
|
|
||||||
|
|
||||||
|
PGM_P const translations_FI[NUM_TRANSLATED_WORDS] PROGMEM = {
|
||||||
|
FUI_TEXT_ON_FI,
|
||||||
|
FUI_TEXT_OFF_FI,
|
||||||
|
FUI_TEXT_NA_FI,
|
||||||
|
FUI_TEXT_YES_FI,
|
||||||
|
FUI_TEXT_NO_FI,
|
||||||
|
FUI_TEXT_PRINT_POS_FI,
|
||||||
|
FUI_TEXT_PRINTING_FI,
|
||||||
|
FUI_TEXT_IDLE_FI,
|
||||||
|
FUI_TEXT_NOSDCARD_FI,
|
||||||
|
FUI_TEXT_ERROR_FI,
|
||||||
|
FUI_TEXT_BACK_FI,
|
||||||
|
FUI_TEXT_QUICK_SETTINGS_FI,
|
||||||
|
FUI_TEXT_ERRORMSG_FI,
|
||||||
|
FUI_TEXT_CONFIGURATION_FI,
|
||||||
|
FUI_TEXT_POSITION_FI,
|
||||||
|
FUI_TEXT_EXTRUDER_FI,
|
||||||
|
FUI_TEXT_SD_CARD_FI,
|
||||||
|
FUI_TEXT_DEBUGGING_FI,
|
||||||
|
FUI_TEXT_HOME_DELTA_FI,
|
||||||
|
FUI_TEXT_HOME_ALL_FI,
|
||||||
|
FUI_TEXT_HOME_X_FI,
|
||||||
|
FUI_TEXT_HOME_Y_FI,
|
||||||
|
FUI_TEXT_HOME_Z_FI,
|
||||||
|
FUI_TEXT_PREHEAT_PLA_FI,
|
||||||
|
FUI_TEXT_PREHEAT_ABS_FI,
|
||||||
|
FUI_TEXT_LIGHTS_ONOFF_FI,
|
||||||
|
FUI_TEXT_COOLDOWN_FI,
|
||||||
|
FUI_TEXT_SET_TO_ORIGIN_FI,
|
||||||
|
FUI_TEXT_DISABLE_STEPPER_FI,
|
||||||
|
FUI_TEXT_X_POSITION_FI,
|
||||||
|
FUI_TEXT_X_POS_FAST_FI,
|
||||||
|
FUI_TEXT_Y_POSITION_FI,
|
||||||
|
FUI_TEXT_Y_POS_FAST_FI,
|
||||||
|
FUI_TEXT_Z_POSITION_FI,
|
||||||
|
FUI_TEXT_Z_POS_FAST_FI,
|
||||||
|
FUI_TEXT_E_POSITION_FI,
|
||||||
|
FUI_TEXT_BED_TEMP_FI,
|
||||||
|
FUI_TEXT_EXTR0_TEMP_FI,
|
||||||
|
FUI_TEXT_EXTR1_TEMP_FI,
|
||||||
|
FUI_TEXT_EXTR2_TEMP_FI,
|
||||||
|
FUI_TEXT_EXTR0_OFF_FI,
|
||||||
|
FUI_TEXT_EXTR1_OFF_FI,
|
||||||
|
FUI_TEXT_EXTR2_OFF_FI,
|
||||||
|
FUI_TEXT_EXTR0_SELECT_FI,
|
||||||
|
FUI_TEXT_EXTR1_SELECT_FI,
|
||||||
|
FUI_TEXT_EXTR2_SELECT_FI,
|
||||||
|
FUI_TEXT_EXTR_ORIGIN_FI,
|
||||||
|
FUI_TEXT_PRINT_X_FI,
|
||||||
|
FUI_TEXT_PRINT_Y_FI,
|
||||||
|
FUI_TEXT_PRINT_Z_FI,
|
||||||
|
FUI_TEXT_PRINT_Z_DELTA_FI,
|
||||||
|
FUI_TEXT_MOVE_X_FI,
|
||||||
|
FUI_TEXT_MOVE_Y_FI,
|
||||||
|
FUI_TEXT_MOVE_Z_FI,
|
||||||
|
FUI_TEXT_MOVE_Z_DELTA_FI,
|
||||||
|
FUI_TEXT_JERK_FI,
|
||||||
|
FUI_TEXT_ZJERK_FI,
|
||||||
|
FUI_TEXT_ACCELERATION_FI,
|
||||||
|
FUI_TEXT_STORE_TO_EEPROM_FI,
|
||||||
|
FUI_TEXT_LOAD_EEPROM_FI,
|
||||||
|
FUI_TEXT_DBG_ECHO_FI,
|
||||||
|
FUI_TEXT_DBG_INFO_FI,
|
||||||
|
FUI_TEXT_DBG_ERROR_FI,
|
||||||
|
FUI_TEXT_DBG_DRYRUN_FI,
|
||||||
|
FUI_TEXT_OPS_OFF_FI,
|
||||||
|
FUI_TEXT_OPS_CLASSIC_FI,
|
||||||
|
FUI_TEXT_OPS_FAST_FI,
|
||||||
|
FUI_TEXT_OPS_RETRACT_FI,
|
||||||
|
FUI_TEXT_OPS_BACKSLASH_FI,
|
||||||
|
FUI_TEXT_OPS_MINDIST_FI,
|
||||||
|
FUI_TEXT_OPS_MOVE_AFTER_FI,
|
||||||
|
FUI_TEXT_ANTI_OOZE_FI,
|
||||||
|
FUI_TEXT_PRINT_FILE_FI,
|
||||||
|
FUI_TEXT_PAUSE_PRINT_FI,
|
||||||
|
FUI_TEXT_CONTINUE_PRINT_FI,
|
||||||
|
FUI_TEXT_UNMOUNT_CARD_FI,
|
||||||
|
FUI_TEXT_MOUNT_CARD_FI,
|
||||||
|
FUI_TEXT_DELETE_FILE_FI,
|
||||||
|
FUI_TEXT_FEEDRATE_FI,
|
||||||
|
FUI_TEXT_FEED_MAX_X_FI,
|
||||||
|
FUI_TEXT_FEED_MAX_Y_FI,
|
||||||
|
FUI_TEXT_FEED_MAX_Z_FI,
|
||||||
|
FUI_TEXT_FEED_MAX_Z_DELTA_FI,
|
||||||
|
FUI_TEXT_FEED_HOME_X_FI,
|
||||||
|
FUI_TEXT_FEED_HOME_Y_FI,
|
||||||
|
FUI_TEXT_FEED_HOME_Z_FI,
|
||||||
|
FUI_TEXT_FEED_HOME_Z_DELTA_FI,
|
||||||
|
FUI_TEXT_ACTION_XPOSITION4A_FI,
|
||||||
|
FUI_TEXT_ACTION_XPOSITION4B_FI,
|
||||||
|
FUI_TEXT_ACTION_XPOSITION4C_FI,
|
||||||
|
FUI_TEXT_ACTION_XPOSITION4D_FI,
|
||||||
|
FUI_TEXT_ACTION_YPOSITION4A_FI,
|
||||||
|
FUI_TEXT_ACTION_YPOSITION4B_FI,
|
||||||
|
FUI_TEXT_ACTION_YPOSITION4C_FI,
|
||||||
|
FUI_TEXT_ACTION_YPOSITION4D_FI,
|
||||||
|
FUI_TEXT_ACTION_ZPOSITION4A_FI,
|
||||||
|
FUI_TEXT_ACTION_ZPOSITION4B_FI,
|
||||||
|
FUI_TEXT_ACTION_ZPOSITION4C_FI,
|
||||||
|
FUI_TEXT_ACTION_ZPOSITION4D_FI,
|
||||||
|
FUI_TEXT_ACTION_XPOSITION_FAST4A_FI,
|
||||||
|
FUI_TEXT_ACTION_XPOSITION_FAST4B_FI,
|
||||||
|
FUI_TEXT_ACTION_XPOSITION_FAST4C_FI,
|
||||||
|
FUI_TEXT_ACTION_XPOSITION_FAST4D_FI,
|
||||||
|
FUI_TEXT_ACTION_YPOSITION_FAST4A_FI,
|
||||||
|
FUI_TEXT_ACTION_YPOSITION_FAST4B_FI,
|
||||||
|
FUI_TEXT_ACTION_YPOSITION_FAST4C_FI,
|
||||||
|
FUI_TEXT_ACTION_YPOSITION_FAST4D_FI,
|
||||||
|
FUI_TEXT_ACTION_ZPOSITION_FAST4A_FI,
|
||||||
|
FUI_TEXT_ACTION_ZPOSITION_FAST4B_FI,
|
||||||
|
FUI_TEXT_ACTION_ZPOSITION_FAST4C_FI,
|
||||||
|
FUI_TEXT_ACTION_ZPOSITION_FAST4D_FI,
|
||||||
|
FUI_TEXT_ACTION_EPOSITION_FAST2A_FI,
|
||||||
|
FUI_TEXT_ACTION_EPOSITION_FAST2B_FI,
|
||||||
|
FUI_TEXT_ACTION_XPOSITION2A_FI,
|
||||||
|
FUI_TEXT_ACTION_XPOSITION2B_FI,
|
||||||
|
FUI_TEXT_ACTION_YPOSITION2A_FI,
|
||||||
|
FUI_TEXT_ACTION_YPOSITION2B_FI,
|
||||||
|
FUI_TEXT_ACTION_ZPOSITION2A_FI,
|
||||||
|
FUI_TEXT_ACTION_ZPOSITION2B_FI,
|
||||||
|
FUI_TEXT_ACTION_XPOSITION_FAST2A_FI,
|
||||||
|
FUI_TEXT_ACTION_XPOSITION_FAST2B_FI,
|
||||||
|
FUI_TEXT_ACTION_YPOSITION_FAST2A_FI,
|
||||||
|
FUI_TEXT_ACTION_YPOSITION_FAST2B_FI,
|
||||||
|
FUI_TEXT_ACTION_ZPOSITION_FAST2A_FI,
|
||||||
|
FUI_TEXT_ACTION_ZPOSITION_FAST2B_FI,
|
||||||
|
FUI_TEXT_FANSPEED_FI,
|
||||||
|
FUI_TEXT_ACTION_FANSPEED_FI,
|
||||||
|
FUI_TEXT_FAN_OFF_FI,
|
||||||
|
FUI_TEXT_FAN_25_FI,
|
||||||
|
FUI_TEXT_FAN_50_FI,
|
||||||
|
FUI_TEXT_FAN_75_FI,
|
||||||
|
FUI_TEXT_FAN_FULL_FI,
|
||||||
|
FUI_TEXT_STEPPER_INACTIVE_FI,
|
||||||
|
FUI_TEXT_STEPPER_INACTIVE2A_FI,
|
||||||
|
FUI_TEXT_STEPPER_INACTIVE2B_FI,
|
||||||
|
FUI_TEXT_POWER_INACTIVE_FI,
|
||||||
|
FUI_TEXT_POWER_INACTIVE2A_FI,
|
||||||
|
FUI_TEXT_POWER_INACTIVE2B_FI,
|
||||||
|
FUI_TEXT_GENERAL_FI,
|
||||||
|
FUI_TEXT_BAUDRATE_FI,
|
||||||
|
FUI_TEXT_EXTR_STEPS_FI,
|
||||||
|
FUI_TEXT_EXTR_START_FEED_FI,
|
||||||
|
FUI_TEXT_EXTR_MAX_FEED_FI,
|
||||||
|
FUI_TEXT_EXTR_ACCEL_FI,
|
||||||
|
FUI_TEXT_EXTR_WATCH_FI,
|
||||||
|
FUI_TEXT_EXTR_ADVANCE_L_FI,
|
||||||
|
FUI_TEXT_EXTR_ADVANCE_K_FI,
|
||||||
|
FUI_TEXT_EXTR_MANAGER_FI,
|
||||||
|
FUI_TEXT_EXTR_PGAIN_FI,
|
||||||
|
FUI_TEXT_EXTR_DEADTIME_FI,
|
||||||
|
FUI_TEXT_EXTR_DMAX_DT_FI,
|
||||||
|
FUI_TEXT_EXTR_IGAIN_FI,
|
||||||
|
FUI_TEXT_EXTR_DGAIN_FI,
|
||||||
|
FUI_TEXT_EXTR_DMIN_FI,
|
||||||
|
FUI_TEXT_EXTR_DMAX_FI,
|
||||||
|
FUI_TEXT_EXTR_PMAX_FI,
|
||||||
|
FUI_TEXT_EXTR_XOFF_FI,
|
||||||
|
FUI_TEXT_EXTR_YOFF_FI,
|
||||||
|
FUI_TEXT_STRING_HM_BANGBANG_FI,
|
||||||
|
FUI_TEXT_STRING_HM_PID_FI,
|
||||||
|
FUI_TEXT_STRING_ACTION_FI,
|
||||||
|
FUI_TEXT_HEATING_EXTRUDER_FI,
|
||||||
|
FUI_TEXT_HEATING_BED_FI,
|
||||||
|
FUI_TEXT_KILLED_FI,
|
||||||
|
FUI_TEXT_STEPPER_DISABLED_FI,
|
||||||
|
FUI_TEXT_EEPROM_STOREDA_FI,
|
||||||
|
FUI_TEXT_EEPROM_STOREDB_FI,
|
||||||
|
FUI_TEXT_EEPROM_LOADEDA_FI,
|
||||||
|
FUI_TEXT_EEPROM_LOADEDB_FI,
|
||||||
|
FUI_TEXT_UPLOADING_FI,
|
||||||
|
FUI_TEXT_PAGE_BUFFER_FI,
|
||||||
|
FUI_TEXT_PAGE_EXTRUDER_FI,
|
||||||
|
FUI_TEXT_PAGE_EXTRUDER1_FI,
|
||||||
|
FUI_TEXT_PAGE_EXTRUDER2_FI,
|
||||||
|
FUI_TEXT_PAGE_EXTRUDER3_FI,
|
||||||
|
FUI_TEXT_PAGE_BED_FI,
|
||||||
|
FUI_TEXT_SPEED_MULTIPLY_FI,
|
||||||
|
FUI_TEXT_FLOW_MULTIPLY_FI,
|
||||||
|
FUI_TEXT_SHOW_MEASUREMENT_FI,
|
||||||
|
FUI_TEXT_RESET_MEASUREMENT_FI,
|
||||||
|
FUI_TEXT_SET_MEASURED_ORIGIN_FI,
|
||||||
|
FUI_TEXT_ZCALIB_FI,
|
||||||
|
FUI_TEXT_SET_P1_FI,
|
||||||
|
FUI_TEXT_SET_P2_FI,
|
||||||
|
FUI_TEXT_SET_P3_FI,
|
||||||
|
FUI_TEXT_CALCULATE_LEVELING_FI,
|
||||||
|
FUI_TEXT_LEVEL_FI,
|
||||||
|
FUI_TEXT_EXTR_WAIT_RETRACT_TEMP_FI,
|
||||||
|
FUI_TEXT_EXTR_WAIT_RETRACT_UNITS_FI,
|
||||||
|
FUI_TEXT_SD_REMOVED_FI,
|
||||||
|
FUI_TEXT_SD_INSERTED_FI,
|
||||||
|
FUI_TEXT_PRINTER_READY_FI,
|
||||||
|
FUI_TEXT_PRINTTIME_DAYS_FI,
|
||||||
|
FUI_TEXT_PRINTTIME_HOURS_FI,
|
||||||
|
FUI_TEXT_PRINTTIME_MINUTES_FI,
|
||||||
|
FUI_TEXT_PRINT_TIME_FI,
|
||||||
|
FUI_TEXT_PRINT_FILAMENT_FI,
|
||||||
|
FUI_TEXT_PRINTED_FI,
|
||||||
|
FUI_TEXT_POWER_FI,
|
||||||
|
FUI_TEXT_STRING_HM_DEADTIME_FI,
|
||||||
|
FUI_TEXT_STRING_HM_SLOWBANG_FI,
|
||||||
|
FUI_TEXT_STOP_PRINT_FI,
|
||||||
|
FUI_TEXT_Z_BABYSTEPPING_FI,
|
||||||
|
FUI_TEXT_CHANGE_FILAMENT_FI,
|
||||||
|
FUI_TEXT_WIZ_CH_FILAMENT1_FI,
|
||||||
|
FUI_TEXT_WIZ_CH_FILAMENT2_FI,
|
||||||
|
FUI_TEXT_WIZ_CH_FILAMENT3_FI,
|
||||||
|
FUI_TEXT_CLICK_DONE_FI,
|
||||||
|
FUI_TEXT_AUTOLEVEL_ONOFF_FI,
|
||||||
|
FUI_TEXT_SERVOPOS_FI,
|
||||||
|
FUI_TEXT_IGNORE_M106_FI,
|
||||||
|
FUI_TEXT_WIZ_REHEAT1_FI,
|
||||||
|
FUI_TEXT_WIZ_REHEAT2_FI,
|
||||||
|
FUI_TEXT_WIZ_WAITTEMP1_FI,
|
||||||
|
FUI_TEXT_WIZ_WAITTEMP2_FI,
|
||||||
|
FUI_TEXT_EXTRUDER_JAM_FI,
|
||||||
|
FUI_TEXT_STANDBY_FI,
|
||||||
|
FUI_TEXT_BED_COATING_FI,
|
||||||
|
FUI_TEXT_BED_COATING_SET1_FI,
|
||||||
|
FUI_TEXT_BED_COATING_SET2_FI,
|
||||||
|
FUI_TEXT_NOCOATING_FI,
|
||||||
|
FUI_TEXT_BUILDTAK_FI,
|
||||||
|
FUI_TEXT_KAPTON_FI,
|
||||||
|
FUI_TEXT_BLUETAPE_FI,
|
||||||
|
FUI_TEXT_PETTAPE_FI,
|
||||||
|
FUI_TEXT_GLUESTICK_FI,
|
||||||
|
FUI_TEXT_CUSTOM_FI,
|
||||||
|
FUI_TEXT_COATING_CUSTOM_FI,
|
||||||
|
FUI_TEXT_LANGUAGE_FI,
|
||||||
|
FUI_TEXT_MAINPAGE6_1_FI,
|
||||||
|
FUI_TEXT_MAINPAGE6_2_FI,
|
||||||
|
FUI_TEXT_MAINPAGE6_3_FI,
|
||||||
|
FUI_TEXT_MAINPAGE6_4_FI,
|
||||||
|
FUI_TEXT_MAINPAGE6_5_FI,
|
||||||
|
FUI_TEXT_MAINPAGE6_6_FI,
|
||||||
|
FUI_TEXT_MAINPAGE_TEMP_BED_FI,
|
||||||
|
FUI_TEXT_MAINPAGE_BED_FI,
|
||||||
|
FUI_TEXT_MAINPAGE_Z_BUF_FI,
|
||||||
|
FUI_TEXT_MAINPAGE_MUL_EUSAGE_FI,
|
||||||
|
FUI_TEXT_MAINPAGE_XY_FI,
|
||||||
|
FUI_TEXT_PRINT_TIME_VALUE_FI,
|
||||||
|
FUI_TEXT_PRINT_FILAMENT_VALUE_FI,
|
||||||
|
FUI_TEXT_METER_PRINTED_FI,
|
||||||
|
FUI_TEXT_STATUS_FI,
|
||||||
|
FUI_TEXT_EMPTY_FI,
|
||||||
|
FUI_TEXT_TEMP_SET_FI,
|
||||||
|
FUI_TEXT_CURRENT_TEMP_FI,
|
||||||
|
FUI_TEXT_COATING_THICKNESS_FI,
|
||||||
|
FUI_TEXT_EXTR3_TEMP_FI,
|
||||||
|
FUI_TEXT_EXTR4_TEMP_FI,
|
||||||
|
FUI_TEXT_EXTR5_TEMP_FI,
|
||||||
|
FUI_TEXT_EXTR3_OFF_FI,
|
||||||
|
FUI_TEXT_EXTR4_OFF_FI,
|
||||||
|
FUI_TEXT_EXTR5_OFF_FI,
|
||||||
|
FUI_TEXT_EXTR3_SELECT_FI,
|
||||||
|
FUI_TEXT_EXTR4_SELECT_FI,
|
||||||
|
FUI_TEXT_EXTR5_SELECT_FI,
|
||||||
|
FUI_TEXT_DITTO_0_FI,
|
||||||
|
FUI_TEXT_DITTO_1_FI,
|
||||||
|
FUI_TEXT_DITTO_2_FI,
|
||||||
|
FUI_TEXT_DITTO_3_FI,
|
||||||
|
FUI_TEXT_ZPROBE_HEIGHT_FI,
|
||||||
|
FUI_TEXT_OFFSETS_FI,
|
||||||
|
FUI_TEXT_X_OFFSET_FI,
|
||||||
|
FUI_TEXT_Y_OFFSET_FI,
|
||||||
|
FUI_TEXT_Z_OFFSET_FI,
|
||||||
|
FUI_TEXT_DBG_ENDSTOP_FI
|
||||||
|
};
|
||||||
|
#define LANG_FI_TABLE translations_FI
|
||||||
|
#else
|
||||||
|
#define LANG_FI_TABLE NULL
|
||||||
|
#endif // LANGUAGE_FI_ACTIVE
|
||||||
|
|
||||||
// References to the possible languages
|
// References to the possible languages
|
||||||
|
|
||||||
PGM_P const * const translations[NUM_LANGUAGES_KNOWN] PROGMEM = {
|
PGM_P const * const translations[NUM_LANGUAGES_KNOWN] PROGMEM = {
|
||||||
|
@ -6004,7 +6570,8 @@ PGM_P const * const translations[NUM_LANGUAGES_KNOWN] PROGMEM = {
|
||||||
LANG_FR_TABLE,
|
LANG_FR_TABLE,
|
||||||
LANG_CZ_TABLE,
|
LANG_CZ_TABLE,
|
||||||
LANG_PL_TABLE,
|
LANG_PL_TABLE,
|
||||||
LANG_TR_TABLE
|
LANG_TR_TABLE,
|
||||||
|
LANG_FI_TABLE
|
||||||
};
|
};
|
||||||
|
|
||||||
// Array in flash to select only valid languages
|
// Array in flash to select only valid languages
|
||||||
|
@ -6043,6 +6610,9 @@ const uint8_t availableLanguages[] PROGMEM = {
|
||||||
#if LANGUAGE_TR_ACTIVE
|
#if LANGUAGE_TR_ACTIVE
|
||||||
10,
|
10,
|
||||||
#endif // LANGUAGE_TR_ACTIVE
|
#endif // LANGUAGE_TR_ACTIVE
|
||||||
|
#if LANGUAGE_FI_ACTIVE
|
||||||
|
11,
|
||||||
|
#endif // LANGUAGE_FI_ACTIVE
|
||||||
255
|
255
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -95,9 +95,10 @@
|
||||||
#define LANGUAGE_CZ_ID 8
|
#define LANGUAGE_CZ_ID 8
|
||||||
#define LANGUAGE_PL_ID 9
|
#define LANGUAGE_PL_ID 9
|
||||||
#define LANGUAGE_TR_ID 10
|
#define LANGUAGE_TR_ID 10
|
||||||
|
#define LANGUAGE_FI_ID 11
|
||||||
|
|
||||||
#define NUM_LANGUAGES_KNOWN 11
|
#define NUM_LANGUAGES_KNOWN 12
|
||||||
#define NUM_TRANSLATED_WORDS 266
|
#define NUM_TRANSLATED_WORDS 267
|
||||||
|
|
||||||
// For selectable translations we refer to each text by a id which gets
|
// For selectable translations we refer to each text by a id which gets
|
||||||
// defined here. The list starts at 0 and defines the position in the
|
// defined here. The list starts at 0 and defines the position in the
|
||||||
|
@ -371,6 +372,7 @@
|
||||||
#define UI_TEXT_X_OFFSET_ID 263
|
#define UI_TEXT_X_OFFSET_ID 263
|
||||||
#define UI_TEXT_Y_OFFSET_ID 264
|
#define UI_TEXT_Y_OFFSET_ID 264
|
||||||
#define UI_TEXT_Z_OFFSET_ID 265
|
#define UI_TEXT_Z_OFFSET_ID 265
|
||||||
|
#define UI_TEXT_DBG_ENDSTOP_ID 266 // "EndStop:%dp"
|
||||||
|
|
||||||
// Universal definitions
|
// Universal definitions
|
||||||
|
|
||||||
|
@ -446,6 +448,7 @@
|
||||||
#define UI_TEXT_DBG_INFO_EN "Info :%di"
|
#define UI_TEXT_DBG_INFO_EN "Info :%di"
|
||||||
#define UI_TEXT_DBG_ERROR_EN "Errors :%de"
|
#define UI_TEXT_DBG_ERROR_EN "Errors :%de"
|
||||||
#define UI_TEXT_DBG_DRYRUN_EN "Dry run:%dd"
|
#define UI_TEXT_DBG_DRYRUN_EN "Dry run:%dd"
|
||||||
|
#define UI_TEXT_DBG_ENDSTOP_EN "EndStop:%dp"
|
||||||
#define UI_TEXT_OPS_OFF_EN "%O0 OPS off"
|
#define UI_TEXT_OPS_OFF_EN "%O0 OPS off"
|
||||||
#define UI_TEXT_OPS_CLASSIC_EN "%O1 OPS classic"
|
#define UI_TEXT_OPS_CLASSIC_EN "%O1 OPS classic"
|
||||||
#define UI_TEXT_OPS_FAST_EN "%O2 OPS fast"
|
#define UI_TEXT_OPS_FAST_EN "%O2 OPS fast"
|
||||||
|
@ -469,15 +472,15 @@
|
||||||
#define UI_TEXT_FEED_HOME_Y_EN "Home Y:%fY"
|
#define UI_TEXT_FEED_HOME_Y_EN "Home Y:%fY"
|
||||||
#define UI_TEXT_FEED_HOME_Z_EN "Home Z:%fZ"
|
#define UI_TEXT_FEED_HOME_Z_EN "Home Z:%fZ"
|
||||||
#define UI_TEXT_FEED_HOME_Z_DELTA_EN "Home:%fZ"
|
#define UI_TEXT_FEED_HOME_Z_DELTA_EN "Home:%fZ"
|
||||||
#define UI_TEXT_ACTION_XPOSITION4A_EN "X:%x0 mm"
|
#define UI_TEXT_ACTION_XPOSITION4A_EN "X:%x0 mm %dx%dX"
|
||||||
#define UI_TEXT_ACTION_XPOSITION4B_EN "Min endstop:%sx"
|
#define UI_TEXT_ACTION_XPOSITION4B_EN "Min endstop:%sx"
|
||||||
#define UI_TEXT_ACTION_XPOSITION4C_EN "Max endstop:%sX"
|
#define UI_TEXT_ACTION_XPOSITION4C_EN "Max endstop:%sX"
|
||||||
#define UI_TEXT_ACTION_XPOSITION4D_EN ""
|
#define UI_TEXT_ACTION_XPOSITION4D_EN ""
|
||||||
#define UI_TEXT_ACTION_YPOSITION4A_EN "Y:%x1 mm"
|
#define UI_TEXT_ACTION_YPOSITION4A_EN "Y:%x1 mm %dy%dY"
|
||||||
#define UI_TEXT_ACTION_YPOSITION4B_EN "Min endstop:%sy"
|
#define UI_TEXT_ACTION_YPOSITION4B_EN "Min endstop:%sy"
|
||||||
#define UI_TEXT_ACTION_YPOSITION4C_EN "Max endstop:%sY"
|
#define UI_TEXT_ACTION_YPOSITION4C_EN "Max endstop:%sY"
|
||||||
#define UI_TEXT_ACTION_YPOSITION4D_EN ""
|
#define UI_TEXT_ACTION_YPOSITION4D_EN ""
|
||||||
#define UI_TEXT_ACTION_ZPOSITION4A_EN "Z:%x2 mm"
|
#define UI_TEXT_ACTION_ZPOSITION4A_EN "Z:%x2 mm %dz%dZ"
|
||||||
#define UI_TEXT_ACTION_ZPOSITION4B_EN "Min endstop:%sz"
|
#define UI_TEXT_ACTION_ZPOSITION4B_EN "Min endstop:%sz"
|
||||||
#define UI_TEXT_ACTION_ZPOSITION4C_EN "Max endstop:%sZ"
|
#define UI_TEXT_ACTION_ZPOSITION4C_EN "Max endstop:%sZ"
|
||||||
#define UI_TEXT_ACTION_ZPOSITION4D_EN ""
|
#define UI_TEXT_ACTION_ZPOSITION4D_EN ""
|
||||||
|
@ -737,6 +740,7 @@
|
||||||
#define UI_TEXT_DBG_INFO_DE "Info :%di"
|
#define UI_TEXT_DBG_INFO_DE "Info :%di"
|
||||||
#define UI_TEXT_DBG_ERROR_DE "Fehler :%de"
|
#define UI_TEXT_DBG_ERROR_DE "Fehler :%de"
|
||||||
#define UI_TEXT_DBG_DRYRUN_DE "Trockenlauf:%dd"
|
#define UI_TEXT_DBG_DRYRUN_DE "Trockenlauf:%dd"
|
||||||
|
#define UI_TEXT_DBG_ENDSTOP_DE "EndStop :%dp"
|
||||||
#define UI_TEXT_OPS_OFF_DE "%O0 OPS Aus"
|
#define UI_TEXT_OPS_OFF_DE "%O0 OPS Aus"
|
||||||
#define UI_TEXT_OPS_CLASSIC_DE "%O1 OPS Klassisch"
|
#define UI_TEXT_OPS_CLASSIC_DE "%O1 OPS Klassisch"
|
||||||
#define UI_TEXT_OPS_FAST_DE "%O2 OPS Schnell"
|
#define UI_TEXT_OPS_FAST_DE "%O2 OPS Schnell"
|
||||||
|
@ -760,15 +764,15 @@
|
||||||
#define UI_TEXT_FEED_HOME_Y_DE "Home Y:%fY"
|
#define UI_TEXT_FEED_HOME_Y_DE "Home Y:%fY"
|
||||||
#define UI_TEXT_FEED_HOME_Z_DE "Home Z:%fZ"
|
#define UI_TEXT_FEED_HOME_Z_DE "Home Z:%fZ"
|
||||||
#define UI_TEXT_FEED_HOME_Z_DELTA_DE "Home:%fZ"
|
#define UI_TEXT_FEED_HOME_Z_DELTA_DE "Home:%fZ"
|
||||||
#define UI_TEXT_ACTION_XPOSITION4A_DE "X:%x0 mm"
|
#define UI_TEXT_ACTION_XPOSITION4A_DE "X:%x0 mm %dx%dX"
|
||||||
#define UI_TEXT_ACTION_XPOSITION4B_DE "Min Endstopp:%sx"
|
#define UI_TEXT_ACTION_XPOSITION4B_DE "Min Endstopp:%sx"
|
||||||
#define UI_TEXT_ACTION_XPOSITION4C_DE "Max Endstopp:%sX"
|
#define UI_TEXT_ACTION_XPOSITION4C_DE "Max Endstopp:%sX"
|
||||||
#define UI_TEXT_ACTION_XPOSITION4D_DE ""
|
#define UI_TEXT_ACTION_XPOSITION4D_DE ""
|
||||||
#define UI_TEXT_ACTION_YPOSITION4A_DE "Y:%x1 mm"
|
#define UI_TEXT_ACTION_YPOSITION4A_DE "Y:%x1 mm %dy%dY"
|
||||||
#define UI_TEXT_ACTION_YPOSITION4B_DE "Min Endstopp:%sy"
|
#define UI_TEXT_ACTION_YPOSITION4B_DE "Min Endstopp:%sy"
|
||||||
#define UI_TEXT_ACTION_YPOSITION4C_DE "Max Endstopp:%sY"
|
#define UI_TEXT_ACTION_YPOSITION4C_DE "Max Endstopp:%sY"
|
||||||
#define UI_TEXT_ACTION_YPOSITION4D_DE ""
|
#define UI_TEXT_ACTION_YPOSITION4D_DE ""
|
||||||
#define UI_TEXT_ACTION_ZPOSITION4A_DE "Z:%x2 mm"
|
#define UI_TEXT_ACTION_ZPOSITION4A_DE "Z:%x2 mm %dz%dZ"
|
||||||
#define UI_TEXT_ACTION_ZPOSITION4B_DE "Min Endstopp:%sz"
|
#define UI_TEXT_ACTION_ZPOSITION4B_DE "Min Endstopp:%sz"
|
||||||
#define UI_TEXT_ACTION_ZPOSITION4C_DE "Max Endstopp:%sZ"
|
#define UI_TEXT_ACTION_ZPOSITION4C_DE "Max Endstopp:%sZ"
|
||||||
#define UI_TEXT_ACTION_ZPOSITION4D_DE ""
|
#define UI_TEXT_ACTION_ZPOSITION4D_DE ""
|
||||||
|
@ -1029,6 +1033,7 @@
|
||||||
#define UI_TEXT_DBG_INFO_NL "Info :%di"
|
#define UI_TEXT_DBG_INFO_NL "Info :%di"
|
||||||
#define UI_TEXT_DBG_ERROR_NL "Fouten :%de"
|
#define UI_TEXT_DBG_ERROR_NL "Fouten :%de"
|
||||||
#define UI_TEXT_DBG_DRYRUN_NL "Droogloop:%dd"
|
#define UI_TEXT_DBG_DRYRUN_NL "Droogloop:%dd"
|
||||||
|
#define UI_TEXT_DBG_ENDSTOP_NL "EndStop :%dp"
|
||||||
#define UI_TEXT_OPS_OFF_NL "%O0 OPS Uit"
|
#define UI_TEXT_OPS_OFF_NL "%O0 OPS Uit"
|
||||||
#define UI_TEXT_OPS_CLASSIC_NL "%O1 OPS Klassiek"
|
#define UI_TEXT_OPS_CLASSIC_NL "%O1 OPS Klassiek"
|
||||||
#define UI_TEXT_OPS_FAST_NL "%O2 OPS Snel"
|
#define UI_TEXT_OPS_FAST_NL "%O2 OPS Snel"
|
||||||
|
@ -1323,6 +1328,7 @@
|
||||||
#define UI_TEXT_DBG_INFO_PT "Info :%di"
|
#define UI_TEXT_DBG_INFO_PT "Info :%di"
|
||||||
#define UI_TEXT_DBG_ERROR_PT "Erros :%de"
|
#define UI_TEXT_DBG_ERROR_PT "Erros :%de"
|
||||||
#define UI_TEXT_DBG_DRYRUN_PT "Dry run:%dd"
|
#define UI_TEXT_DBG_DRYRUN_PT "Dry run:%dd"
|
||||||
|
#define UI_TEXT_DBG_ENDSTOP_PT "EndStop:%dp"
|
||||||
#define UI_TEXT_OPS_OFF_PT "%O0 OPS Off"
|
#define UI_TEXT_OPS_OFF_PT "%O0 OPS Off"
|
||||||
#define UI_TEXT_OPS_CLASSIC_PT "%O1 OPS Classic"
|
#define UI_TEXT_OPS_CLASSIC_PT "%O1 OPS Classic"
|
||||||
#define UI_TEXT_OPS_FAST_PT "%O2 OPS Fast"
|
#define UI_TEXT_OPS_FAST_PT "%O2 OPS Fast"
|
||||||
|
@ -1346,15 +1352,15 @@
|
||||||
#define UI_TEXT_FEED_HOME_Y_PT "Home Y:%fY"
|
#define UI_TEXT_FEED_HOME_Y_PT "Home Y:%fY"
|
||||||
#define UI_TEXT_FEED_HOME_Z_PT "Home Z:%fZ"
|
#define UI_TEXT_FEED_HOME_Z_PT "Home Z:%fZ"
|
||||||
#define UI_TEXT_FEED_HOME_Z_DELTA_PT "Home:%fZ"
|
#define UI_TEXT_FEED_HOME_Z_DELTA_PT "Home:%fZ"
|
||||||
#define UI_TEXT_ACTION_XPOSITION4A_PT "X:%x0 mm"
|
#define UI_TEXT_ACTION_XPOSITION4A_PT "X:%x0 mm %dx%dX"
|
||||||
#define UI_TEXT_ACTION_XPOSITION4B_PT "Min endstop:%sx"
|
#define UI_TEXT_ACTION_XPOSITION4B_PT "Min endstop:%sx"
|
||||||
#define UI_TEXT_ACTION_XPOSITION4C_PT "Max endstop:%sX"
|
#define UI_TEXT_ACTION_XPOSITION4C_PT "Max endstop:%sX"
|
||||||
#define UI_TEXT_ACTION_XPOSITION4D_PT ""
|
#define UI_TEXT_ACTION_XPOSITION4D_PT ""
|
||||||
#define UI_TEXT_ACTION_YPOSITION4A_PT "Y:%x1 mm"
|
#define UI_TEXT_ACTION_YPOSITION4A_PT "Y:%x1 mm %dy%dY"
|
||||||
#define UI_TEXT_ACTION_YPOSITION4B_PT "Min endstop:%sy"
|
#define UI_TEXT_ACTION_YPOSITION4B_PT "Min endstop:%sy"
|
||||||
#define UI_TEXT_ACTION_YPOSITION4C_PT "Max endstop:%sY"
|
#define UI_TEXT_ACTION_YPOSITION4C_PT "Max endstop:%sY"
|
||||||
#define UI_TEXT_ACTION_YPOSITION4D_PT ""
|
#define UI_TEXT_ACTION_YPOSITION4D_PT ""
|
||||||
#define UI_TEXT_ACTION_ZPOSITION4A_PT "Z:%x2 mm"
|
#define UI_TEXT_ACTION_ZPOSITION4A_PT "Z:%x2 mm %dz%dZ"
|
||||||
#define UI_TEXT_ACTION_ZPOSITION4B_PT "Min endstop:%sz"
|
#define UI_TEXT_ACTION_ZPOSITION4B_PT "Min endstop:%sz"
|
||||||
#define UI_TEXT_ACTION_ZPOSITION4C_PT "Max endstop:%sZ"
|
#define UI_TEXT_ACTION_ZPOSITION4C_PT "Max endstop:%sZ"
|
||||||
#define UI_TEXT_ACTION_ZPOSITION4D_PT ""
|
#define UI_TEXT_ACTION_ZPOSITION4D_PT ""
|
||||||
|
@ -1615,6 +1621,7 @@
|
||||||
#define UI_TEXT_DBG_INFO_IT "Info :%di"
|
#define UI_TEXT_DBG_INFO_IT "Info :%di"
|
||||||
#define UI_TEXT_DBG_ERROR_IT "Errori :%de"
|
#define UI_TEXT_DBG_ERROR_IT "Errori :%de"
|
||||||
#define UI_TEXT_DBG_DRYRUN_IT "Simulazione:%dd"
|
#define UI_TEXT_DBG_DRYRUN_IT "Simulazione:%dd"
|
||||||
|
#define UI_TEXT_DBG_ENDSTOP_IT "EndStop:%dp"
|
||||||
#define UI_TEXT_OPS_OFF_IT "%O0 OPS Spento"
|
#define UI_TEXT_OPS_OFF_IT "%O0 OPS Spento"
|
||||||
#define UI_TEXT_OPS_CLASSIC_IT "%O1 OPS Classico"
|
#define UI_TEXT_OPS_CLASSIC_IT "%O1 OPS Classico"
|
||||||
#define UI_TEXT_OPS_FAST_IT "%O2 OPS Veloce"
|
#define UI_TEXT_OPS_FAST_IT "%O2 OPS Veloce"
|
||||||
|
@ -1638,15 +1645,15 @@
|
||||||
#define UI_TEXT_FEED_HOME_Y_IT "Origine Y:%fY"
|
#define UI_TEXT_FEED_HOME_Y_IT "Origine Y:%fY"
|
||||||
#define UI_TEXT_FEED_HOME_Z_IT "Origine Z:%fZ"
|
#define UI_TEXT_FEED_HOME_Z_IT "Origine Z:%fZ"
|
||||||
#define UI_TEXT_FEED_HOME_Z_DELTA_IT "Origine:%fZ"
|
#define UI_TEXT_FEED_HOME_Z_DELTA_IT "Origine:%fZ"
|
||||||
#define UI_TEXT_ACTION_XPOSITION4A_IT "X:%x0 mm"
|
#define UI_TEXT_ACTION_XPOSITION4A_IT "X:%x0 mm %dx%dX"
|
||||||
#define UI_TEXT_ACTION_XPOSITION4B_IT "Min finec.:%sx"
|
#define UI_TEXT_ACTION_XPOSITION4B_IT "Min finec.:%sx"
|
||||||
#define UI_TEXT_ACTION_XPOSITION4C_IT "Max finec.:%sX"
|
#define UI_TEXT_ACTION_XPOSITION4C_IT "Max finec.:%sX"
|
||||||
#define UI_TEXT_ACTION_XPOSITION4D_IT ""
|
#define UI_TEXT_ACTION_XPOSITION4D_IT ""
|
||||||
#define UI_TEXT_ACTION_YPOSITION4A_IT "Y:%x1 mm"
|
#define UI_TEXT_ACTION_YPOSITION4A_IT "Y:%x1 mm %dy%dY"
|
||||||
#define UI_TEXT_ACTION_YPOSITION4B_IT "Min finec.:%sy"
|
#define UI_TEXT_ACTION_YPOSITION4B_IT "Min finec.:%sy"
|
||||||
#define UI_TEXT_ACTION_YPOSITION4C_IT "Max finec.:%sY"
|
#define UI_TEXT_ACTION_YPOSITION4C_IT "Max finec.:%sY"
|
||||||
#define UI_TEXT_ACTION_YPOSITION4D_IT ""
|
#define UI_TEXT_ACTION_YPOSITION4D_IT ""
|
||||||
#define UI_TEXT_ACTION_ZPOSITION4A_IT "Z:%x2 mm"
|
#define UI_TEXT_ACTION_ZPOSITION4A_IT "Z:%x2 mm %dz%dZ"
|
||||||
#define UI_TEXT_ACTION_ZPOSITION4B_IT "Min finec.:%sz"
|
#define UI_TEXT_ACTION_ZPOSITION4B_IT "Min finec.:%sz"
|
||||||
#define UI_TEXT_ACTION_ZPOSITION4C_IT "Max finec.:%sZ"
|
#define UI_TEXT_ACTION_ZPOSITION4C_IT "Max finec.:%sZ"
|
||||||
#define UI_TEXT_ACTION_ZPOSITION4D_IT ""
|
#define UI_TEXT_ACTION_ZPOSITION4D_IT ""
|
||||||
|
@ -1907,6 +1914,7 @@
|
||||||
#define UI_TEXT_DBG_INFO_ES "Info :%di"
|
#define UI_TEXT_DBG_INFO_ES "Info :%di"
|
||||||
#define UI_TEXT_DBG_ERROR_ES "Errors :%de"
|
#define UI_TEXT_DBG_ERROR_ES "Errors :%de"
|
||||||
#define UI_TEXT_DBG_DRYRUN_ES "Ejecucion vacio:%dd"
|
#define UI_TEXT_DBG_DRYRUN_ES "Ejecucion vacio:%dd"
|
||||||
|
#define UI_TEXT_DBG_ENDSTOP_ES "EndStop:%dp"
|
||||||
#define UI_TEXT_OPS_OFF_ES "%O0 OPS Off"
|
#define UI_TEXT_OPS_OFF_ES "%O0 OPS Off"
|
||||||
#define UI_TEXT_OPS_CLASSIC_ES "%O1 OPS Classica"
|
#define UI_TEXT_OPS_CLASSIC_ES "%O1 OPS Classica"
|
||||||
#define UI_TEXT_OPS_FAST_ES "%O2 OPS Rapida"
|
#define UI_TEXT_OPS_FAST_ES "%O2 OPS Rapida"
|
||||||
|
@ -1930,15 +1938,15 @@
|
||||||
#define UI_TEXT_FEED_HOME_Y_ES "Y Home:%fY"
|
#define UI_TEXT_FEED_HOME_Y_ES "Y Home:%fY"
|
||||||
#define UI_TEXT_FEED_HOME_Z_ES "Z Home:%fZ"
|
#define UI_TEXT_FEED_HOME_Z_ES "Z Home:%fZ"
|
||||||
#define UI_TEXT_FEED_HOME_Z_DELTA_ES "Home:%fZ"
|
#define UI_TEXT_FEED_HOME_Z_DELTA_ES "Home:%fZ"
|
||||||
#define UI_TEXT_ACTION_XPOSITION4A_ES "X:%x0 mm"
|
#define UI_TEXT_ACTION_XPOSITION4A_ES "X:%x0 mm %dx%dX"
|
||||||
#define UI_TEXT_ACTION_XPOSITION4B_ES "Fin Carrera Min:%sx"
|
#define UI_TEXT_ACTION_XPOSITION4B_ES "Fin Carrera Min:%sx"
|
||||||
#define UI_TEXT_ACTION_XPOSITION4C_ES "Max:%sX"
|
#define UI_TEXT_ACTION_XPOSITION4C_ES "Max:%sX"
|
||||||
#define UI_TEXT_ACTION_XPOSITION4D_ES ""
|
#define UI_TEXT_ACTION_XPOSITION4D_ES ""
|
||||||
#define UI_TEXT_ACTION_YPOSITION4A_ES "Y:%x1 mm"
|
#define UI_TEXT_ACTION_YPOSITION4A_ES "Y:%x1 mm %dy%dY"
|
||||||
#define UI_TEXT_ACTION_YPOSITION4B_ES "Fin Carrera Min:%sy"
|
#define UI_TEXT_ACTION_YPOSITION4B_ES "Fin Carrera Min:%sy"
|
||||||
#define UI_TEXT_ACTION_YPOSITION4C_ES "Max:%sY"
|
#define UI_TEXT_ACTION_YPOSITION4C_ES "Max:%sY"
|
||||||
#define UI_TEXT_ACTION_YPOSITION4D_ES ""
|
#define UI_TEXT_ACTION_YPOSITION4D_ES ""
|
||||||
#define UI_TEXT_ACTION_ZPOSITION4A_ES "Z:%x2 mm"
|
#define UI_TEXT_ACTION_ZPOSITION4A_ES "Z:%x2 mm %dz%dZ"
|
||||||
#define UI_TEXT_ACTION_ZPOSITION4B_ES "Fin Carrera Min:%sz"
|
#define UI_TEXT_ACTION_ZPOSITION4B_ES "Fin Carrera Min:%sz"
|
||||||
#define UI_TEXT_ACTION_ZPOSITION4C_ES "Max:%sZ"
|
#define UI_TEXT_ACTION_ZPOSITION4C_ES "Max:%sZ"
|
||||||
#define UI_TEXT_ACTION_ZPOSITION4D_ES ""
|
#define UI_TEXT_ACTION_ZPOSITION4D_ES ""
|
||||||
|
@ -2199,6 +2207,7 @@
|
||||||
#define UI_TEXT_DBG_INFO_SE "Info: %di"
|
#define UI_TEXT_DBG_INFO_SE "Info: %di"
|
||||||
#define UI_TEXT_DBG_ERROR_SE "Errors: %de"
|
#define UI_TEXT_DBG_ERROR_SE "Errors: %de"
|
||||||
#define UI_TEXT_DBG_DRYRUN_SE "Torrk" STR_ouml "r:%dd"
|
#define UI_TEXT_DBG_DRYRUN_SE "Torrk" STR_ouml "r:%dd"
|
||||||
|
#define UI_TEXT_DBG_ENDSTOP_SE "EndStop:%dp"
|
||||||
#define UI_TEXT_OPS_OFF_SE "%O1 OPS av"
|
#define UI_TEXT_OPS_OFF_SE "%O1 OPS av"
|
||||||
#define UI_TEXT_OPS_CLASSIC_SE "%O2 OPS klassisk"
|
#define UI_TEXT_OPS_CLASSIC_SE "%O2 OPS klassisk"
|
||||||
#define UI_TEXT_OPS_FAST_SE "%O3 OPS snabb"
|
#define UI_TEXT_OPS_FAST_SE "%O3 OPS snabb"
|
||||||
|
@ -2222,15 +2231,15 @@
|
||||||
#define UI_TEXT_FEED_HOME_Y_SE "Ref Y:%fY"
|
#define UI_TEXT_FEED_HOME_Y_SE "Ref Y:%fY"
|
||||||
#define UI_TEXT_FEED_HOME_Z_SE "Ref Z:%fZ"
|
#define UI_TEXT_FEED_HOME_Z_SE "Ref Z:%fZ"
|
||||||
#define UI_TEXT_FEED_HOME_Z_DELTA_SE "Ref:%fZ"
|
#define UI_TEXT_FEED_HOME_Z_DELTA_SE "Ref:%fZ"
|
||||||
#define UI_TEXT_ACTION_XPOSITION4A_SE "X:%x0 mm"
|
#define UI_TEXT_ACTION_XPOSITION4A_SE "X:%x0 mm %dx%dX"
|
||||||
#define UI_TEXT_ACTION_XPOSITION4B_SE "Min " STR_auml "ndl" STR_auml "ge:%sx"
|
#define UI_TEXT_ACTION_XPOSITION4B_SE "Min " STR_auml "ndl" STR_auml "ge:%sx"
|
||||||
#define UI_TEXT_ACTION_XPOSITION4C_SE "Max " STR_auml "ndl" STR_auml "ge:%sX"
|
#define UI_TEXT_ACTION_XPOSITION4C_SE "Max " STR_auml "ndl" STR_auml "ge:%sX"
|
||||||
#define UI_TEXT_ACTION_XPOSITION4D_SE ""
|
#define UI_TEXT_ACTION_XPOSITION4D_SE ""
|
||||||
#define UI_TEXT_ACTION_YPOSITION4A_SE "Y:%x1 mm"
|
#define UI_TEXT_ACTION_YPOSITION4A_SE "Y:%x1 mm %dy%dY"
|
||||||
#define UI_TEXT_ACTION_YPOSITION4B_SE "Min " STR_auml "ndl" STR_auml "ge:%sy"
|
#define UI_TEXT_ACTION_YPOSITION4B_SE "Min " STR_auml "ndl" STR_auml "ge:%sy"
|
||||||
#define UI_TEXT_ACTION_YPOSITION4C_SE "Max " STR_auml "ndl" STR_auml "ge:%sY"
|
#define UI_TEXT_ACTION_YPOSITION4C_SE "Max " STR_auml "ndl" STR_auml "ge:%sY"
|
||||||
#define UI_TEXT_ACTION_YPOSITION4D_SE ""
|
#define UI_TEXT_ACTION_YPOSITION4D_SE ""
|
||||||
#define UI_TEXT_ACTION_ZPOSITION4A_SE "Z:%x2 mm"
|
#define UI_TEXT_ACTION_ZPOSITION4A_SE "Z:%x2 mm %dz%dZ"
|
||||||
#define UI_TEXT_ACTION_ZPOSITION4B_SE "Min " STR_auml "ndl" STR_auml "ge:%sz"
|
#define UI_TEXT_ACTION_ZPOSITION4B_SE "Min " STR_auml "ndl" STR_auml "ge:%sz"
|
||||||
#define UI_TEXT_ACTION_ZPOSITION4C_SE "Max " STR_auml "ndl" STR_auml "ge:%sZ"
|
#define UI_TEXT_ACTION_ZPOSITION4C_SE "Max " STR_auml "ndl" STR_auml "ge:%sZ"
|
||||||
#define UI_TEXT_ACTION_ZPOSITION4D_SE ""
|
#define UI_TEXT_ACTION_ZPOSITION4D_SE ""
|
||||||
|
@ -2447,7 +2456,7 @@
|
||||||
#define UI_TEXT_SD_CARD_FR "Carte SD"
|
#define UI_TEXT_SD_CARD_FR "Carte SD"
|
||||||
#define UI_TEXT_DEBUGGING_FR "Deboguer"
|
#define UI_TEXT_DEBUGGING_FR "Deboguer"
|
||||||
#define UI_TEXT_HOME_DELTA_FR "Accueil Delta"
|
#define UI_TEXT_HOME_DELTA_FR "Accueil Delta"
|
||||||
#define UI_TEXT_HOME_ALL_FR "Accueil Tout"
|
#define UI_TEXT_HOME_ALL_FR "Accueil XYZ"
|
||||||
#define UI_TEXT_HOME_X_FR "Accueil X"
|
#define UI_TEXT_HOME_X_FR "Accueil X"
|
||||||
#define UI_TEXT_HOME_Y_FR "Accueil Y"
|
#define UI_TEXT_HOME_Y_FR "Accueil Y"
|
||||||
#define UI_TEXT_HOME_Z_FR "Accueil Z"
|
#define UI_TEXT_HOME_Z_FR "Accueil Z"
|
||||||
|
@ -2492,6 +2501,7 @@
|
||||||
#define UI_TEXT_DBG_INFO_FR "Info :%di"
|
#define UI_TEXT_DBG_INFO_FR "Info :%di"
|
||||||
#define UI_TEXT_DBG_ERROR_FR "Erreurs :%de"
|
#define UI_TEXT_DBG_ERROR_FR "Erreurs :%de"
|
||||||
#define UI_TEXT_DBG_DRYRUN_FR "Fonct. a Vide:%dd"
|
#define UI_TEXT_DBG_DRYRUN_FR "Fonct. a Vide:%dd"
|
||||||
|
#define UI_TEXT_DBG_ENDSTOP_FR "Fin de course:%dp"
|
||||||
#define UI_TEXT_OPS_OFF_FR "%O0 OPS Off"
|
#define UI_TEXT_OPS_OFF_FR "%O0 OPS Off"
|
||||||
#define UI_TEXT_OPS_CLASSIC_FR "%O1 OPS Classiq."
|
#define UI_TEXT_OPS_CLASSIC_FR "%O1 OPS Classiq."
|
||||||
#define UI_TEXT_OPS_FAST_FR "%O2 OPS Rapide"
|
#define UI_TEXT_OPS_FAST_FR "%O2 OPS Rapide"
|
||||||
|
@ -2515,15 +2525,15 @@
|
||||||
#define UI_TEXT_FEED_HOME_Y_FR "Accueil Y:%fY"
|
#define UI_TEXT_FEED_HOME_Y_FR "Accueil Y:%fY"
|
||||||
#define UI_TEXT_FEED_HOME_Z_FR "Accueil Z:%fZ"
|
#define UI_TEXT_FEED_HOME_Z_FR "Accueil Z:%fZ"
|
||||||
#define UI_TEXT_FEED_HOME_Z_DELTA_FR "Accueil:%fZ"
|
#define UI_TEXT_FEED_HOME_Z_DELTA_FR "Accueil:%fZ"
|
||||||
#define UI_TEXT_ACTION_XPOSITION4A_FR "X:%x0 mm"
|
#define UI_TEXT_ACTION_XPOSITION4A_FR "X:%x0 mm %dx%dX"
|
||||||
#define UI_TEXT_ACTION_XPOSITION4B_FR "Min Butee:%sx"
|
#define UI_TEXT_ACTION_XPOSITION4B_FR "Min Butee:%sx"
|
||||||
#define UI_TEXT_ACTION_XPOSITION4C_FR "Max Butee:%sX"
|
#define UI_TEXT_ACTION_XPOSITION4C_FR "Max Butee:%sX"
|
||||||
#define UI_TEXT_ACTION_XPOSITION4D_FR ""
|
#define UI_TEXT_ACTION_XPOSITION4D_FR ""
|
||||||
#define UI_TEXT_ACTION_YPOSITION4A_FR "Y:%x1 mm"
|
#define UI_TEXT_ACTION_YPOSITION4A_FR "Y:%x1 mm %dy%dY"
|
||||||
#define UI_TEXT_ACTION_YPOSITION4B_FR "Min Butee:%sy"
|
#define UI_TEXT_ACTION_YPOSITION4B_FR "Min Butee:%sy"
|
||||||
#define UI_TEXT_ACTION_YPOSITION4C_FR "Max Butee:%sY"
|
#define UI_TEXT_ACTION_YPOSITION4C_FR "Max Butee:%sY"
|
||||||
#define UI_TEXT_ACTION_YPOSITION4D_FR ""
|
#define UI_TEXT_ACTION_YPOSITION4D_FR ""
|
||||||
#define UI_TEXT_ACTION_ZPOSITION4A_FR "Z:%x2 mm"
|
#define UI_TEXT_ACTION_ZPOSITION4A_FR "Z:%x2 mm %dz%dZ"
|
||||||
#define UI_TEXT_ACTION_ZPOSITION4B_FR "Min Butee:%sz"
|
#define UI_TEXT_ACTION_ZPOSITION4B_FR "Min Butee:%sz"
|
||||||
#define UI_TEXT_ACTION_ZPOSITION4C_FR "Max Butee:%sZ"
|
#define UI_TEXT_ACTION_ZPOSITION4C_FR "Max Butee:%sZ"
|
||||||
#define UI_TEXT_ACTION_ZPOSITION4D_FR ""
|
#define UI_TEXT_ACTION_ZPOSITION4D_FR ""
|
||||||
|
@ -2787,6 +2797,7 @@
|
||||||
#define UI_TEXT_DBG_INFO_CZ "Info :%di"
|
#define UI_TEXT_DBG_INFO_CZ "Info :%di"
|
||||||
#define UI_TEXT_DBG_ERROR_CZ "Chyby :%de"
|
#define UI_TEXT_DBG_ERROR_CZ "Chyby :%de"
|
||||||
#define UI_TEXT_DBG_DRYRUN_CZ "Beh nanecisto:%dd"
|
#define UI_TEXT_DBG_DRYRUN_CZ "Beh nanecisto:%dd"
|
||||||
|
#define UI_TEXT_DBG_ENDSTOP_CZ "EndStop:%dp"
|
||||||
#define UI_TEXT_OPS_OFF_CZ "%O0 OPS Vypnuto"
|
#define UI_TEXT_OPS_OFF_CZ "%O0 OPS Vypnuto"
|
||||||
#define UI_TEXT_OPS_CLASSIC_CZ "%O1 OPS Klasicke"
|
#define UI_TEXT_OPS_CLASSIC_CZ "%O1 OPS Klasicke"
|
||||||
#define UI_TEXT_OPS_FAST_CZ "%O2 OPS Rychle"
|
#define UI_TEXT_OPS_FAST_CZ "%O2 OPS Rychle"
|
||||||
|
@ -2810,15 +2821,15 @@
|
||||||
#define UI_TEXT_FEED_HOME_Y_CZ "Home Y:%fY"
|
#define UI_TEXT_FEED_HOME_Y_CZ "Home Y:%fY"
|
||||||
#define UI_TEXT_FEED_HOME_Z_CZ "Home Z:%fZ"
|
#define UI_TEXT_FEED_HOME_Z_CZ "Home Z:%fZ"
|
||||||
#define UI_TEXT_FEED_HOME_Z_DELTA_CZ "Home:%fZ"
|
#define UI_TEXT_FEED_HOME_Z_DELTA_CZ "Home:%fZ"
|
||||||
#define UI_TEXT_ACTION_XPOSITION4A_CZ "X:%x0 mm"
|
#define UI_TEXT_ACTION_XPOSITION4A_CZ "X:%x0 mm %dx%dX"
|
||||||
#define UI_TEXT_ACTION_XPOSITION4B_CZ "Min koncak:%sx"
|
#define UI_TEXT_ACTION_XPOSITION4B_CZ "Min koncak:%sx"
|
||||||
#define UI_TEXT_ACTION_XPOSITION4C_CZ "Max koncak:%sX"
|
#define UI_TEXT_ACTION_XPOSITION4C_CZ "Max koncak:%sX"
|
||||||
#define UI_TEXT_ACTION_XPOSITION4D_CZ ""
|
#define UI_TEXT_ACTION_XPOSITION4D_CZ ""
|
||||||
#define UI_TEXT_ACTION_YPOSITION4A_CZ "Y:%x1 mm"
|
#define UI_TEXT_ACTION_YPOSITION4A_CZ "Y:%x1 mm %dy%dY"
|
||||||
#define UI_TEXT_ACTION_YPOSITION4B_CZ "Min koncak:%sy"
|
#define UI_TEXT_ACTION_YPOSITION4B_CZ "Min koncak:%sy"
|
||||||
#define UI_TEXT_ACTION_YPOSITION4C_CZ "Max koncak:%sY"
|
#define UI_TEXT_ACTION_YPOSITION4C_CZ "Max koncak:%sY"
|
||||||
#define UI_TEXT_ACTION_YPOSITION4D_CZ ""
|
#define UI_TEXT_ACTION_YPOSITION4D_CZ ""
|
||||||
#define UI_TEXT_ACTION_ZPOSITION4A_CZ "Z:%x2 mm"
|
#define UI_TEXT_ACTION_ZPOSITION4A_CZ "Z:%x2 mm %dz%dZ"
|
||||||
#define UI_TEXT_ACTION_ZPOSITION4B_CZ "Min koncak:%sz"
|
#define UI_TEXT_ACTION_ZPOSITION4B_CZ "Min koncak:%sz"
|
||||||
#define UI_TEXT_ACTION_ZPOSITION4C_CZ "Max koncak:%sZ"
|
#define UI_TEXT_ACTION_ZPOSITION4C_CZ "Max koncak:%sZ"
|
||||||
#define UI_TEXT_ACTION_ZPOSITION4D_CZ ""
|
#define UI_TEXT_ACTION_ZPOSITION4D_CZ ""
|
||||||
|
@ -3079,6 +3090,7 @@
|
||||||
#define UI_TEXT_DBG_INFO_PL "Informacje : %di"
|
#define UI_TEXT_DBG_INFO_PL "Informacje : %di"
|
||||||
#define UI_TEXT_DBG_ERROR_PL "Bledy : %de"
|
#define UI_TEXT_DBG_ERROR_PL "Bledy : %de"
|
||||||
#define UI_TEXT_DBG_DRYRUN_PL "Bez wydruku : %dd"
|
#define UI_TEXT_DBG_DRYRUN_PL "Bez wydruku : %dd"
|
||||||
|
#define UI_TEXT_DBG_ENDSTOP_PL "EndStop : %dp"
|
||||||
#define UI_TEXT_OPS_OFF_PL "%O0 OPS Off"
|
#define UI_TEXT_OPS_OFF_PL "%O0 OPS Off"
|
||||||
#define UI_TEXT_OPS_CLASSIC_PL "%O1 OPS Classic"
|
#define UI_TEXT_OPS_CLASSIC_PL "%O1 OPS Classic"
|
||||||
#define UI_TEXT_OPS_FAST_PL "%O2 OPS Fast"
|
#define UI_TEXT_OPS_FAST_PL "%O2 OPS Fast"
|
||||||
|
@ -3102,15 +3114,15 @@
|
||||||
#define UI_TEXT_FEED_HOME_Y_PL "Powrot Y:%fY"
|
#define UI_TEXT_FEED_HOME_Y_PL "Powrot Y:%fY"
|
||||||
#define UI_TEXT_FEED_HOME_Z_PL "Powrot Z:%fZ"
|
#define UI_TEXT_FEED_HOME_Z_PL "Powrot Z:%fZ"
|
||||||
#define UI_TEXT_FEED_HOME_Z_DELTA_PL "Powrot:%fZ"
|
#define UI_TEXT_FEED_HOME_Z_DELTA_PL "Powrot:%fZ"
|
||||||
#define UI_TEXT_ACTION_XPOSITION4A_PL "X:%x0 mm"
|
#define UI_TEXT_ACTION_XPOSITION4A_PL "X:%x0 mm %dx%dX"
|
||||||
#define UI_TEXT_ACTION_XPOSITION4B_PL "Krancowka MIN: %sx"
|
#define UI_TEXT_ACTION_XPOSITION4B_PL "Krancowka MIN: %sx"
|
||||||
#define UI_TEXT_ACTION_XPOSITION4C_PL "Krancowka MAX: %sX"
|
#define UI_TEXT_ACTION_XPOSITION4C_PL "Krancowka MAX: %sX"
|
||||||
#define UI_TEXT_ACTION_XPOSITION4D_PL ""
|
#define UI_TEXT_ACTION_XPOSITION4D_PL ""
|
||||||
#define UI_TEXT_ACTION_YPOSITION4A_PL "Y:%x1 mm"
|
#define UI_TEXT_ACTION_YPOSITION4A_PL "Y:%x1 mm %dy%dY"
|
||||||
#define UI_TEXT_ACTION_YPOSITION4B_PL "Krancowka MIN: %sy"
|
#define UI_TEXT_ACTION_YPOSITION4B_PL "Krancowka MIN: %sy"
|
||||||
#define UI_TEXT_ACTION_YPOSITION4C_PL "Krancowka Max: %sY"
|
#define UI_TEXT_ACTION_YPOSITION4C_PL "Krancowka Max: %sY"
|
||||||
#define UI_TEXT_ACTION_YPOSITION4D_PL ""
|
#define UI_TEXT_ACTION_YPOSITION4D_PL ""
|
||||||
#define UI_TEXT_ACTION_ZPOSITION4A_PL "Z:%x2 mm"
|
#define UI_TEXT_ACTION_ZPOSITION4A_PL "Z:%x2 mm %dz%dZ"
|
||||||
#define UI_TEXT_ACTION_ZPOSITION4B_PL "Krancowka MIN: %sz"
|
#define UI_TEXT_ACTION_ZPOSITION4B_PL "Krancowka MIN: %sz"
|
||||||
#define UI_TEXT_ACTION_ZPOSITION4C_PL "Krancowka Max: %sZ"
|
#define UI_TEXT_ACTION_ZPOSITION4C_PL "Krancowka Max: %sZ"
|
||||||
#define UI_TEXT_ACTION_ZPOSITION4D_PL ""
|
#define UI_TEXT_ACTION_ZPOSITION4D_PL ""
|
||||||
|
@ -3367,6 +3379,7 @@
|
||||||
#define UI_TEXT_DBG_INFO_TR "Bilgi :%di"
|
#define UI_TEXT_DBG_INFO_TR "Bilgi :%di"
|
||||||
#define UI_TEXT_DBG_ERROR_TR "Hatalar :%de"
|
#define UI_TEXT_DBG_ERROR_TR "Hatalar :%de"
|
||||||
#define UI_TEXT_DBG_DRYRUN_TR "Bosta Calis:%dd"
|
#define UI_TEXT_DBG_DRYRUN_TR "Bosta Calis:%dd"
|
||||||
|
#define UI_TEXT_DBG_ENDSTOP_TR "EndStop :%dp"
|
||||||
#define UI_TEXT_OPS_OFF_TR "%O0 OPS Kapali"
|
#define UI_TEXT_OPS_OFF_TR "%O0 OPS Kapali"
|
||||||
#define UI_TEXT_OPS_CLASSIC_TR "%O1 OPS Klasik"
|
#define UI_TEXT_OPS_CLASSIC_TR "%O1 OPS Klasik"
|
||||||
#define UI_TEXT_OPS_FAST_TR "%O2 OPS Hizli"
|
#define UI_TEXT_OPS_FAST_TR "%O2 OPS Hizli"
|
||||||
|
@ -3390,15 +3403,15 @@
|
||||||
#define UI_TEXT_FEED_HOME_Y_TR "Y'yi Sif.Gon.Hiz.:%fY"
|
#define UI_TEXT_FEED_HOME_Y_TR "Y'yi Sif.Gon.Hiz.:%fY"
|
||||||
#define UI_TEXT_FEED_HOME_Z_TR "Z'i Sif.Gon.Hiz:%fZ"
|
#define UI_TEXT_FEED_HOME_Z_TR "Z'i Sif.Gon.Hiz:%fZ"
|
||||||
#define UI_TEXT_FEED_HOME_Z_DELTA_TR "Delta Sif.Gon.Hiz:%fZ"
|
#define UI_TEXT_FEED_HOME_Z_DELTA_TR "Delta Sif.Gon.Hiz:%fZ"
|
||||||
#define UI_TEXT_ACTION_XPOSITION4A_TR "X:%x0 mm"
|
#define UI_TEXT_ACTION_XPOSITION4A_TR "X:%x0 mm %dx%dX"
|
||||||
#define UI_TEXT_ACTION_XPOSITION4B_TR "Min endstop:%sx"
|
#define UI_TEXT_ACTION_XPOSITION4B_TR "Min endstop:%sx"
|
||||||
#define UI_TEXT_ACTION_XPOSITION4C_TR "Max endstop:%sX"
|
#define UI_TEXT_ACTION_XPOSITION4C_TR "Max endstop:%sX"
|
||||||
#define UI_TEXT_ACTION_XPOSITION4D_TR ""
|
#define UI_TEXT_ACTION_XPOSITION4D_TR ""
|
||||||
#define UI_TEXT_ACTION_YPOSITION4A_TR "Y:%x1 mm"
|
#define UI_TEXT_ACTION_YPOSITION4A_TR "Y:%x1 mm %dy%dY"
|
||||||
#define UI_TEXT_ACTION_YPOSITION4B_TR "Min endstop:%sy"
|
#define UI_TEXT_ACTION_YPOSITION4B_TR "Min endstop:%sy"
|
||||||
#define UI_TEXT_ACTION_YPOSITION4C_TR "Max endstop:%sY"
|
#define UI_TEXT_ACTION_YPOSITION4C_TR "Max endstop:%sY"
|
||||||
#define UI_TEXT_ACTION_YPOSITION4D_TR ""
|
#define UI_TEXT_ACTION_YPOSITION4D_TR ""
|
||||||
#define UI_TEXT_ACTION_ZPOSITION4A_TR "Z:%x2 mm"
|
#define UI_TEXT_ACTION_ZPOSITION4A_TR "Z:%x2 mm %dz%dZ"
|
||||||
#define UI_TEXT_ACTION_ZPOSITION4B_TR "Min endstop:%sz"
|
#define UI_TEXT_ACTION_ZPOSITION4B_TR "Min endstop:%sz"
|
||||||
#define UI_TEXT_ACTION_ZPOSITION4C_TR "Max endstop:%sZ"
|
#define UI_TEXT_ACTION_ZPOSITION4C_TR "Max endstop:%sZ"
|
||||||
#define UI_TEXT_ACTION_ZPOSITION4D_TR ""
|
#define UI_TEXT_ACTION_ZPOSITION4D_TR ""
|
||||||
|
@ -3588,3 +3601,293 @@
|
||||||
#define UI_TEXT_Y_OFFSET_TR "Set Y offset:%T1mm"
|
#define UI_TEXT_Y_OFFSET_TR "Set Y offset:%T1mm"
|
||||||
#define UI_TEXT_Z_OFFSET_TR "Set Z offset:%T2mm"
|
#define UI_TEXT_Z_OFFSET_TR "Set Z offset:%T2mm"
|
||||||
|
|
||||||
|
// *************** Finnish translation ****************
|
||||||
|
// ********** By Matti Granstedt 28.01.2016 ***********
|
||||||
|
|
||||||
|
#define UI_TEXT_ON_FI "P" STR_auml STR_auml "lle"
|
||||||
|
#define UI_TEXT_OFF_FI "Sammuta"
|
||||||
|
#define UI_TEXT_NA_FI "N/A" // Output for not available
|
||||||
|
#define UI_TEXT_YES_FI "Kyll" STR_auml ""
|
||||||
|
#define UI_TEXT_NO_FI "Ei"
|
||||||
|
#define UI_TEXT_PRINT_POS_FI "Tulostaa..."
|
||||||
|
#define UI_TEXT_PRINTING_FI "Tulosta"
|
||||||
|
#define UI_TEXT_IDLE_FI "Valmis"
|
||||||
|
#define UI_TEXT_NOSDCARD_FI "Ei SD korttia"
|
||||||
|
#define UI_TEXT_ERROR_FI "**** VIRHE ****"
|
||||||
|
#define UI_TEXT_BACK_FI "Takaisin" cUP
|
||||||
|
#define UI_TEXT_QUICK_SETTINGS_FI "Pika-asetukset"
|
||||||
|
#define UI_TEXT_ERRORMSG_FI "%oe"
|
||||||
|
#define UI_TEXT_CONFIGURATION_FI "Kokoonpano"
|
||||||
|
#define UI_TEXT_POSITION_FI "Paikka"
|
||||||
|
#define UI_TEXT_EXTRUDER_FI "Pursotin"
|
||||||
|
#define UI_TEXT_SD_CARD_FI "SD kortti"
|
||||||
|
#define UI_TEXT_DEBUGGING_FI "Virheenetsint" STR_auml ""
|
||||||
|
#define UI_TEXT_HOME_DELTA_FI "Koti delta"
|
||||||
|
#define UI_TEXT_HOME_ALL_FI "Koti kaikki"
|
||||||
|
#define UI_TEXT_HOME_X_FI "Koti X"
|
||||||
|
#define UI_TEXT_HOME_Y_FI "Koti Y"
|
||||||
|
#define UI_TEXT_HOME_Z_FI "Koti Z"
|
||||||
|
#define UI_TEXT_PREHEAT_PLA_FI "Esilämmitys PLA"
|
||||||
|
#define UI_TEXT_PREHEAT_ABS_FI "Esilämmitys ABS"
|
||||||
|
#define UI_TEXT_LIGHTS_ONOFF_FI "Valot:%lo"
|
||||||
|
#define UI_TEXT_COOLDOWN_FI "J" STR_auml STR_auml "hdytys"
|
||||||
|
#define UI_TEXT_SET_TO_ORIGIN_FI "Aseta l" STR_auml "ht" STR_ouml "piste"
|
||||||
|
#define UI_TEXT_DISABLE_STEPPER_FI "Sammuta moottori"
|
||||||
|
#define UI_TEXT_X_POSITION_FI "X Paikka"
|
||||||
|
#define UI_TEXT_X_POS_FAST_FI "X Paikka nopea"
|
||||||
|
#define UI_TEXT_Y_POSITION_FI "Y Paikka"
|
||||||
|
#define UI_TEXT_Y_POS_FAST_FI "Y Paikka nopea"
|
||||||
|
#define UI_TEXT_Z_POSITION_FI "Z Paikka"
|
||||||
|
#define UI_TEXT_Z_POS_FAST_FI "Z Paikka nopea"
|
||||||
|
#define UI_TEXT_E_POSITION_FI "Pursot. paikka"
|
||||||
|
#define UI_TEXT_BED_TEMP_FI "Alustan :%eb/%Eb" cDEG "C"
|
||||||
|
#define UI_TEXT_EXTR0_TEMP_FI "Purso 1 :%e0/%E0" cDEG "C"
|
||||||
|
#define UI_TEXT_EXTR1_TEMP_FI "Purso 2 :%e1/%E1" cDEG "C"
|
||||||
|
#define UI_TEXT_EXTR2_TEMP_FI "Purso 3 :%e2/%E2" cDEG "C"
|
||||||
|
#define UI_TEXT_EXTR0_OFF_FI "Pursotin 1 Ei"
|
||||||
|
#define UI_TEXT_EXTR1_OFF_FI "Pursotin 2 Ei"
|
||||||
|
#define UI_TEXT_EXTR2_OFF_FI "Pursotin 3 Ei"
|
||||||
|
#define UI_TEXT_EXTR0_SELECT_FI "%X0 Valitse purs.1"
|
||||||
|
#define UI_TEXT_EXTR1_SELECT_FI "%X1 Valitse purs.2"
|
||||||
|
#define UI_TEXT_EXTR2_SELECT_FI "%X2 Valitse purs.3"
|
||||||
|
#define UI_TEXT_EXTR_ORIGIN_FI "Aseta l" STR_auml "ht" STR_ouml "piste"
|
||||||
|
#define UI_TEXT_PRINT_X_FI "Tulosta X:%ax"
|
||||||
|
#define UI_TEXT_PRINT_Y_FI "Tulosta Y:%ay"
|
||||||
|
#define UI_TEXT_PRINT_Z_FI "Tulosta Z:%az"
|
||||||
|
#define UI_TEXT_PRINT_Z_DELTA_FI "Tulosta:%az"
|
||||||
|
#define UI_TEXT_MOVE_X_FI "Siirr" STR_auml "X :%aX"
|
||||||
|
#define UI_TEXT_MOVE_Y_FI "Siirr" STR_auml "Y :%aY"
|
||||||
|
#define UI_TEXT_MOVE_Z_FI "Siirr" STR_auml "Z :%aZ"
|
||||||
|
#define UI_TEXT_MOVE_Z_DELTA_FI "Siirr" STR_auml ":%aZ"
|
||||||
|
#define UI_TEXT_JERK_FI "Askel :%aj"
|
||||||
|
#define UI_TEXT_ZJERK_FI "Z-Askel :%aJ"
|
||||||
|
#define UI_TEXT_ACCELERATION_FI "Kiihtyvyys"
|
||||||
|
#define UI_TEXT_STORE_TO_EEPROM_FI "Tallenna EEPROM"
|
||||||
|
#define UI_TEXT_LOAD_EEPROM_FI "Lataa EEPROM"
|
||||||
|
#define UI_TEXT_DBG_ECHO_FI "Toista :%do"
|
||||||
|
#define UI_TEXT_DBG_INFO_FI "Tiedot :%di"
|
||||||
|
#define UI_TEXT_DBG_ERROR_FI "Virheet :%de"
|
||||||
|
#define UI_TEXT_DBG_DRYRUN_FI "Kuiva-ajo:%dd"
|
||||||
|
#define UI_TEXT_DBG_ENDSTOP_FI "EndStop :%dp"
|
||||||
|
#define UI_TEXT_OPS_OFF_FI "%O0 OPS ei"
|
||||||
|
#define UI_TEXT_OPS_CLASSIC_FI "%O1 OPS normaali"
|
||||||
|
#define UI_TEXT_OPS_FAST_FI "%O2 OPS nopea"
|
||||||
|
#define UI_TEXT_OPS_RETRACT_FI "Peruuta :%Or"
|
||||||
|
#define UI_TEXT_OPS_BACKSLASH_FI "Backsl. :%Ob"
|
||||||
|
#define UI_TEXT_OPS_MINDIST_FI "Min.dist :%Od"
|
||||||
|
#define UI_TEXT_OPS_MOVE_AFTER_FI "Siirr" STR_auml "j" STR_auml "lkeen:%Oa"
|
||||||
|
#define UI_TEXT_ANTI_OOZE_FI "Vuodon poisto"
|
||||||
|
#define UI_TEXT_PRINT_FILE_FI "Tulosta Tiedosto"
|
||||||
|
#define UI_TEXT_PAUSE_PRINT_FI "Tulostustauko"
|
||||||
|
#define UI_TEXT_CONTINUE_PRINT_FI "Jatka tulostusta"
|
||||||
|
#define UI_TEXT_UNMOUNT_CARD_FI "Kortti poistettu"
|
||||||
|
#define UI_TEXT_MOUNT_CARD_FI "Kortti asetettu"
|
||||||
|
#define UI_TEXT_DELETE_FILE_FI "Poista tiedosto"
|
||||||
|
#define UI_TEXT_FEEDRATE_FI "Sy" STR_ouml "tt" STR_ouml "nopeus"
|
||||||
|
#define UI_TEXT_FEED_MAX_X_FI "Maks. X:%fx"
|
||||||
|
#define UI_TEXT_FEED_MAX_Y_FI "Maks. Y:%fy"
|
||||||
|
#define UI_TEXT_FEED_MAX_Z_FI "Maks. Z:%fz"
|
||||||
|
#define UI_TEXT_FEED_MAX_Z_DELTA_FI "Maks.:%fz"
|
||||||
|
#define UI_TEXT_FEED_HOME_X_FI "Koti X:%fX"
|
||||||
|
#define UI_TEXT_FEED_HOME_Y_FI "Koti Y:%fY"
|
||||||
|
#define UI_TEXT_FEED_HOME_Z_FI "Koti Z:%fZ"
|
||||||
|
#define UI_TEXT_FEED_HOME_Z_DELTA_FI "Koti:%fZ"
|
||||||
|
#define UI_TEXT_ACTION_XPOSITION4A_FI "X:%x0 mm %dx%dX"
|
||||||
|
#define UI_TEXT_ACTION_XPOSITION4B_FI "Min. rajoittimesta:%sx"
|
||||||
|
#define UI_TEXT_ACTION_XPOSITION4C_FI "Maks rajoittimesta:%sX"
|
||||||
|
#define UI_TEXT_ACTION_XPOSITION4D_FI ""
|
||||||
|
#define UI_TEXT_ACTION_YPOSITION4A_FI "Y:%x1 mm %dy%dY"
|
||||||
|
#define UI_TEXT_ACTION_YPOSITION4B_FI "Min. rajoittimesta:%sy"
|
||||||
|
#define UI_TEXT_ACTION_YPOSITION4C_FI "Maks rajoittimesta:%sY"
|
||||||
|
#define UI_TEXT_ACTION_YPOSITION4D_FI ""
|
||||||
|
#define UI_TEXT_ACTION_ZPOSITION4A_FI "Z:%x2 mm %dz%dZ"
|
||||||
|
#define UI_TEXT_ACTION_ZPOSITION4B_FI "Min. rajoittimesta:%sz"
|
||||||
|
#define UI_TEXT_ACTION_ZPOSITION4C_FI "Maks rajoittimesta:%sZ"
|
||||||
|
#define UI_TEXT_ACTION_ZPOSITION4D_FI ""
|
||||||
|
#define UI_TEXT_ACTION_XPOSITION_FAST4A_FI "X:%x0 mm"
|
||||||
|
#define UI_TEXT_ACTION_XPOSITION_FAST4B_FI "Min. rajoittimesta:%sx"
|
||||||
|
#define UI_TEXT_ACTION_XPOSITION_FAST4C_FI "Maks rajoittimesta:%sX"
|
||||||
|
#define UI_TEXT_ACTION_XPOSITION_FAST4D_FI ""
|
||||||
|
#define UI_TEXT_ACTION_YPOSITION_FAST4A_FI "Y:%x1 mm"
|
||||||
|
#define UI_TEXT_ACTION_YPOSITION_FAST4B_FI "Min. rajoittimesta:%sy"
|
||||||
|
#define UI_TEXT_ACTION_YPOSITION_FAST4C_FI "Maks rajoittimesta:%sY"
|
||||||
|
#define UI_TEXT_ACTION_YPOSITION_FAST4D_FI ""
|
||||||
|
#define UI_TEXT_ACTION_ZPOSITION_FAST4A_FI "Z:%x2 mm"
|
||||||
|
#define UI_TEXT_ACTION_ZPOSITION_FAST4B_FI "Min. rajoittimesta:%sz"
|
||||||
|
#define UI_TEXT_ACTION_ZPOSITION_FAST4C_FI "Maks rajoittimesta:%sZ"
|
||||||
|
#define UI_TEXT_ACTION_ZPOSITION_FAST4D_FI ""
|
||||||
|
#define UI_TEXT_ACTION_EPOSITION_FAST2A_FI "E:%x3 mm"
|
||||||
|
#define UI_TEXT_ACTION_EPOSITION_FAST2B_FI "1 klikkaus = 1 mm"
|
||||||
|
#define UI_TEXT_ACTION_XPOSITION2A_FI "X:%x0 mm"
|
||||||
|
#define UI_TEXT_ACTION_XPOSITION2B_FI "Min:%sx Max:%sX"
|
||||||
|
#define UI_TEXT_ACTION_YPOSITION2A_FI "Y:%x1 mm"
|
||||||
|
#define UI_TEXT_ACTION_YPOSITION2B_FI "Min:%sy Max:%sY"
|
||||||
|
#define UI_TEXT_ACTION_ZPOSITION2A_FI "Z:%x2 mm"
|
||||||
|
#define UI_TEXT_ACTION_ZPOSITION2B_FI "Min:%sz Max:%sZ"
|
||||||
|
#define UI_TEXT_ACTION_XPOSITION_FAST2A_FI "X:%x0 mm"
|
||||||
|
#define UI_TEXT_ACTION_XPOSITION_FAST2B_FI "Min:%sx Max:%sX"
|
||||||
|
#define UI_TEXT_ACTION_YPOSITION_FAST2A_FI "Y:%x1 mm"
|
||||||
|
#define UI_TEXT_ACTION_YPOSITION_FAST2B_FI "Min:%sy Max:%sY"
|
||||||
|
#define UI_TEXT_ACTION_ZPOSITION_FAST2A_FI "Z:%x2 mm"
|
||||||
|
#define UI_TEXT_ACTION_ZPOSITION_FAST2B_FI "Min:%sz Max:%sZ"
|
||||||
|
#define UI_TEXT_FANSPEED_FI "Tuulettimen nopeus"
|
||||||
|
#define UI_TEXT_ACTION_FANSPEED_FI "Tuuletin nopeus:%Fs%%%"
|
||||||
|
#define UI_TEXT_FAN_OFF_FI "Sammuta tuuletin"
|
||||||
|
#define UI_TEXT_FAN_25_FI "Aseta nop. 25%%%"
|
||||||
|
#define UI_TEXT_FAN_50_FI "Aseta nop. 50%%%"
|
||||||
|
#define UI_TEXT_FAN_75_FI "Aseta nop. 75%%%"
|
||||||
|
#define UI_TEXT_FAN_FULL_FI "Aseta nop. maks."
|
||||||
|
#define UI_TEXT_STEPPER_INACTIVE_FI "Moottori toimeton"
|
||||||
|
#define UI_TEXT_STEPPER_INACTIVE2A_FI "Toimeton j" STR_auml "lkeen: %is"
|
||||||
|
#define UI_TEXT_STEPPER_INACTIVE2B_FI "[min] 0=sammuta"
|
||||||
|
#define UI_TEXT_POWER_INACTIVE_FI "Maks. toimeton"
|
||||||
|
#define UI_TEXT_POWER_INACTIVE2A_FI "Toimeton j" STR_auml "lkeen: %ip"
|
||||||
|
#define UI_TEXT_POWER_INACTIVE2B_FI "[min] 0=sammuta"
|
||||||
|
#define UI_TEXT_GENERAL_FI "Yleiset"
|
||||||
|
#define UI_TEXT_BAUDRATE_FI "Siirtonopeus:%oc"
|
||||||
|
#define UI_TEXT_EXTR_STEPS_FI "Askelta/MM:%Se"
|
||||||
|
#define UI_TEXT_EXTR_START_FEED_FI "K" STR_auml "ynnist" STR_auml "FR:%Xf"
|
||||||
|
#define UI_TEXT_EXTR_MAX_FEED_FI "Maks. FR:%XF"
|
||||||
|
#define UI_TEXT_EXTR_ACCEL_FI "Kiihdytys:%XA"
|
||||||
|
#define UI_TEXT_EXTR_WATCH_FI "Stab.Aika:%Xw"
|
||||||
|
#define UI_TEXT_EXTR_ADVANCE_L_FI "Eteneminen lin:%Xl"
|
||||||
|
#define UI_TEXT_EXTR_ADVANCE_K_FI "Eteneminen quad:%Xa"
|
||||||
|
#define UI_TEXT_EXTR_MANAGER_FI "Hallinta:%Xh"
|
||||||
|
#define UI_TEXT_EXTR_PGAIN_FI "PID P:%Xp"
|
||||||
|
#define UI_TEXT_EXTR_DEADTIME_FI "Kuollut aika:%Xp"
|
||||||
|
#define UI_TEXT_EXTR_DMAX_DT_FI "Valvonta PWM:%XM"
|
||||||
|
#define UI_TEXT_EXTR_IGAIN_FI "PID I:%Xi"
|
||||||
|
#define UI_TEXT_EXTR_DGAIN_FI "PID D:%Xd"
|
||||||
|
#define UI_TEXT_EXTR_DMIN_FI "Ajo Min:%Xm"
|
||||||
|
#define UI_TEXT_EXTR_DMAX_FI "Ajo Max:%XM"
|
||||||
|
#define UI_TEXT_EXTR_PMAX_FI "PID Max:%XD"
|
||||||
|
#define UI_TEXT_EXTR_XOFF_FI "X-tasoitus:%Xx"
|
||||||
|
#define UI_TEXT_EXTR_YOFF_FI "Y-tasoitus:%Xy"
|
||||||
|
#define UI_TEXT_STRING_HM_BANGBANG_FI "BangBang"
|
||||||
|
#define UI_TEXT_STRING_HM_PID_FI "PID"
|
||||||
|
#define UI_TEXT_STRING_ACTION_FI "Toiminta:%la"
|
||||||
|
#define UI_TEXT_HEATING_EXTRUDER_FI "Kuumentaa Pursot."
|
||||||
|
#define UI_TEXT_HEATING_BED_FI "Kuumentaa Alustaa"
|
||||||
|
#define UI_TEXT_KILLED_FI "Poistettu"
|
||||||
|
#define UI_TEXT_STEPPER_DISABLED_FI "Moottori pois k" STR_auml "yt."
|
||||||
|
#define UI_TEXT_EEPROM_STOREDA_FI "Kokoonpano"
|
||||||
|
#define UI_TEXT_EEPROM_STOREDB_FI "Tallennettu EEPROM"
|
||||||
|
#define UI_TEXT_EEPROM_LOADEDA_FI "Kokoonpano"
|
||||||
|
#define UI_TEXT_EEPROM_LOADEDB_FI "Ladattu EEPROM"
|
||||||
|
#define UI_TEXT_UPLOADING_FI "Ladataan..."
|
||||||
|
#define UI_TEXT_PAGE_BUFFER_FI "Puskuri:%oB"
|
||||||
|
#define UI_TEXT_PAGE_EXTRUDER_FI " E:%ec/%Ec" cDEG "C" cARROW "%oC"
|
||||||
|
#define UI_TEXT_PAGE_EXTRUDER1_FI "E1:%e0/%E0" cDEG "C" cARROW "%o0"
|
||||||
|
#define UI_TEXT_PAGE_EXTRUDER2_FI "E2:%e1/%E1" cDEG "C" cARROW "%o1"
|
||||||
|
#define UI_TEXT_PAGE_EXTRUDER3_FI "E3:%e2/%E2" cDEG "C" cARROW "%o2"
|
||||||
|
#define UI_TEXT_PAGE_BED_FI " B:%eb/%Eb" cDEG "C" cARROW "%ob"
|
||||||
|
#define UI_TEXT_SPEED_MULTIPLY_FI "Nopeuskerroin:%om%%%"
|
||||||
|
#define UI_TEXT_FLOW_MULTIPLY_FI "Puhalluskerroin:%of%%%"
|
||||||
|
#define UI_TEXT_SHOW_MEASUREMENT_FI "N" STR_auml "yt" STR_auml " mitat"
|
||||||
|
#define UI_TEXT_RESET_MEASUREMENT_FI "Poista mitat."
|
||||||
|
#define UI_TEXT_SET_MEASURED_ORIGIN_FI "Aseta Z=0"
|
||||||
|
#define UI_TEXT_ZCALIB_FI "Z kalibrointi"
|
||||||
|
#define UI_TEXT_SET_P1_FI "Aseta P1"
|
||||||
|
#define UI_TEXT_SET_P2_FI "Aseta P2"
|
||||||
|
#define UI_TEXT_SET_P3_FI "Aseta P3"
|
||||||
|
#define UI_TEXT_CALCULATE_LEVELING_FI "Laske tasot"
|
||||||
|
#define UI_TEXT_LEVEL_FI "Taso delta"
|
||||||
|
#define UI_TEXT_EXTR_WAIT_RETRACT_TEMP_FI "Odottaa l" STR_auml "mm. %XT" cDEG "C"
|
||||||
|
#define UI_TEXT_EXTR_WAIT_RETRACT_UNITS_FI "Odottaa yks.:%XU mm"
|
||||||
|
#define UI_TEXT_SD_REMOVED_FI "SD kortti pois"
|
||||||
|
#define UI_TEXT_SD_INSERTED_FI "SD kortti on"
|
||||||
|
#define UI_TEXT_PRINTER_READY_FI "Tulostin valmis."
|
||||||
|
// Printtime output gets aggregated like <Days_5gisgits>UI_TEXT_PRINTTIME_DAYS<Hours>UI_TEXT_PRINTTIME_HOURS<Minutes>UI_TEXT_PRINTTIME_MINUTES
|
||||||
|
// ___88 days 12:45
|
||||||
|
#define UI_TEXT_PRINTTIME_DAYS_FI " p" STR_auml "iv" STR_auml STR_auml " "
|
||||||
|
#define UI_TEXT_PRINTTIME_HOURS_FI ":"
|
||||||
|
#define UI_TEXT_PRINTTIME_MINUTES_FI ""
|
||||||
|
#define UI_TEXT_PRINT_TIME_FI "Tulostusaika"
|
||||||
|
#define UI_TEXT_PRINT_FILAMENT_FI "Lanka tulostettu"
|
||||||
|
#define UI_TEXT_PRINTED_FI "Tulostettu"
|
||||||
|
#define UI_TEXT_POWER_FI "ATX virtal. on/ei"
|
||||||
|
#define UI_TEXT_STRING_HM_DEADTIME_FI "Joutoaika"
|
||||||
|
#define UI_TEXT_STRING_HM_SLOWBANG_FI "SlowBang"
|
||||||
|
#define UI_TEXT_STOP_PRINT_FI "Lopeta tulostus"
|
||||||
|
#define UI_TEXT_Z_BABYSTEPPING_FI "Z mikroaskellus:%oYmm"
|
||||||
|
#define UI_TEXT_CHANGE_FILAMENT_FI "Vaihda tulostuslanka"
|
||||||
|
#define UI_TEXT_WIZ_CH_FILAMENT1_FI "Vaihda tulostuslanka"
|
||||||
|
#define UI_TEXT_WIZ_CH_FILAMENT2_FI "Py" STR_ouml "rit" STR_auml " siirr" STR_auml ""
|
||||||
|
#define UI_TEXT_WIZ_CH_FILAMENT3_FI "Tul.lanka yl" STR_ouml "s/alas"
|
||||||
|
#define UI_TEXT_CLICK_DONE_FI "Klik kun valmis"
|
||||||
|
#define UI_TEXT_AUTOLEVEL_ONOFF_FI "Autom.taso: %ll"
|
||||||
|
#define UI_TEXT_SERVOPOS_FI "Servo paikka: %oS"
|
||||||
|
#define UI_TEXT_IGNORE_M106_FI "Ohita M106 %Fi"
|
||||||
|
#define UI_TEXT_WIZ_REHEAT1_FI "Klik uusi kuumennus"
|
||||||
|
#define UI_TEXT_WIZ_REHEAT2_FI "pursottimet"
|
||||||
|
#define UI_TEXT_WIZ_WAITTEMP1_FI "Odottaa tavoitetta"
|
||||||
|
#define UI_TEXT_WIZ_WAITTEMP2_FI "l" STR_auml "mp" STR_ouml "tilat..."
|
||||||
|
#define UI_TEXT_EXTRUDER_JAM_FI "Pursottimen tukos"
|
||||||
|
#define UI_TEXT_STANDBY_FI "Valmiina"
|
||||||
|
#define UI_TEXT_BED_COATING_FI "Alustan pinnote"
|
||||||
|
#define UI_TEXT_BED_COATING_SET1_FI "Alustan pinta valittu"
|
||||||
|
#define UI_TEXT_BED_COATING_SET2_FI ""
|
||||||
|
#define UI_TEXT_NOCOATING_FI "Ei pinnotetta"
|
||||||
|
#define UI_TEXT_BUILDTAK_FI "BuildTak"
|
||||||
|
#define UI_TEXT_KAPTON_FI "Kapton"
|
||||||
|
#define UI_TEXT_BLUETAPE_FI "Sininen paperi teippi"
|
||||||
|
#define UI_TEXT_PETTAPE_FI "Vihreä PET teippi"
|
||||||
|
#define UI_TEXT_GLUESTICK_FI "Liimapuikko"
|
||||||
|
#define UI_TEXT_CUSTOM_FI "Mukautettu"
|
||||||
|
#define UI_TEXT_COATING_CUSTOM_FI "Mukautettu:%BCmm"
|
||||||
|
#define UI_TEXT_LANGUAGE_FI "Kieli"
|
||||||
|
|
||||||
|
#if NUM_EXTRUDER > 2 || MIXING_EXTRUDER != 0
|
||||||
|
#define UI_TEXT_MAINPAGE6_1_FI "\xa %ec/%Ec\xb0 X:%x0"
|
||||||
|
#else
|
||||||
|
#define UI_TEXT_MAINPAGE6_1_FI "\xa %e0/%E0\xb0 X:%x0"
|
||||||
|
#endif // NUM_EXTRUDER
|
||||||
|
#if NUM_EXTRUDER == 2 && MIXING_EXTRUDER == 0
|
||||||
|
#define UI_TEXT_MAINPAGE6_2_FI "\xa %e1/%E1\xb0 Y:%x1"
|
||||||
|
#elif HAVE_HEATED_BED
|
||||||
|
#define UI_TEXT_MAINPAGE6_2_FI "\xe %eb/%Eb\xb0 Y:%x1"
|
||||||
|
#else
|
||||||
|
#define UI_TEXT_MAINPAGE6_2_FI " Y:%x1"
|
||||||
|
#endif
|
||||||
|
#if HAVE_HEATED_BED && NUM_EXTRUDER == 2 && MIXING_EXTRUDER == 0
|
||||||
|
#define UI_TEXT_MAINPAGE6_3_FI "\xe %eb/%Eb\xb0 Z:%x2"
|
||||||
|
#elif FEATURE_DITTO_PRINTING
|
||||||
|
#define UI_TEXT_MAINPAGE6_3_FI "Kopiot: %ed Z:%x2"
|
||||||
|
#else
|
||||||
|
#define UI_TEXT_MAINPAGE6_3_FI "Virtaus:\xfd %of%%% Z:%x2"
|
||||||
|
#endif
|
||||||
|
#define UI_TEXT_MAINPAGE6_4_FI "Mul: %om%%% \xfd E: %x4m"
|
||||||
|
#define UI_TEXT_MAINPAGE6_5_FI "Buf: %oB"
|
||||||
|
#define UI_TEXT_MAINPAGE6_6_FI "%os"
|
||||||
|
#define UI_TEXT_MAINPAGE_TEMP_BED_FI cTEMP "%ec/%Ec" cDEG "B%eB/%Eb" cDEG
|
||||||
|
#define UI_TEXT_MAINPAGE_BED_FI "B%eB/%Eb" cDEG
|
||||||
|
#define UI_TEXT_MAINPAGE_Z_BUF_FI "Z:%x2 Buf : %oB"
|
||||||
|
#define UI_TEXT_MAINPAGE_MUL_EUSAGE_FI "Mul: %om E:%x4"
|
||||||
|
#define UI_TEXT_MAINPAGE_XY_FI "X:%x0 Y:%x1"
|
||||||
|
#define UI_TEXT_PRINT_TIME_VALUE_FI "%Ut"
|
||||||
|
#define UI_TEXT_PRINT_FILAMENT_VALUE_FI "%Uf m"
|
||||||
|
#define UI_TEXT_METER_PRINTED_FI "%Uf m " UI_TEXT_PRINTED_FI
|
||||||
|
#define UI_TEXT_STATUS_FI "%os"
|
||||||
|
#define UI_TEXT_EMPTY_FI ""
|
||||||
|
#define UI_TEXT_TEMP_SET_FI cTEMP "%ec/%Ec" cDEG
|
||||||
|
#define UI_TEXT_CURRENT_TEMP_FI cTEMP "%ec" cDEG
|
||||||
|
#define UI_TEXT_COATING_THICKNESS_FI " %BCmm"
|
||||||
|
#define UI_TEXT_EXTR3_TEMP_FI "L" STR_auml "mp" STR_ouml " 4 :%e3/%E3" cDEG "C"
|
||||||
|
#define UI_TEXT_EXTR4_TEMP_FI "L" STR_auml "mp" STR_ouml " 5 :%e4/%E4" cDEG "C"
|
||||||
|
#define UI_TEXT_EXTR5_TEMP_FI "L" STR_auml "mp" STR_ouml " 6 :%e5/%E5" cDEG "C"
|
||||||
|
#define UI_TEXT_EXTR3_OFF_FI "Pursotin 4 ei"
|
||||||
|
#define UI_TEXT_EXTR4_OFF_FI "Pursotin 5 ei"
|
||||||
|
#define UI_TEXT_EXTR5_OFF_FI "Pursotin 6 ei"
|
||||||
|
#define UI_TEXT_EXTR3_SELECT_FI "%X3 Valitse purs. 4"
|
||||||
|
#define UI_TEXT_EXTR4_SELECT_FI "%X4 Valitse purs. 5"
|
||||||
|
#define UI_TEXT_EXTR5_SELECT_FI "%X5 Valitse purs. 6"
|
||||||
|
#define UI_TEXT_DITTO_0_FI "%D0 Ei kopiota"
|
||||||
|
#define UI_TEXT_DITTO_1_FI "%D1 1 kopio"
|
||||||
|
#define UI_TEXT_DITTO_2_FI "%D2 2 kopiota"
|
||||||
|
#define UI_TEXT_DITTO_3_FI "%D3 3 kopiota"
|
||||||
|
#define UI_TEXT_ZPROBE_HEIGHT_FI "Z-anturin korkeus:%zh"
|
||||||
|
|
||||||
|
#define UI_TEXT_OFFSETS_FI "Aseta tulostimen poikkeamat"
|
||||||
|
#define UI_TEXT_X_OFFSET_FI "Aseta X poikkeama:%T0mm"
|
||||||
|
#define UI_TEXT_Y_OFFSET_FI "Aseta Y poikkeama:%T1mm"
|
||||||
|
#define UI_TEXT_Z_OFFSET_FI "Aseta Z poikkeama:%T2mm"
|
||||||
|
|
|
@ -66,6 +66,14 @@ debug
|
||||||
%di : Debug info state.
|
%di : Debug info state.
|
||||||
%de : Debug error state.
|
%de : Debug error state.
|
||||||
%dd : Debug dry run state.
|
%dd : Debug dry run state.
|
||||||
|
%dp : Debug end stop state.
|
||||||
|
endstop stats with only one char
|
||||||
|
%dx : Debug min x endstop
|
||||||
|
%dX : Debug max x endstop
|
||||||
|
%dy : Debug min y endstop
|
||||||
|
%dY : Debug max y endstop
|
||||||
|
%dz : Debug min z endstop
|
||||||
|
%dZ : Debug max z endstop
|
||||||
|
|
||||||
extruder
|
extruder
|
||||||
%ec : Current extruder temperature
|
%ec : Current extruder temperature
|
||||||
|
@ -429,6 +437,18 @@ UI_MENU_ACTIONCOMMAND_T(ui_menu_back,UI_TEXT_BACK_ID,UI_ACTION_BACK)
|
||||||
#else
|
#else
|
||||||
#define ADD_LANG_IT
|
#define ADD_LANG_IT
|
||||||
#endif // LANGUAGE_IT_ACTIVE
|
#endif // LANGUAGE_IT_ACTIVE
|
||||||
|
#if LANGUAGE_FI_ACTIVE
|
||||||
|
UI_MENU_ACTIONCOMMAND(ui_menu_setlang_fi, "Suomi", UI_ACTION_LANGUAGE_FI | UI_ACTION_TOPMENU)
|
||||||
|
#if FIRSTLANG
|
||||||
|
#define ADD_LANG_SE &ui_menu_setlang_fi
|
||||||
|
#undef FIRSTLANG
|
||||||
|
#define FIRSTLANG 0
|
||||||
|
#else
|
||||||
|
#define ADD_LANG_FI ,&ui_menu_setlang_fi
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
#define ADD_LANG_FI
|
||||||
|
#endif // LANGUAGE_FI_ACTIVE
|
||||||
#if LANGUAGE_SE_ACTIVE
|
#if LANGUAGE_SE_ACTIVE
|
||||||
UI_MENU_ACTIONCOMMAND(ui_menu_setlang_se, "Svenska", UI_ACTION_LANGUAGE_SE | UI_ACTION_TOPMENU)
|
UI_MENU_ACTIONCOMMAND(ui_menu_setlang_se, "Svenska", UI_ACTION_LANGUAGE_SE | UI_ACTION_TOPMENU)
|
||||||
#if FIRSTLANG
|
#if FIRSTLANG
|
||||||
|
@ -466,7 +486,7 @@ UI_MENU_ACTIONCOMMAND_T(ui_menu_back,UI_TEXT_BACK_ID,UI_ACTION_BACK)
|
||||||
#define ADD_LANG_PL
|
#define ADD_LANG_PL
|
||||||
#endif // LANGUAGE_PL_ACTIVE
|
#endif // LANGUAGE_PL_ACTIVE
|
||||||
#if LANGUAGE_TR_ACTIVE
|
#if LANGUAGE_TR_ACTIVE
|
||||||
UI_MENU_ACTIONCOMMAND(ui_menu_setlang_tr,"T" STR_uuml "rk",UI_ACTION_LANGUAGE_PL | UI_ACTION_TOPMENU)
|
UI_MENU_ACTIONCOMMAND(ui_menu_setlang_tr, "T" STR_uuml "rk", UI_ACTION_LANGUAGE_TR | UI_ACTION_TOPMENU)
|
||||||
#if FIRSTLANG
|
#if FIRSTLANG
|
||||||
#define ADD_LANG_TR &ui_menu_setlang_tr
|
#define ADD_LANG_TR &ui_menu_setlang_tr
|
||||||
#undef FIRSTLANG
|
#undef FIRSTLANG
|
||||||
|
@ -478,11 +498,11 @@ UI_MENU_ACTIONCOMMAND(ui_menu_setlang_tr,"T" STR_uuml "rk",UI_ACTION_LANGUAGE_PL
|
||||||
#define ADD_LANG_TR
|
#define ADD_LANG_TR
|
||||||
#endif // LANGUAGE_TR_ACTIVE
|
#endif // LANGUAGE_TR_ACTIVE
|
||||||
|
|
||||||
#define UI_MENU_LANGUAGES {UI_MENU_ADDCONDBACK ADD_LANG_EN ADD_LANG_DE ADD_LANG_ES ADD_LANG_PT ADD_LANG_FR ADD_LANG_NL ADD_LANG_IT ADD_LANG_SE ADD_LANG_CZ ADD_LANG_PL ADD_LANG_TR}
|
#define UI_MENU_LANGUAGES {UI_MENU_ADDCONDBACK ADD_LANG_EN ADD_LANG_DE ADD_LANG_ES ADD_LANG_PT ADD_LANG_FR ADD_LANG_NL ADD_LANG_IT ADD_LANG_FI ADD_LANG_SE ADD_LANG_CZ ADD_LANG_PL ADD_LANG_TR}
|
||||||
#define UI_MENU_LANGUAGES_WIZ {ADD_LANG_EN ADD_LANG_DE ADD_LANG_ES ADD_LANG_PT ADD_LANG_FR ADD_LANG_NL ADD_LANG_IT ADD_LANG_SE ADD_LANG_CZ ADD_LANG_PL ADD_LANG_TR}
|
#define UI_MENU_LANGUAGES_WIZ {ADD_LANG_EN ADD_LANG_DE ADD_LANG_ES ADD_LANG_PT ADD_LANG_FR ADD_LANG_NL ADD_LANG_IT ADD_LANG_FI ADD_LANG_SE ADD_LANG_CZ ADD_LANG_PL ADD_LANG_TR}
|
||||||
UI_MENU(ui_menu_languages,UI_MENU_LANGUAGES,UI_MENU_BACKCNT + LANGUAGE_EN_ACTIVE+LANGUAGE_DE_ACTIVE+LANGUAGE_ES_ACTIVE+LANGUAGE_PT_ACTIVE+LANGUAGE_FR_ACTIVE+LANGUAGE_NL_ACTIVE+LANGUAGE_IT_ACTIVE+LANGUAGE_SE_ACTIVE+LANGUAGE_CZ_ACTIVE+LANGUAGE_PL_ACTIVE+LANGUAGE_TR_ACTIVE)
|
UI_MENU(ui_menu_languages, UI_MENU_LANGUAGES, UI_MENU_BACKCNT + LANGUAGE_EN_ACTIVE + LANGUAGE_DE_ACTIVE + LANGUAGE_ES_ACTIVE + LANGUAGE_PT_ACTIVE + LANGUAGE_FR_ACTIVE + LANGUAGE_NL_ACTIVE + LANGUAGE_IT_ACTIVE + LANGUAGE_FI_ACTIVE + LANGUAGE_SE_ACTIVE + LANGUAGE_CZ_ACTIVE + LANGUAGE_PL_ACTIVE + LANGUAGE_TR_ACTIVE)
|
||||||
UI_MENU_SUBMENU_T(ui_menu_conf_lang, UI_TEXT_LANGUAGE_ID, ui_menu_languages)
|
UI_MENU_SUBMENU_T(ui_menu_conf_lang, UI_TEXT_LANGUAGE_ID, ui_menu_languages)
|
||||||
UI_STICKYMENU(ui_menu_languages_wiz,UI_MENU_LANGUAGES_WIZ,LANGUAGE_EN_ACTIVE+LANGUAGE_DE_ACTIVE+LANGUAGE_ES_ACTIVE+LANGUAGE_PT_ACTIVE+LANGUAGE_FR_ACTIVE+LANGUAGE_NL_ACTIVE+LANGUAGE_IT_ACTIVE+LANGUAGE_SE_ACTIVE+LANGUAGE_CZ_ACTIVE+LANGUAGE_PL_ACTIVE+LANGUAGE_TR_ACTIVE)
|
UI_STICKYMENU(ui_menu_languages_wiz, UI_MENU_LANGUAGES_WIZ, LANGUAGE_EN_ACTIVE + LANGUAGE_DE_ACTIVE + LANGUAGE_ES_ACTIVE + LANGUAGE_PT_ACTIVE + LANGUAGE_FR_ACTIVE + LANGUAGE_NL_ACTIVE + LANGUAGE_IT_ACTIVE + LANGUAGE_FI_ACTIVE + LANGUAGE_SE_ACTIVE + LANGUAGE_CZ_ACTIVE + LANGUAGE_PL_ACTIVE + LANGUAGE_TR_ACTIVE)
|
||||||
#define LANGMENU_ENTRY ,&ui_menu_conf_lang
|
#define LANGMENU_ENTRY ,&ui_menu_conf_lang
|
||||||
#define LANGMENU_COUNT 1
|
#define LANGMENU_COUNT 1
|
||||||
#else
|
#else
|
||||||
|
@ -859,9 +879,10 @@ UI_MENU_ACTIONCOMMAND_T(ui_menu_debug_echo, UI_TEXT_DBG_ECHO_ID, UI_ACTION_D
|
||||||
UI_MENU_ACTIONCOMMAND_T(ui_menu_debug_info, UI_TEXT_DBG_INFO_ID, UI_ACTION_DEBUG_INFO)
|
UI_MENU_ACTIONCOMMAND_T(ui_menu_debug_info, UI_TEXT_DBG_INFO_ID, UI_ACTION_DEBUG_INFO)
|
||||||
UI_MENU_ACTIONCOMMAND_T(ui_menu_debug_error, UI_TEXT_DBG_ERROR_ID, UI_ACTION_DEBUG_ERROR)
|
UI_MENU_ACTIONCOMMAND_T(ui_menu_debug_error, UI_TEXT_DBG_ERROR_ID, UI_ACTION_DEBUG_ERROR)
|
||||||
UI_MENU_ACTIONCOMMAND_T(ui_menu_debug_dryrun, UI_TEXT_DBG_DRYRUN_ID, UI_ACTION_DEBUG_DRYRUN)
|
UI_MENU_ACTIONCOMMAND_T(ui_menu_debug_dryrun, UI_TEXT_DBG_DRYRUN_ID, UI_ACTION_DEBUG_DRYRUN)
|
||||||
|
UI_MENU_ACTIONCOMMAND_T(ui_menu_debug_endstop, UI_TEXT_DBG_ENDSTOP_ID, UI_ACTION_DEBUG_ENDSTOP)
|
||||||
|
|
||||||
#define UI_MENU_DEBUGGING {UI_MENU_ADDCONDBACK &ui_menu_debug_echo,&ui_menu_debug_info,&ui_menu_debug_error,&ui_menu_debug_dryrun}
|
#define UI_MENU_DEBUGGING {UI_MENU_ADDCONDBACK &ui_menu_debug_echo,&ui_menu_debug_info,&ui_menu_debug_error,&ui_menu_debug_dryrun,&ui_menu_debug_endstop}
|
||||||
UI_MENU(ui_menu_debugging,UI_MENU_DEBUGGING,4 + UI_MENU_BACKCNT)
|
UI_MENU(ui_menu_debugging, UI_MENU_DEBUGGING, 5 + UI_MENU_BACKCNT)
|
||||||
|
|
||||||
// **** Acceleration settings
|
// **** Acceleration settings
|
||||||
#if DRIVE_SYSTEM != DELTA
|
#if DRIVE_SYSTEM != DELTA
|
||||||
|
|
Loading…
Reference in a new issue