Металл2024 Реклама
Метобр2024 Реклама

Прошивка Marlin с автоуровнем на Anet A6.

HellRaider
Идет загрузка
Загрузка
29.10.2016
69822
324
Техничка

Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.

Отписаться от уведомлений вы всегда сможете в профиле автора.

38
Статья относится к принтерам:
Anet A6
Прошивка Marlin с автоуровнем на Anet A6.
Давно не давало покоя отсутствие автоуровня на Anet A6, и наличие его на Anet A8.

Так как платы абсолютно одинаковые, то все отличие только в экране.

Так как прошивка marlin для Anet A8 уже давно лежит в свободном доступе https://www.facebook.com/skynet3ddevelopment/ , то так и чесались руки адаптировать ее под A6.

Масла в огонь подлил товарищ JohnnyTheOne, который выложил измененные файлы marlin для прошивки A6 https://github.com/JohnnyTheOne/MarlinAnetA6. Также решиться на это дело помог пост maxwell2010 о том, что если что-то пойдет не так, то все можно вернуть обратно http://3dtoday.com/blogs/maxwell2010/iscp-connector-on-the-motherboard-anet-v10-or-how-i-restored-the-print/ .

Скачал marlin RC7 и заменил файлы от JohnnyTheOne.

Arduino решил использовать из архива для Anet A8, так как там уже была встроена поддержка платы Anet V1.0. Но при компиляции Arduino выдал, что у меня в контроллере не хватает около 6 килобайт памяти. Немного озадаченный решил сэкономить память, пока отключив автоуровень, чтобы увидеть хоть что-нибудь. Отключив автоуровень и еще пару функций, прошивка скомпилировалась. Но дальше, при попытке загрузки компилятор выдал, что связь с контроллером потеряна и я получил проблему на свою голову. Слетел bootloader процессора. Морально к этому я уже был готов, поэтому достал из ящика стола arduino nano и приступил к восстановлению.

По фотографиям от maxwell2010 и инструкции lavstudia http://3dtoday.ru/blogs/lavstudia/update-bootloader-board-melzi-for-wanhao-duplicator-v2-i3-and-other-re/ попытался восстановить загрузчик. Но «настроенный» Arduino 1.6.3 отказался это делать. Скачав последний Arduino 1.6.12, и заново его настроив, все-таки восстановил bootloader. По другой инструкции от maxwell2010 http://3dtoday.com/blogs/maxwell2010/the-firmware-of-the-printer-anet-anet-a6-version-v20/ восстановил заводскую прошивку. Единственный момент, что процессор платы окончательно перестал отзываться на скорость 57600, а стал отзываться на скорость 115200.

Пройдя первый неудачный круг, решился на второй.

Arduino 1.6.3 решил больше не использовать, а делать все через уже настроенный самостоятельно Arduino 1.6.12. После компиляции компилятор выдал, что у меня есть еще довольно много свободной памяти и я на радостях включил обратно автоуровень.

Загрузка на этот раз прошла успешно, но экран принтера остался синим. Подключив принтер к repetier-host выяснил, что сам принтер работает. На команды G28 и G29 принтер уверенно пробежался датчиком по столу и встал в ожидании. Можно было и дальше пользоваться только через комп или octoprint, но недоделанность не давала покоя. К слову на видео, которое выложил JohnnyTheOne не показывается работа экрана https://www.facebook.com/johnny.eshak.1/videos/664854660341355/?fallback=1.

Дальше начались изыскания схемы подключения дисплея и прозвонки номеров контактов процессора и разъема LCD платы. Попытка найти pinout atmega1284p для arduino дала еще больше вопросов. Номера пинов в выложенных постах и в marlin не совпадают.

Подключив к шлейфу светодиод и загрузив скетч Blink, начал перебирать номера пинов и искать соответствие. Вычислив все я назначил номера выводов и загрузил прошивку. Но… ничего не изменилось – экран так и остался синим.

Прошивка Marlin с автоуровнем на Anet A6.

Со злости я взял скетч ”Hello World” и загрузил его в плату. На удивление экран заработал и выдал заветную надпись. Дальше начал по порядку пробовать разные комбинации пинов и наконец один из вариантов сработал. Почему не работало со стандартной нумерацией для меня осталось загадкой. Изображение появилось, но было малочитаемым. Изображение постоянно рассыпалось и смазывалось, как будто было не синхронизировано.

После долгого изучения методом тыка нашел таки задержки, отвечающие за синхронизацию экрана в файле ultralcd_st7920_u8glib_rrd.h. После любимого «научного метода» экран все-таки заработал нормально.

Можно даже включить «Великий и могучий» и наслаждаться родным языком.

В итоге прошивка компилируется, заливается, принтер работает.

Прошивка Marlin с автоуровнем на Anet A6.

Всем желающим сюда https://yadi.sk/d/DgV1HGEyxkVrj

После всего вышепроделанного осталось некоторое количество вопросов.

1. Почему слетел bootloader и после его восстановления изменилась скорость подключения? (возможно, что если сразу использовать Arduino 1.6.12, то этого не произойдет)

2. Почему не заработал экран с стандартной нумерацией пинов? (по контактам подключения самого экрана и названиям переменных в marlin все совпадало)

3. Почему пришлось править частоту синхронизации в marlin, но при этом стандартный скетч arduino показывал нормально?

P.S. Все что вы делаете – вы делаете на свой страх и риск. За неработающие платы автор ответственности не несет.



P.P.S. Огромное спасибо maxwell2010 за информацию по восстановлению bootloader.

Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.

Отписаться от уведомлений вы всегда сможете в профиле автора.

38
Комментарии к статье
Кремень КБ Реклама
Кремень КМ Реклама