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

Автор: | 26.08.2016

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

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

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

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

Окно GC Uploader

GC Uploader.zip - автоматический загрузчик HEX-файлов для Arduino

 

GC Uploader — маленькая программка с небольшим количеством настроек, но очень облегчающая мне жизнь.

Работает она следующим образом:
1 Подключаем Ардуину к компьютеру (драйвера уже должны быть установлены)
2 Запускаем GC Uploader
3 Мышкой кидаем HEX-файл на окно GC Uploader (откроется область настроек)
4 Выбираем тип Ардуины
5 Выбираем порт к которому подключена Ардуина.
6.1 Для случая, когда нужно прошить готовый хекс — кликаем пиктограмму микроконтроллера
6.2 Для случая работы с проектом, программа делает все сама (программа следит за хексом и в случае его изменения, при очередной компиляции проекта, процесс прошивки Ардуины запускается автоматически).

Программа использует для прошивки AVRDUDE. Командную строку для запуска прошивки можно посмотреть (или подправить) в файле gc_uploader.ini. GC Uploader запоминает все настройки последней сессии и при повторном запуске (если Вы продолжаете все то-же проект) ничего настраивать уже не нужно.

Элементов управления немного и они интуитивно понятны.
Главный элемент окна – изображение микроконтроллера. Изображение меняется, отображая текущее состояние программы:

ожидание
ожидание — HEX-файл не изменялся — программа ничего не делает

 

изменение
обнаружено изменение — HEX-файл изменился и, если не выбран ручной режим, прошивка начнется автоматически

 

прошивка
прошивка МК

 

готово
прошивка завершена

 

В любом из режимов работы можно начать процесс прошивки вручную, кликнув на пиктограмме микросхемы.

Далее элементы настройки:

настройка — открывает поле настройки программы

окно настройки

Нужно выбрать, соответственно, тип Ардуины и порт, к которому она подключена. В окно адреса нет необходимости прописывать путь вручную – просто киньте файл прошивки на форму и путь добавится автоматически.

ручной режим прошивкиавтоматический режим прошивки — ручной и автоматический режим прошивки. В ручном режиме программа обнаруживает изменение хекса и изменяет пиктограмму МК, но не запускает прошивку. Прошивка начнется после клика на пиктограмме МК.

лог включенлог отключен — включение/отключение отображения окна лога работы AVRDUDE. При первых прошивках проекта рекомендуется включать окно, чтобы убедиться, что все работает нормально.

обновить

— обновление списка доступных портов, для случая подключения Ардуины после пуска программы.

Окно программы полупрозрачно и всегда находится поверх всех окон, так что Вы всегда будете в курсе того, что происходит.

Если кому чего захочется добавить в программу, пишите — постараюсь сделать (хотя, на мой взгляд, программа идеальна 🙂 )

Обновление 19.09.2016
— убрал отображение формы на панели задач (для экономии на ней места) — все равно окно программы всегда на виду;
— добавил альтернативную командную строчку для AvrDDUDE в gc_uploader.ini, расскоментировав которую можно увеличить скорость записи прошивки в МК (отключается верификация записанной прошивки). по умолчанию работает обычный режим с верификацией.

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

(Visited 6 386 times, 19 visits today)

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

  1. Joog

    Файл трояна: GC-Uploader.zip
    Risks: Троян (HEUR/QVM11.1.0000.Malware.Gen)

  2. strem

    Какой антивирус выдает такое сообщение?
    Возможно антивирус воспринимает скрытый запуск AVRDUDE как риск. При тотальной проверке файла ресурсом http://www.virustotal.com подавляющее большенство антивирусов ничего не находят.

  3. Joog

    360 Total Security
    Дудку он знает, пользуюсь постоянно

  4. strem

    Дело не в самой дудке, а в том что она запускается из другого приложения и при этом прячется ее окно.
    Попробую чуть позже собрать проект без оптимизации — может это поможет.

  5. admin Автор записи

    Перезалил файл.

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

    Обновил программу.
    — убрал отображение формы на панели задач (для экономии на ней места) — все равно окно программы всегда на виду.
    — добавил альтернативную командную строчку для AvrDDUDE в gc_uploader.ini, расскоментировав которую можно увеличить скорость записи прошивки в МК (отключается верификация записанной прошивки). по умолчанию работает обычный режим с верификацией.

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

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

  8. Dr. Alex

    Добрый день. Очень интересная програмка)!!!!!! Есть просьба, вы не могли-бы открыть исходники? Если вам не тяжело — пришлите мне на почту . Заранее благодарен.

  9. admin Автор записи

    Пока исходника не будет я еще его дорабатываю.

  10. Igor-Tkachenko

    Возможно ли изменение Fuse Bit в Arduino с помощью этого загрузчика?

  11. admin Автор записи

    Этот загрузчик фьюзов изменить не сможет.
    Напомню, что изменение фьюзов (кроме некоторых) приведет к неработоспособности штатного загрузчика Arduino.

  12. ON-OFF

    Кидаю кекс, не прошивается нано

  13. admin Автор записи

    Если включить лог, что пишет?

  14. ON-OFF

    avrdude.exe: stk500_getsync: not in sync: resp=0x00
    да и после прошивки теперь не заливаются скетчи, похоже поврежден загрузчик

  15. admin Автор записи

    Похоже да — поврежден.
    Нужно попробовать на другой ардуине.

  16. ON-OFF

    Загрузчик восстановил, всё норм, может нех был кривой…., пробовал залить другим залить — тоже самое http://skjolddisplay.no/?page_id=522

  17. Artem-Maksimov

    Ребята кто нибудь пробовал на Pro Mini Atmega328p 5V 16Мгц .использую програматор Pl2303
    Я никогда не сталкивался с HEX файлами но покопавшись в гугле нашел эту прогу .
    Насколько я понимаю последовательность действий
    1.подключаем ардуинку
    2.выбираем ее в проге
    3.выбираем порт
    4.выбираем HEX файл
    5.нажимаем на значек микроконтроллера
    6.готово!
    Проверьте меня нехочется спалить ардуинку.

  18. Artem-Maksimov

    Все прочел надеюсь все будет хорошо.
    Хорошая прога.СПС Автору

  19. admin Автор записи

    Да, последовательность правильная.

  20. Artem-Maksimov

    Ребята кто нибудь пробовал на Pro Mini Atmega328p 5V 16Мгц .использую програматор Pl2303

  21. Artem-Maksimov

    GetChiper ты пробовал на Pro Mini Atmega328p 5V 16Мгц .использую програматор Pl2303???

  22. admin Автор записи

    Пробовал.
    А что, не работает?

  23. Artem-Maksimov

    не я спрашивал я сам еще не пробовал.а ты программатор Pl2303 используешь или USBtiny или USBasp

  24. admin Автор записи

    Если это ардуина — достаточно штатного USB- шнурка для программирования.

  25. Artem

    Спасибо буду пробовать

  26. Илья-Светлый

    отличная утилита, сам использовался для этих целей xloader.
    Если не трудно можете может описать какие технологи использовали для утилиты. Для своих железяк пишу консольные приложения на C#, думаю переходит уже на приложения с интерфейсом.

  27. admin Автор записи

    GC-Uploader — это, по сути, оболочка для AVRDUDE и все основные действия выполняет «дудка». Так что ничего особенного в программе нет — она просто удобная )

  28. Андрей-Куницын

    Прошу прощения, может спрашивалось уже, а есть там возможность (в этой проге) менять/выставлять фьюзы?

  29. admin Автор записи

    Илья · 21.03.2017 at 11:49 pm
    На каком языке хоть?
    http://hiasm.com/ (по сути — это делфи)

    Андрей · 22.03.2017 at 8:59 am
    Прошу прощения, может спрашивалось уже, а есть там возможность (в этой проге) менять/выставлять фьюзы?
    Эта оболочка заточена работать с Ардуиновским загрузчиком. Если поменять в МК фьюзы, то загрузчик перестанет работать и, соответственно, эта программа станет бесполезной. Поэтому доступ к фьюзам не только не нужен, но и вреден 🙂

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