Added HOME_POS. This adds the posibility to make the center 0
Updated the Xsteps ... settings via the LCD menu
This commit is contained in:
parent
df1437bd86
commit
ae3e7586c6
5 changed files with 58 additions and 34 deletions
|
@ -146,6 +146,11 @@ const bool Z_ENDSTOPS_INVERTING = false; // set to true to invert the logic of t
|
|||
#define Y_MAX_LENGTH 185
|
||||
#define Z_MAX_LENGTH 90
|
||||
|
||||
// The position of the homing switches. Use MAX_LENGTH * -0.5 if the center should be 0, 0, 0
|
||||
#define X_HOME_POS 0
|
||||
#define Y_HOME_POS 0
|
||||
#define Z_HOME_POS 0
|
||||
|
||||
//// MOVEMENT SETTINGS
|
||||
#define NUM_AXIS 4 // The axis order in all axis related arrays is X, Y, Z, E
|
||||
#define HOMING_FEEDRATE {1500, 1500, 80, 0} // {50*60, 50*60, 4*60, 0} // set the homing speeds (mm/min)
|
||||
|
@ -182,7 +187,7 @@ const bool Z_ENDSTOPS_INVERTING = false; // set to true to invert the logic of t
|
|||
//#define ULTRA_LCD //general lcd support, also 16x2
|
||||
#define SDSUPPORT // Enable SD Card Support in Hardware Console
|
||||
|
||||
//#define ULTIPANEL
|
||||
#define ULTIPANEL
|
||||
#ifdef ULTIPANEL
|
||||
#define NEWPANEL //enable this if you have a click-encoder panel
|
||||
#define SDSUPPORT
|
||||
|
|
|
@ -509,7 +509,7 @@ bool code_seen(char code)
|
|||
feedrate = homing_feedrate[LETTER##_AXIS]/2 ; \
|
||||
plan_buffer_line(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], destination[E_AXIS], feedrate/60, active_extruder); \
|
||||
\
|
||||
current_position[LETTER##_AXIS] = (LETTER##_HOME_DIR == -1) ? 0 : LETTER##_MAX_LENGTH;\
|
||||
current_position[LETTER##_AXIS] = (LETTER##_HOME_DIR == -1) ? LETTER##_HOME_POS : LETTER##_MAX_LENGTH;\
|
||||
destination[LETTER##_AXIS] = current_position[LETTER##_AXIS];\
|
||||
feedrate = 0.0;\
|
||||
st_synchronize();\
|
||||
|
@ -577,8 +577,8 @@ void process_commands()
|
|||
feedrate =homing_feedrate[Y_AXIS];
|
||||
prepare_move();
|
||||
|
||||
current_position[X_AXIS] = (X_HOME_DIR == -1) ? 0 : X_MAX_LENGTH;
|
||||
current_position[Y_AXIS] = (Y_HOME_DIR == -1) ? 0 : Y_MAX_LENGTH;
|
||||
current_position[X_AXIS] = (X_HOME_DIR == -1) ? X_HOME_POS : X_MAX_LENGTH;
|
||||
current_position[Y_AXIS] = (Y_HOME_DIR == -1) ? Y_HOME_POS : Y_MAX_LENGTH;
|
||||
plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]);
|
||||
destination[X_AXIS] = current_position[X_AXIS];
|
||||
destination[Y_AXIS] = current_position[Y_AXIS];
|
||||
|
|
|
@ -25,6 +25,7 @@
|
|||
#define MSG_PREHEAT " Preheat"
|
||||
#define MSG_COOLDOWN " Cooldown"
|
||||
#define MSG_EXTRUDE " Extrude"
|
||||
#define MSG_MOVE_AXIS " Move Axis \x7E"
|
||||
#define MSG_SPEED " Speed:"
|
||||
#define MSG_NOZZLE " \002Nozzle:"
|
||||
#define MSG_BED " \002Bed:"
|
||||
|
@ -52,6 +53,9 @@
|
|||
#define MSG_VTRAV_MIN " VTrav min:"
|
||||
#define MSG_AMAX " Amax "
|
||||
#define MSG_A_RETRACT " A-retract:"
|
||||
#define MSG_XSTEPS " Xsteps/mm:"
|
||||
#define MSG_YSTEPS " Ysteps/mm:"
|
||||
#define MSG_ZSTEPS " Zsteps/mm:"
|
||||
#define MSG_ESTEPS " Esteps/mm:"
|
||||
#define MSG_MAIN_WIDE " Main \003"
|
||||
#define MSG_TEMPERATURE_WIDE " Temperature \x7E"
|
||||
|
@ -86,6 +90,7 @@
|
|||
#define MSG_PREHEAT " Preheat"
|
||||
#define MSG_COOLDOWN " Cooldown"
|
||||
#define MSG_EXTRUDE " Extrude"
|
||||
#define MSG_MOVE_AXIS " Move Axis \x7E"
|
||||
#define MSG_SPEED " Speed:"
|
||||
#define MSG_NOZZLE " \002Nozzle:"
|
||||
#define MSG_BED " \002Bed:"
|
||||
|
@ -113,6 +118,9 @@
|
|||
#define MSG_VTRAV_MIN " VTrav min:"
|
||||
#define MSG_AMAX " Amax "
|
||||
#define MSG_A_RETRACT " A-retract:"
|
||||
#define MSG_XSTEPS " Xsteps/mm:"
|
||||
#define MSG_YSTEPS " Ysteps/mm:"
|
||||
#define MSG_ZSTEPS " Zsteps/mm:"
|
||||
#define MSG_ESTEPS " Esteps/mm:"
|
||||
#define MSG_MAIN_WIDE " Main \003"
|
||||
#define MSG_TEMPERATURE_WIDE " Temperature \x7E"
|
||||
|
@ -147,6 +155,7 @@
|
|||
#define MSG_PREHEAT " Preheat"
|
||||
#define MSG_COOLDOWN " Cooldown"
|
||||
#define MSG_EXTRUDE " Extrude"
|
||||
#define MSG_MOVE_AXIS " Move Axis \x7E"
|
||||
#define MSG_SPEED " Speed:"
|
||||
#define MSG_NOZZLE " \002Nozzle:"
|
||||
#define MSG_BED " \002Bed:"
|
||||
|
@ -174,6 +183,9 @@
|
|||
#define MSG_VTRAV_MIN " VTrav min:"
|
||||
#define MSG_AMAX " Amax "
|
||||
#define MSG_A_RETRACT " A-retract:"
|
||||
#define MSG_XSTEPS " Xsteps/mm:"
|
||||
#define MSG_YSTEPS " Ysteps/mm:"
|
||||
#define MSG_ZSTEPS " Zsteps/mm:"
|
||||
#define MSG_ESTEPS " Esteps/mm:"
|
||||
#define MSG_MAIN_WIDE " Main \003"
|
||||
#define MSG_TEMPERATURE_WIDE " Temperature \x7E"
|
||||
|
@ -208,6 +220,7 @@
|
|||
#define MSG_PREHEAT " Preheat"
|
||||
#define MSG_COOLDOWN " Cooldown"
|
||||
#define MSG_EXTRUDE " Extrude"
|
||||
#define MSG_MOVE_AXIS " Move Axis \x7E"
|
||||
#define MSG_SPEED " Speed:"
|
||||
#define MSG_NOZZLE " \002Nozzle:"
|
||||
#define MSG_BED " \002Bed:"
|
||||
|
@ -235,6 +248,9 @@
|
|||
#define MSG_VTRAV_MIN " VTrav min:"
|
||||
#define MSG_AMAX " Amax "
|
||||
#define MSG_A_RETRACT " A-retract:"
|
||||
#define MSG_XSTEPS " Xsteps/mm:"
|
||||
#define MSG_YSTEPS " Ysteps/mm:"
|
||||
#define MSG_ZSTEPS " Zsteps/mm:"
|
||||
#define MSG_ESTEPS " Esteps/mm:"
|
||||
#define MSG_MAIN_WIDE " Main \003"
|
||||
#define MSG_TEMPERATURE_WIDE " Temperature \x7E"
|
||||
|
@ -269,6 +285,7 @@
|
|||
#define MSG_PREHEAT " Preheat"
|
||||
#define MSG_COOLDOWN " Cooldown"
|
||||
#define MSG_EXTRUDE " Extrude"
|
||||
#define MSG_MOVE_AXIS " Move Axis \x7E"
|
||||
#define MSG_SPEED " Speed:"
|
||||
#define MSG_NOZZLE " \002Nozzle:"
|
||||
#define MSG_BED " \002Bed:"
|
||||
|
@ -296,6 +313,9 @@
|
|||
#define MSG_VTRAV_MIN " VTrav min:"
|
||||
#define MSG_AMAX " Amax "
|
||||
#define MSG_A_RETRACT " A-retract:"
|
||||
#define MSG_XSTEPS " Xsteps/mm:"
|
||||
#define MSG_YSTEPS " Ysteps/mm:"
|
||||
#define MSG_ZSTEPS " Zsteps/mm:"
|
||||
#define MSG_ESTEPS " Esteps/mm:"
|
||||
#define MSG_MAIN_WIDE " Main \003"
|
||||
#define MSG_TEMPERATURE_WIDE " Temperature \x7E"
|
||||
|
|
|
@ -446,9 +446,9 @@ void plan_buffer_line(float &x, float &y, float &z, float &e, float feed_rate, u
|
|||
|
||||
|
||||
if (min_software_endstops) {
|
||||
if (x < 0) x = 0;
|
||||
if (y < 0) y = 0;
|
||||
if (z < 0) z = 0;
|
||||
if (x < X_HOME_POS) x = X_HOME_POS;
|
||||
if (y < Y_HOME_POS) y = Y_HOME_POS;
|
||||
if (z < Z_HOME_POS) z = Z_HOME_POS;
|
||||
}
|
||||
|
||||
if (max_software_endstops) {
|
||||
|
|
|
@ -372,7 +372,7 @@ void MainMenu::showStatus()
|
|||
if((currentz!=oldzpos)||force_lcd_update)
|
||||
{
|
||||
lcd.setCursor(10,1);
|
||||
lcdprintPGM("Z:");lcd.print(ftostr32(current_position[2]));
|
||||
lcdprintPGM("Z:");lcd.print(ftostr52(current_position[2]));
|
||||
oldzpos=currentz;
|
||||
}
|
||||
static int oldfeedmultiply=0;
|
||||
|
@ -411,7 +411,6 @@ void MainMenu::showStatus()
|
|||
lcd.setCursor(7,2);
|
||||
lcd.print(itostr3((int)percent));
|
||||
lcdprintPGM("%SD");
|
||||
|
||||
}
|
||||
|
||||
#else //smaller LCDS----------------------------------
|
||||
|
@ -485,7 +484,7 @@ void MainMenu::showPrepare()
|
|||
MENUITEM( lcdprintPGM(MSG_DISABLE_STEPPERS) , BLOCK;enquecommand("M84");beepshort(); ) ;
|
||||
break;
|
||||
case ItemP_home:
|
||||
MENUITEM( lcdprintPGM(MSG_AUTO_HOME) , BLOCK;enquecommand("G28 X0 Y0 Z0");beepshort(); ) ;
|
||||
MENUITEM( lcdprintPGM(MSG_AUTO_HOME) , BLOCK;enquecommand("G28");beepshort(); ) ;
|
||||
break;
|
||||
case ItemP_origin:
|
||||
MENUITEM( lcdprintPGM(MSG_SET_ORIGIN) , BLOCK;enquecommand("G92 X0 Y0 Z0");beepshort(); ) ;
|
||||
|
@ -500,7 +499,7 @@ void MainMenu::showPrepare()
|
|||
// MENUITEM( lcdprintPGM(" Extrude") , BLOCK;enquecommand("G92 E0");enquecommand("G1 F700 E50");beepshort(); ) ;
|
||||
// break;
|
||||
case ItemP_move:
|
||||
MENUITEM( lcdprintPGM(" Move Axis \x7E") , BLOCK;status=Sub_PrepareMove;beepshort(); );
|
||||
MENUITEM( lcdprintPGM(MSG_MOVE_AXIS) , BLOCK;status=Sub_PrepareMove;beepshort(); );
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
@ -664,7 +663,7 @@ void MainMenu::showAxisMove()
|
|||
}
|
||||
break;
|
||||
case ItemAM_E:
|
||||
MENUITEM( lcdprintPGM(" Extrude") , BLOCK;enquecommand("G92 E0");enquecommand("G1 F700 E5");beepshort(); ) ;
|
||||
MENUITEM( lcdprintPGM(MSG_EXTRUDE) , BLOCK;enquecommand("G92 E0");enquecommand("G1 F700 E5");beepshort(); ) ;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
@ -703,7 +702,7 @@ void MainMenu::showTune()
|
|||
if((activeline!=line) )
|
||||
break;
|
||||
|
||||
if(CLICKED) //nalogWrite(FAN_PIN, fanpwm);
|
||||
if(CLICKED) //AnalogWrite(FAN_PIN, fanpwm);
|
||||
{
|
||||
linechanging=!linechanging;
|
||||
if(linechanging)
|
||||
|
@ -1597,7 +1596,7 @@ void MainMenu::showControlMotion()
|
|||
{
|
||||
if(force_lcd_update)
|
||||
{
|
||||
lcd.setCursor(0,line);lcdprintPGM(" X steps/mm:");
|
||||
lcd.setCursor(0,line);lcdprintPGM(MSG_XSTEPS);
|
||||
lcd.setCursor(11,line);lcd.print(ftostr52(axis_steps_per_unit[0]));
|
||||
}
|
||||
|
||||
|
@ -1609,11 +1608,11 @@ void MainMenu::showControlMotion()
|
|||
linechanging=!linechanging;
|
||||
if(linechanging)
|
||||
{
|
||||
encoderpos=(int)axis_steps_per_unit[0];
|
||||
encoderpos=(int)(axis_steps_per_unit[0]*100.0);
|
||||
}
|
||||
else
|
||||
{
|
||||
float factor=float(encoderpos)/100/float(axis_steps_per_unit[0]);
|
||||
float factor=float(encoderpos)/100.0/float(axis_steps_per_unit[0]);
|
||||
position[X_AXIS]=lround(position[X_AXIS]*factor);
|
||||
//current_position[3]*=factor;
|
||||
axis_steps_per_unit[X_AXIS]= encoderpos/100.0;
|
||||
|
@ -1634,8 +1633,8 @@ void MainMenu::showControlMotion()
|
|||
{
|
||||
if(force_lcd_update)
|
||||
{
|
||||
lcd.setCursor(0,line);lcdprintPGM(" Y steps/mm:");
|
||||
lcd.setCursor(13,line);lcd.print(itostr4(axis_steps_per_unit[1]));
|
||||
lcd.setCursor(0,line);lcdprintPGM(MSG_YSTEPS);
|
||||
lcd.setCursor(11,line);lcd.print(ftostr52(axis_steps_per_unit[1]));
|
||||
}
|
||||
|
||||
if((activeline!=line) )
|
||||
|
@ -1646,14 +1645,14 @@ void MainMenu::showControlMotion()
|
|||
linechanging=!linechanging;
|
||||
if(linechanging)
|
||||
{
|
||||
encoderpos=(int)axis_steps_per_unit[1];
|
||||
encoderpos=(int)(axis_steps_per_unit[1]*100.0);
|
||||
}
|
||||
else
|
||||
{
|
||||
float factor=float(encoderpos)/float(axis_steps_per_unit[1]);
|
||||
float factor=float(encoderpos)/100.0/float(axis_steps_per_unit[1]);
|
||||
position[Y_AXIS]=lround(position[Y_AXIS]*factor);
|
||||
//current_position[3]*=factor;
|
||||
axis_steps_per_unit[Y_AXIS]= encoderpos;
|
||||
axis_steps_per_unit[Y_AXIS]= encoderpos/100.0;
|
||||
encoderpos=activeline*lcdslow;
|
||||
|
||||
}
|
||||
|
@ -1664,7 +1663,7 @@ void MainMenu::showControlMotion()
|
|||
{
|
||||
if(encoderpos<5) encoderpos=5;
|
||||
if(encoderpos>9999) encoderpos=9999;
|
||||
lcd.setCursor(13,line);lcd.print(itostr4(encoderpos));
|
||||
lcd.setCursor(11,line);lcd.print(ftostr52(encoderpos/100.0));
|
||||
}
|
||||
|
||||
}break;
|
||||
|
@ -1672,8 +1671,8 @@ void MainMenu::showControlMotion()
|
|||
{
|
||||
if(force_lcd_update)
|
||||
{
|
||||
lcd.setCursor(0,line);lcdprintPGM(" Z steps/mm:");
|
||||
lcd.setCursor(13,line);lcd.print(itostr4(axis_steps_per_unit[2]));
|
||||
lcd.setCursor(0,line);lcdprintPGM(MSG_ZSTEPS);
|
||||
lcd.setCursor(11,line);lcd.print(ftostr52(axis_steps_per_unit[2]));
|
||||
}
|
||||
|
||||
if((activeline!=line) )
|
||||
|
@ -1684,14 +1683,14 @@ void MainMenu::showControlMotion()
|
|||
linechanging=!linechanging;
|
||||
if(linechanging)
|
||||
{
|
||||
encoderpos=(int)axis_steps_per_unit[2];
|
||||
encoderpos=(int)(axis_steps_per_unit[2]*100.0);
|
||||
}
|
||||
else
|
||||
{
|
||||
float factor=float(encoderpos)/float(axis_steps_per_unit[2]);
|
||||
float factor=float(encoderpos)/100.0/float(axis_steps_per_unit[2]);
|
||||
position[Z_AXIS]=lround(position[Z_AXIS]*factor);
|
||||
//current_position[3]*=factor;
|
||||
axis_steps_per_unit[Z_AXIS]= encoderpos;
|
||||
axis_steps_per_unit[Z_AXIS]= encoderpos/100.0;
|
||||
encoderpos=activeline*lcdslow;
|
||||
|
||||
}
|
||||
|
@ -1702,7 +1701,7 @@ void MainMenu::showControlMotion()
|
|||
{
|
||||
if(encoderpos<5) encoderpos=5;
|
||||
if(encoderpos>9999) encoderpos=9999;
|
||||
lcd.setCursor(13,line);lcd.print(itostr4(encoderpos));
|
||||
lcd.setCursor(11,line);lcd.print(ftostr52(encoderpos/100.0));
|
||||
}
|
||||
|
||||
}break;
|
||||
|
@ -1712,7 +1711,7 @@ void MainMenu::showControlMotion()
|
|||
if(force_lcd_update)
|
||||
{
|
||||
lcd.setCursor(0,line);lcdprintPGM(MSG_ESTEPS);
|
||||
lcd.setCursor(13,line);lcd.print(itostr4(axis_steps_per_unit[3]));
|
||||
lcd.setCursor(11,line);lcd.print(ftostr52(axis_steps_per_unit[3]));
|
||||
}
|
||||
|
||||
if((activeline!=line) )
|
||||
|
@ -1723,14 +1722,14 @@ void MainMenu::showControlMotion()
|
|||
linechanging=!linechanging;
|
||||
if(linechanging)
|
||||
{
|
||||
encoderpos=(int)axis_steps_per_unit[3];
|
||||
encoderpos=(int)(axis_steps_per_unit[3]*100.0);
|
||||
}
|
||||
else
|
||||
{
|
||||
float factor=float(encoderpos)/float(axis_steps_per_unit[3]);
|
||||
float factor=float(encoderpos)/100.0/float(axis_steps_per_unit[3]);
|
||||
position[E_AXIS]=lround(position[E_AXIS]*factor);
|
||||
//current_position[3]*=factor;
|
||||
axis_steps_per_unit[E_AXIS]= encoderpos;
|
||||
axis_steps_per_unit[E_AXIS]= encoderpos/100.0;
|
||||
encoderpos=activeline*lcdslow;
|
||||
|
||||
}
|
||||
|
@ -1741,7 +1740,7 @@ void MainMenu::showControlMotion()
|
|||
{
|
||||
if(encoderpos<5) encoderpos=5;
|
||||
if(encoderpos>9999) encoderpos=9999;
|
||||
lcd.setCursor(13,line);lcd.print(itostr4(encoderpos));
|
||||
lcd.setCursor(11,line);lcd.print(ftostr52(encoderpos/100.0));
|
||||
}
|
||||
|
||||
}break;
|
||||
|
|
Reference in a new issue