Calibration process added

This commit is contained in:
michalprusa 2016-04-28 14:50:25 +02:00
parent 1ce1088d6f
commit 7bfe91483d
12 changed files with 1303 additions and 1120 deletions

View file

@ -10,10 +10,13 @@
#define EEPROM_SILENT 4095
#define EEPROM_BABYSTEP_X 4093
#define EEPROM_BABYSTEP_Y 4091
#define EEPROM_BABYSTEP_Z 4089
#define EEPROM_LANG 4088
#define EEPROM_LANG 4094
#define EEPROM_BABYSTEP_X 4092
#define EEPROM_BABYSTEP_Y 4090
#define EEPROM_BABYSTEP_Z 4088
#define EEPROM_BABYSTEP_Z_SET 4087
#define EEPROM_BABYSTEP_Z0 4085
// This configuration file contains the basic settings.

View file

@ -2268,6 +2268,18 @@ void process_commands()
plan_buffer_line(current_position[X_AXIS], current_position[X_AXIS], current_position[Z_AXIS], current_position[E_AXIS], XY_AXIS_FEEDRATE, active_extruder);
st_synchronize();
if(card.sdprinting) {
if(eeprom_read_byte((unsigned char*)EEPROM_BABYSTEP_Z_SET) == 0x01){
EEPROM_read_B(EEPROM_BABYSTEP_Z,&babystepLoad[2]);
babystepsTodo[Z_AXIS] = babystepLoad[2];
//lcd_adjust_z();
}
}
}
break;
@ -2309,8 +2321,54 @@ void process_commands()
SERIAL_PROTOCOL_F(current_position[Z_AXIS], 5);
SERIAL_PROTOCOLPGM("\n");
break;
/**
* G83: Babystep in Z and store to EEPROM
*/
case 83:
{
int babystepz = code_seen('S') ? code_value() : 0;
int BabyPosition = code_seen('P') ? code_value() : 0;
if (babystepz != 0) {
if (BabyPosition > 4) {
SERIAL_PROTOCOLLNPGM("Index out of bounds");
}else{
// Save it to the eeprom
babystepLoad[2] = babystepz;
EEPROM_save_B(EEPROM_BABYSTEP_Z0+(BabyPosition*2),&babystepLoad[2]);
// adjist the Z
babystepsTodo[Z_AXIS] = babystepLoad[2];
}
}
}
break;
/**
* G84: UNDO Babystep Z (move Z axis back)
*/
case 84:
babystepsTodo[Z_AXIS] = -babystepLoad[2];
break;
/**
* G85: Pick best babystep
*/
case 85:
lcd_pick_babystep();
break;
/**
* G86: Babystep in Z and store to EEPROM
*/
case 86:
eeprom_write_byte((unsigned char*)EEPROM_BABYSTEP_Z_SET, 0xFF);
break;
#endif // ENABLE_MESH_BED_LEVELING
case 90: // G90
relative_mode = false;
break;

File diff suppressed because it is too large Load diff

View file

@ -125,109 +125,110 @@ extern const char** MSG_ALL[];
#define MSG_BABYSTEP_Z MSG_ALL[lang_selected][119]
#define MSG_ENDSTOP_ABORT MSG_ALL[lang_selected][120]
#define MSG_ADJUSTZ MSG_ALL[lang_selected][121]
#define MSG_HOMEYZ MSG_ALL[lang_selected][122]
#define MSG_SETTINGS MSG_ALL[lang_selected][123]
#define MSG_PREHEAT MSG_ALL[lang_selected][124]
#define MSG_UNLOAD_FILAMENT MSG_ALL[lang_selected][125]
#define MSG_LOAD_FILAMENT MSG_ALL[lang_selected][126]
#define MSG_RECTRACT MSG_ALL[lang_selected][127]
#define MSG_ERROR MSG_ALL[lang_selected][128]
#define MSG_PREHEAT_NOZZLE MSG_ALL[lang_selected][129]
#define MSG_SUPPORT MSG_ALL[lang_selected][130]
#define MSG_CORRECTLY MSG_ALL[lang_selected][131]
#define MSG_YES MSG_ALL[lang_selected][132]
#define MSG_NO MSG_ALL[lang_selected][133]
#define MSG_NOT_LOADED MSG_ALL[lang_selected][134]
#define MSG_NOT_COLOR MSG_ALL[lang_selected][135]
#define MSG_LOADING_FILAMENT MSG_ALL[lang_selected][136]
#define MSG_PLEASE_WAIT MSG_ALL[lang_selected][137]
#define MSG_LOADING_COLOR MSG_ALL[lang_selected][138]
#define MSG_CHANGE_SUCCESS MSG_ALL[lang_selected][139]
#define MSG_PRESS MSG_ALL[lang_selected][140]
#define MSG_INSERT_FILAMENT MSG_ALL[lang_selected][141]
#define MSG_CHANGING_FILAMENT MSG_ALL[lang_selected][142]
#define MSG_SILENT_MODE_ON MSG_ALL[lang_selected][143]
#define MSG_SILENT_MODE_OFF MSG_ALL[lang_selected][144]
#define MSG_REBOOT MSG_ALL[lang_selected][145]
#define MSG_TAKE_EFFECT MSG_ALL[lang_selected][146]
#define MSG_Enqueing MSG_ALL[lang_selected][147]
#define MSG_POWERUP MSG_ALL[lang_selected][148]
#define MSG_EXTERNAL_RESET MSG_ALL[lang_selected][149]
#define MSG_BROWNOUT_RESET MSG_ALL[lang_selected][150]
#define MSG_WATCHDOG_RESET MSG_ALL[lang_selected][151]
#define MSG_SOFTWARE_RESET MSG_ALL[lang_selected][152]
#define MSG_AUTHOR MSG_ALL[lang_selected][153]
#define MSG_CONFIGURATION_VER MSG_ALL[lang_selected][154]
#define MSG_FREE_MEMORY MSG_ALL[lang_selected][155]
#define MSG_PLANNER_BUFFER_BYTES MSG_ALL[lang_selected][156]
#define MSG_OK MSG_ALL[lang_selected][157]
#define MSG_FILE_SAVED MSG_ALL[lang_selected][158]
#define MSG_ERR_LINE_NO MSG_ALL[lang_selected][159]
#define MSG_ERR_CHECKSUM_MISMATCH MSG_ALL[lang_selected][160]
#define MSG_ERR_NO_CHECKSUM MSG_ALL[lang_selected][161]
#define MSG_ERR_NO_LINENUMBER_WITH_CHECKSUM MSG_ALL[lang_selected][162]
#define MSG_FILE_PRINTED MSG_ALL[lang_selected][163]
#define MSG_BEGIN_FILE_LIST MSG_ALL[lang_selected][164]
#define MSG_END_FILE_LIST MSG_ALL[lang_selected][165]
#define MSG_M104_INVALID_EXTRUDER MSG_ALL[lang_selected][166]
#define MSG_M105_INVALID_EXTRUDER MSG_ALL[lang_selected][167]
#define MSG_M200_INVALID_EXTRUDER MSG_ALL[lang_selected][168]
#define MSG_M218_INVALID_EXTRUDER MSG_ALL[lang_selected][169]
#define MSG_M221_INVALID_EXTRUDER MSG_ALL[lang_selected][170]
#define MSG_ERR_NO_THERMISTORS MSG_ALL[lang_selected][171]
#define MSG_M109_INVALID_EXTRUDER MSG_ALL[lang_selected][172]
#define MSG_HEATING MSG_ALL[lang_selected][173]
#define MSG_HEATING_COMPLETE MSG_ALL[lang_selected][174]
#define MSG_BED_HEATING MSG_ALL[lang_selected][175]
#define MSG_BED_DONE MSG_ALL[lang_selected][176]
#define MSG_M115_REPORT MSG_ALL[lang_selected][177]
#define MSG_COUNT_X MSG_ALL[lang_selected][178]
#define MSG_ERR_KILLED MSG_ALL[lang_selected][179]
#define MSG_ERR_STOPPED MSG_ALL[lang_selected][180]
#define MSG_RESEND MSG_ALL[lang_selected][181]
#define MSG_UNKNOWN_COMMAND MSG_ALL[lang_selected][182]
#define MSG_ACTIVE_EXTRUDER MSG_ALL[lang_selected][183]
#define MSG_INVALID_EXTRUDER MSG_ALL[lang_selected][184]
#define MSG_X_MIN MSG_ALL[lang_selected][185]
#define MSG_X_MAX MSG_ALL[lang_selected][186]
#define MSG_Y_MIN MSG_ALL[lang_selected][187]
#define MSG_Y_MAX MSG_ALL[lang_selected][188]
#define MSG_Z_MIN MSG_ALL[lang_selected][189]
#define MSG_Z_MAX MSG_ALL[lang_selected][190]
#define MSG_M119_REPORT MSG_ALL[lang_selected][191]
#define MSG_ENDSTOP_HIT MSG_ALL[lang_selected][192]
#define MSG_ENDSTOP_OPEN MSG_ALL[lang_selected][193]
#define MSG_HOTEND_OFFSET MSG_ALL[lang_selected][194]
#define MSG_SD_CANT_OPEN_SUBDIR MSG_ALL[lang_selected][195]
#define MSG_SD_INIT_FAIL MSG_ALL[lang_selected][196]
#define MSG_SD_VOL_INIT_FAIL MSG_ALL[lang_selected][197]
#define MSG_SD_OPENROOT_FAIL MSG_ALL[lang_selected][198]
#define MSG_SD_CARD_OK MSG_ALL[lang_selected][199]
#define MSG_SD_WORKDIR_FAIL MSG_ALL[lang_selected][200]
#define MSG_SD_OPEN_FILE_FAIL MSG_ALL[lang_selected][201]
#define MSG_SD_FILE_OPENED MSG_ALL[lang_selected][202]
#define MSG_SD_SIZE MSG_ALL[lang_selected][203]
#define MSG_SD_FILE_SELECTED MSG_ALL[lang_selected][204]
#define MSG_SD_WRITE_TO_FILE MSG_ALL[lang_selected][205]
#define MSG_SD_PRINTING_BYTE MSG_ALL[lang_selected][206]
#define MSG_SD_NOT_PRINTING MSG_ALL[lang_selected][207]
#define MSG_SD_ERR_WRITE_TO_FILE MSG_ALL[lang_selected][208]
#define MSG_SD_CANT_ENTER_SUBDIR MSG_ALL[lang_selected][209]
#define MSG_STEPPER_TOO_HIGH MSG_ALL[lang_selected][210]
#define MSG_ENDSTOPS_HIT MSG_ALL[lang_selected][211]
#define MSG_ERR_COLD_EXTRUDE_STOP MSG_ALL[lang_selected][212]
#define MSG_ERR_LONG_EXTRUDE_STOP MSG_ALL[lang_selected][213]
#define MSG_BABYSTEPPING_X MSG_ALL[lang_selected][214]
#define MSG_BABYSTEPPING_Y MSG_ALL[lang_selected][215]
#define MSG_BABYSTEPPING_Z MSG_ALL[lang_selected][216]
#define MSG_SERIAL_ERROR_MENU_STRUCTURE MSG_ALL[lang_selected][217]
#define MSG_LANGUAGE_NAME MSG_ALL[lang_selected][218]
#define MSG_LANGUAGE_SELECT MSG_ALL[lang_selected][219]
#define MSG_PRUSA3D MSG_ALL[lang_selected][220]
#define MSG_PRUSA3D_FORUM MSG_ALL[lang_selected][221]
#define MSG_PRUSA3D_HOWTO MSG_ALL[lang_selected][222]
#define LANGUAGE_NAME 218
#define LANGUAGE_SELECT 219
#define MSG_PICK_Z MSG_ALL[lang_selected][122]
#define MSG_HOMEYZ MSG_ALL[lang_selected][123]
#define MSG_SETTINGS MSG_ALL[lang_selected][124]
#define MSG_PREHEAT MSG_ALL[lang_selected][125]
#define MSG_UNLOAD_FILAMENT MSG_ALL[lang_selected][126]
#define MSG_LOAD_FILAMENT MSG_ALL[lang_selected][127]
#define MSG_RECTRACT MSG_ALL[lang_selected][128]
#define MSG_ERROR MSG_ALL[lang_selected][129]
#define MSG_PREHEAT_NOZZLE MSG_ALL[lang_selected][130]
#define MSG_SUPPORT MSG_ALL[lang_selected][131]
#define MSG_CORRECTLY MSG_ALL[lang_selected][132]
#define MSG_YES MSG_ALL[lang_selected][133]
#define MSG_NO MSG_ALL[lang_selected][134]
#define MSG_NOT_LOADED MSG_ALL[lang_selected][135]
#define MSG_NOT_COLOR MSG_ALL[lang_selected][136]
#define MSG_LOADING_FILAMENT MSG_ALL[lang_selected][137]
#define MSG_PLEASE_WAIT MSG_ALL[lang_selected][138]
#define MSG_LOADING_COLOR MSG_ALL[lang_selected][139]
#define MSG_CHANGE_SUCCESS MSG_ALL[lang_selected][140]
#define MSG_PRESS MSG_ALL[lang_selected][141]
#define MSG_INSERT_FILAMENT MSG_ALL[lang_selected][142]
#define MSG_CHANGING_FILAMENT MSG_ALL[lang_selected][143]
#define MSG_SILENT_MODE_ON MSG_ALL[lang_selected][144]
#define MSG_SILENT_MODE_OFF MSG_ALL[lang_selected][145]
#define MSG_REBOOT MSG_ALL[lang_selected][146]
#define MSG_TAKE_EFFECT MSG_ALL[lang_selected][147]
#define MSG_Enqueing MSG_ALL[lang_selected][148]
#define MSG_POWERUP MSG_ALL[lang_selected][149]
#define MSG_EXTERNAL_RESET MSG_ALL[lang_selected][150]
#define MSG_BROWNOUT_RESET MSG_ALL[lang_selected][151]
#define MSG_WATCHDOG_RESET MSG_ALL[lang_selected][152]
#define MSG_SOFTWARE_RESET MSG_ALL[lang_selected][153]
#define MSG_AUTHOR MSG_ALL[lang_selected][154]
#define MSG_CONFIGURATION_VER MSG_ALL[lang_selected][155]
#define MSG_FREE_MEMORY MSG_ALL[lang_selected][156]
#define MSG_PLANNER_BUFFER_BYTES MSG_ALL[lang_selected][157]
#define MSG_OK MSG_ALL[lang_selected][158]
#define MSG_FILE_SAVED MSG_ALL[lang_selected][159]
#define MSG_ERR_LINE_NO MSG_ALL[lang_selected][160]
#define MSG_ERR_CHECKSUM_MISMATCH MSG_ALL[lang_selected][161]
#define MSG_ERR_NO_CHECKSUM MSG_ALL[lang_selected][162]
#define MSG_ERR_NO_LINENUMBER_WITH_CHECKSUM MSG_ALL[lang_selected][163]
#define MSG_FILE_PRINTED MSG_ALL[lang_selected][164]
#define MSG_BEGIN_FILE_LIST MSG_ALL[lang_selected][165]
#define MSG_END_FILE_LIST MSG_ALL[lang_selected][166]
#define MSG_M104_INVALID_EXTRUDER MSG_ALL[lang_selected][167]
#define MSG_M105_INVALID_EXTRUDER MSG_ALL[lang_selected][168]
#define MSG_M200_INVALID_EXTRUDER MSG_ALL[lang_selected][169]
#define MSG_M218_INVALID_EXTRUDER MSG_ALL[lang_selected][170]
#define MSG_M221_INVALID_EXTRUDER MSG_ALL[lang_selected][171]
#define MSG_ERR_NO_THERMISTORS MSG_ALL[lang_selected][172]
#define MSG_M109_INVALID_EXTRUDER MSG_ALL[lang_selected][173]
#define MSG_HEATING MSG_ALL[lang_selected][174]
#define MSG_HEATING_COMPLETE MSG_ALL[lang_selected][175]
#define MSG_BED_HEATING MSG_ALL[lang_selected][176]
#define MSG_BED_DONE MSG_ALL[lang_selected][177]
#define MSG_M115_REPORT MSG_ALL[lang_selected][178]
#define MSG_COUNT_X MSG_ALL[lang_selected][179]
#define MSG_ERR_KILLED MSG_ALL[lang_selected][180]
#define MSG_ERR_STOPPED MSG_ALL[lang_selected][181]
#define MSG_RESEND MSG_ALL[lang_selected][182]
#define MSG_UNKNOWN_COMMAND MSG_ALL[lang_selected][183]
#define MSG_ACTIVE_EXTRUDER MSG_ALL[lang_selected][184]
#define MSG_INVALID_EXTRUDER MSG_ALL[lang_selected][185]
#define MSG_X_MIN MSG_ALL[lang_selected][186]
#define MSG_X_MAX MSG_ALL[lang_selected][187]
#define MSG_Y_MIN MSG_ALL[lang_selected][188]
#define MSG_Y_MAX MSG_ALL[lang_selected][189]
#define MSG_Z_MIN MSG_ALL[lang_selected][190]
#define MSG_Z_MAX MSG_ALL[lang_selected][191]
#define MSG_M119_REPORT MSG_ALL[lang_selected][192]
#define MSG_ENDSTOP_HIT MSG_ALL[lang_selected][193]
#define MSG_ENDSTOP_OPEN MSG_ALL[lang_selected][194]
#define MSG_HOTEND_OFFSET MSG_ALL[lang_selected][195]
#define MSG_SD_CANT_OPEN_SUBDIR MSG_ALL[lang_selected][196]
#define MSG_SD_INIT_FAIL MSG_ALL[lang_selected][197]
#define MSG_SD_VOL_INIT_FAIL MSG_ALL[lang_selected][198]
#define MSG_SD_OPENROOT_FAIL MSG_ALL[lang_selected][199]
#define MSG_SD_CARD_OK MSG_ALL[lang_selected][200]
#define MSG_SD_WORKDIR_FAIL MSG_ALL[lang_selected][201]
#define MSG_SD_OPEN_FILE_FAIL MSG_ALL[lang_selected][202]
#define MSG_SD_FILE_OPENED MSG_ALL[lang_selected][203]
#define MSG_SD_SIZE MSG_ALL[lang_selected][204]
#define MSG_SD_FILE_SELECTED MSG_ALL[lang_selected][205]
#define MSG_SD_WRITE_TO_FILE MSG_ALL[lang_selected][206]
#define MSG_SD_PRINTING_BYTE MSG_ALL[lang_selected][207]
#define MSG_SD_NOT_PRINTING MSG_ALL[lang_selected][208]
#define MSG_SD_ERR_WRITE_TO_FILE MSG_ALL[lang_selected][209]
#define MSG_SD_CANT_ENTER_SUBDIR MSG_ALL[lang_selected][210]
#define MSG_STEPPER_TOO_HIGH MSG_ALL[lang_selected][211]
#define MSG_ENDSTOPS_HIT MSG_ALL[lang_selected][212]
#define MSG_ERR_COLD_EXTRUDE_STOP MSG_ALL[lang_selected][213]
#define MSG_ERR_LONG_EXTRUDE_STOP MSG_ALL[lang_selected][214]
#define MSG_BABYSTEPPING_X MSG_ALL[lang_selected][215]
#define MSG_BABYSTEPPING_Y MSG_ALL[lang_selected][216]
#define MSG_BABYSTEPPING_Z MSG_ALL[lang_selected][217]
#define MSG_SERIAL_ERROR_MENU_STRUCTURE MSG_ALL[lang_selected][218]
#define MSG_LANGUAGE_NAME MSG_ALL[lang_selected][219]
#define MSG_LANGUAGE_SELECT MSG_ALL[lang_selected][220]
#define MSG_PRUSA3D MSG_ALL[lang_selected][221]
#define MSG_PRUSA3D_FORUM MSG_ALL[lang_selected][222]
#define MSG_PRUSA3D_HOWTO MSG_ALL[lang_selected][223]
#define LANGUAGE_NAME 219
#define LANGUAGE_SELECT 220
#define LANG_NUM 5
char* CAT2(const char *s1,const char *s2);
char* CAT4(const char *s1,const char *s2,const char *s3,const char *s4);

View file

@ -130,6 +130,7 @@
#define MSG_BABYSTEP_Z "Doladeni osy Z"
#define MSG_ENDSTOP_ABORT "Endstop abort"
#define MSG_ADJUSTZ "Auto doladit Z ?"
#define MSG_PICK_Z "Vyberte vytisk"
#define MSG_HOMEYZ "Kalibrovat Z"
#define MSG_SETTINGS "Nastaveni"

View file

@ -130,6 +130,7 @@
#define MSG_BABYSTEP_Z "Live adjust Z"
#define MSG_ENDSTOP_ABORT "Endstop abort"
#define MSG_ADJUSTZ "Auto adjust Z ?"
#define MSG_PICK_Z "Pick print"
#define MSG_HOMEYZ "Calibrate Z"
#define MSG_SETTINGS "Settings"

View file

@ -43,6 +43,7 @@
#define MSG_FILAMENTCHANGE "Cambiar filamento"
#define MSG_BABYSTEP_Z "Micropaso Z"
#define MSG_ADJUSTZ "Auto Micropaso Z?"
#define MSG_PICK_Z "Vyberte vytisk"
#define MSG_HOMEYZ "Graduar Z"
#define MSG_SETTINGS "Ajuste"
#define MSG_PREHEAT "Precalentar"

View file

@ -43,6 +43,7 @@
#define MSG_FILAMENTCHANGE "Cambiare filamento"
#define MSG_BABYSTEP_Z "Babystep Z"
#define MSG_ADJUSTZ "Auto regolare Z ?"
#define MSG_PICK_Z "Vyberte vytisk"
#define MSG_HOMEYZ "Calibrate Z"
#define MSG_SETTINGS "Impostazioni"
#define MSG_PREHEAT "Preriscalda"

View file

@ -43,6 +43,7 @@
#define MSG_FILAMENTCHANGE "Wymienic filament"
#define MSG_BABYSTEP_Z "Dostrojenie osy Z"
#define MSG_ADJUSTZ "Autodostroic Z?"
#define MSG_PICK_Z "Vyberte vytisk"
#define MSG_HOMEYZ "Kalibrowac Z"
#define MSG_SETTINGS "Ustawienia"
#define MSG_PREHEAT "Grzanie"

View file

@ -996,7 +996,112 @@ void lcd_adjust_z() {
}
void lcd_pick_babystep(){
int enc_dif = 0;
int cursor_pos = 1;
int fsm = 0;
lcd_implementation_clear();
lcd.setCursor(0, 0);
lcd_printPGM(MSG_PICK_Z);
lcd.setCursor(3, 2);
lcd.print("1");
lcd.setCursor(3, 3);
lcd.print("2");
lcd.setCursor(12, 2);
lcd.print("3");
lcd.setCursor(12, 3);
lcd.print("4");
lcd.setCursor(1, 2);
lcd.print(">");
enc_dif = encoderDiff;
while (fsm == 0) {
manage_heater();
manage_inactivity(true);
if ( abs((enc_dif - encoderDiff)) > 4 ) {
if ( (abs(enc_dif - encoderDiff)) > 1 ) {
if (enc_dif > encoderDiff ) {
cursor_pos --;
}
if (enc_dif < encoderDiff ) {
cursor_pos ++;
}
if (cursor_pos > 4) {
cursor_pos = 4;
}
if (cursor_pos < 1) {
cursor_pos = 1;
}
lcd.setCursor(1, 2);
lcd.print(" ");
lcd.setCursor(1, 3);
lcd.print(" ");
lcd.setCursor(10, 2);
lcd.print(" ");
lcd.setCursor(10, 3);
lcd.print(" ");
if (cursor_pos < 3) {
lcd.setCursor(1, cursor_pos+1);
lcd.print(">");
}else{
lcd.setCursor(10, cursor_pos-1);
lcd.print(">");
}
enc_dif = encoderDiff;
delay(100);
}
}
if (lcd_clicked()) {
fsm = cursor_pos;
EEPROM_read_B(EEPROM_BABYSTEP_Z0+((fsm-1)*2),&babystepMem[2]);
EEPROM_save_B(EEPROM_BABYSTEP_Z,&babystepMem[2]);
eeprom_write_byte((unsigned char*)EEPROM_BABYSTEP_Z_SET, 0x01);
delay(500);
}
};
lcd_implementation_clear();
lcd_return_to_status();
}
void lcd_move_menu_axis()
{

View file

@ -12,6 +12,7 @@
void lcd_setalertstatuspgm(const char* message);
void lcd_reset_alert_level();
void lcd_adjust_z();
void lcd_pick_babystep();
void lcd_alright();
void EEPROM_save_B(int pos, int* value);
void EEPROM_read_B(int pos, int* value);

View file

@ -42,7 +42,7 @@ const bool Z_MIN_ENDSTOP_INVERTING = false; // set to true to invert the logic o
#define Y_MAX_POS 210
#define Y_MIN_POS -1.2
#define Z_MAX_POS 210
#define Z_MIN_POS 0.23
#define Z_MIN_POS 0.25
#define NUM_AXIS 4 // The axis order in all axis related arrays is X, Y, Z, E
#define HOMING_FEEDRATE {3000, 3000, 800, 0} // set the homing speeds (mm/min)
@ -195,7 +195,7 @@ const bool Z_MIN_ENDSTOP_INVERTING = false; // set to true to invert the logic o
// If your configuration is significantly different than this and you don't understand the issues involved, you probably
// shouldn't use bed PID until someone else verifies your hardware works.
// If this is enabled, find your own PID constants below.
//#define PIDTEMPBED
#define PIDTEMPBED
//
//#define BED_LIMIT_SWITCHING