@@ -327,7 +327,7 @@ int32_t I2CPositionEncoder::get_raw_count() {
327327}
328328
329329bool I2CPositionEncoder::test_axis () {
330- // only works on XYZ cartesian machines for the time being
330+ // Only works on XYZ Cartesian machines for the time being
331331 if (!(encoderAxis == X_AXIS || encoderAxis == Y_AXIS || encoderAxis == Z_AXIS)) return false ;
332332
333333 const float startPosition = soft_endstop.min [encoderAxis] + 10 ,
@@ -344,11 +344,14 @@ bool I2CPositionEncoder::test_axis() {
344344 startCoord[encoderAxis] = startPosition;
345345 endCoord[encoderAxis] = endPosition;
346346
347- planner.synchronize ();
348- startCoord.e = planner.get_axis_position_mm (E_AXIS);
349- planner.buffer_line (startCoord, fr_mm_s, 0 );
350347 planner.synchronize ();
351348
349+ #if HAS_EXTRUDERS
350+ startCoord.e = planner.get_axis_position_mm (E_AXIS);
351+ planner.buffer_line (startCoord, fr_mm_s, 0 );
352+ planner.synchronize ();
353+ #endif
354+
352355 // if the module isn't currently trusted, wait until it is (or until it should be if things are working)
353356 if (!trusted) {
354357 int32_t startWaitingTime = millis ();
@@ -357,7 +360,7 @@ bool I2CPositionEncoder::test_axis() {
357360 }
358361
359362 if (trusted) { // if trusted, commence test
360- endCoord.e = planner.get_axis_position_mm (E_AXIS);
363+ TERN_ (HAS_EXTRUDERS, endCoord.e = planner.get_axis_position_mm (E_AXIS) );
361364 planner.buffer_line (endCoord, fr_mm_s, 0 );
362365 planner.synchronize ();
363366 }
@@ -402,7 +405,7 @@ void I2CPositionEncoder::calibrate_steps_mm(const uint8_t iter) {
402405 planner.synchronize ();
403406
404407 LOOP_L_N (i, iter) {
405- startCoord.e = planner.get_axis_position_mm (E_AXIS);
408+ TERN_ (HAS_EXTRUDERS, startCoord.e = planner.get_axis_position_mm (E_AXIS) );
406409 planner.buffer_line (startCoord, fr_mm_s, 0 );
407410 planner.synchronize ();
408411
@@ -411,7 +414,7 @@ void I2CPositionEncoder::calibrate_steps_mm(const uint8_t iter) {
411414
412415 // do_blocking_move_to(endCoord);
413416
414- endCoord.e = planner.get_axis_position_mm (E_AXIS);
417+ TERN_ (HAS_EXTRUDERS, endCoord.e = planner.get_axis_position_mm (E_AXIS) );
415418 planner.buffer_line (endCoord, fr_mm_s, 0 );
416419 planner.synchronize ();
417420
@@ -497,9 +500,7 @@ void I2CPositionEncodersMgr::init() {
497500
498501 encoders[i].set_active (encoders[i].passes_test (true ));
499502
500- #if I2CPE_ENC_1_AXIS == E_AXIS
501- encoders[i].set_homed ();
502- #endif
503+ TERN_ (HAS_EXTRUDERS, if (I2CPE_ENC_1_AXIS == E_AXIS) encoders[i].set_homed ());
503504 #endif
504505
505506 #if I2CPE_ENCODER_CNT > 1
@@ -528,9 +529,7 @@ void I2CPositionEncodersMgr::init() {
528529
529530 encoders[i].set_active (encoders[i].passes_test (true ));
530531
531- #if I2CPE_ENC_2_AXIS == E_AXIS
532- encoders[i].set_homed ();
533- #endif
532+ TERN_ (HAS_EXTRUDERS, if (I2CPE_ENC_2_AXIS == E_AXIS) encoders[i].set_homed ());
534533 #endif
535534
536535 #if I2CPE_ENCODER_CNT > 2
@@ -557,11 +556,9 @@ void I2CPositionEncodersMgr::init() {
557556 encoders[i].set_ec_threshold (I2CPE_ENC_3_EC_THRESH);
558557 #endif
559558
560- encoders[i].set_active (encoders[i].passes_test (true ));
559+ encoders[i].set_active (encoders[i].passes_test (true ));
561560
562- #if I2CPE_ENC_3_AXIS == E_AXIS
563- encoders[i].set_homed ();
564- #endif
561+ TERN_ (HAS_EXTRUDERS, if (I2CPE_ENC_3_AXIS == E_AXIS) encoders[i].set_homed ());
565562 #endif
566563
567564 #if I2CPE_ENCODER_CNT > 3
@@ -590,9 +587,7 @@ void I2CPositionEncodersMgr::init() {
590587
591588 encoders[i].set_active (encoders[i].passes_test (true ));
592589
593- #if I2CPE_ENC_4_AXIS == E_AXIS
594- encoders[i].set_homed ();
595- #endif
590+ TERN_ (HAS_EXTRUDERS, if (I2CPE_ENC_4_AXIS == E_AXIS) encoders[i].set_homed ());
596591 #endif
597592
598593 #if I2CPE_ENCODER_CNT > 4
@@ -621,9 +616,7 @@ void I2CPositionEncodersMgr::init() {
621616
622617 encoders[i].set_active (encoders[i].passes_test (true ));
623618
624- #if I2CPE_ENC_5_AXIS == E_AXIS
625- encoders[i].set_homed ();
626- #endif
619+ TERN_ (HAS_EXTRUDERS, if (I2CPE_ENC_5_AXIS == E_AXIS) encoders[i].set_homed ());
627620 #endif
628621
629622 #if I2CPE_ENCODER_CNT > 5
@@ -652,9 +645,7 @@ void I2CPositionEncodersMgr::init() {
652645
653646 encoders[i].set_active (encoders[i].passes_test (true ));
654647
655- #if I2CPE_ENC_6_AXIS == E_AXIS
656- encoders[i].set_homed ();
657- #endif
648+ TERN_ (HAS_EXTRUDERS, if (I2CPE_ENC_6_AXIS == E_AXIS) encoders[i].set_homed ());
658649 #endif
659650}
660651
0 commit comments