136-gcUploader автоматический загрузчик HEX-файлов для Arduino

Автор: | 26.08.2016

GC UploaderС недавнего времени, как Вы заметили, я стал создавать много конструкций на базе Arduino. Причина проста – экономия времени на сборку устройства. Сейчас у меня стало не так много свободного времени, но отказываться от своего хобби я не хочу. Поэтому приходится оптимизировать производство новых устройств :). Больше времени уделять коду, чем пайке. Кроме того, конструкция на Ардуине обладает хорошей повторяемостью – трудно сделать что-то не так, когда для создания конструкции необходимо, всего лишь, соединить готовые платки десятком проводков. Но, несмотря на то, что устройства создаются при помощи Ардуины, программы под них я все равно пишу на Algorithm Builder (родная среда программирования Ардуины очень упрощена и мне много чего в ней не хватает).

С переходом на Ардуину встал вопрос прошивки МК. Можно использовать ISP разъем на Ардуине и прошивать МК прямо с Билдера (плюсом будет внутрисхемная отладка), но грех не использовать уже прошитый в Ардуину загрузчик и прошивать свои программы посредством штатного USB-шнура Ардуины. К сожалению Билдер не может записать прошивку в Ардуину через загрузчик, поэтому приходится использовать сторонние программы – HEX-загрузчики.

Раньше процесс прошивки Ардуины у меня выглядел следующим образом.  Предварительно я запускаю один из загрузчиков (о них я писал раньше) и настраиваю его на включенную Ардуину, прописываю путь к хексу создаваемой программы. Дальше в Билдере, после очередной редакции кода, компилирую проект, перехожу к окну загрузчика, жму на нем кнопку «Загрузить» и возвращаюсь в Билдер. Процедура вроде и не сложная, но когда таких циклов в процессе отладки делаешь десятки – это начинает немного надоедать.

Для того чтобы упростить процесс прошивки Ардуины я сделал свой автоматический загрузчик — gcUploader.

Окно GC Uploader

gcUploader.zip (28562 Загрузки)

 

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
— небольшие улучшения функциональности

(Visited 36 625 times, 1 visits today)

136-gcUploader автоматический загрузчик HEX-файлов для Arduino: 63 комментария

  1. Alex

    Много раз пытаюсь прошить Ардуино Нано с авр 168р. В неё зашит БЛИНК. беру gcUploder. делаю всё по инструкции, Вроде бы как программка моргает как и надо в конце пишет «done» (выполнено) но программа БЛИНК как работала так и продолжает работать. Т.е фактически файл НЕХ не прошился! Подскажите, в чём может быть дело? Кроме того не открывается командная строка (могнет и сразу закроется). Как из этой проги увидеть лог исполнения?

  2. GetChiper Автор записи

    Привет!
    После некоторого времени пользования и сам понял что не удобно
    В следующем апдейте добавлю иконку выбора файла

  3. Эдик

    Приветствую! Очень нравится Ваша программа, напрягает только перетаскивание HEX файла. Нельзя ли добавить обычное открытие файла?

  4. GetChiper Автор записи

    Привет!
    Перехожу на новый плагин загрузок — некоторое время ссылки не будут работать.

  5. Nalivaika

    Добрый день, ссылка для загрузки пропала

  6. GetChiper Автор записи

    Привет!
    Да.
    Так как Вы сами создаете/прописываете avrdude строку в Type, то можно загружать все что поддерживает avrdude.

  7. Справедливый

    Добрый день.
    Вопрос собственно один- eep файл этим загрузчиком грузить можно?

  8. GetChiper Автор записи

    Привет!
    Я протестирую у себя (не замечал раньше у себя такого, хотя винда в автомате обновляется).
    Попробуйте переустановить программу с сайта по новой (может даже в другое место).
    Еще попробуйте запускать программу в режиме совместимости и/или от имени администратора.
    Отпишитесь, что получилось.

  9. Vens

    Добрый вечер!
    Отличная программа, постоянно пользуюсь.
    Однако, после очередных обновлений Windows10, программа стала очень сильно тормозить. На любое действие уходит с десяток секунд. Это и запуск, и выход, и даже отображение всплывающей подсказки. Как это можно исправить?

  10. GetChiper Автор записи

    А еще можно создавать в Type строчки под одно железо на разные проекты (хексы) — при их выборе будет подтягиваться и хекс соответствующий.

    А еще можно сделать вторую копию загрузчика (настройки он хранит у себя в папке ) и настроить под конкретный проект — тогда при запуске этой копии все сходу начинает работать.

  11. alexvip.nsk

    )) спасибо за ответ! Вчера уже опробовал, и действительно автоматический режим порадовал!!!
    Указывать хекс — надо только при смене проекта, это не так уж сложно. Спасибо !

  12. GetChiper Автор записи

    Привет!
    Нет, через командную строку параметры передавать не получится, но в этом особо и смысла нет — программа автоматизирует загрузку определенного хекса при его пересоздании (удобно при отладке программы когда она пересобирается повторно по много раз).
    Кроме того, в atmel studio с автоматизацией и так все хорошо.

    Но если Вам нужно как-то особенно что-то прописывать через командную строку — работайте напрямую с AVRdude — там можно все!

  13. alexvip.nsk

    Доброго времени суток!
    Ваша програмка заинтересовала!
    Вопрос: хочу запускать еЁ из atmel studio.
    чтобы автоматизировать процесс — можно ли через командную строку передавать параметры в Вашу программу? в часности путь до HEX файла ?

Добавить комментарий