PREVIEWНекоторое время назад мне захотелось добавить на принтер автовыравнивание стола перед печатью, но родная прошивка Анетов этого не позволяет, а ковыряться с портированием Мерлина мне было ну очень лень. И тогда в сети была найдена уже портированная версия мерлина — SkyNet3D. Я ее скачал, прошил, изменил какие-то параметры под себя и долгое время пользовался ею, все было вполне удобно. Правда, автовыравниванием я быстро перестал пользоваться :)
Но Мерлин развивается, а Скайнет прекратил свое существование. По прекрасной причине — теперь Мерлин сам поддерживает Анеты, вобрав в себя результаты работы автора Скайнета :)

Итак, установка Мерлина на Анет А8. На А6 тоже ставится, только некоторые значения в конфиге, возможно, придется изменить под свои требования. А можно ничего не менять, оставить по умолчанию.

Что для этого нужно:

1. Среда Arduino с настройками для платы Anet. Я не силен в ардуинах и их настройках, просто у меня осталась эта среда от Скайнета со всеми нужными настройками. Выкладываю — https://drive.google.com/open?id=1uE3Nb6RBP6NJoI5q0udWFwj4l65OoAKy (установка не требуется, просто распаковать).

2. Драйвер для платы Anet. Я его положил в папку drivers ардуины, это исполняемый файл CH341SER.EXE. На Windows 7 x32/x64 он точно работает, на десятке — не знаю, не проверял. Если что — просто ищите драйвер для USB-чипа CH340.

3. Сам Мерлин. Качается с официального сайта — http://marlinfw.org/meta/download/ . Или можете скачать мой вариант со всеми внесенными изменениями — https://drive.google.com/open?id=1AHrjKjkdDCrw0e_sYMsCcGfAPaskJPkT.

Итак, распаковали в отдельные папки Ардуину и Мерлина, что дальше?

Устанавливаем драйвер для платы Anet — запускаем файл CH341SER.EXE из папки drivers ардуины и соглашаемся со всеми предупреждениями об установке драйвера.

Если Вы скачали Мерлина с официального сайта, то необходимо сделать это: заходим в папку Мерлина и копируем файлы Configuration.h и Configuration_adv.h из папки Marlinexample_configurationsAnetA8 (или A6 если у Вас этот принтер) в папку Marlin. Соглашаемся с заменой файлов при запросе.

Если Мерлин скачан в моем варианте, то копировать конфиги не нужно.

1. Подключаем принтер к компьютеру (питание на принтер должно быть подано), убеждаемся, что он нормально виден в системе (в диспетчере устройств в разделе «Порты (COM и LPT)» должен появиться пункт «USB-SERIAL CH430 (COMxx)», где xx — это присвоенный ему номер порта).

2. Запускаем Ардуину файлом arduino.exe и в ней открываем файл Marlin.ino из папки Marlin. У Вас откроется скетч прошивки. Заходим в меню Инструменты->Плата и выбираем тем плату Anet V1.0 если она не выбрана. Потом меню Инструменты->Порт и выбираем тот COM-порт, который присвоен принтеру (см. п. 1).

Все, теперь прошивку можно скомпилировать (меню Скетч->Проверить/Компилировать или Control+R) и залить в принтер (меню Скетч->Загрузка или Control+U). В процессе компиляции и загрузки внизу будет отображаться ход процесса. После загрузки принтер автоматически перезагрузится и будет готов к работе.

При желании Вы можете изменить различные параметры прошивки и заново скомпилировать и загрузить ее, но в оригинальном Мерлине с конфигами для Анетов по умолчанию все настроено в рабочем варианте, можно загружать и пользоваться как есть.

Опишу какие параметры были изменены мной и которые, возможно, захотите изменить Вы сами под свои нужды.

В файле Configuration.h:

— раскомментировал CUSTOM_MACHINE_NAME и внес в него название принтера Anet A8. Это просто отображение названия при включении принтера.

— изменил значение HEATER_0_MAXTEMP на 300 — максимальная температура сопла.

— изменил значение BED_MAXTEMP на 150 — максимальная температура стола.

— закомментировал родные значения PID для экструдера:

#define DEFAULT_Kp 21.0

#define DEFAULT_Ki 1.25

#define DEFAULT_Kd 86.0

и вставил свои, полученные от калибровки:

// ANET A8 Standard Extruder at 220 Degree Celsius and 100% Fan

#define DEFAULT_Kp 20.40

#define DEFAULT_Ki 1.62

#define DEFAULT_Kd 64.35

— раскомментировал PIDTEMPBED и закомментировал BED_LIMIT_SWITCHING , однако это можно делать только если нагрев стола подключен не через реле. В оригинальной конструкции принтера — можно :)

— закомментировал родные значения PID для стола:

#define DEFAULT_bedKp 10.00

#define DEFAULT_bedKi .023

#define DEFAULT_bedKd 305.4

и вставил свои, полученные от калибровки:

//12V 120W aluminium + 12V 200W silicone with tempered glass Anycubic Ultrabase

//from autocalibrate at 120 degree

#define DEFAULT_bedKp 158.57

#define DEFAULT_bedKi 12.92

#define DEFAULT_bedKd 486.48

ВНИМАНИЕ: на оригинальном столе лучше оставить родные значения. У меня в дополнение к родному столу наклеена еще 300-ваттная силиконовая грелка, поэтому значения PID потребовали изменений.

— изменил значение Z_MIN_ENDSTOP_INVERTING на false, но у меня родной концевик заменен на оптический, в оригинальном принтере это делать не нужно.

— заменил значение DEFAULT_TRAVEL_ACCELERATION на 400

— раскомментировал PROBE_MANUALLY

— закомментировал MIN_SOFTWARE_ENDSTOPS

— раскомментировал MESH_BED_LEVELING — эта опция и PROBE_MANUALLY нужны для возможности время от времени выставить автовыравнивание в полуавтоматическом режиме, когда принтер двигает сопло к очередной из 9 точек, а пользователь кнопками «вверх» и «вниз» подгоняет сопло к столу. Затем результаты выравнивания можно сохранить в EPROM.

— изменил значение MESH_INSET на 20 — это отступ от краев стола для крайних точек авто выравнивания

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

— изменил значение HOMING_FEEDRATE_XY на (30*60) , а то уж больно резво он мчится к концевикам по X и Y :)

— заменил блок

#define PREHEAT_1_TEMP_HOTEND 190

#define PREHEAT_1_TEMP_BED 60

#define PREHEAT_1_FAN_SPEED 0 // ANET A6 Default is 255

#define PREHEAT_2_TEMP_HOTEND 240

#define PREHEAT_2_TEMP_BED 90

#define PREHEAT_2_FAN_SPEED 0 // ANET A6 Default is 255

на

#define PREHEAT_1_TEMP_HOTEND 180

#define PREHEAT_1_TEMP_BED 60

#define PREHEAT_1_FAN_SPEED 0 // ANET A6 Default is 255

#define PREHEAT_2_TEMP_HOTEND 220

#define PREHEAT_2_TEMP_BED 105

#define PREHEAT_2_FAN_SPEED 0 // ANET A6 Default is 255

просто мне так удобнее. Первая группа — это установки преднагрева (включаемого через меню принтера) для PLA, вторая — для ABS.

— раскомментировал INDIVIDUAL_AXIS_HOMING_MENU — это позволяет из меню хомить оси по отдельности, а не только все скопом, иногда бывает удобно.

Все, сохраняем изменения, компилируем и загружаем в принтер, все работает, радуемся :)

Что заметил из плюсов по сравнению со Скайнетом 2.3.2:

— гораздо быстрее стал реагировать на нажатие кнопок, уже почти нормальная реакция, а не как было — жать надо было вдумчиво, не торопясь :)
— ось Z теперь можно двигать через меню не только по 0.1 и 1 мм, но и по 10. В Скайнете я для этого специально ковырялся в исходниках, делал эту возможность.

— при длительном удержании кнопки на изменение какого-то значения (температуры, координаты, скорости вентилятора и т.п.) после 10 изменений обычным шагом начинаются изменение с шагом х10, после 10 этих — с шагом по х100. Например, нужно увеличить скорость вентилятора через меню — захожу в соответствующий пункт и нажимаю кнопку «вверх», значение вентилятора начинает расти с шагом 1, но после 10 таких шагов оно начинает увеличиваться уже с шагом 10, а после 10 этих больших шагов начинает расти с шагом 100. Очень стало удобно, потому что раньше был только минимальный шаг со скорость его изменения 2 шага в секунду.

— в меню преднагрева теперь можно выбрать три варианта — нагрев сопла, нагрев стола и нагрев их обоих. Раньше отдельно нагрева сопла не было. Тоже добавляет удобства.

Больше явных плюсов/минусов не заметил, но сам только сегодня прошился, еще не успел повозиться плотно :)
Подробнее…

Прошиваем Marlin v1.1.6 в Anet A8 (A6)