Реклама

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

Подписаться на 3Dtoday
hellraider
Идет загрузка
Загрузка
19.05.17
7610
67
печатает на RepRap
Техничка
19
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
19
Комментарии к статье
Реклама

Комментарии

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

21.05.17 в 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.06.17 в 00:12
0
o_O спасибо, запишу
19.05.17 в 23:09
0
для того чтобы на паузе уехало на парковку нужно раскоментировать #define PARK_HEAD_ON_PAUSE , а то остановилось как раньше ((

и также раскоментировать //#define FILAMENT_CHANGE_FEATURE и настроить саму позицию ))
20.05.17 в 08:43
0
В этом случае парковка будет работать только при печати с карты памяти. И ретракт обратно не сделает.
20.05.17 в 11:43
0
я с компа не печатаю, так как отваливается непредсказуемо ((( а зависание над моделью меня не устраивает
20.05.17 в 12:00
0
Печатаю через octoprint - все стабильно.
Надо учесть, что у них небольшой косячок в прошивке. При возврате каретки обратный ретракт не происходит. Небольшой пропуск получается. В моей версии это исправлено.
29.05.17 в 08:50
0
Добрый день!
Просмотрел много всякой информации о подключении BLTouch но так и не понял, датчик выполняет роль концевика Zmin или он подключается в гнездо данного концевика. Вопрос возник по той причине, что у меня как раз этот концевик используется для позиционирования стола (принтер D-Bot) и в тоже время хочу поставить датчик. Может проясните момент. Заранее благодарен.
29.05.17 в 09:13
1
Да, датчик выполняет роль концевика Zmin и подключается в его разъем. Плюс еще нужен дополнительный сигнал для его управления.
29.05.17 в 09:18
0
Спасибо!
29.07.17 в 15:27
1
Спасибо за прошивку.
Что заметил по сравнению со стоком a6:
- появился свист вентилятора обдува при скорости меньше 100%
- после старта не работает autohome для оси Z, нужно делать полный Auto Home, после чего работает и для Z отдельно.
30.07.17 в 21:10
0
У себя на свист внимания не обращал. Да и уже не помню, как оно со стоком было. Вроде и не изменилось ничего.
По поводу autohome: принтеру нужно сначала знать координаты Х и У, для того, чтобы понимать, что датчик находится над столом. Так что, все логично.
13.10.17 в 18:32
0
Добрый день,
вырубился термодатчик хотенда, сам термодатчик в порядке, прозвонив плату по методу ElectroN http://3dtoday.ru/questions/pokazaniya-termodatchika-khotenda-anet-a6/#198221 понял что atmega1284 пробита, запоял на новую. Параметры восстановились в норму, при подачи питания на плату на входе термодатчика законные 5В.
Вот пытаюсь залить марлина по вашей методике 1, но ничего не получается, Arduino IDE пишет ошибку - Дубл чек.
Возможно ли вообще так прошить нулевой мк? Если возможно где ошибка, что проверить? Если нет, то как тогда прошить марлина в новую atmega1284?
13.10.17 в 19:36
0
Можно подробнее, что за "Дубл чек"?
Скрин с ошибкой выложите.
14.10.17 в 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.10.17 в 13:00
0
Вам теперь программатор отключить нужно и прошивать через USB. И в настройках программатор переключить на тот, что в инструкции.
14.10.17 в 13:09
0
Поменять программатор с Arduino as ISP на USBasp и всё?
14.10.17 в 13:11
0
Если загрузчик записался, то все.
14.10.17 в 13:12
0
Пишет туже ошибку - неправильная подпись процессора...
14.10.17 в 13:15
0
3f72653e20562e560e083595ed70e365.jpg
14.10.17 в 13:16
0
А почему у вас на com порту висит arduino uno?
14.10.17 в 13:18
0
потому что через uno прошиваю, а что должно висеть?
14.10.17 в 13:22
0
Через uno зашивается только загрузчик! Потом ее нужно отключить.
Прошивка загружается уже в саму плату принтера.
14.10.17 в 13:36
0
В первом приближении заработало.
Добавьте в инструкцию п.9 после фразы ВАЖНО, что после установки загрузчика, подключенная Anet к USB и ICSP/SPI, должна определяться компьютером в диспетчере устройств как USB-SERIAL CH340.
И после этого заменить программатор с Arduino as ISP на USBasp, установить порт CH340 и далее не отключая никаких проводов проводить заливку марлина.
5775e0b4ce7b2810225abfb2ae64fb23.png
14.10.17 в 13:49
0
Хорошо, что у вас все получилось.
Провода оставлять не нужно. CH340 - это и есть плата Anet. Вы же при смене прошивки не будете опять все подключать. С прошитым загрузчиком это все уже не нужно.
14.10.17 в 14:03
0
Когда только USB копм Анет не видит, видно мощности USB не хватает, поэтому доп питание через J3.

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

На сегодня 1.1.6 уже актуальна.
03.11.17 в 09:37
0
Главное, что все получилось.
Обновлять до 1.1.6 особого смысла нет. Если только для собственного удовлетворения :). Качества печати на Anet это не добавит.
06.12.17 в 13:29
0
Подскажите, есть ли какие отличия в плане автолевела в ней, по сравнению с RC8?
Стоит обновлять?
06.12.17 в 13:45
0
О какой прошивке спрашиваете?
1.1.6 я не делал.
В моей 1.1.1, в плане автоуровня, отличий нет (да и в 1.1.6 тоже). Есть нормальная пауза печати, смена филамента и статистика работы принтера.
06.12.17 в 14:06
0
Ок, спасибо. Не буду обновлять.
22.12.17 в 07:11
0
Не подскажете по SkynetV2.3.2 ?
У меня стоит с автолевелом #define AUTO_BED_LEVELING_LINEAR
хотелось бы добавить замену филамента по M600, убираю коммент с #define FILAMENT_CHANGE_FEATURE в Configuration_adv но скетч не компилируется, насколько я понимаю не хватает памяти (408 байт)
Можно чего лишнего выпилить чтобы заработало? С прошивками я на ВЫ.
22.12.17 в 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.12.17 в 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.12.17 в 10:31
0
Можно в Configuration.h добавить строку:
#define DISABLE_M503
Да! Скетч использует 129062 байт (98%) памяти устройства. Всего доступно 131072 байт. :)
А моё предположение не работает почему-то.
23.12.17 в 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.12.17 в 19:33
0
Загрузчик точно прошился? Программатор переключили обратно на "USBasp"? Плату как Sanguino назначили?
http://3dtoday.ru/blogs/hellraider/marlin-firmware-with-auto-level-on-anet-a6/
В этой теме должны быть ответы уже, практически, на все вопросы, связанные с перепрошивкой.
23.12.17 в 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.12.17 в 20:27
0
Через преднастроенный arduino 1.8.0 теперь ничего не зальется. Нужно добавить поддержку плат Sanguino.
Делать все четко по пунктам из моей инструкции.
Странно, что заводская прошивка не загрузилась. Я прошивку с моего яндекс диска заливал. Все работало.
23.12.17 в 20:32
0
заработало!
но я окончательно запутался, в матчасти совсем нуб по этой теме
arduino 1.8.0 который шел со скайнетом, там есть плата Anet 1.0, но я добавил Sanguino, и включил USBasp, скайнет залился успешно на скорости 115200

прокомментируйте, почему первый раз работало с платой Anet 1.0, а теперь надо Sanguino выбирать.
свежие сборки марлина или вашу тоже через Sanguino заливать?
23.12.17 в 20:45
1
Рад, что получилось восстановить.
Загрузчик от Anet отличается от загрузчика Sanguino. Поэтому, теперь, для перепрошивки нужно выбирать Sanguino.
В преднастроенном arduino 1.8.0 сделана поддержка заводского загрузчика, но сделана кривовато. Это иногда приводит к некорректной прошивке. Когда вы поменяли загрузчик, то превратили свою плату из Anet 1.0 в Sanguino. Это имеет большой плюс, в плане того, что загрузчик больше не слетит и загружать в плату можно все, что угодно.
Можете и Skynet и Marlin 1.1.6 и мою прошивку загрузить. Все будет стабильно.
23.12.17 в 22:09
0
спасибо за поддержку, M600 работает просто отлично, пока посижу на последнем Skynet
23.12.17 в 19:24
0
-
24.01.18 в 21:05
0
Большое спасибо за статью!
Все прошил и установил автолевел (оптический). прошивка 1.1.1. autolevel. Все отрабатывает из Repetier (G28 ; Home extruder, G29; Auto level) и из меню принтера.
Но при печати не учитывает измерений, сделанных в режиме Auto level. Для проверки специально наклонил стол, запустил Auto level и печать - все 9 точки измеряет, но печатает от уровня Home.
Может что - то не включил в прошивке или в G код добавить какую то команду (дополнительно к G28 и G29)?
Я новичок - не судите строго)
24.01.18 в 21:42
0
Вам нужно правильно задать смещение сопла относительно датчика - параметр Z-Offset в меню принтера.
По этой ссылке можно прочитать как это делается.
Команды G28 и G29 нужно прописать в стартовом скрипте слайсера.
В принципе, больше ничего не требуется.
Вы уверены в своем датчике? И что это за датчик? У меня сначала был индуктивный датчик, но я так и не смог заставить его нормально работать. Только после перехода на контактный датчик все стало хорошо.
25.01.18 в 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.01.18 в 14:56
0
Странно. Если из Repetier Host дать команду G29, то в терминал принтер должен выдать таблицу изменения высот.
Типа такой . Что он там пишет? Может у вас слишком большой перекос и принтер его уже не может исправить... Я специально не ставил большое искривление. Но с значениями как по ссылке у меня все было хорошо.
На крайний случай, на яндекс диске в архиве есть версия RC8. Можно еще ее попробовать.
25.01.18 в 16:54
0
Если стол ровный, то можно еще попробовать переключиться с билинейного автоуровня на линейный.
25.01.18 в 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.01.18 в 17:58
0
Это то, что нужно. как раз отклонения точек относительно центра.
Попробуйте все-таки уменьшить перекос, хотя бы до 0.5. По вращению винтов осей Z и так будет видно, что автоуровень работает.
Терминалом я называю окно. в котором ответы от принтера проходят. А это у меня в Octoprint так выглядит.
И отвечайте пожалуйста кнопкой "Ответить", а то потом при просмотре нить разговора теряется.
25.01.18 в 19:52
1
Вы были правы: я слишком сильно опустил угол стола (видел в ютюбе как печатали под углом). После выравнивания стола отправил на печать большой кубик и все заработало.
вернулся к версии 1.1.1
Еще раз спасибо за помощь!
25.01.18 в 21:00
0
Теперь все будем знать, что все-таки есть ограничение на максимальный перекос. Может в последующих версиях Marlin это значение и больше, но с другой стороны стол, желательно, хоть примерно ровно держать.
20.02.18 в 20:55
0
Коллеги, а обязательно шить ардуиной? А если программатором для AVR AVRISP MKII?
20.02.18 в 22:56
0
Если Arduino IDE его подхватит, то можно.
27.02.18 в 23:03
0
подхватило и прошило:)
23.02.18 в 22:20
0
Доброго дня.Прошу прощения, что немного не по теме. Подскажите, как решить проблему. Собрал я D-Bot, с группы на фейсбуке залил прошивку марлин 1.1.2 все был хорошо, но как оказалось что печать получалась зеркальной, это я подправил, но появилась проблема - принтер никак не реагирует на изменения параметров в
#define HOTEND_OFFSET_X {0.0, 18.00} // (in mm) for each extruder, offset of the hotend on the X axis
#define HOTEND_OFFSET_Y {0.0, 0.00} // (in mm) for each extruder, offset of the hotend on the Y axis
а он двухцветный... Решил залить чистую 1.1.8 в ней этот баг исправлен, но есть другой, я под свой принтер инвертировал направления движения, и вот когда голова паркуется, она перед печатью должна отъезжать в сторону на см, затем небольшая пауза и начинается печать, так было, а вот сейчас, принтер паркуется с этим все OK, но затем, когда должна начаться печать, он ломится к концевикам ломая их, то есть отъезжает на этот см не в сторону стола а в противополождную, но вот как это побороть я не знаю, быть может поможете?
И еще, не подскажите, что нужно изменить, что бы:
Основное отличие этого релиза – это переработанная пауза печати. Теперь сопло приподнимается и уходит в начало координат, а после возвращается обратно. Пауза при печати с SD карты включается в меню как обычно.
Пауза при печати с компьютера, octoprint и т.д., включается в меню TUNE (при печати с карты этот пункт также присутствует, но при нажатии на него ничего не происходит). Выбор этого пункта отводит сопло в сторону, и принтер ждет нажатия на энкодер для продолжения печати.
реализовать для D-bot?
24.02.18 в 20:05
0
По первой части вопроса не подскажу, так как с двойным экструдером дела не имел. Если в 1.1.2 было нормально, то смотрите настройки оттуда. Может пропустили что-то.
Для паузы с отводом головы сейчас есть пункт "#define ADVANCED_PAUSE_FEATURE" . Там еще довольно много дополнительных параметров можно настроить. Для того, чтобы пауза работала не только при печати с SD карты , пришлось написать свою команду М124 в файле Marlin_main.cpp и встроить ее вызов в файле Ultralcd.cpp.

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

Реклама

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

GREG... покупать или нет.

Сборка Хорошего бота на запчастях от прюши. (много фото)

Роза мультицвет или эксперимент удался..И, немного про принтеры...

3Dtoday за 60 секунд от 19 апреля

Хороший бот из прюши с кинематикой CoreXY

В Милане завершилось строительство демонстрационного 3D-печатного дома

Реклама