Прошивка Marlin 1.1.1 для Anet A6.

Подписаться на 3Dtoday
hellraider
Идет загрузка
Загрузка
19.05.17
5952
53
печатает на RepRap
Техничка
18
PREVIEW
Всем доброго времени суток.

Прошло уже более 6 месяцев с момента моей первой прошивки принтера Anet A6. На тот момент было много непонятного, касаемо процедуры заливки сторонней прошивки в плату с заводским загрузчиком. За это время практически все вопросы получили свои ответы.

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

Представляю на всеобщее обозрение новую прошивку на основе последнего, на текущий момент, релиза Marlin 1.1.1.

Видимо, количество изменений и улучшений в этом релизе было так велико, что при включении всех функций из моей версии RC8, память контроллера быстро подошла к концу. Добавить еще что-нибудь полезное будет практически нереально.

Основное отличие этого релиза – это переработанная пауза печати. Теперь сопло приподнимается и уходит в начало координат, а после возвращается обратно. Пауза при печати с SD карты включается в меню как обычно.
Пауза при печати с компьютера, octoprint и т.д., включается в меню TUNE (при печати с карты этот пункт также присутствует, но при нажатии на него ничего не происходит). Выбор этого пункта отводит сопло в сторону, и принтер ждет нажатия на энкодер для продолжения печати.
Также добавлено меню статистики печати.

В папке с прошивкой есть папка с конфигурационными файлами для разных типов датчиков автоуровня. Оттуда нужно взять необходимый файл configuration.h и положить к остальным файлам прошивки.

Теперь немного о процедуре загрузки прошивки в плату. На данный момент есть два варианта:
1. Прошивка со сменой загрузчика на загрузчик из Arduino IDE. Данный способ подробно расписан в инструкции.
2. Можно добавить поддержку платы Anet в Arduino IDE (не забыть также установить библиотеку u8glib). Или воспользоваться сконфигурированной версией из комплекта прошивки Skynet.

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

Загрузчик у меня поменян с самого начала, поэтому проверить второй способ я не могу.

Прошивка лежит у меня на яндекс диске https://yadi.sk/d/DgV1HGEyxkVrj.

P.S. Если честно, то каких-либо изменений в плане печати, по сравнению с версией RC8, я не заметил.
Подписаться на 3Dtoday
18
Комментарии к статье

Комментарии

19 Май 09:21
0
На собираемом d-bot и попробую... Спасибо за новость!
19 Май 10:14
1
ну уже бы написали че там нового и вкусного ))
19 Май 10:53
0
Да я, вроде, и написал. На самом деле в прошивке очень много интересного, но на контроллере 1284p это не посмотреть - не хватает памяти, чтобы активировать эти функции.
19 Май 17:57
0
а как добавить меню статистики печати?
19 Май 19:29
0
#define PRINTCOUNTER в configuration.h
19 Май 22:50
0
кто знает как получить инвертированную (цвет) сроку координат ?, как на картинке

21 Май 22:07
0
в файле dogm_lcd_implementation.h за счет использования инверсного цвета шрифта u8g.setColorIndex


// X, Y, Z-Coordinates
u8g.setFont(FONT_STATUSMENU);
u8g.drawBox(0,29,128,10);
u8g.setColorIndex(0); // white on black
u8g.setPrintPos(2,37);
u8g.print("X";);
u8g.drawPixel(8,33);
u8g.drawPixel(8,35);
u8g.setPrintPos(10,37);
u8g.print(ftostr31ns(current_position[X_AXIS]));
u8g.setPrintPos(43,37);
lcd_printPGM(PSTR("Y";));
u8g.drawPixel(49,33);
u8g.drawPixel(49,35);
u8g.setPrintPos(51,37);
u8g.print(ftostr31ns(current_position[Y_AXIS]));
u8g.setPrintPos(83,37);
u8g.print("Z";);
u8g.drawPixel(89,33);
u8g.drawPixel(89,35);
u8g.setPrintPos(91,37);
u8g.print(ftostr31(current_position[Z_AXIS]));
u8g.setColorIndex(1); // black on white
10 Июн 00:12
0
o_O спасибо, запишу
19 Май 23:09
0
для того чтобы на паузе уехало на парковку нужно раскоментировать #define PARK_HEAD_ON_PAUSE , а то остановилось как раньше ((

и также раскоментировать //#define FILAMENT_CHANGE_FEATURE и настроить саму позицию ))
20 Май 08:43
0
В этом случае парковка будет работать только при печати с карты памяти. И ретракт обратно не сделает.
20 Май 11:43
0
я с компа не печатаю, так как отваливается непредсказуемо ((( а зависание над моделью меня не устраивает
20 Май 12:00
0
Печатаю через octoprint - все стабильно.
Надо учесть, что у них небольшой косячок в прошивке. При возврате каретки обратный ретракт не происходит. Небольшой пропуск получается. В моей версии это исправлено.
29 Май 08:50
0
Добрый день!
Просмотрел много всякой информации о подключении BLTouch но так и не понял, датчик выполняет роль концевика Zmin или он подключается в гнездо данного концевика. Вопрос возник по той причине, что у меня как раз этот концевик используется для позиционирования стола (принтер D-Bot) и в тоже время хочу поставить датчик. Может проясните момент. Заранее благодарен.
29 Май 09:13
1
Да, датчик выполняет роль концевика Zmin и подключается в его разъем. Плюс еще нужен дополнительный сигнал для его управления.
29 Май 09:18
0
Спасибо!
29 Июл 15:27
1
Спасибо за прошивку.
Что заметил по сравнению со стоком a6:
- появился свист вентилятора обдува при скорости меньше 100%
- после старта не работает autohome для оси Z, нужно делать полный Auto Home, после чего работает и для Z отдельно.
30 Июл 21:10
0
У себя на свист внимания не обращал. Да и уже не помню, как оно со стоком было. Вроде и не изменилось ничего.
По поводу autohome: принтеру нужно сначала знать координаты Х и У, для того, чтобы понимать, что датчик находится над столом. Так что, все логично.
13 Окт 18:32
0
Добрый день,
вырубился термодатчик хотенда, сам термодатчик в порядке, прозвонив плату по методу ElectroN http://3dtoday.ru/questions/pokazaniya-termodatchika-khotenda-anet-a6/#198221 понял что atmega1284 пробита, запоял на новую. Параметры восстановились в норму, при подачи питания на плату на входе термодатчика законные 5В.
Вот пытаюсь залить марлина по вашей методике 1, но ничего не получается, Arduino IDE пишет ошибку - Дубл чек.
Возможно ли вообще так прошить нулевой мк? Если возможно где ошибка, что проверить? Если нет, то как тогда прошить марлина в новую atmega1284?
13 Окт 19:36
0
Можно подробнее, что за "Дубл чек"?
Скрин с ошибкой выложите.
14 Окт 12:01
0
Загрузчик встал,
5f921e5729f031eae0e21c3b5b2dd621.jpg

а вот сам мерлин не хочет, пишет -


avrdude: Expected signature for ATMEGA1284P is 1E 97 05
Double check chip, or use -F to override this check.

т.е. дважды проверте чип который прошиваете...
1407f16df2eae8de90dbdf145729a1ba.jpg





думаю закавыка в том что сам МК ATmega1284P на 20Мгц , а в ArduinoIDE указывается ATmega1284P на 16Мгц
14 Окт 13:00
0
Вам теперь программатор отключить нужно и прошивать через USB. И в настройках программатор переключить на тот, что в инструкции.
14 Окт 13:09
0
Поменять программатор с Arduino as ISP на USBasp и всё?
14 Окт 13:11
0
Если загрузчик записался, то все.
14 Окт 13:12
0
Пишет туже ошибку - неправильная подпись процессора...
14 Окт 13:15
0
3f72653e20562e560e083595ed70e365.jpg
14 Окт 13:16
0
А почему у вас на com порту висит arduino uno?
14 Окт 13:18
0
потому что через uno прошиваю, а что должно висеть?
14 Окт 13:22
0
Через uno зашивается только загрузчик! Потом ее нужно отключить.
Прошивка загружается уже в саму плату принтера.
14 Окт 13:36
0
В первом приближении заработало.
Добавьте в инструкцию п.9 после фразы ВАЖНО, что после установки загрузчика, подключенная Anet к USB и ICSP/SPI, должна определяться компьютером в диспетчере устройств как USB-SERIAL CH340.
И после этого заменить программатор с Arduino as ISP на USBasp, установить порт CH340 и далее не отключая никаких проводов проводить заливку марлина.
5775e0b4ce7b2810225abfb2ae64fb23.png
14 Окт 13:49
0
Хорошо, что у вас все получилось.
Провода оставлять не нужно. CH340 - это и есть плата Anet. Вы же при смене прошивки не будете опять все подключать. С прошитым загрузчиком это все уже не нужно.
14 Окт 14:03
0
Когда только USB копм Анет не видит, видно мощности USB не хватает, поэтому доп питание через J3.

Есть пара непонятных моментов:
- при включение принтера на мониторе X Y и Z мигают как знаки вопросов "?", мне пофиг, но странно
- при установки автохоум и прохождения коретки до концевиков оси не становятся 0 0 0 , Х уезжает на середину, Y и Z тоже отъезжают от нуля на 30-50 мм. Это вы в мерлине так задали или у меня что-то не откалиброванно?
14 Окт 14:16
0
Anet-овская плата от USB питание не получает. Нужно ее штатно запитать.
При включении координаты мигают вопросами, потому что принтер не знает текущих координат. После autohome все приходит в норму. Это так в новом marlin-е.
Вы какую конфигурацию выбрали?
При использовании датчика автоуровня autohome делается в центре стола, чтобы датчик гарантировано попал на стол. Но в конфигурации с автоуровнем указаны смещения датчика относительно сопла, и в центр стола он уходит именно датчиком. Сопло при этом будет смещено.
Потом, при печати, прошивка это учитывает и деталь располагается нормально.
14 Окт 14:33
0
Штатно запитать не получилось, комп и принтер в разных углах находятся, плату прошивал возле компа, потому взял 5В с ардуино и подключил к пинам в J3.
По мигалкам понятно.
Про смещения тоже понятно, конфиг взял с датчиком автоуровня, но сейчас пока просто концевиком пользуюсь, как раз в процессе модернизации принтера на автоуровень умерла плата))
В будущем надо будет скорректировать конфиг на расстояния которые реально будут с моим датчиком.
14 Окт 12:57
0
-
14 Окт 13:39
0
Благодарю за оперативный инструктаж!
8 Ноя 00:24
0
hellraider, огромное спасибо Вам за проделанную работу!
alfacnc, отдельное спасибо и Вам за подсказку как запитать anet плату от ардуино к пинам в J3.
PS. не помешало бы это вставить в пошаговую инструкцию.
2 Ноя 17:11
0
Прошился по инструкции, не сразу догнал что надо было в конце при компиляции выбрать конфиг :)
Из запасов использовал UNO. Не особо понимал зачем было плату подключать к USB на стадии заливки загрузчика, т.к. все равно питание бралось с Ардуинки. GND и 5V заюзал, плата управления сразу определилась и все зашуршало.

На сегодня 1.1.6 уже актуальна.
3 Ноя 09:37
0
Главное, что все получилось.
Обновлять до 1.1.6 особого смысла нет. Если только для собственного удовлетворения :). Качества печати на Anet это не добавит.
6 Дек 13:29
0
Подскажите, есть ли какие отличия в плане автолевела в ней, по сравнению с RC8?
Стоит обновлять?
6 Дек 13:45
0
О какой прошивке спрашиваете?
1.1.6 я не делал.
В моей 1.1.1, в плане автоуровня, отличий нет (да и в 1.1.6 тоже). Есть нормальная пауза печати, смена филамента и статистика работы принтера.
6 Дек 14:06
0
Ок, спасибо. Не буду обновлять.
22 Дек 07:11
0
Не подскажете по SkynetV2.3.2 ?
У меня стоит с автолевелом #define AUTO_BED_LEVELING_LINEAR
хотелось бы добавить замену филамента по M600, убираю коммент с #define FILAMENT_CHANGE_FEATURE в Configuration_adv но скетч не компилируется, насколько я понимаю не хватает памяти (408 байт)
Можно чего лишнего выпилить чтобы заработало? С прошивками я на ВЫ.
22 Дек 09:32
0
Можно в Configuration.h добавить строку:
#define DISABLE_M503

Освобождает довольно много памяти. Что конкретно потом отключится, я не проверял. Но, подозреваю, что редактирование EEPROM внешними программами. http://3dtoday.ru/blogs/hellraider/connection-sensor-auto-level-3dtouch-bltouch-to-the-printer-anet-a6/#314743
Все остальное -это уже глубже в прошивку лезть.
22 Дек 10:07
0
Спасибо, в моем конфиге такого (как и по ссылке писали) нет, но есть что-то подобное


#if ENABLED(EEPROM_SETTINGS)
// To disable EEPROM Serial responses and decrease program space by ~1700 byte: comment this out:
#define EEPROM_CHITCHAT // Please keep turned on if you can.
#endif
попробую наверно сначала это, а потом M503
22 Дек 10:31
0
Можно в Configuration.h добавить строку:
#define DISABLE_M503
Да! Скетч использует 129062 байт (98%) памяти устройства. Всего доступно 131072 байт. :)
А моё предположение не работает почему-то.
23 Дек 19:01
0
Эх.. кирпич вышел что-то :cry:
при заливке пишет

avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0xd9

пробовал залить загрузчик через uno, вроде залился, но в остальном все то-же самое
что еще попробовать можно?
23 Дек 19:33
0
Загрузчик точно прошился? Программатор переключили обратно на "USBasp"? Плату как Sanguino назначили?
http://3dtoday.ru/blogs/hellraider/marlin-firmware-with-auto-level-on-anet-a6/
В этой теме должны быть ответы уже, практически, на все вопросы, связанные с перепрошивкой.
23 Дек 20:17
0
такс,
1. используя arduino-1.6.12 и UNO залил загрузчик
2. через avrdudess залил штатную прошивку, на скорости 115200
3. принтер вроде завелся, на команды через pronterface отвечает
3.1 почти - жто потому что экран пустой и он постоянно пищит, точнее что-то там вякает бипером)
04c0279c6eed986011aeb58a9b91d9db.PNG

3.при попытки залить марлин или скайнет через преднастроеный arduino 1.8.0 на скорости 57600 ошибка та-же.

Я так понимаю надо изменить скорость заливки скетча, правильно? А вот как это сделать?)

Программатор переключили обратно на "USBasp"?
за что эта функция отвечает? да, переключал
23 Дек 20:27
0
Через преднастроенный arduino 1.8.0 теперь ничего не зальется. Нужно добавить поддержку плат Sanguino.
Делать все четко по пунктам из моей инструкции.
Странно, что заводская прошивка не загрузилась. Я прошивку с моего яндекс диска заливал. Все работало.
23 Дек 20:32
0
заработало!
но я окончательно запутался, в матчасти совсем нуб по этой теме
arduino 1.8.0 который шел со скайнетом, там есть плата Anet 1.0, но я добавил Sanguino, и включил USBasp, скайнет залился успешно на скорости 115200

прокомментируйте, почему первый раз работало с платой Anet 1.0, а теперь надо Sanguino выбирать.
свежие сборки марлина или вашу тоже через Sanguino заливать?
23 Дек 20:45
1
Рад, что получилось восстановить.
Загрузчик от Anet отличается от загрузчика Sanguino. Поэтому, теперь, для перепрошивки нужно выбирать Sanguino.
В преднастроенном arduino 1.8.0 сделана поддержка заводского загрузчика, но сделана кривовато. Это иногда приводит к некорректной прошивке. Когда вы поменяли загрузчик, то превратили свою плату из Anet 1.0 в Sanguino. Это имеет большой плюс, в плане того, что загрузчик больше не слетит и загружать в плату можно все, что угодно.
Можете и Skynet и Marlin 1.1.6 и мою прошивку загрузить. Все будет стабильно.
23 Дек 22:09
0
спасибо за поддержку, M600 работает просто отлично, пока посижу на последнем Skynet
23 Дек 19:24
0
-

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

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

ViscoTec разработала головку 3d-принтера для печати вязких материалов

Попил по-тевтонски: Kasto предлагает решение для отделения металлических 3D-печатных деталей

На прилавках магазинов появились 3D-печатные кроссовки Adidas Futurecraft 4D

Wanhao D7 Box по выгодной цене!

Решения по 3D-печати персональных ортопедических стелек с Formnext 2017

Усиленный Дракон без чупа-чупс