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

Подписаться на 3Dtoday
hellraider
Идет загрузка
Загрузка
19.05.17
6484
62
печатает на 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
-
24 Янв 21:05
0
Большое спасибо за статью!
Все прошил и установил автолевел (оптический). прошивка 1.1.1. autolevel. Все отрабатывает из Repetier (G28 ; Home extruder, G29; Auto level) и из меню принтера.
Но при печати не учитывает измерений, сделанных в режиме Auto level. Для проверки специально наклонил стол, запустил Auto level и печать - все 9 точки измеряет, но печатает от уровня Home.
Может что - то не включил в прошивке или в G код добавить какую то команду (дополнительно к G28 и G29)?
Я новичок - не судите строго)
24 Янв 21:42
0
Вам нужно правильно задать смещение сопла относительно датчика - параметр Z-Offset в меню принтера.
По этой ссылке можно прочитать как это делается.
Команды G28 и G29 нужно прописать в стартовом скрипте слайсера.
В принципе, больше ничего не требуется.
Вы уверены в своем датчике? И что это за датчик? У меня сначала был индуктивный датчик, но я так и не смог заставить его нормально работать. Только после перехода на контактный датчик все стало хорошо.
25 Янв 11:04
0
Датчик делал на базе этого "чуда": https://www.thingiverse.com/thing:1517363 просто приклеил (не смог победить формат буржуйского файла и сделать новую деталь) к Вашей платформе крепления индуктивного датчика и вентилятора. Работает отлично.
63aaabb544dda9fd777ca6f410f17c92.jpg

Индуктивный то же не смог наладить - слишком велика разница в показаниях в разных точках стола. фольга не помогла и решил попробовать фото датчик (были от принтеров)
Параметр Z-Offset выставлен и в точке "Home" программа идеально отрабатывает при изменении высоты стола (например - подложенное стекло).
Команды G28 и G29 прописаны в стартовом скрипте слайсера: отрабатывает на "Ура!" аж душа поёт, но при печати - не учитывает выполненные измерения (сопло в месте наклона стола - печатает по воздуху - от уровня соответствующего точке "Home" )
От датчика плюсовой сигнал идёт. В "Configuration" изменял:
#define Z_MIN_ENDSTOP_INVERTING false (было "true")
#define Z_MIN_PROBE_ENDSTOP_INVERTING false (было "true")
Больше ни чего не трогал. Но ведь накосячил где то (((. Сейчас изучаю прошивку, но время мало - отпуск заканчивается.
25 Янв 14:56
0
Странно. Если из Repetier Host дать команду G29, то в терминал принтер должен выдать таблицу изменения высот.
Типа такой . Что он там пишет? Может у вас слишком большой перекос и принтер его уже не может исправить... Я специально не ставил большое искривление. Но с значениями как по ссылке у меня все было хорошо.
На крайний случай, на яндекс диске в архиве есть версия RC8. Можно еще ее попробовать.
25 Янв 16:54
0
Если стол ровный, то можно еще попробовать переключиться с билинейного автоуровня на линейный.
25 Янв 17:44
0
Спасибо за помощь.
Repetier Host после G29 проходит 9 точек и выдаёт в своём журнале:

16:05:41.177 : Bilinear Leveling Grid:
16:05:41.177 : 0 1 2
16:05:41.177 : 0 -1.200 -0.305 +0.648
16:05:41.177 : 1 -1.020 -0.050 +0.945
16:05:41.177 : 2 -0.888 +0.120 +1.162
16:05:41.177 : X:216.00 Y:169.00 Z:11.64 E:0.00 Count X:21600 Y:16900 Z:5100
16:05:41.177 : ok
отдельно по точкам - информацию не выдаёт....
пока пробую настроить RC8.
Стесняюсь спросить что за терминал? Это дополнительная программа? обновил Repetier Host в надежде увидеть вкладку "Terminal" )
Стол наклонил так, чтобы было видно на глаз - отрабатывает или нет. Но ось Z не вращается.
25 Янв 17:58
0
Это то, что нужно. как раз отклонения точек относительно центра.
Попробуйте все-таки уменьшить перекос, хотя бы до 0.5. По вращению винтов осей Z и так будет видно, что автоуровень работает.
Терминалом я называю окно. в котором ответы от принтера проходят. А это у меня в Octoprint так выглядит.
И отвечайте пожалуйста кнопкой "Ответить", а то потом при просмотре нить разговора теряется.
25 Янв 19:52
1
Вы были правы: я слишком сильно опустил угол стола (видел в ютюбе как печатали под углом). После выравнивания стола отправил на печать большой кубик и все заработало.
вернулся к версии 1.1.1
Еще раз спасибо за помощь!
25 Янв 21:00
0
Теперь все будем знать, что все-таки есть ограничение на максимальный перекос. Может в последующих версиях Marlin это значение и больше, но с другой стороны стол, желательно, хоть примерно ровно держать.

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

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

Альтернатива reprap like дисплеям

Оценка времени экспозиции фотосмолы

Двойной экструдер типа "револьвер".

"Горшковый вариант" или -" знак качества нам только снится".

Настройки Simplify3D для Wanhao Duplicator 6

Закинуть удочку или... Всем участникам конкурса Picaso 3D посвящается.