diff options
Diffstat (limited to 'Tonokip_Firmware/Tonokip_Firmware.pde')
-rw-r--r-- | Tonokip_Firmware/Tonokip_Firmware.pde | 94 |
1 files changed, 50 insertions, 44 deletions
diff --git a/Tonokip_Firmware/Tonokip_Firmware.pde b/Tonokip_Firmware/Tonokip_Firmware.pde index 1957cf9..cb8e552 100644 --- a/Tonokip_Firmware/Tonokip_Firmware.pde +++ b/Tonokip_Firmware/Tonokip_Firmware.pde @@ -475,59 +475,66 @@ inline void process_commands() } feedrate = 0; - - if((X_MIN_PIN > -1 && X_HOME_DIR==-1) || (X_MAX_PIN > -1 && X_HOME_DIR==1)) { - current_position[0] = 0; - destination[0] = 1.5 * X_MAX_LENGTH * X_HOME_DIR; - feedrate = max_start_speed_units_per_second[0] * 60; - prepare_move(); + home_all_axis = !((code_seen(axis_codes[0])) || (code_seen(axis_codes[1])) || (code_seen(axis_codes[2]))); + + if((home_all_axis) || (code_seen('X'))) { + if((X_MIN_PIN > -1 && X_HOME_DIR==-1) || (X_MAX_PIN > -1 && X_HOME_DIR==1)) { + current_position[0] = 0; + destination[0] = 1.5 * X_MAX_LENGTH * X_HOME_DIR; + feedrate = max_start_speed_units_per_second[0] * 60; + prepare_move(); - current_position[0] = 0; - destination[0] = -1 * X_HOME_DIR; - prepare_move(); + current_position[0] = 0; + destination[0] = -1 * X_HOME_DIR; + prepare_move(); - destination[0] = 10 * X_HOME_DIR; - prepare_move(); + destination[0] = 10 * X_HOME_DIR; + prepare_move(); - current_position[0] = 0; - destination[0] = 0; - feedrate = 0; + current_position[0] = 0; + destination[0] = 0; + feedrate = 0; + } } - if((Y_MIN_PIN > -1 && Y_HOME_DIR==-1) || (Y_MAX_PIN > -1 && Y_HOME_DIR==1)) { - current_position[1] = 0; - destination[1] = 1.5 * Y_MAX_LENGTH * Y_HOME_DIR; - feedrate = max_start_speed_units_per_second[1] * 60; - prepare_move(); + if((home_all_axis) || (code_seen('X'))) { + if((Y_MIN_PIN > -1 && Y_HOME_DIR==-1) || (Y_MAX_PIN > -1 && Y_HOME_DIR==1)) { + current_position[1] = 0; + destination[1] = 1.5 * Y_MAX_LENGTH * Y_HOME_DIR; + feedrate = max_start_speed_units_per_second[1] * 60; + prepare_move(); - current_position[1] = 0; - destination[1] = -1 * Y_HOME_DIR; - prepare_move(); + current_position[1] = 0; + destination[1] = -1 * Y_HOME_DIR; + prepare_move(); - destination[1] = 10 * Y_HOME_DIR; - prepare_move(); + destination[1] = 10 * Y_HOME_DIR; + prepare_move(); - current_position[1] = 0; - destination[1] = 0; - feedrate = 0; + current_position[1] = 0; + destination[1] = 0; + feedrate = 0; + } } - if((Z_MIN_PIN > -1 && Z_HOME_DIR==-1) || (Z_MAX_PIN > -1 && Z_HOME_DIR==1)) { - current_position[2] = 0; - destination[2] = 1.5 * Z_MAX_LENGTH * Z_HOME_DIR; - feedrate = max_feedrate[2]/2; - prepare_move(); + if((home_all_axis) || (code_seen('X'))) { + if((Z_MIN_PIN > -1 && Z_HOME_DIR==-1) || (Z_MAX_PIN > -1 && Z_HOME_DIR==1)) { + current_position[2] = 0; + destination[2] = 1.5 * Z_MAX_LENGTH * Z_HOME_DIR; + feedrate = max_feedrate[2]/2; + prepare_move(); - current_position[2] = 0; - destination[2] = -1 * Z_HOME_DIR; - prepare_move(); + current_position[2] = 0; + destination[2] = -1 * Z_HOME_DIR; + prepare_move(); - destination[2] = 10 * Z_HOME_DIR; - prepare_move(); + destination[2] = 10 * Z_HOME_DIR; + prepare_move(); - current_position[2] = 0; - destination[2] = 0; - feedrate = 0; + current_position[2] = 0; + destination[2] = 0; + feedrate = 0; + } } feedrate = saved_feedrate; @@ -665,14 +672,13 @@ inline void process_commands() bt = analog2tempBed(current_bed_raw); #endif #if (TEMP_0_PIN > -1) || defined (HEATER_USES_MAX6675) - Serial.print("T:"); - Serial.println(tt); - #if TEMP_1_PIN > -1 - Serial.print("ok T:"); Serial.print(tt); + #if TEMP_1_PIN > -1 Serial.print(" B:"); Serial.println(bt); + #else + Serial.println(); #endif #else Serial.println("No thermistors - no temp"); |