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

Подписаться на 3Dtoday
AndyBig
Идет загрузка
Загрузка
11.11.17
2503
48
печатает на Anet A8
Техничка
12
Статья относится к принтерам:
Anet A8
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 из папки Marlin\example_configurations\Anet\A8 (или 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 шага в секунду.
- в меню преднагрева теперь можно выбрать три варианта - нагрев сопла, нагрев стола и нагрев их обоих. Раньше отдельно нагрева сопла не было. Тоже добавляет удобства.

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

Комментарии

11 Ноя 23:18
0
Нашел недостаток: по другому стал работать PID-нагрев стола. Если раньше мощность на стол подавалась непрерывно пока температура не достигала заданной минус 2-3 градуса и только после этого начиналось постепенное снижение скважности ШИМ, то теперь это начинает происходить где-то за 15 градусов до заданной температуры и время нагрева стола значительно увеличилось. Например, при заданной 115 градусов прошивка снижает мощность нагрева почти до половины уже градусам к 105, и оставшиеся градусы наращивает на этой половинной мощности.
Пока еще не разобрался почему так...
12 Ноя 00:34
0
Разобрался, прошивка ни при чем, это я каким-то макаром выставил совершенно левые коэффициенты PID для стола :) Установил нормальные - все заработало отлично :)
12 Ноя 00:40
0
Зачем вообще столу PID-регулирование, чтобы ещё ключ грелся?
12 Ноя 00:46
1
1. Чтобы температура стола не скакала.
2. Ключу этот ПИД практически до лампочки, там совсем не те частоты :)
12 Ноя 01:49
0
Она и так не будет скакать, масса же. А пара градусов туда-сюда на результат не влияет. Стол или держит модель, или уже нет.
Если низкочастотный, тогда конечно ладно бы с ним.
12 Ноя 01:58
0
Так вот благодаря массе и скачет без ПИДа. Нагрев при включении не мгновенно начинает греть верхнюю плоскость стола, она еще некотрое время продолжает терять температуру, а при отключении нагрева еще какое-то время продолжается ее нагрев. И все обстоит еще хуже когда сверху на столе лежит стекло.
Частота ШИМа там 3-4 герца, ни о чем для ключа. Зато без всяких дополнительных усилий достигается ровная стабильная температура стола, что уж как минимум не хуже, а скорее лучше скачков амплитудой 4-8 градуса :)
12 Ноя 05:26
0
Масса же в основном у стекла, а датчик обычно прилеплен к самому нагревателю. Если выравнивать температуру нагревателя по датчику, то температура стекла (в целом) будет стабильнее. Разве что измерять температуру на верхней поверхности, но это немножечко технически сложно.
12 Ноя 07:00
0
Нагреватель в данном случае - алюминиевая плита, у которой тоже есть неплохая температурная инерция :)
15 Ноя 22:33
0
А расскажите пожалуйста подробнее, какие настройки вы изменили?
У меня точно такая же проблема, но PID я в прошивке родные ставил..

Спасибо за статью и готовую прошивку!:):)
16 Ноя 00:49
0
Я по команде M503 посмотрел какие коэффициенты PID задействованы и увидел там какие-то левые значения. Поэтому установил правильные коэффициенты командой M304 и командой M500 сохранил их в EPROM :)
Вообще, по идее должна сработать и команда M500 (сброс к настройкам по умолчанию из прошивки) с последующей командой M500 (сохранение текущих настроек в EPROM).
12 Ноя 01:18
0
На 1.1.6 не получилось в стоке решить вопрос включения поддержки BLTouch. У контроллера платы просто не хватает памяти чтобы активировать поддержку функции автоуровня.
12 Ноя 01:26
0
С индуктивным датчиком автоуровень у меня работал. А для BLTouch нужен свободный пин для управления сервой, если не ошибаюсь, а вот со свободными пинами у Анета, по-моему, проблема. Хотя не изучал вопрос тщательно, может и не прав :)
12 Ноя 01:52
1
Стоит bltouch, чёт сложностей и жалоб со стороны anet при прошивке не припомню.
Ну, а для подключения пришлось паяльником поработать
12 Ноя 02:01
0
Да и я думаю - Мерлин занял 100 Кб (с какими-то копейками) памяти, еще почти 28 Кб свободно, не может быть чтобы автоуровень в них не вмещался (причем раз пять как минимум) :)
12 Ноя 15:46
0
На 1.1.6 при активации BLTouch памяти не хватит. Вчера несколько часов искал разные комбинации, так все равно около 7кБайт не хватало.
12 Ноя 16:03
0
Посмотрел у себя стоит 1.1.3 с BLTouch по трем точкам.
12 Ноя 09:55
0
Да проблема есть.
Как только делаю режим UBL перестает компилироваться и выдает ошибку:

c:/program files (x86)/arduino/hardware/tools/avr/bin/. ./lib/gcc/avr/4.9.2/. ./. ./. ./. ./avr/bin/ld.exe: C:\Users\Vladimir\AppData\Local\Temp\arduino_build_10976/Marlin.ino.elf section `.text' will not fit in region `text'

c:/program files (x86)/arduino/hardware/tools/avr/bin/. ./lib/gcc/avr/4.9.2/. ./. ./. ./. ./avr/bin/ld.exe: region `text' overflowed by 60494 bytes

collect2.exe: error: ld returned 1 exit status

exit status 1
Ошибка компиляции для платы Sanguino.

При этом если включить режим 3POINT, то все компилируется нормально. Куда дальше копать уже не знаю.
Пробовал на версиях 1.1.4 и 1.1.6.
12 Ноя 13:57
0
Хм, включил автоуровень UBL - действительно не влазит, но 40 Кб. Или это какой-то очень сложный автоуровень, что код растет аж на 50 Кб или что-то не так...
Используйте обычный автоуровень, по 9 точкам :)
12 Ноя 18:28
0
Просто у A8 символьный дисплей. Он меньше памяти требует, чем графический у A6.
12 Ноя 18:53
0
Мелькала такая мысль. Но все равно что-то слишком много требуется кода для этого типа автоуровня.
12 Ноя 15:48
0
Временно откатился на 1.1.1 от hellrider. БЛтач работает без эмуляции серво. Выравнивание стоит по методу bilenear как для кривых столов.
12 Ноя 15:12
0
Скажите,кому нибуть будет интересен обзор на пепеделанный акриловый Anet A8 с установленным MKS SBASE(32-bit) + BLTOUCH + кабель каналы, новые крепления и улучшайзеры корпуса?
12 Ноя 15:19
1
Вот мне было бы очень интересно про MKS SBASE на А8 :) Это же который V1.3 на контроллере LPC?
Лежит уже давно такая плата, все никак не соберусь с духом переделать принтер на нее.
12 Ноя 15:50
0
Но Мерлин развивается, а Скайнет прекратил свое существование. По прекрасной причине - теперь Мерлин сам поддерживает Анеты, вобрав в себя результаты работы автора Скайнета

Такое вольное обращение с терминами, Батенька, вызвало у меня - своеобразные ассоциации:

27e95a63bd11ef79c25a965545441168.jpg
93f53d4a5e8c964d6e43ba6c3ea5797d.jpg
08a2ad0702d285e78fa07296064eec49.jpg

1f7f7859197a230291c1015522a8ecec.jpg
e9496f722125ec461129104e470c6b6d.jpg
12 Ноя 16:24
1
Лкень раскладку туда-сюда переключать :D
13 Ноя 08:58
0
292f009f836d4e309ad9ccc67ed36723.PNG
13 Ноя 10:24
0
Хорошо.
Можете грустить дальше.
А мне вот - совсем не скучно.
13 Ноя 06:43
0
Приветствую. почитал методику. понял следующее.
Если на принтере на навешаны дополнительные изменения, типо грелок и релюшек на нагрев стола, то можно спокойно заливать прошивку ничего не изменяя? вопрос почему назрел: я в программной части не силён, но у принтера вчера перестала определяться карточка.
Попробовал 3 разных- без толку... написал китайцам, китайцы сказали что капут, SD-Cаrd померла, покупайте новую плату. денег жалко, ждать долго...
автоуровней у меня нет. всё калибрую в ручную, благо принтер зафиксирован к листу фанеры и вокруг связан корпусом, так что калибровка стола это единичное занятие.
если я просто залью прошивку, не получу ли я кирпич?:)


и второй вопрос, как вытащить оригинальную прошивку? ну чтоб был план к отступлению
13 Ноя 16:41
0
Да, можете залить оригинальный вариант, только заменив конфиги на соответствующие, кирпич не получите. По поводу переставшей видеться карточки - мне кажется, что прошивка не поможет, проблема скорее всего в железе.
Как вытащить оригинальную прошивку - я не знаю, но я находил ее в сети и скачал на всякий случай. Если что - обращайтесь, скину Вам :)
13 Ноя 17:11
0
Лучше выложите оригинальную для скачивания, а то вот мне то же надо на всякий случай.:)
За тему спасибо, как принтер освободится попробую прошится.
13 Ноя 17:20
0
Ок, буду на работе (она у меня там лежит) - выложу в гуглдрайв и дам ссылку :)
13 Ноя 17:27
0
Спасибо. А то не хочется без принтера остаться из-за кривых рук :)
13 Ноя 19:37
0
Но она там не в исходниках, а в готовом для прошивки hex-файле, то есть какой-то программатор все равно нужен :) Я с этим еще не разбирался, если честно.
13 Ноя 15:45
1
Всем привет. Адаптировал последнюю 1.1.6 из экспериментальных под А6 с BLTouch. Информацию указал в своей еще первой теме по прошивке где сам столкнулся с проблемой активации. Прочитать
Из тех что были в релизе Марлина, там при активации BL функции из-за нехватки памяти скетч не заливался в Атмегу. Тут же 96% и все пучком :)

И лишний раз убедился, что печатать лучше всегда с MicroSD. Комплектная флешка на 16Гб умерла сразу после проверки ее емкости. Была указано как Class 6, а по факту Class -5 :)
17 Ноя 07:02
0
Доброго дня народ, помогите новичку. Хочу прошить A8 на Марлин 1.1.6, но застрял на этапе выбора платы, она не появляется в списке как описано в самом начале этой статьи. Перепробовал разные usb порты, разные версии ардуины. В системе видится иcправно. Матплата Anet v.1-5
17 Ноя 16:44
0
Если Вы скачали Arduino по моей ссылке, то плата там должна быть даже без подключенного принтера. Если у Вас установлена стандартная Arduino, то плата Anet там и не появится, потому что ее нет в настройках ардуины.
18 Ноя 14:33
0
скачал настроенную Вами ардуину , а она при запуске виснет. Пробовал на 2х компах.результат одинаковый.
18 Ноя 14:47
0
Не знаю что и сказать. Распаковал архив, который заливал по ссылке - все работает. Скачать сейчас не могу, да и смысла нет - если архив распаковывается без ошибок, значит файлы не повреждены.
Попробуйте заменить в своей ардуине папку hardware, скопировав ее из моей. Только версия ардуины желательна 1.8.0, а то, говорят, ардуина часто отказывается компилировать скетчи, созданные в другой версии.
18 Ноя 15:52
0
Вроде сдвинулось, скачал Ардуину 1.8.0 и скопировал с заменой Hardware из вашей ардуины,алата появилась. Идем дальше...
18 Ноя 16:14
0
Спасибо большое, принтер прошился на Марлин 1.1.6 и не окирпичился. Сперва не заметил как он перегрузился, сижу жду этого события а на экране уже другие надписи. Теперь разбираться в параметрах прошивки.
18 Ноя 16:17
0
Поздравляю :)
18 Ноя 17:51
0
А в Вашей прошивке есть автовыравнивание по 9 точкам? Что то не могу найти.
18 Ноя 18:08
0
Да, конечно, это же Marlin, там несколько видов автовыравнивания, в том числе и по матрице 3х3.
Смотрите внимательно в Configuration.h
Подсказать точно не могу, т.к. все это лежит у меня на работе.
19 Ноя 00:13
0
Скажите пожалуйста, можно ли задать в какой последовательности хомить оси? Сейчас это XY-Z,а мне нужно Z-XY или Z-YX, главное чтобы датчик Z (индуктивный) был над столом первым. В оригинальной прошивке было так. Иначе ось z уезжает дальше вниз наверно пока муфты не разорвёт :D
19 Ноя 00:50
0
По-моему где-то есть параметр, отвечающий за это. Если не ошибаюсь, он запрещает движение X и Y без предварительного хомления Z.
18 Ноя 18:21
0
Хорошо, благодарю! Буду изучать!
18 Ноя 21:59
0
Перепрошился на марлин 1.1.6 с 1.1.3. Начал печатать. Чего то разработчики сильно намудрили там. У меня ХУ коре с одним экструдером и с одним Хот-ендом -печатающей головой. Начал посреди печати пытаться заменить Хот-енд -начал какие манипуляции делать, осью Z двигать вверх вниз. Короче отрезал коту шею и куда то её дел и пришил голову. А после завершения печати опять начал что-то мутное исполнять какой то левый код пытаться напечатать или потерянную шею всё-таки допечатать. Короче плюнул я на 1.1.6 и залил обратно 1.1.3 и Всем новичкам советую не ставьте 1.1.6. И так новичкам трудно всё настроить и понять, а тут вообще какие непонятки с прошивкой, хотя её по аналогии с отстроенной 1.1.3. запускал.
Фото кота с отрезанной шеей и пришитой головой. А рядом нормально напечатанные - тестовые фигурки для подстройки параметров печати.
70aba3dd756ef0c7fb46094ccc22b93d.JPG
19 Ноя 00:51
0
Я не уверен, но что-то мне кажется, что прошивка тут ни при чем. Нужно изучать G-код, смотреть что там на этой высоте в нем.

Для написания комментариев, пожалуйста, авторизуйтесь.

Читайте в блогах

Набор юного мехостроителя

«Что цело, то и годно в дело»*.

Черная пятница: скидки до 50% на весь ассортимент!

Wanhao D7 v 1.4 Red edition. Главное - работает!

В Новосибирске налаживают аддитивное производство титановых имплантатов

Голая статистика или жизнь после сертификации