Atmel Atmega гнездо Firmware мигающий инструмент
JavaScript seems to be disabled in your browser.
You must have JavaScript enabled in your browser to utilize the functionality of this website.
Proceed to Checkout
Итоговая цена
0,00 A$
Корзина 0
Хотите бесплатную доставку? кликните сюда Узнать больше!
{{/findAutocomplete}}
SKU: {{sku}} {{#isFreeshipppingEnabled}} Бесплатная доставка подходящих заказов {{/isFreeshipppingEnabled}}
{{#isDiscountFlag1Enabled}}
{{/isDiscountFlag1Enabled}} {{#isDiscountFlag2Enabled}}
{{/isDiscountFlag2Enabled}} {{#isDiscountFlag3Enabled}}
{{/isDiscountFlag3Enabled}} {{#isDiscountFlag4Enabled}}
{{/isDiscountFlag4Enabled}} {{#isDiscountFlag5Enabled}}
{{/isDiscountFlag5Enabled}} {{#isDiscountFlag6Enabled}}
{{/isDiscountFlag6Enabled}} {{#isDiscountFlag7Enabled}}
{{/isDiscountFlag7Enabled}} {{#isDiscountFlag8Enabled}}
{{/isDiscountFlag8Enabled}} {{#isDiscountFlag9Enabled}}
{{/isDiscountFlag9Enabled}} {{#list_image_url}}{{/list_image_url}} {{^list_image_url}}{{/list_image_url}}
{{#isFreeshipppingEnabled}}
Бесплатная доставка подходящих заказов
{{/isFreeshipppingEnabled}} {{#isAddToCartEnabled}} {{#isWarehouseAddToCartEnabled}} {{^is_combo_product}}
Количество: {{#isAgerestrictionEnabled}} {{/isAgerestrictionEnabled}} {{^isAgerestrictionEnabled}} {{/isAgerestrictionEnabled}}{{/is_combo_product}} {{/isWarehouseAddToCartEnabled}} {{/isAddToCartEnabled}} {{#availableInOtherWarehouses}} {{{availableInOtherWarehouses}}} {{/availableInOtherWarehouses}} {{#is_combo_product}} {{^isProhibited}} Подробнее {{/isProhibited}} {{/is_combo_product}} {{#isProhibited}}
We are sorry, this product is not available in your country
{{/isProhibited}}
{{#hbk_price. stock_2_group_0_original_formated}} {{hbk_price.stock_2_group_0_original_formated_label}} {{hbk_price.stock_2_group_0_original_formated}} {{/hbk_price.stock_2_group_0_original_formated}} {{#is_combo_product}} {{hbk_price.stock_2_group_0_combo_price_label}} {{/is_combo_product}} {{hbk_price.stock_2_group_0_formated}} {{#hbk_price.stock_2_group_0_original_formated}} {{hbk_price.stock_2_group_0_you_save_formated_label}} {{hbk_price.stock_2_group_0_you_save_formated}} {{/hbk_price.stock_2_group_0_original_formated}}
Альтернативная прошивка для готовых аппаратур
|
Однобитный гейминг, или правило 34 для микроконтроллеров — Железо на DTF
6002 просмотров
Если бы для микроконтроллеров существовало правило 34, то оно, скорее всего, звучало-бы так: «Если это исполняет программы, кто-то уже написал для этого игру». При этом производительность совершенно не важна, как и то, для чего контроллер предназначался в оригинале. Важен сам принцип – если это выполняет программы, на этом можно поиграть.
Игровые системы на самых, казалось-бы, малоподходящих чипах пытались делать уже давно, но сегодняшнее развитие микроэлектроники, прототипирования и производства позволило некоторым из этих устройств стать по-настоящему дешевыми и популярными. В этой статье я покажу несколько примеров портативных игровых консолей, сделанных на довольно неожиданной «начинке» — и заработавших популярность в кругах энтузиастов как ретро–игр, так и программирования и электроники.
Так же, как инди-игры зачастую не слишком технологичны, но могут быть интересным (или красивым) экспериментом, эти устройства, или как их еще называют «инди-консоли» скорее среда для экспериментов и идей, нежели серьезное игровое железо с новыми возможностями.
Инди-консоли обычно делаются на основе какого-то распространенного микроконтроллера — чипа, на котором сразу находятся и процессор, и шина, и ОЗУ/ПЗУ, и основные интерфейсы. Что, во-первых, удобно – можно стразу приделывать нужные устройства ввода-вывода, а во-вторых, микроконтроллеры обычно дешевы и компактны.
Микроконтроллер — все свое носит с собою. Источник — http://myowndevice.ru/
Для создания инди-консолей могут использоваться самые разные процессоры и чипсеты, – от ATMega 32u4 (процессор ардуино леонардо) до в десять с лишним раз более быстрого STM32F746IGK, но, чаще всего это будут системы, совместимые с Arduino IDE – будь то оригинальные ардуино, или EST32.
Благодаря, в том числе, компактности микроконтроллеров, сегодня инди консоли обычно делаются в формате небольшой портативки. Варианты платы для подключения к телевизору через AV или c интерфейсом HDMI тоже существовали, но мало какие из этих проектов дожили до наших дней.
Консоль HackVision (2010) — бывали и такие варианты, но сейчас речь не о них.
Почему инди-консоли?
По своей сути, инди-консоли похожи на так называемые «фэнтезийные консоли» — другой интересный феномен игрового дизайна. Фэнтезийные консоли (Fantasy Consoles) — это программные среды для эмуляции и создания игр для никогда не существовавших физически игровых устройств. Сегодня существуют десятки фэнтезийных консолей и тысячи созданных энтузиастами игр. Разработчиков – чаще всего любителей – привлекают, как ни парадоксально, именно ограничения системы, и связанная с ними возможность сосредоточится на создании игры в простой среде, не отвлекаясь на сложное многообразие возможностей современных игровых движков и запутанное железо ПК и консолей.
У фэнтезийных консолей можно выделить три характерных составляющих —
1) Среда разработки, содержащая текстовый редактор, редактор спрайтов, редактор карт и звуковой редактор.
Интегрированная среда фэнтезийной консоли OCTO (Chip-8)
2) Набор искусственно наложенных ограничений разработки, таких как ограниченное графическое разрешение, цветовые палитры, использование оперативной памяти или дисковое пространство.
3) Игры, приложения и демонстрации, разработанные исходя из этих ограничений, с общими эстетикой и стилем.
Игры, созданные на консоли Pico-8. Чувствуется некоторое стилистическое единство. Кстати, если вам показалось, то не показалось — в нижнем левом углу — Celeste. Эта игра была изначально написана на pico-8 а потом доработана и портирована на другие системы.
Инди-консоли устроены похожим образом — подобно фэнтезийным консолям, они предлагают «игру в создание игры». Игровой дизайн и программирование становятся чем-то вроде мета игры с ограничениями и правилами – подобными ограничениям создателей игр для оригинальных 8-битных приставок. Кроме того, инди-консоли часто имеют открытый код и схемы, и дают практически недостижимый в современных системах контроль над всеми аспектами и возможностями железа.
Одним из первых широко известных и коммерчески успешных проектов на основе ATMega 328 (Arduino UNO) стала консоль Gamebuino (2012). 16 MHz, 2KB ram, 32kb flash, монохромный экран 84×48 пикселей и шесть кнопок. Что еще нужно для игр и творчества?
Консоль была встречена с большим энтузиазмом и успешно профинансирована на Indiegogo, собрав 1055% от запланированной суммы. Консоль стоила 35 евро для бэкеров, и около 38 позже, в онлайн магазине.
В этой консоли есть все, что стало визитной карточкой подобных систем – распространенный и популярный чип с открытой документацией и огромным сообществом энтузиастов, дешевизна, небольшой размер, элегантные схемотехнические решения и дизайн, учитывающий малосерийное производство. И тот факт, что каждая консоль – это одновременно своеобразный девкит, и её можно использовать не только для игры, как таковой, но и для разработки новых игр и расширения экосистемы консоли.
Сегодня именно эту консоль купить уже нельзя, но создавшая её компания существует и выпускает следующую, более мощную, модель. Так же до сих пор живы форумы и сообщества, где можно найти помощь и информацию и до сих пор можно приобрести совместимую консоль – набор для самостоятельной сборки MakerBuino. (Честно сказать, создателей MakerBuino я немного недолюбливаю — некогда недорогой радиолюбительский кит они превратили в хипстерскую коробку с добавлением низкокачественных китайских инструментов и сильно подняли цену)
«Вы хотите поиграть на необитаемом острове и у вас есть лишние деньги»
За последние несколько лет энтузиасты пытались использовать в инди-консолях самые разные чипсеты. Adafruit PyGamer – один из примеров консоли на более мощном железе. Я затрудняюсь сказать, насколько эта консоль «инди» поскольку компания Adafruit достаточно крупный игрок на рынке плат и решений для независимых разработчиков и обучения, но все основные признаки инди-консолей в PyGamer присутствуют в полной мере.
Это недорогая консоль на основе совместимого с Arduino IDE чипсета atsamd51J19. Благодаря большей, чем у базовых ардуино-совместимых контроллеров, мощности она позволяет программирование не только на С++, но и на python, а также использовать визуальную среду Microsoft make code. Благодаря гораздо более шустрому чипсету (120MHz Cortex M4F), объёму памяти (192 кб RAM и 512 kb flash) и цветному экрану 160×128 пикселей эта консоль позволяет создавать довольно продвинутые игры.
Сборник красивых и бодрых игр на python от dafluffypotato. com
Несмотря на достаточно впечатляющие (для консолей подобного типа) характеристики и возможности, PyGamer вполне бюджетна, и продается за 60 долларов за набор с корпусом, запасными кнопками и чехлом или 45 долларов за голую плату.
Иногда инди консоли могут быть очень забавно решены в плане формы и устройства. В 2021 году компания Kittenbot выпустила Newbit Arcade Shield – не консоль как таковую, но расширение (шилд) для популярного обучающего микроконтроллера BBC Micro:bit второй ревизии. Плата с микроконтроллером вставляется в расширение как своеобразный картридж.
вставленная сверху плата с двумя кнопками и пятью рядами светодиодов и есть, собственно, чипсет консоли.
Вторая версия micro:bit имеет достаточно неплохое, для этого класса устройств, железо (Nordic Semiconductor nRF52833 64MHz Cortex-M4F, 512kB Flash, 128kB RAM) . Ситуация с этой консолью довольно интересная – за ней не стоит такое количество энтузиастов-самодельщиков, как за ардуино, но micro:bit – микроконтроллер созданный для обучения, и с огромным количеством учебных и методических материалов. Игры-же для этой консоли пишутся в Microsoft makecode arcade, что гораздо проще для освоения, нежели С++ или даже python.
Рабочая среда makecode arcade
И, наконец — Arduboy – эта, ставшая чуть ли не стандартом, инди консоль во многом похожа на gamebuino. Она основана на ATMega 32u4 — это чип Arduino Leonardo. От чипа Arduino UNO его отличает встроенный USB интерфейс, что позволило сделать Arduboy очень компактным – собственно, маленький размер и изящное решение платы и корпуса было одной из его фишек.
Проект – тогда еще просто небольшая «умная» визитка с чипом, экраном и предустановленной игрой завирусился на ютубе и его создатель, Kevin Bates, решил оставить основную работу и попытаться воплотить идею в жизнь. Компания на кикстартере началась в 2015 году. Проект был успешно профинансирован — было собрано более 400 тыс. долларов при заявленной цели в 25 тысяч. Не только отличный дизайнер, но и технолог, Кевин переселился в Китай, доработал дизайн проекта и наладил производство первой модели. В 2016 году бэкеры получили первые консоли, а чуть позже устройства появились и в магазинах, занимающихся любительской электроникой по всему миру. Изначально в консоли не было внешней памяти, и можно было записать только одну игру – загрузка в память следующей игры происходила вместо предыдущей, через стандартный интерфейс Arduino IDE. Позже, в 2019 году была разработана следующая модель с дополнительным чипом памяти, вмещающим более 200 игр. Производство новой модели началось в 2020 году, она получила название Arduboy FX (Flash eXtension), и именно она актуальна на сегодняшний день.
Те, у кого уже есть старая модель могут купить чип памяти для самостоятельной модификации.
Кризис комплектующих ударил по всем, включая малосерийное производство, поэтому своей консоли я ждал довольно долго. Но нужно отдать должное Кевину – заказавшие консоль могли постоянно держать руку на пульсе и получали сводки прямо с завода.
Arduboy FX приходит в симпатичной коробочке, где кроме самой консоли находится короткий USB шнур. В отличии от многих инди-консолей, Arduboy приходит уже собранным, а не в виде набора для самостоятельной сборки.
Технические характеристики:
Процессор: 16MHz ATmega32u4 (такой-же, как в Arduino Leonardo & Micro)
Память: 32KB Flash, 2.5KB RAM, 1KB eeprom
Экран: 128×64 1Bit OLED с диагональю 1.5″
Батарея: 180 mAh Thin-Film Lithium Polymer (около 8 часов игры)
Micro-USB 2.0 w/ built in HID profile
Для ввода есть шесть кнопок, четыре из которых используются как Dpad. Так же есть кнопка reset, утопленная в корпус во избежания случайного нажатия.
Кстати, кнопки и пад неожиданно удобные, как и сам процесс игры. Но подводит малюсенький экранчик — диагональ в полтора дюйма несколько напрягает глаза, хотя сам экран очень четкий.
К сожалению, маленький экран — характерная проблема этого типа портативок.
На консоли сразу записано две сотни созданных энтузиастами игр. Часть – чуть упрощенные версии классики вроде зелды, KONG или известных серий JRPG, а часть – оригинальные и разработанные специально под Arduboy. И, надо сказать, что несмотря на ограничения – низкое разрешение экрана и процессор, изначально отнюдь не предназначенный для вывода динамичной графики — разработчикам удаётся создавать стильные и вдохновляющие игры, будь то демейки классических аркад или собственные игры с оригинальными механиками.
Лишь некоторые из написанных энтузиастами игр.
Что плавно подводит нас к самому интересному – инди-консолям как возможности для собственного творчества. Как уже сказано выше, каждая инди-консоль — это, одновременно, и своеобразный девкит, позволяющий запускать собственные программы и управлять всеми компонентами консоли на уровне железа (у Arduboy существует отдельная версия, которая называется «dev kit», но она отличается только отсутствием корпуса и кнопками – функционал у нее тот же самый. По сути, так назывался ранний прототип для бэкеров и бета-тестеров) .
Консоль программируется через Arduino IDE, т. е. на С++, но с большим количеством написанных специально под Arduboy библиотек, облегчающих работу с выводом спрайтов, считыванием ввода и звуком. Пока что для Arduboy и его клонов не существует единой графической среды разработки, которая включала бы интегрированные редакторы спрайтов, текста и звука и эмулятор, на подобие того, что есть в фэнтезийных консолях – это одно из направлений, которыми Кевин собирается заняться в будущем.
Но некоторые подвижки уже происходят — написанный одним из участников сообщества редактор спрайтов с экспортом .h файлов, которые можно либо хранить как ассеты для внешнего обращения, либо вставлять прямо в программу.
Создание игры для Arduboy превращается в интересную головоломку, требующую справляться как с минимализмом средств, так и бесконечной оптимизации кода и ассетов. Все проблемы создателей игр для восьмибитных картриджей встают перед разработчиком в полный рост, но, с другой стороны, простота средств заставляет отбросить лишнее и определится с основными механиками, и не позволяет потеряться в глобальности огромных замыслов, что не редко случается с начинающими. В процессе изучения платформы и разработки идей для собственной игры я многое понял о старых играх и, начал подозревать, как и почему жанр JRPG приобрел свои характерные черты.
Несколько спрайтов из моей будующей игры.
Еще одна причина присмотреться к платформе – игр для Arduboy не так много, и к любой будет приковано доброжелательно внимание. Так же форумы Arduboy более чем живы, и там нередко можно встретить опытных программистов и спросить у них совета, если что-то пошло не так — не каждая платформа позволяет спросить технического совета (и, нередко, получить его) непосредственно от разработчика консоли =). Еще, поскольку консоль основана на ардуино, то нужную информацию часто можно получить и от разработчиков, не связанных с проектом напрямую.
Как и в случае популярных фэнтезийных консолей, ваша игра не обязательно останется запертой на Arduboy – например, игра Circuit Dude Джонатана Холмса была им позже доработана и сейчас доступна в Стиме, на Нинтендо Свич и на мобильных платформах.
Одна из интересных особенностей Arduboy и залог его длинной жизни как платформы – постоянное возникновение все новых совместимых с ним проектов, как, например, 8BitCADE. Поскольку это решение стало своеобразным стандартом и его схема распространяется совершенно свободно, множество самодельщиков и радиолюбителей собирают собственные аналоги Arduboy и пишут для него игры и программы.
Вездесущие китайцы так же не бросают на произвол судьбы тех, кто хотел бы стать частью сообщества Arduboy, но не может купить оригинал или не хочет собирать все с нуля. https://www. aliexpress.com/item/4000437689219.htm
На сегодняшний день существуют десятки различных доступных для покупки или самостоятельного изготовления инди-консолей – здесь можно посмотреть полный список и, возможно, найти что-то, что вас заинтересует, вдохновит или просто покажется забавным курьезом.
Это помещающийся на ладони аркадный кабинет. Ну разве не прелесть?
Лично для меня идея инди-портативок и сообщество Arduboy стали причиной вернуться к вещам, которыми я не занимался почти 20 лет — со времен военной службы и учебы в институте. Я начал делать курсы по программированию и IOT, экспериментировать с ардуино и учиться писать правильные диздоки для разработки игр. И даже если увлечение инди-консолями пройдет — полученные знания останутся со мной и, скорее всего, помогут в более серьезной разработке в будущем.
обновление прошивки в ATMEGA1284 | Форум Электроники
Добро пожаловать на EDAboard.com
Добро пожаловать на наш сайт! EDAboard.com — это международный дискуссионный форум по электронике, посвященный программному обеспечению EDA, схемам, схемам, книгам, теории, документам, asic, pld, 8051, DSP, сети, радиочастотам, аналоговому дизайну, печатным платам, руководствам по обслуживанию… и многому другому. более! Для участия необходимо зарегистрироваться. Регистрация бесплатна. Нажмите здесь для регистрации.
Регистрация Авторизоваться
JavaScript отключен. Для лучшего опыта, пожалуйста, включите JavaScript в вашем браузере, прежде чем продолжить.
- Автор темы Алиесами
- Дата начала
- Статус
- Закрыто для дальнейших ответов.
алиесами
Полноправный член уровня 6
как я могу обновить прошивку на atmega с помощью ПК?
, какие у меня есть различные варианты, кроме использования устройства загрузчика AVR, как я использую в настоящее время AVR-MKII в сочетании со студией atmel.
Я хочу иметь возможность просто использовать компьютер и некоторое программное обеспечение для обновления прошивки.
ФенТрак
Уровень полноправного члена 4
Если на ATmega1284p установлена версия загрузчика «optiboot» для ATmega1284p, микропрограмму можно загрузить через USB или преобразователь RS232 в TTL с помощью программного обеспечения «avrdude».
алиесами
Полноправный член уровня 6
как мы можем добавить usb к atmega1284? через чип FTDI?
можно ли загрузить прошивку по шине SPI?
ФенТрак
Уровень полноправного члена 4
Я использую либо кабель преобразователя USB в TTL со встроенным в него чипом PL2303HX (доступен на ebay), либо преобразователь с использованием ATmega16u2, построенный по схеме схемы arduino и запрограммированный прошивкой arduino DFU.
Преобразователь позволяет программировать 1284p через последовательный UART на чипе, используя загрузчик «optiboot», записанный на ATmega1284p.
Прошивка загрузчика была загружена из «проекта maniacbug 1284p» в Интернете.
Программатор AVR-MKII загружал бы загрузчик на микросхему.
После загрузки загрузчик представляет собой альтернативу использованию программатора AVR-MKII SPI.
Алиесами
Полноправный член уровня 6
Я пойду с чипом PL2303HX. поэтому один конец будет подключаться к atmega, а другой к ПК, теперь на ПК, какое программное обеспечение мне нужно для загрузки загрузчика? что мне нужно на конце AVR, чтобы вызвать нагрузку?
ФенТрак
Уровень полноправного члена 4
Файл загрузчика .hex будет загружен с помощью Atmel Studio и программатора AVR-MKII.
Какая версия Windows используется?
Ограничение микросхемы PL2303HX заключается в том, что драйверы для Windows 8 недоступны.
Какова тактовая частота ATmega1284p?
Загрузчик из проекта «maniacbug» на 16МГц.
Какой пакет у ATmega1284p?
40-контактный пакет PDIP может иметь проблемы с помехами на UART 0 от соседних контактов генератора. Убедитесь, что последовательная связь UART 0 работает нормально.
- Статус
- Закрыто для дальнейших ответов.
я
[AVR] USB-программатор ATMEL AVR
- Инициировано ieee_2017
- Ответов: 3
Микроконтроллеры
Е
[РЕШЕНО] Связь SPI: ld вернул 1 статус выхода
- Автор: eebhoi01
- Ответов: 3
Микроконтроллеры
Б
Последовательная связь PIC16F88 с ПК с помощью SPI или RS232
- Запущено bilal_oct
- Ответов: 6
Микроконтроллеры
р
[AVR] AVR Atmel Studio Jtagen Проблемы
- Автор Rocketman46
- Ответов: 1
Микроконтроллеры
А
[РЕШЕНО] Последовательная связь с использованием AVR и VB6 с преобразователем USB в последовательный порт
- Запущено ark5230
- Ответов: 3
Микроконтроллеры
Делиться:
Фейсбук Твиттер Реддит Пинтерест Тамблер WhatsApp Эл. адрес Делиться Ссылка на сайт
Верх
Как установить новую прошивку ATmega через контакты провайдера?
Принимая во внимание платы контроллеров на основе AVR…
Возможно, вам не потребуется дополнительная плата Arduino для работы в качестве интернет-провайдера. Это действительно зависит от доски. В основном есть три сценария:
- Плата контроллера на базе Arduino — Arduino Mega 2560 с RAMPS 1.4 — с загрузчик
- Плата контроллера на базе Arduino — Arduino Mega 2560 с RAMPS 1.4 — без загрузчика
- Плата контроллера на базе AVR (без отдельной платы Arduino) — как в случае с Ender-3 и платой TronXY 1 — без загрузчика
Вариант 1 самый простой, и вы просто загружаете его с помощью USB-кабеля прямо из Arduino IDE.
В вариантах 2 и 3 вам потребуется внутрисхемный программатор последовательного интерфейса (ISP). Например, USBasp: USBasp — программатор USB для контроллеров Atmel AVR
или вы можете использовать другой Arduino, см. Arduino как ISP и загрузчики Arduino.
Устройство ISP в основном преобразует сигналы USB в TTL (вместе с последовательным протоколом (JTAG или производным)), которые затем подключаются к интерфейсу ICSP 2 на плате контроллера:
Сценарий 1
Как указано выше , вы просто подключаете плату к ПК/Mac с помощью USB-кабеля и в Arduino IDE нажимаете Upload , чтобы убедиться, что у вас есть правильные Board (т.е. Mega2560) и Port , выбранные в меню Tools .
Сценарий 2
Для Mega2560 контакты MOSI, MISO и SCK разбиты на:
Плата Arduino/Genuino MOSI MISO SCK Level Mega1280 или Mega2560 51 или ICSP-4 50 или ICSP-1 52 или ICSP-3 5V
Для программирования Mega2560 с помощью Uno подключите следующим образом:
или с помощью разъема ISP (на этой схеме электролитический конденсатор 3 не показан):
Обратите внимание на электролитический конденсатор 3 на устройстве программирования:
Электролитический конденсатор емкостью 10 мкФ, подключенный к RESET и GND платы программирования необходим только для плат с интерфейс между микроконтроллером и USB компьютера, например Мега, Уно, Мини, Нано. Доски типа Leonardo, Esplora и Micro, с USB, напрямую управляемый микроконтроллером, не требует конденсатор.
или с помощью разъема ICSP от Mega, от программатора загрузчика Atmega (см. исходное изображение):
Примечание D10 используется, а не СБРОС
4
Сценарий 3 на Arduino Uno
,платы контроллера, что соответствует сценарию 3 (плата на основе AVR, но не плата Arduino как таковая), вам необходимо подключить Uno к ICSP платы контроллера следующим образом:
ICSP Uno МОСИ Д11 МИСО Д12 ССК Д13 ЗАЗЕМЛЕНИЕ ЗАЗЕМЛЕНИЕ 5В 5В СБРОС D10
или, например, от Chaos Drucker — CREALITY ENDER3 MIT MARLIN AUSSTATTEN (см. исходное изображение):
На изображении ошибка, и красная линия должна идти к D10
, а не D9
, как показано
Еще раз обратите внимание, что RESET
на разъеме ISP Arduino Uno используется , а не (и контакт 10 используется для подключения к контакту RESET
контроллера ICSP) 4 .
Настройка Arduino IDE
Затем в Arduino IDE вам нужно будет выбрать программатор, который будет использоваться, в данном случае Uno в качестве ISP , например:
После того, как вы правильно подключились и выбрали программатор, вы должны можно нажать скомпилировать и загрузить как обычно.
Сноски
1 Какие и используют одну и ту же плату — см. этот ответ на Какое напряжение работает Creality Ender-3?
2 Если вам интересно, см. В чем разница между ICSP и ISP?:
Разница между ISP и ICSP — дефис.
ISP означает внутрисхемное последовательное программирование, а ICSP означает In. Последовательное программирование цепей.
Любое устройство, позволяющее программировать микроконтроллер, пока он находится в цепи, использующей последовательный протокол, может называться ISP или ICSP.
См. также Википедию — внутрисистемное программирование.
3 См. При использовании Arduino в качестве ISP требуется конденсатор или нет?
4 Почему? Из Can Arduino Uno стать программатором AVR и использовать заголовок ICSP для программирования целевой платы:
Прежде всего, в соответствии с настройками контакт RESET не может использоваться в качестве выходного контакта. Чтобы использовать его в качестве вывода ввода-вывода, вам нужно запрограммировать предохранитель RSTDISBL. Но как только вы это сделаете, как сказал Джиппи, перепрограммировать Arduino становится практически невозможно (если у вас есть микроконтроллер со сквозными отверстиями, вы можете вытащить его и вставить в программатор высокого напряжения; во всех других случаях , это фактически невозможно).
Теоретически вы можете использовать заголовок ICSP так, как вы предлагаете. На практике почти при любых мыслимых обстоятельствах это ужасная идея.
Marlin 2.0 Прошивка настроена для Ender 3 (8-bit) + BL Touch
2 года назад Даниэль 210 комментариев
Это ванильная версия прошивки Marlin 2. x , предварительно настроенная для принтеров Creality Ender 3 с оригинальными или универсальными сенсорными датчиками BL Touch. Стандартный файл конфигурации из дистрибутива Marlin был тщательно проверен, чтобы включить последние настройки Ender 3 из официальной прошивки Creality и из Antclabs.
Обратите внимание, что эта версия не является той версией, которую я рекомендую для 8-битных плат , подобных той, которая используется в Ender 3. Наиболее стабильной и многофункциональной версией прошивки для этой архитектуры является версия 1.1.9, которую я сделал доступной. в другой статье. Marlin 2.x предназначен для плат нового поколения, использующих 32-битные процессоры, встроенные библиотеки стали больше, а для функций осталось меньше места. В любом случае, если вы хотите попробовать это, вы можете быть уверены, что я сделал все возможное, чтобы настроить его правильно и использовать максимально возможное количество функций. Его скачали и установили более 10 000 раз, и я думаю, что у большинства пользователей с ним не возникнет проблем.
Характеристики
- Официальная «ванильная» прошивка Marlin со всеми аппаратными настройками из последней официальной прошивки Creality.
- Максимальное количество функций Marlin, которое я смог уместить в небольшую память объемом 128 КБ.
- Оригинальные/универсальные версии BLTouch включены по умолчанию. Совместимость с версиями BLTouch от 1.0 до 3.x
- Нет необходимости снимать конденсаторы с платы
- Установка из IDE PlatformIO, которая работает в нескольких операционных системах
- Исходный код изменен для предотвращения отключения датчика BLTouch во время звуковых сигналов, запускаемых меню ЖК-дисплея
- Тепловая защита ВПП включена
- Не сбрасывает настройки уровня кровати после команды G28 (Home)
- Пользовательское меню с режимом обслуживания, аварийным режимом и последовательностью полного автоматического выравнивания кровати (прогрев, ожидание, исходное положение, выравнивание и затем сохранение настроек)
- Сверхточный билинейный алгоритм выравнивания кровати с 25 точками измерения, по 3 медленных измерения на точку (выполнение занимает около 10 минут)
- Запуск и переключение уровня кровати и инструментов BLTouch из меню ЖК-дисплея
- Настроенные PID для более быстрого нагрева
- M503 включен (отображает все настройки принтера)
- Детские шаги включены и настроены для драйвера шагового двигателя «Magic Numbers»
- Полностью совместим с OctoPrint
- Все изменения исходного конфигурационного файла Marlin отмечены тегом комментария «Customized DBP»
- Из-за ограничения объема памяти функция возобновления питания была отключена, а также поддержка дуги
- ЖК-меню были изменены на «тонкий режим» для экономии места в памяти
- Необязательные скомпилированные файлы, готовые к загрузке на плату (без настройки, без компиляции, без установки каких-либо инструментов):
- Стандартная доска Creality
- Обновленные платы Creality с бесшумными драйверами TMC (например, 1. 1.5)
Примечание о стратегии выравнивания платформы
Существует два способа автоматического выравнивания платформы: первый — перед каждой печатью, а второй — только при необходимости. Основываясь на моем опыте работы с Ender 3, лучше выполнять чрезвычайно точное (медленное) выравнивание стола, когда это необходимо, чем более простое выравнивание перед каждой печатью. Данная конфигурация прошивки отражает этот выбор.
Если вы хотите выполнять быстрое/неточное выравнивание платформы перед каждой печатью, вам потребуется перенастроить прошивку.
Требования
- BLTouch установлен на контакт 27
- Выключатель остановки Z удален (он может блокировать движение по оси Z)
- ВАЖНО! BLTВысота сенсорного наконечника должна быть отрегулирована в соответствии с официальными инструкциями по эксплуатации. Существуют разные зазоры сенсора BLTouch, и советы по видео на YouTube в большинстве случаев неверны
- Загрузчик установлен
- Код Microsoft Visual Studio, если вы планируете установить из исходного кода Расширение
- PlatformIO IDE, установленное в Visual Code, если вы планируете установить из исходного кода
Инструкции по установке из Исходного кода
- Загрузите и установите Visual Studio Code.
- В меню расширений Visual Studio Code установите PlatformIO IDE.
- Выполнив все требования, распакуйте весь этот исходный код Marlin, загруженный по ссылке ниже, в папку.
- В Visual Studio Code выберите «Файл» -> «Открыть папку» и выберите папку, в которой находится файл platformio.ini . Внимание! Используйте команду «открыть папку», а не «открыть файл».
- Найдите файл configuration.h внутри подпапки «Marlin» и отредактируйте следующую конфигурацию, указав относительные координаты вашего крепления BLTouch относительно сопла. Это не должно быть слишком точным, единственная цель — избежать проверки датчика за пределами кровати. Настройки по умолчанию X = -42 мм, Y = -5 мм и Z = 0 для этого крепления:
#define NOZZLE_TO_PROBE_OFFSET {-42, -5, 0}
- Сохраните файл и выберите Terminal->Run Task->Build . Системе потребуется несколько минут, чтобы загрузить все зависимости и скомпилировать код.
- Если код скомпилирован правильно, вы увидите в терминале что-то вроде этого: «=== 1 удалось выполнить 00:00:30.050 ===».
- Подключите принтер к компьютеру с помощью USB-кабеля.
- Перейдите в меню Visual Code Terminal->Run Task->Upload.
- Если все пойдет хорошо, будет напечатано еще одно сообщение вроде этого «=== 1 удалось выполнить 00:00:55.010 ===» .
Установка с использованием предварительно скомпилированного HEX-файла
Здесь также доступна предварительно скомпилированная прошивка. Вы можете просто записать скомпилированный HEX-файл прямо на плату Ender3 без установки Visual Studio Code или PlataformIO .
Для загрузки предварительно скомпилированной прошивки вам понадобится инструмент AVRDUDE 6.3. Для вашего удобства я включил версию этого инструмента для Windows в zip-файл, содержащий прошивку HEX, но этот инструмент также поставляется с Arduino IDE и PlatformIO. Команда загрузки в Windows PowerShell должна выглядеть так:
. /avrdude -p atmega1284p -c arduino -P COM3 -b 115200 -v -U flash:w:firmware.hex:i
Последовательный порт находится между COM1 и COM8, в зависимости от того, куда указывает драйвер USB to и firmware.hex — это файл, который вы загружаете. Если вы используете другую операционную систему, например Linux, адрес порта будет примерно таким: /dev/ttyUSB0 .
После инициализации платы с новой прошивкой не забудьте перенастроить смещения датчиков, выполнив следующую команду с любого последовательного терминала. Замените значения смещения по умолчанию в команде (-42, -5, 0) на значения для вашего крепления зонда.
M851 X-42 Y-5 Z0 M500
Конфигурация после установки
- Предварительное выравнивание кровати вручную ! Это важно, потому что BLTouch имеет ограниченные диапазоны обнаружения максимального/минимального значения, а качество печати может ухудшиться, если ось Z перемещается слишком сильно.
- Охладите платформу и сопло. Нагревание должно практически не влиять на эту конкретную процедуру.
- Отключите шаговые двигатели с помощью команды меню ЖК-дисплея.
- Поместите кредитную карту на одну из кроватей, толщина карты будет использоваться в качестве эталонного расстояния.
- Вращайте рукой ось Z до тех пор, пока сопло не упрется в кредитную карту.
- Переместите горячий конец в несколько положений кровати, начиная с 4-х углов. Для каждого положения отрегулируйте ручки уровня кровати так, чтобы сопло находилось на расстоянии толщины кредитной карты от сопла. Это то, что вы сделали бы при ручной калибровке, но вместо бумаги вы будете использовать карту для удобства. Толщина карты не имеет значения, потому что датчик BLTouch переопределит опорную точку Z.
- Нагрейте платформу до температуры печати и запустите команду выравнивания платформы с ЖК-дисплея («Движение» -> «Выравнивание платформы» -> «Выровнять платформу») или с помощью g-кода G29 или с помощью команды «Нагрев и выравнивание » из пользовательского меню (рекомендуется). Обратите внимание, что команда Heat and Level ждет 2 минуты после того, как станина нагреется, чтобы обеспечить правильное расширение/сжатие смонтированных поверхностей.
- Сохраните настройки с помощью меню ЖК-дисплея или gcode M500 (если вы использовали Heat и пользовательская команда уровня , они будут автоматически сохранены).
- Добавьте следующий gcode в код запуска вашего слайсера сразу после строки команды G28, чтобы загружать конфигурацию уровня кровати из памяти перед каждой печатью:
М420 С1
- После включения уровня кровати распечатайте что-нибудь большое и плоское, чтобы отрегулировать смещение по оси Z. Сопло всегда будет находиться далеко от кровати, пока вы не настроите смещение на отрицательное значение (ЖК-дисплей -> Конфигурация -> Смещение Z датчика). Не забудьте сохранить настройки после печати, чтобы смещение осталось в памяти.
Пользовательские предварительно скомпилированные версии прошивки для различных монтажных кронштейнов BLTouch
Если у вас есть другой кронштейн для BLTouch и вы хотите, чтобы я предварительно скомпилировал для вас прошивку, сообщите мне об этом в комментариях ниже. Скомпилированная прошивка будет доступна для всех, поэтому мне нужна подробная информация о производителе/модели кронштейна или ссылка на сайт, на котором размещены STL-файлы.
Советы по устранению неполадок
Если у вас возникли проблемы со сборкой прошивки…
Могу собрать для вас прошивку. Подробнее см. здесь.
Другие загрузки Marlin для Ender 3
- Marlin 1.1.9 для Ender 3 (8-бит) с выравниванием сетки (без BLTouch)
- Marlin 1.1.9 для Ender 3 (8-бит) с BLTouch
- Ultimate Marlin 2 для Ender 3 (8-бит) + BLTouch (только для опытных пользователей)
- Marlin 2.x для Ender 3 с платами SKR Mini E3 v2
Версия
Marlin 2.0.1 (январь 2020 г.)
Platforms
Any operating system
File size
5.1 MB (source), 450 KB (HEX)
Checksum
Package 1 SHA256: 770FA69E3F5A694C41521CBE307EA9B6CC73CCCAE7494669EF93B87D68D0DE9E
Package 2 SHA256: E557C4E5CA17BE436BEE977DA3C864734C66516A0D5608841A6C4DBF47201509
Package 3 SHA256: 96242782112FBE50EE206EA826FBDB38B22DB342D020E83C947109EDEC36B61A
Скриншоты
Категории сообщений
Как скомпилировать прошивку OpenSprinkler :
Дом решений OpenSprinkle Дополнительные темы
Создатель: Рэй Ван
Изменено: вс, 22 августа 2021 г. , 10:52
Прошивка OpenSprinkler унифицирована и может быть скомпилирована как в среде Arduino, так и в любой системе на базе Linux. Инструкции на этой странице предназначены только для OpenSprinkler на базе Arduino (OS 2.3, 3.x).
Если ваш контроллер — OpenSprinkler Pi (OSPi), следуйте инструкциям прошивки OSPi, чтобы скомпилировать и запустить код прошивки.
ПРИМЕЧАНИЕ : инструкции предназначены только для Linux. Если вы используете Windows или Mac, мы настоятельно рекомендуем вам установить VirtualBox, чтобы вы могли запускать Linux. Компиляция кода прошивки требует технических навыков. Инструкции предоставляются как есть, мы не сможем помочь вам с проблемами компиляции, а также мы не сможем помочь вам с изменением кода.
Инструкции по компиляции прошивки для OpenSprinkler 3.x (на базе ESP8266)
- Загрузите или клонируйте git Код прошивки OpenSprinkler .
- Установите ядро ESP8266 для Arduino. В частности, в Linux откройте терминал и запустите (текущая прошивка собрана с ядром ESP8266 2.7.4):
cd ~
git clone https://github.com/esp8266/Arduino.git esp8266_2.7.4
cd esp8266_2.7.4
git checkout tags/2.7.4
git submodule update —init
cd tools
python3 get.py - Установите необходимые библиотеки, включая SSD1306 (4. 2.1) , RCSwitch (2.6.4), pubsubclient (2.8) и EthernetENC (главная ветвь) (обратите внимание, что последняя прошивка 2.1.9(9) больше не использует UIPEthernet, вместо этого он использует более новую библиотеку EthernetENC, в которой исправлено несколько основных ошибок). Загрузите и разархивируйте или клонируйте их с помощью git в папку ~/Arduino/libraries. В зависимости от того, загрузили ли вы их или клонировали с помощью git, вам может потребоваться изменить имена папок, чтобы они соответствовали именам каталогов в make-файле ниже. Например, заглавные буквы в именах папок могут быть разными, а в Linux имена папок чувствительны к регистру.
- Самый простой способ компиляции — использовать make-файл, находящийся в папке с кодом прошивки:
make -f make. lin32
этот make-файл предполагает наличие ядра ESP8266, а дополнительные библиотеки находятся в пути, как описано выше. Если вы установили ядро esp8266 в другую папку или если имена папок библиотеки не совпадают с именами в make-файле, откройте make.lin32 и соответствующим образом измените имена переменных ESP_ROOT и/или папок библиотеки. Точно так же, если вы установили дополнительные библиотеки по другому пути, соответствующим образом измените make-файл. Makefile скомпилирует программу во временную папку вашей системы в виде файла bin (например, /tmp/mainArduino/mainArduino.bin). - Теперь вы можете загрузить прошивку, следуя инструкциям по обновлению прошивки через OTA.
Инструкции по компиляции прошивки для OpenSprinkler 2.3 (ATmega1284p). Рэй является автором этой статьи о решении. Вы нашли это полезным?
Да
Нет Извините, мы не смогли быть полезными. Помогите нам улучшить эту статью своими отзывами. Содержание В этой статье я объясню, как прошить прошивку через USB на Anet A8 ATMega1284, и это сработало. Anet — производитель дешевых 3D-принтеров из Китая. Одним из принтеров, которые я использую, является Anet A8. Однако, когда я загружаю/обновляю прошивку на плату Anet V1. 5 через USB из Arduino IDE, возникает ошибка «avrdude: stk500_getsync(), попытка 1 из 10 не синхронизирована». Как показано в статье ниже: Это связано с тем, что плата anet a8 (ATMega1284P) по умолчанию не использует загрузчик optiboot, поэтому ее нельзя загрузить через USB. Но это будет успешно, если вы используете Arduino в качестве ISP и USBasp. Поэтому мы должны записать загрузчик, выбрав опцию optiboot. Записать загрузчик, насколько мне известно, можно двумя способами: через USBasp и через Arduino в качестве провайдера. В этой статье я буду использовать плату Arduino Uno. Чтобы записать загрузчик и загрузить прошивку, мы можем использовать Arduino IDE. Для тех из вас, у кого нет Arduino IDE, загрузите ее, нажав следующую кнопку: Загрузить Arduino IDE По завершении установите Arduino IDE на свой ноутбук. Если вы используете операционную систему Linux, прочитайте статью I nstall Arduino IDE Ubuntu 22.04 Terminal . Если на компьютере установлена среда Arduino IDE, по умолчанию она не предоставляет плату библиотеки для anet a8. Поэтому вам необходимо загрузить аппаратную библиотеку для ATMega1284P, используемого платой Anet 3D. Anet a8 использует чип ATMega1284P. Мы можем использовать библиотеку SkyNet3D Marlin. Загрузите библиотеку аппаратных плат, нажав следующую кнопку: Загрузить аппаратную библиотеку Anet (GitHub) или Загрузить аппаратную библиотеку Anet (Google Drive) После завершения загрузки извлеките файл. Внутри извлеченной папки есть папка «оборудование». Пожалуйста, скопируйте папку «оборудование». Теперь, в этом случае я использую дистрибутив Linux на базе Ubuntu, перейдите в раздел «Главная» > «Arduino». Если в папке Arduino нет папки «оборудование», вставьте файл туда. Но если в папке Home > Arduino есть папка hardware, просто скопируйте папку «anet» и вставьте ее в Home > Arduino > Hardware. Теперь откройте Arduino IDE и щелкните меню «Инструменты» > «Плата» > «Платы Marlin AVR». Вы можете видеть, что доступны две версии: Anet V1.0 и Optiboot. Теперь выберите Anet V1.0 (Optiboot) . Теперь пришло время превратить плату Arduino Uno в ISP, которая будет мостом между компьютером и платой anet 3d. Выполните следующие действия в среде Arduino IDE: После того, как прошивка ArduinoISP была загружена на плату Arduino Uno, теперь Arduino Uno может стать мостом между компьютером и платой Anet. Теперь пришло время подключить плату arduino к Anet A8, как показано на рисунке ниже. Убедитесь, что вы отключили USB от Arduino Uno и отключили питание от платы Anet, чтобы избежать короткого замыкания во время установки перемычек. Не забудьте использовать конденсатор 10 мкФ, подключенный между сбросом и заземлением платы Arduino. После завершения подключения. Переподключите плату Arduino Uno к компьютеру и подключите питание к плате Anet. Теперь пришло время сделать загрузчик, мы должны изменить конфигурацию IDE arduino примерно так:
make -f make.os23
Если ваша версия maycore отличается от 2.0.5, соответствующим образом измените путь в файле make. Программа будет скомпилирована в подпапку build-1284 в папке кода прошивки в виде файла . hex. Как прошить прошивку через USB на Anet A8 ATMega1284
От adminОпубликовано avrdude: stk500_getsync() попытка 1 из 10: не синхронизировано: resp=0x65
avrdude: stk500_getsync() попытка 2 из 10: не синхронизировано: resp=0x63
avrdude: stk500_getsync() попытка 3 из 10: не синхронизировано: resp=0x68
avrdude: попытка stk500_getsync() 4 из 10: не синхронизировано: resp=0x6f
avrdude: попытка stk500_getsync() 5 из 10: не синхронизировано: resp=0x3a
avrdude: попытка stk500_getsync() 6 из 10: не синхронизировано: resp=0x53
avrdude: попытка stk500_getsync() 7 из 10: не синхронизировано: resp=0x44
avrdude: попытка stk500_getsync() 8 из 10: не синхронизировано: resp=0x20
avrdude: stk500_getsync() попытка 9из 10: не синхронизировано: resp=0x63
avrdude: попытка stk500_getsync() 10 из 10: не синхронизировано: resp=0x61
avrdude сделано. Спасибо.
Что случилось?
Как это исправить?
Скачать Arduino IDE
Загрузить библиотеку плат Anet
Сделать плату Arduino как ISP
Anet A8 и Arduino Uno ISP Wiring
Записать загрузчик на Anet A8
Обновление микропрограммы с помощью USB
Теперь отсоедините провод Arduino ISP от платы Anet.
Подключите компьютер к плате anet a8 с помощью USB.
Пожалуйста, загрузите последний код прошивки, читайте подробнее Как обновить прошивку Anet A8 Marlin.
В случае успеха вы увидите что-то вроде этого.
avrdude: Версия 6. 3-20171130 Авторское право (c) Брайан Дин, 2000–2005 гг., http://www.bdmicro.com/ Copyright (c) 2007-2014 Йорг Вунш Общесистемный файл конфигурации: «/opt/arduino-1.8.9/hardware/tools/avr/etc/avrdude.conf». Файл конфигурации пользователя - "/home/neon/.avrduderc" Файл конфигурации пользователя не существует или не является обычным файлом, пропуская Использование порта: /dev/ttyACM0 Использование программатора: arduino Преобладающая скорость передачи: 19200 Часть AVR: ATmega1284P Задержка стирания чипа: 55000 мкс СТРАНИЦА: PD7 БС2 : ПА0 Расположение СБРОСА: посвященный ПОВТОРИТЬ импульс: SCK серийный программный режим: да режим параллельной программы: да Таймаут : 200 StabDelay : 100 CmdexeDelay: 25 Синхпетли: 32 Задержка байта: 0 Индекс опроса: 3 Поллвалуе: 0x53 Деталь памяти: Заблокировать страницу опроса Тип памяти Режим Задержка Размер Индекс Постраничный Размер Размер #Pages MinW MaxW ReadBack ----------- ---- ----- ----- ---- ------ ------ ---- ----- - ----- ----- --------- EEPROM 65 10 128 0 нет 4096 8 0 9000 9000 0xff 0xff flash 65 10 256 0 да 131072 256 512 4500 4500 0xff 0xff замок 0 0 0 0 нет 1 0 0 9000 9000 0x00 0x00 lfuse 0 0 0 0 нет 1 0 0 9000 9000 0x00 0x00 hfuse 0 0 0 0 нет 1 0 0 9000 9000 0x00 0x00 0 0 0 0 нет 1 0 0 9000 9000 0x00 0x00 подпись 0 0 0 0 нет 3 0 0 0 0 0x00 0x00 калибровка 0 0 0 0 нет 1 0 0 0 0 0x00 0x00 Тип программатора: Ардуино. Описание: Ардуино. Аппаратная версия: 2 Версия прошивки: 1.18 Верхняя карта: неизвестно Vцель : 0,0 В Вареф: 0,0 В Осциллятор: Выкл. Период SCK: 0,1 мкс avrdude: устройство AVR инициализировано и готово к принятию инструкций Чтение | ################################################### | 100% 0,01 с avrdude: Подпись устройства = 0x1e9705 (вероятно, m1284p) avrdude: ПРИМЕЧАНИЕ: была указана "flash" память, будет выполнен цикл стирания Чтобы отключить эту функцию, укажите параметр -D. avrdude: стирание чипа avrdude: чтение входного файла "/home/neon/Arduino/hardware/anet/avr/bootloaders/atmega/optiboot_atmega1284p.hex" avrdude: запись flash (130556 байт): Написание | ################################################### | 100% 0,24 с avrdude: записано 130556 байт флэш-памяти avrdude: проверка флэш-памяти по /home/neon/Arduino/hardware/anet/avr/bootloaders/atmega/optiboot_atmega1284p.hex: avrdude: загрузить данные флэш-памяти из входного файла /home/neon/Arduino/hardware/anet/avr/bootloaders/atmega/optiboot_atmega1284p. hex: avrdude: входной файл /home/neon/Arduino/hardware/anet/avr/bootloaders/atmega/optiboot_atmega1284p.hex содержит 130556 байт. avrdude: чтение данных встроенной флэш-памяти: Чтение | ################################################### | 100% 0,14 с avrdude: проверка... avrdude: проверено 130556 байт флэш-памяти avrdude: чтение входного файла "0x0F" avrdude: блокировка записи (1 байт): Написание | ################################################### | 100% 0,02 с avrdude: записан 1 байт блокировки avrdude: проверка памяти блокировки по 0x0F: avrdude: загрузить данные блокировки данных из входного файла 0x0F: avrdude: входной файл 0x0F содержит 1 байт avrdude: чтение данных встроенной блокировки: Чтение | ################################################### | 100% 0,01 с avrdude: проверка... avrdude: проверено 1 байт блокировки avrdude сделано. Спасибо.
Готово.
Я надеюсь, что эта статья Как прошить прошивку через USB на Anet A8 может быть полезной.
Поделись этим:
Использование программной памяти Marlin 2.
0 функциями на 8-битных платах AVR — CrosslinkЭто список дополнительных функций или кандидатов на включение/выключение для освобождения памяти в Marlin 2.0 для 8-битных плат AVR. Иногда каждый байт может иметь значение, сможете ли вы собрать прошивку или нет.
В общем, прошивку можно значительно уменьшить (~5%), просто добавив некоторые директивы компилятора в ваш файл platformio.ini для начала, как описано в этой статье. Затем вы можете выполнить дальнейшую оптимизацию, как описано ниже. Более новые версии прошивки Marlin имеют настройки среды под названием «melzi_optimized», которые уже содержат вышеупомянутые оптимизации, поэтому вам не нужно делать их самостоятельно.
Каждая строка показывает, сколько памяти необходимо для компиляции функции. Фактические размеры в байтах могут измениться в более новых версиях Marlin или более новых компиляторах, поэтому принимайте их как приблизительные значения.
Текущие исследования показывают, что минимальный размер Marlin 2. 0 на 8-битном AVR, таком как Ender 3 (процессор на базе ATMega1284p), составляет около 119408 байт из 130048 байт максимального доступного пространства (если вы оставите SDSUPPORT включенным). Это верно, если установлен загрузчик optiboot. Таким образом, у вас обычно будет 11000 байт для дополнительных функций (см. подробный список ниже).
Вы можете использовать до 131072 байт памяти программ (в результате получается 12024 байт для дополнительных функций), если вы не используете загрузчик, а загружаете прошивку напрямую с помощью программатора, такого как TinyUSBISP или USPASP. Также Arduino UNO, используемый в качестве программатора ISP, будет делать то же самое.
Так что выбирайте с умом, какие функции вы хотели бы включить, или переключитесь на процессор/архитектуру, которые предлагают больше доступной памяти для программ (больше ссылок на альтернативы будут добавлены в ближайшее время).
Sample Calculation
Let’s assume you like to enable MESH_BED_LEVELING with LCD_BED_LEVELING and RESTORE_LEVELING_AFTER_G28 on the Ender 3 for manual mesh bed leveling:
Bytes | |
---|---|
Ender 3 Initial firmware size (default config) | 124398 |
Available program memory | 5650 |
MESH_BED_LEVELING required memory | 7738 |
LCD_BED_LEVELING required memory | 1652 |
RESTORE_LEVELING_AFTER_G28 required memory | 16 |
Сумма требуемой дополнительной памяти | 3756 |
Восстановленная память после отключения ARC_SUPPORT (in Configuration_adv. h) | 3410 |
Reclaimed memory from disabling SHOW_CUSTOM_BOOTSCREEN (in Configuration.h) | 764 |
Final memory usage | 129632 (99.7%) |
Заключение
Компиляция прошивки Marlin 2.0 для 8-битных системных плат с памятью программ всего 128 КБ может быть сложной задачей, особенно если вам нужны все хорошие функции Marlin. Особенно, если вы хотите использовать автоматические датчики выравнивания кровати, вам придется пойти на компромисс с использованием других функций, таких как поддержка SD-карты.
Вы можете обойти отсутствующую поддержку SD-карты, например, используя Octoprint на Raspberry PI, подключенном к вашему принтеру через USB. Это также имеет некоторые преимущества, такие как возможность оборудовать ваш принтер еще более интересными функциями, такими как датчик биения нити и камера для записи таймлапсов.
В целом объем памяти, используемый Marlin 2.0, увеличился с 1.1.9 до 2.0. У нас есть еще один Anet A8 с датчиком BLTouch, автоматическим выравниванием кровати и полным графическим дисплеем с версией 1.1.9.Marlin и по-прежнему поддерживает SD-карту. Это вряд ли возможно в версии 2.0, отключив некоторые другие функции, но это очень близко.
Часто задаваемые вопросы
TODO
Приложение
Список функций в Configuration_adv.h и их потребление памяти, если ВКЛЮЧЕНО . Знак плюс ( + ) означает, что включение функции занимает БОЛЬШЕ памяти. Минус ( — ) означает, что включение этой функции УМЕНЬШАЕТ использование памяти на .
Line # | Feature name | Size compiled (Bytes) | Comment |
---|---|---|---|
292 | AUTOTEMP | 1470 | Disable to save memory but print quality may suffer when printing faster. |
1011 | POWER_LOSS_RECOVERY | + 3010 | Needs SDSUPPORT feature |
1116 | SDCARD_READONLY | -2000 | Поддержка SD-карт только для чтения. Отключает возможность записи на SD-карту, поэтому загрузка gcode и восстановление после отключения питания не будут работать. |
1068 | Scroll_long_fileNames | + 202 | , если вы можете жить с длинными именами файла, не прокручивая на дисплее |
141920920 | 9209209209209209209209209209209209209209209209209209209209209209209209209209209209209. см. документы Marlin для получения дополнительной информации о Linear Advance).|||
1478 | DISABLE_M503 | -1500 | Отключает команду M503, которая сообщает текущие значения SRAM. Если ваш принтер настроен и вам нужно больше памяти, отключите это. |
1479 | EEPROM_CHITCHAT | 638 | Отключить для экономии памяти. Это нужно только для просмотра сообщений EEPROM при подключении к последовательной консоли. |
1491 | ARC_SUPPORT | + 3410 | Не используется большинством слайсеров, отключите для экономии памяти |
2766 | NO_VOLUMETRICS | — 612 | Enable if you do not intent to use volumetric extrusion features |
3099 | NO_WORKSPACE_OFFSETS | -1566 | Remove M428, G92 reverts back to Marlin 1.0 behaviour |
Список переключателей функций в Configuration.h и потребление ими памяти, если ВКЛЮЧЕНО . Знак плюс ( + ) означает, что включение функции занимает БОЛЬШЕ памяти. Минус ( — ) означает, что включение этой функции УМЕНЬШАЕТ использование памяти на .
Line # | Feature name | Size compiled (Bytes) | Comment |
---|---|---|---|
74 | STRING_CONFIG_H_AUTHOR | + 112 | Can be disabled |
89 | SHOW_BOOTSCREEN | + 630 | Может быть отключен |
92 | SHOW_CUSTOM_BOOTSCREEN | + 764 | Can be disabled |
95 | CUSTOM_STATUS_SCREEN_IMAGE | + 87 | Can be disabled |
1177 | AUTO_BED_LEVELING_BILINEAR with FIX_MOUNTED_PROBE (Capacitive, Inductive probes… ) | + 14408 | Единственный способ включить это — отключить SDSUPPORT |
1177 | AUTO_BED_LEVELING_BILINEAR с датчиком BLTOUCH | + 15758 | Единственный способ включить это, кажется, отключив SDSupport |
1180 | MESH_BED_LEVELING | + 7738 | . |
1186 | RESTORE_LEVELING_AFTER_G28 | + 16 | Функция удобства, в противном случае используйте M420 S1 после G28 для восстановления сетки перед печатью (дополнительную информацию о команде M420 см. в документации Marlin). |
1284 | LCD_BED_LEVELING | + 1652 | Удобство выравнивания сетки с помощью ЖК-экрана. В противном случае используйте команды G29. (см. документы Marlin для G29) |
1292 | LEVEL_BED_CORNERS | + 636 | Полезно, если вы хотите сохранить ручное выравнивание кровати, но не перемещая сопло по углам вручную. |
1632 | SDSUPPORT | + 17492 | Если вам не нужно печатать с SD-карты, отключите или если вам не нужно восстановление после отключения питания или загрузка файлов gcode на SD-карту, используйте SDCARD_READONLY для получения не менее 2000 байт назад. |