Прошивка 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.
Еще больше интересных статей
Tronxy XY-3 SE, директ, klipper - гонка за скоростью.
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Начну пожалуй с того, что я впервые за много лет пишу статью...
Tronxy XY-3 SE, директ, klipper - гонка за скоростью. Продолжение.
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Решил продолжить тему, принтер претерпел изменения.
Во...
Blue Pill & SSD1306, ну очень маленькие.., но 32 бит!
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Решил я тут попробовать перейти с 8 бит на 32.
Готовы...
Комментарии и вопросы
Добрый день. Мне тоже можете с...
в целом если размер принтера п...
Спасибо за конструктив.Перед к...
Как правильно подключается, вы...
Механизм для подачи пластика н...
Подскажите в чем может быть пр...
Есть два флеша, один из которы...