Объясните мне - нафига вообще нужен автоуровень стола??? У меня мендель пруся. Я один раз отшлифовал стекло, один раз выставил уровень стола по микрометру и печатаю уже 2 года каждый день по нескольку часов. Установка уровня стола заняла 15 минут, если бы еще раз понадобилось - 15 минут не жалко.
icehardy писал(а):а разве так ставится датчик щелевой мне казалось, что поперек он должен перекрываться в таком положении будет ли он точно срабатывать ?
Проверил так: подключил как концевик по Z. Сделал метку на шпильке Z, поднимал голову и делал home z. Шпилька всегда останавливается меткой в одну и ту же сторону.
ales2k писал(а):нафига вообще нужен автоуровень стола???
Вообще меня тоже все устраивает, стол почти не крутил, просто спортивный интерес. Ну и вообще, весь такой шевелится, шупает
ales2k писал(а):Объясните мне - нафига вообще нужен автоуровень стола??? У меня мендель пруся. Я один раз отшлифовал стекло, один раз выставил уровень стола по микрометру и печатаю уже 2 года каждый день по нескольку часов. Установка уровня стола заняла 15 минут, если бы еще раз понадобилось - 15 минут не жалко.
++++++ тоже рафтом печатаю и пофиг на кривизну стола
Мне пришла кривая алюминиевая кровать. Стекло класть не хочу и так долго греется и вес лишний. Да и пробовал класть - не помогло, все равно разный уровень получается. Ну И "просто спортивный интерес. Ну и вообще, весь такой шевелится, шупает "
Не могу пока никак победить это автовыравнивание. Первая проблема - по команде 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 раз(а).
супер +1, у Вас автокалибровка настроена на Марлине? Использовали стандартную реализацию или форк с 4й страницы?
у меня "продвинутый" форк, работает вот так:
1) сначало возврат в домашнюю позицию, с включенным SAFE_AUTO_HOMING - в центре 2) затем измерение уровня по 9 точкам, сетка 3х3 3) затем небольшая выдача пластика и начало печати