Эндстопы не будут срабатывать при использовании прошивки Marlin

У меня есть старый Solidoodle 2, который я купил сломанным на гаражной распродаже и который я конвертирую в использование RAMPS 1.4 с прошивкой Marlin. Все двигатели работают правильно, у меня просто возникли проблемы с тем, чтобы заставить работать конечные точки.

Я использую обычный концевой выключатель с ЧПУ, идущим к сигнальному контакту, а другой-к земле. У меня этот переключатель подключен к первому столбцу заголовка для X-min. Моя конфигурация endstop в настоящее время такова:

//=========================================================================== 
//============================== Endstop Settings ===========================
//===========================================================================

// @section homing

// Specify here all the endstop connectors that are connected to any endstop or probe.
// Almost all printers will be using one per axis. Probes will use one or more of the
// extra connectors. Leave undefined any used for non-endstop and non-probe purposes.
#define USE_XMIN_PLUG true
#define USE_YMIN_PLUG true
#define USE_ZMIN_PLUG true
//#define USE_XMAX_PLUG false
//#define USE_YMAX_PLUG false
//#define USE_ZMAX_PLUG false

// coarse Endstop Settings
#define ENDSTOPPULLUPS // Comment this out (using // at the start of the line) to disable the endstop pullup resistors

#if DISABLED(ENDSTOPPULLUPS)
  // fine endstop settings: Individual pullups. will be ignored if ENDSTOPPULLUPS is defined
  //#define ENDSTOPPULLUP_XMAX
  //#define ENDSTOPPULLUP_YMAX
  //#define ENDSTOPPULLUP_ZMAX
  //#define ENDSTOPPULLUP_XMIN
  //#define ENDSTOPPULLUP_YMIN
  //#define ENDSTOPPULLUP_ZMIN
  //#define ENDSTOPPULLUP_ZMIN_PROBE
#endif

// Mechanical endstop with COM to ground and NC to Signal uses "false" here (most common setup).
#define X_MIN_ENDSTOP_INVERTING true // set to true to invert the logic of the endstop.
#define Y_MIN_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
#define Z_MIN_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
#define X_MAX_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
#define Y_MAX_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
#define Z_MAX_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
#define Z_MIN_PROBE_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.

У меня есть X-min включен и инвертирован. Когда я отправляю M119 (код состояния endstop) Я получаю:

Send: M119
Recv: Reporting endstop status
Recv: x_min: open
Recv: y_min: TRIGGERED
Recv: z_min: TRIGGERED

И затем, когда я нажимаю X endstop рукой, я получаю:

Send: M119
Recv: Reporting endstop status
Recv: x_min: open
Recv: y_min: TRIGGERED
Recv: z_min: TRIGGERED

-Никаких изменений. Никаких механических неисправностей с переключателями нет, я проверил это с помощью тестера непрерывности. Я даже закоротил сигнал и заземлил контакты на плате RAMPS с помощью перемычки, и я до сих пор не видел никаких изменений.

В чем тут вина?

, 👍10


3 ответа


Лучший ответ:

4

попробуйте раскомментировать следующие строки, чтобы включить обнаружение конечных остановок на всех выводах для устранения неполадок.

//#define USE_XMAX_PLUG false
//#define USE_YMAX_PLUG false
//#define USE_ZMAX_PLUG false

Таким образом, M119 покажет любые изменения.

Единственное, что я могу придумать, это то, что либо переключатель подключен к неправильному контакту на плате RAMPS (Макс вместо Мин), либо переключатель не требует съема (вы могли бы попробовать прокомментировать это и во втором тесте)


,

Оказалось, что это комбинация тех строк, которые были закомментированы, и концевые упоры были подключены к неправильным двум контактам. На твердотельной плате + и - по умолчанию поменяны местами для разъемов концевого упора., @Airfield20


0

Вчера у меня была такая же ошибка с платой MKS Robin Nano с Marlin 2.0.6.

Попробуйте найти и раскомментировать это определение:

#define ENDSTOP_INTERRUPTS_FEATURE

Сбой был в отключенных прерываниях endstop и сломанной части кода, которая идет домой и снимает флажок endstop status между шагами. Но если вы активировали endstop перед отправкой команды самонаведения - она будет работать по мере необходимости.

,

1

После борьбы с этим некоторое время я выяснил, что на концевых стопорных контактах, если они получены из другой установки, подобной моей, нужно переключить заземляющий контакт в центр разъема, а 5-вольтовый контакт на штырь, который он считывает, например, 1.29 pin на skr 1.4.

Как только вы это сделаете, он считает статус контакта.

,

Не могли бы вы либо расширить, либо перефразировать свой ответ, так как он кажется немного запутанным..? Или добавить диаграмму?, @Greenonline

Я переместил контакты заземления в центр разъемов, и все работает отлично, обновился до SKR 1.4 Turbo и не мог понять, почему ничего в прошивке не работает., @David M.

Большое спасибо человеку, который сказал переместить заземляющий штифт на конечной остановке. Целый день искал и наконец наткнулся на ваш комментарий. Очень полезно и исправил все проблемы, которые у меня были с моей мини-доской skr., @Savanna Benzel