Не могу пока никак победить это автовыравнивание.
Первая проблема - по команде G28 когда датчик нашел поверхность у сервы срабатывает ретракт, а нужно перед этим приподнять голову.
Победил этим (в модуле Marlin_Main.cpp) :
- Код: Выделить всё • Развернуть
Find the following code:
// Retract Servo endstop if enabled
#ifdef SERVO_ENDSTOPS
if (servo_endstops[axis] > -1) {
servos[servo_endstops[axis]].write(servo_endstop_angles[axis * 2 + 1]);
}
#endif
#if defined (ENABLE_AUTO_BED_LEVELING) && (PROBE_SERVO_DEACTIVATION_DELAY > 0)
if (axis==Z_AXIS) retract_z_probe();
#endif
add these lines of code immediately after the "// Retract Servo endstop if enabled" comment.
#if defined (ENABLE_AUTO_BED_LEVELING) && (PROBE_SERVO_DEACTIVATION_DELAY > 0)
if (axis==Z_AXIS)
do_blocking_move_relative(0, 0, Z_RAISE_BEFORE_PROBING);
#endif
It should look like this when you have made the change:
// Retract Servo endstop if enabled
#if defined (ENABLE_AUTO_BED_LEVELING) && (PROBE_SERVO_DEACTIVATION_DELAY > 0)
if (axis==Z_AXIS)
do_blocking_move_relative(0, 0, Z_RAISE_BEFORE_PROBING);
#endif
#ifdef SERVO_ENDSTOPS
if (servo_endstops[axis] > -1) {
servos[servo_endstops[axis]].write(servo_endstop_angles[axis * 2 + 1]);
}
#endif
#if defined (ENABLE_AUTO_BED_LEVELING) && (PROBE_SERVO_DEACTIVATION_DELAY > 0)
if (axis==Z_AXIS) retract_z_probe();
#endif
То же самое при G29 в каждой точке, добавил в функцию probe_pt кусок с подъемом:
- Код: Выделить всё • Развернуть
static float probe_pt(float x, float y, float z_before, int retract_action=0) {
// move to right place
do_blocking_move_to(current_position[X_AXIS], current_position[Y_AXIS], z_before);
do_blocking_move_to(x - X_PROBE_OFFSET_FROM_EXTRUDER, y - Y_PROBE_OFFSET_FROM_EXTRUDER, current_position[Z_AXIS]);
#ifndef Z_PROBE_SLED
if ((retract_action==0) || (retract_action==1))
engage_z_probe(); // Engage Z Servo endstop if available
#endif // Z_PROBE_SLED
run_z_probe();
float measured_z = current_position[Z_AXIS];
#ifndef Z_PROBE_SLED
if ((retract_action==0) || (retract_action==3))
{ // скобочки добавить не забыть
//-------------------------------------------------кусок----------------------------------------------------------------
#if defined (ENABLE_AUTO_BED_LEVELING) && (PROBE_SERVO_DEACTIVATION_DELAY > 0)
//if (axis==Z_AXIS)
do_blocking_move_relative(0, 0, Z_RAISE_BEFORE_PROBING);
#endif
//---------------------------------------------------кусок-----------------------------------------------------------------------
retract_z_probe();
} // скобочки добавить не забыть
После G28 или G29 смотрю координаты по M114 - Z не соответствует действительности
Z_PROBE_OFFSET_FROM_EXTRUDER -4.65 перепроверил 3 раза, да и визуально видно, что 4-5 мм, а по факту на 15 мм где-то шкалит.
Последний раз редактировалось
Ande 31 янв 2015, 16:22, всего редактировалось 2 раз(а).