С недавнего времени, как Вы заметили, я стал создавать много конструкций на базе Arduino. Причина проста – экономия времени на сборку устройства. Сейчас у меня стало не так много свободного времени, но отказываться от своего хобби я не хочу. Поэтому приходится оптимизировать производство новых устройств :). Больше времени уделять коду, чем пайке. Кроме того, конструкция на Ардуине обладает хорошей повторяемостью – трудно сделать что-то не так, когда для создания конструкции необходимо, всего лишь, соединить готовые платки десятком проводков. Но, несмотря на то, что устройства создаются при помощи Ардуины, программы под них я все равно пишу на Algorithm Builder (родная среда программирования Ардуины очень упрощена и мне много чего в ней не хватает).
С переходом на Ардуину встал вопрос прошивки МК. Можно использовать ISP разъем на Ардуине и прошивать МК прямо с Билдера (плюсом будет внутрисхемная отладка), но грех не использовать уже прошитый в Ардуину загрузчик и прошивать свои программы посредством штатного USB-шнура Ардуины. К сожалению Билдер не может записать прошивку в Ардуину через загрузчик, поэтому приходится использовать сторонние программы – HEX-загрузчики.
Раньше процесс прошивки Ардуины у меня выглядел следующим образом. Предварительно я запускаю один из загрузчиков (о них я писал раньше) и настраиваю его на включенную Ардуину, прописываю путь к хексу создаваемой программы. Дальше в Билдере, после очередной редакции кода, компилирую проект, перехожу к окну загрузчика, жму на нем кнопку «Загрузить» и возвращаюсь в Билдер. Процедура вроде и не сложная, но когда таких циклов в процессе отладки делаешь десятки – это начинает немного надоедать.
Для того чтобы упростить процесс прошивки Ардуины я сделал свой автоматический загрузчик — gcUploader.
gcUploader.zip (31054 Загрузки)
GC Uploader — маленькая программка с небольшим количеством настроек, но очень облегчающая мне жизнь.
Работает она следующим образом:
1 Подключаем Ардуину к компьютеру (драйвера уже должны быть установлены)
2 Запускаем gcUploader
3 Мышкой кидаем HEX-файл на окно gcUploader (откроется область настроек)
4 Выбираем тип Ардуины
5 Выбираем порт к которому подключена Ардуина.
6.1 Для случая, когда нужно прошить готовый хекс — кликаем пиктограмму микроконтроллера
6.2 Для случая работы с проектом, программа делает все сама (программа следит за хексом и в случае его изменения, при очередной компиляции проекта, процесс прошивки Ардуины запускается автоматически).
Программа использует для прошивки AVRDUDE. После очередного обновления Вы можете добавлять поддержку новых Ардуин, контроллеров и программаторов, из того огромного количества, что поддерживает AVRDUDE. Как это сделать читайте здесь.
gcUploader запоминает все настройки последней сессии и при повторном запуске (если Вы продолжаете все то-же проект) ничего настраивать не нужно.
Элементов управления немного и они интуитивно понятны.
Главный элемент окна – изображение микроконтроллера. Изображение меняется, отображая текущее состояние программы:
— ожидание — HEX-файл не изменялся — программа ничего не делает
— обнаружено изменение — HEX-файл изменился и, если не выбран ручной режим, прошивка начнется автоматически
— прошивка МК
— прошивка завершена
В любом из режимов работы можно начать процесс прошивки вручную, кликнув на пиктограмме микросхемы.
Далее элементы настройки:
— открывает поле настройки программы
Нужно выбрать, соответственно, тип Ардуины и порт, к которому она подключена. В окно адреса нет необходимости прописывать путь вручную – просто киньте файл прошивки на форму и путь добавится автоматически.
— ручной и автоматический режим прошивки. В ручном режиме программа обнаруживает изменение хекса и изменяет пиктограмму МК, но не запускает прошивку. Прошивка начнется после клика на пиктограмме МК.
— включение/отключение отображения окна лога работы AVRDUDE. При первых прошивках проекта рекомендуется включать окно, чтобы убедиться, что все работает нормально.
— открывает файл gcUploader.ini для добавления поддержки новых устройств
(читать подробней).
— обновление списка доступных портов, для случая подключения Ардуины после пуска программы.
Окно программы полупрозрачно и всегда находится поверх всех окон, так что Вы всегда будете в курсе того, что происходит.
Если кому чего захочется добавить в программу, пишите — постараюсь сделать (хотя, на мой взгляд, программа идеальна 🙂 )
Обновление 19.09.2016
— убрал отображение формы на панели задач (для экономии на ней места) — все равно окно программы всегда на виду;
— добавил альтернативную командную строчку для AVRDUDE в gcUploader.ini, расскоментировав которую можно увеличить скорость записи прошивки в МК (отключается верификация записанной прошивки). по умолчанию работает обычный режим с верификацией.
Обновление 20.09.2016
— добавил возможность обновления списка доступных портов (для случая, когда Ардуина подключена уже после пуска программы)
Обновление 08.02.2018
— обновил AVRDUDE до свежей 6.3 версии
— появилась возможность добавлять свои варианты Ардуин или даже микроконтроллеров и программаторов (читать подробней)
Обновление 13.05.2018
— небольшие улучшения функциональности
Много раз пытаюсь прошить Ардуино Нано с авр 168р. В неё зашит БЛИНК. беру gcUploder. делаю всё по инструкции, Вроде бы как программка моргает как и надо в конце пишет «done» (выполнено) но программа БЛИНК как работала так и продолжает работать. Т.е фактически файл НЕХ не прошился! Подскажите, в чём может быть дело? Кроме того не открывается командная строка (могнет и сразу закроется). Как из этой проги увидеть лог исполнения?
Привет!
После некоторого времени пользования и сам понял что не удобно
В следующем апдейте добавлю иконку выбора файла
Приветствую! Очень нравится Ваша программа, напрягает только перетаскивание HEX файла. Нельзя ли добавить обычное открытие файла?
Привет!
Перехожу на новый плагин загрузок — некоторое время ссылки не будут работать.
Добрый день, ссылка для загрузки пропала
Привет!
Да.
Так как Вы сами создаете/прописываете avrdude строку в Type, то можно загружать все что поддерживает avrdude.
Добрый день.
Вопрос собственно один- eep файл этим загрузчиком грузить можно?
Привет!
Я протестирую у себя (не замечал раньше у себя такого, хотя винда в автомате обновляется).
Попробуйте переустановить программу с сайта по новой (может даже в другое место).
Еще попробуйте запускать программу в режиме совместимости и/или от имени администратора.
Отпишитесь, что получилось.
Добрый вечер!
Отличная программа, постоянно пользуюсь.
Однако, после очередных обновлений Windows10, программа стала очень сильно тормозить. На любое действие уходит с десяток секунд. Это и запуск, и выход, и даже отображение всплывающей подсказки. Как это можно исправить?
А еще можно создавать в Type строчки под одно железо на разные проекты (хексы) — при их выборе будет подтягиваться и хекс соответствующий.
А еще можно сделать вторую копию загрузчика (настройки он хранит у себя в папке ) и настроить под конкретный проект — тогда при запуске этой копии все сходу начинает работать.
)) спасибо за ответ! Вчера уже опробовал, и действительно автоматический режим порадовал!!!
Указывать хекс — надо только при смене проекта, это не так уж сложно. Спасибо !
Привет!
Нет, через командную строку параметры передавать не получится, но в этом особо и смысла нет — программа автоматизирует загрузку определенного хекса при его пересоздании (удобно при отладке программы когда она пересобирается повторно по много раз).
Кроме того, в atmel studio с автоматизацией и так все хорошо.
Но если Вам нужно как-то особенно что-то прописывать через командную строку — работайте напрямую с AVRdude — там можно все!
Доброго времени суток!
Ваша програмка заинтересовала!
Вопрос: хочу запускать еЁ из atmel studio.
чтобы автоматизировать процесс — можно ли через командную строку передавать параметры в Вашу программу? в часности путь до HEX файла ?