Ось Z застряла с Marlin 1.1.0-RC7

Предыстория:

Я только что успешно установил полный графический дисплей RepRapDiscount на свой Prusa i3; и при этом я обновил всю прошивку до последней версии Marlin 1.1.0-RC7. С моей предыдущей версией Marlin, 1.0.2-1, все работало отлично. Я перенес все параметры из своей старой версии в новую. Были некоторые аспекты кода, которые были написаны по-другому, но, по сути, все работает, кроме оси Z.

Проблема:

Единственная проблема, с которой я, похоже, сталкиваюсь, связана с любым видом движения по оси Z. Когда он движется, будь то с ЖК-дисплея или с репетира, кажется, что он ускоряется, как и должно быть, но затем застревает / пропускает несколько шагов, а затем медленно замедляется, как и должно быть. Независимо от расстояния, на которое я указываю ему двигаться, он будет обычно ускоряться на одинаковое количество времени / расстояния / шагов, переходить в этот нечестивый режим на период времени / расстояния / шагов относительно того, что ему было указано, а затем плавно замедляться на одинаковое количество времени каждый раз. Например, если предполагается, что он переместится на 10000 шагов, он плавно переместится на 100 шагов, затем перейдет на 9800 шагов и плавно завершит еще 100 шагов. Если, например, ему нужно пройти 5000 шагов, он также плавно переместится на 100 шагов, затем перейдет на 4800 шагов и плавно завершит последние 100 шагов. Имейте в виду, что эти цифры полностью взяты из космоса; они не являются точными при любом напряжении воображения. Я просто пытаюсь нарисовать как можно более четкую картину.

Устранение неполадок:

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

  • Гайки свободно перемещаются вверх и вниз по стержню с резьбой 5 мм. По всей длине стержня нет точек, в которых гайки не двигались бы очень свободно.
  • Стержни из нержавеющей стали хорошо выровнены, и вся каретка по оси Z/X очень свободно перемещается по вертикальным направляющим. Подшипники, похоже, в порядке.

Затем я хотел сузить его до прошивки, а не до электричества. Для протокола, возможно, я упускаю что-то очевидное, поэтому, пожалуйста, дайте мне знать.

  • Я измерил напряжение на своих шаговых драйверах A4988 на плате RAMPS 1.4, установленной на Arduino Mega2560 R3, и оно показывает 350 мВ. Даже если я настрою потенциометр на 550 мВ, я все равно получу ту же проблему.
  • Перемычки под ним, кажется, плотно прилегают, и все штифты на A4988, похоже, тоже в порядке.
  • Единственное, что я не проверил в разделе "Логический анализ", - это провода, идущие от платы к самим двигателям, но, основываясь на следующем, я не думаю, что это проблема. (Хотя я и раньше ошибался)

Переходим к прошивке.

Я поиграл с разделом настроек по умолчанию в разделе Конфигурация.h безрезультатно. Независимо от того, насколько низко или высоко я использую любую из настроек максимального ускорения, я, похоже, не могу решить проблему. Он ускоряется медленнее, но общий эффект тот же.

#define DEFAULT_AXIS_STEPS_PER_UNIT   {80,80,3840,90}
#define DEFAULT_MAX_FEEDRATE          {500, 500, 5, 25}
#define DEFAULT_MAX_ACCELERATION      {2000,2000,10,2000} 
#define DEFAULT_ACCELERATION          1000
#define DEFAULT_RETRACT_ACCELERATION  1000
#define DEFAULT_TRAVEL_ACCELERATION   1000
#define DEFAULT_XYJERK                20.0
#define DEFAULT_ZJERK                 0.4
#define DEFAULT_EJERK                 5.0

Теория:

На данный момент, если мне нужно было догадаться, это как-то связано с настройкой максимальной скорости или микрошагом. Вот некоторые из настроек, которые у меня есть в новой прошивке.

#if ENABLED(ULTIPANEL)
#define MANUAL_FEEDRATE {50*60, 50*60, 4*60, 60} // Скорости подачи для ручных перемещений по X, Y, Z, E от панели
#define ULTIPANEL_FEEDMULTIPLY  // Комментарий, чтобы отключить настройку множителя скорости подачи через кодировщик
#endif

// минимальное время в микросекундах, которое должно занять перемещение, если буфер опустошен.
#define DEFAULT_MINSEGMENTTIME        20000

// Если задано, движения замедляются, когда буфер ожидания заполнен только наполовину
#define SLOWDOWN

// Ограничение частоты
// Смотрите Блог nophead для получения дополнительной информации
// Не работает O
//#определить XY_FREQUENCY_LIMIT 15

// Минимальная скорость соединения планировщика. Задает минимальную скорость по умолчанию, которую планировщик планирует для конца
// буфера и всех остановок. Это значение не должно быть намного больше нуля и должно быть изменено только
// если на компьютере пользователя наблюдается нежелательное поведение при работе на очень низких скоростях.
#define MINIMUM_PLANNER_SPEED 0.05// (мм/сек)

// Настройка микрошага (работает только тогда, когда контакты микрошага шагового драйвера подключены к MCU.
#define MICROSTEP_MODES {16,16,16,16,16} // [1,2,4,8,16]

// Настройка тока двигателя (работает только в том случае, если контакты управления током драйвера двигателя подключены к цифровому тримпоту на поддерживаемых платах)
#define DIGIPOT_MOTOR_CURRENT {135,135,135,135,135} // Значения 0-255 (RAMBO 135 = ~ 0.75A, 185 = ~ 1A)

// Ток двигателя, управляемый с помощью ШИМ (переопределяется на поддерживаемых платах с приводным током двигателя, управляемым ШИМ)
//#определить PWM_MOTOR_CURRENT {1300, 1300, 1250} // Значения в миллиамперах

// раскомментируйте, чтобы включить DIGIPOT на базе I2C, как на Azteeg X3 Pro
//#определить DIGIPOT_I2C
// Количество каналов, доступных для I2C digipot, для Azteeg X3 Pro у нас есть 8
#define DIGIPOT_I2C_NUM_CHANNELS 8
// фактические токи двигателя в амперах, здесь нужно столько, сколько DIGIPOT_I2C_NUM_CHANNELS
#define DIGIPOT_I2C_MOTOR_CURRENTS {1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0}

Решение:

Если бы кто-нибудь мог мне помочь или даже указать правильное направление, я был бы очень признателен. Я прихожу в отчаяние от этой новой версии прошивки. В нем есть все эти условные вкладки, которых не было в моем другом, и я не могу в этом разобраться.

, 👍7


1 ответ


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

3

Проблема, скорее всего, в MAX_FEEDRATE. Изначально движения плавные, что указывает на то, что ускорение не является проблемой. Однако максимальная скорость установлена на уровне 5 мм / с, что для стержня с резьбой m5 (с шагом 0,5 мм) составляет 10 оборотов в секунду для стержня с резьбой. Это довольно быстро, и степпер, вероятно, не сможет за ним угнаться. Попробуйте уменьшить скорость подачи.

Микрошаг микропрограммного обеспечения и текущие настройки не имеют к этому абсолютно никакого отношения, поскольку они не поддерживаются в вашей установке (которая имеет физические потенциометры и перемычки микрошага).


,

Это была именно та проблема! Большое вам спасибо!, @Alex Sky