Разрабатываю гибридное устройство Android + Arduino. Мозги в Android, исполнитель - Arduino - как обычно. Подключение по USB с использованием готовой библиотеки usb-serial-for-android. В общем, с передачей данных туда-сюда проблем никаких нет.
Как бы при помощи этой связки загружать скетчи в Arduino? Это нужно для обновления прошивки уже готовых устройств без каких-либо действий со стороны пользователя.
Знаю, что есть такой проект, как Arduino IDE for Android. Значит, загружать скетчи из Android в Arduino через USB на практике возможно.
Вопрос - как мне сделать свой велосипед и реализовать это в своем Android-приложении?
Где почитать, чего посмотреть?
Как я понимаю, я сперва должен послать сигнал сброса на Arduino по USB, а потом пытаться отправить скетчь. Вот как именно это нужно делать, какой протокол для данных, как это делает, например, сам avrdude?
Вот, сам нашел нечто похожее на ответ:
Avrdude прошивает Arduino через bootloader (зашитый в микроконтроллер), используя протокол STK500 для передачи новых скетчей. Вот документация.
Видимо, используя этот протокол можно залить скетч в Arduino из Android...
А вот и STK500 на Java...
Читайте инфу по bootloader for AVR. Имеются тысячи реализаций оного.
>Как я понимаю, я сперва должен послать сигнал сброса на Arduino по USB, а потом пытаться >отправить скетчь. Вот как именно это нужно делать, какой протокол для данных, как это делает, >например, сам avrdude?
Может я чего-то и не зтаю про Ардуино, ведь их могут быть тоже тысячи модификаций, но avrdude не может на прямую перепрограммировать микроконтроллер. Хотя если используются для USB кристаллы FT3232 (вроде бы в старых версиях Ардуино был FT232), то возможно програмирование с использованием SPI интерфейса. Если же вы знаете способ, как заставить avrdude прошивать Arduino, то этот документ может вам пригодиться: http://www.atmel.com/Images/doc0943.pdf
Хотя почитайте еще и этот тоже http://www.atmel.com/Images/doc1644.pdf