Прошивка Marlin с автоуровнем на Anet A6.
Так как платы абсолютно одинаковые, то все отличие только в экране.
Так как прошивка 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, начал перебирать номера пинов и искать соответствие. Вычислив все я назначил номера выводов и загрузил прошивку. Но… ничего не изменилось – экран так и остался синим.
Со злости я взял скетч ”Hello World” и загрузил его в плату. На удивление экран заработал и выдал заветную надпись. Дальше начал по порядку пробовать разные комбинации пинов и наконец один из вариантов сработал. Почему не работало со стандартной нумерацией для меня осталось загадкой. Изображение появилось, но было малочитаемым. Изображение постоянно рассыпалось и смазывалось, как будто было не синхронизировано.
После долгого изучения методом тыка нашел таки задержки, отвечающие за синхронизацию экрана в файле ultralcd_st7920_u8glib_rrd.h. После любимого «научного метода» экран все-таки заработал нормально.
Можно даже включить «Великий и могучий» и наслаждаться родным языком.
В итоге прошивка компилируется, заливается, принтер работает.
Всем желающим сюда https://yadi.sk/d/DgV1HGEyxkVrj
После всего вышепроделанного осталось некоторое количество вопросов.
1. Почему слетел bootloader и после его восстановления изменилась скорость подключения? (возможно, что если сразу использовать Arduino 1.6.12, то этого не произойдет)
2. Почему не заработал экран с стандартной нумерацией пинов? (по контактам подключения самого экрана и названиям переменных в marlin все совпадало)
3. Почему пришлось править частоту синхронизации в marlin, но при этом стандартный скетч arduino показывал нормально?
P.S. Все что вы делаете – вы делаете на свой страх и риск. За неработающие платы автор ответственности не несет.
P.P.S. Огромное спасибо maxwell2010 за информацию по восстановлению bootloader.
Еще больше интересных статей
Подсветка для Ender 3 и Sprite Extruder с обдувом K3D
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Попросили меня подробнее написать про подсветку на моем Ender 3....
Температура стола и пирометр.
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Настраиваем прошивку Marlin и заливаем её в 3D принтер
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Комментарии и вопросы
Фотка старая, прикручен давно....
Все ок, инфа полезная сама по....
Так он практически сразу после...
Всем привет, может кто знает п...
Приветствую, начал знакомится...
Здравствуйте. Имеется стоковый...
Всем доброго! По поводу жидкой...