Установка отклонения соединения в прошивке не имеет никакого эффекта

Я построил 3D-принтер с раздвоенным Marlin bugfix-2.0.x из github.

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

Я думал, что раскомментировать это в Configuration_adv.h будет работать:

#define JUNCTION_DEVIATION_MM 0.02

Я попытался установить это определение внутри и снаружи блока if по умолчанию, в котором оно появляется, просто чтобы убедиться, что проблема не была вызвана тем, что у меня не было чего-то еще установленного, и я получаю то же самое поведение, когда этот оператор define либо защищен, либо незащищен if

Кроме того, блок if по умолчанию выглядит следующим образом:

#if ENABLED( JUNCTION_DEVIATION )
    #define JUNCTION_DEVIATION_MM 0.02
#endif

Раскомментирование #define JUNCTION_DEVIATION оставляет меня с ошибкой компилятора, говорящей мне, что мне не нужно этого делать, поэтому я не вижу ничего, что я должен включить, чтобы заставить его использовать параметр JUNCTION_DEVIATION_MM. Другими словами, я больше не могу включить "JUNCTION_DEVIATION", поэтому мне нужно сломать настройку JUNCTION_DEVIATION_MM из if, но она по-прежнему не имеет эффекта.

После настройки этого параметра, когда я включить Питание принтера, соединения отклонение равно 0 (хотя одно касание ручка регулировки заставляет прыгать до 0.010, поэтому я думаю, что то, что отображается, как "0", на самом деле может означать "отключено"), который вызывает значительное стоп/старт, рывок на каждого угла не изменится, пока я вручную установить соединение отклонение.

Моя текущая конфигурация.h и Configuration_adv.h взяты из этой вилки Марлина.

Если это имеет значение, я запускаю это на SKR V1.3 с драйверами TMC2208 на 24V.

Есть идеи, чего мне не хватает? Я уверен, что это что-то простое, просто я его не нашел.

ОБНОВЛЕНИЕ: По-прежнему нет решения через 10 дней. Вот дополнительная информация с другого форума, где я разместил этот запрос:

Вы запускали M502 и M500 после обновления прошивки?

Я покопался в этом немного больше, и я либо сталкиваюсь с ошибкой, либо просто не понимаю, что я должен видеть.

Я посылаю такую команду:

M205 J0.020

Затем убедитесь, что отклонение соединения установлено правильно (оно) Тогда вот что:

M500

И тот отвечает:

Сохраненные настройки (616 байт; crc 51371)

Тогда я посылаю это:

М503

И в отчете для M205 отсутствует настройка, которую я только что подтвердил, что она изменилась и работает:

... M205 B20000.00 S0.00 T0.00 ...

И циклическое включение или сброс регулятора приводит к тому же результату: отклонение перехода сбрасывается на 0.

Разве я не должен видеть "J0.020" в строке M205 сразу после изменения настройки и проверки ее работы?

, 👍5

Обсуждение

После нескольких месяцев борьбы с этим, я упростил тестовые случаи, и я пришел к выводу, что это ошибка в SKR 1.3. Я жду прибытия нового SKR 1.4, и если проблема существует и там, я отправляю отчет об ошибке на github. Обновит этот вопрос, когда это будет сделано., @Chris Ostmo

В плате Marlin code/SKR есть ошибка, препятствующая хранению любых изменений после загрузки прошивки (на SD-карту). Есть такой [пиар на Марлине](https://github.com/MarlinFirmware/Marlin/pull/16260) это исправляет его, но он еще не был объединен в Marlin., @0scar

@0scar Похоже, что этот запрос на вытягивание еще не был объединен, но я объединил изменения из ветки Marlin bugfix-2.0.x впервые примерно за 1,5 месяца, и проблема была решена. Подтверждено на SKR V1.3 и SKR V1.4 (проблема, возможно, никогда не существовала на последнем). Я не уверен, какой коммит сделал свое дело. Если вы опубликуете ответ, я приму его как решение. Спасибо!, @Chris Ostmo


2 ответа


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

1

Я купил SKR Pro V1.1, который страдает от той же проблемы. На самом деле это связано с недостатком или недостатком конструкции (адресации SPI-устройств типа "HAL" или "Hardware Abstraction Layer") Marlin и доступом к SD-карте; цитирую:

Проблема: На борту SD-карта на SKR-PRO 1.1 не может быть использована.

После того, как SD-карта была вставлена, двоичный файл прошивки загружается в память, и весь доступ к SD-карте отсутствует. Первоначальное соединение осуществляется аппаратным оформлением плат SKR.

В основном, в платах Marlin code/SKR есть ошибка, препятствующая хранению (на SD-карту) каких-либо изменений после загрузки прошивки. Есть PR на Marlin, который исправляет его, но он еще не был объединен в Marlin.

Есть 2 варианта,

  1. Каждое изменение прошивки должно быть скомпилировано и загружено на плату путем размещения шестнадцатеричной (firmware.bin) на SD-карте;
  2. Скомпилируйте версию прошивки из источников из упомянутого PR.

,

0

Для SKR для хранения новых определений Marlin необходимо отправить comand M502 для восстановления заводских настроек (будет использоваться конфигурация на SD-карте) и отправить comand M500 для сохранения конфигураций.

,

Спасибо, но восстановление настроек не требуется для установки или сохранения настроек. Это была ошибка между Marlin и SKR, и она была устранена в Marlin., @Chris Ostmo