Удаленная прошивка микроконтроллера по cети, функция иногда очень нужная и полезная, т.к. это позволяет обновлять программное обеспечение без физического доступа на объект. Сегодня расскажу об опыте перепрошивки arduino, а по факту - микроконтроллера ATmega 328P с ардуиновским загрузчиком, используя последовательный порт маршрутизатора. Для этого
(
Read more... )
Comments 16
Reply
Осталось разобраться как сделать так, что бы можно было подключаться к коробочке через Интернет. Пока умею только в локальной сети
Reply
Если дома белый ip (через dyndns, если динамический), можно и на домашнем роутере сделать это.
Можно сделать по-другому: раз в минуту/10/час или день (скрипт в кронтабе и в wan-UP) проверять наличие измененного файла прошивки (это можно делать по timestamp) на сервере (например гитхаб или дропбокс). Но я бы делал мелкий текстовый файл с датой, (опционально именем новой прошивки) и контрольной суммой новой прошивки. Этот файл скачивается удалённым роутером, проверяется дата, если новее чем прошлая прошивка, то качаем .hex c сервера, проверяем контрольную сумму (я бы ещё шифрование добавил с помощью openssl), может ещё какие маркеры для отказустойчивости, прошиваем новую прошивку, сохраняем номер версии/дату этой прошивки для сравнения, отправлял себе на почту результаты апдейта (например log avrdude).
Reply
Reply
На клавиатуре нажимаем и Shift, а в Arduino IDE нажать кнопку компилировать
После компиляции в папке со скетчем, появится папка applet и в ней Вы найдете нужный нам файлик *.cpp.hex
http://cyber-place.ru/showpost.php?p=2015&postcount=6
Reply
Reply
Reply
Reply
Unknown package 'avrdude'.
Collected errors:
* opkg_install_cmd: Cannot install package avrdude.
Есть в репозиториях AA и CC!
поставил на ВВ Avrdude из репозитория АА! не работает ваша схема:
root@OpenWrt:~# avrdude -p m328p -P /dev/ttyATH0 -c arduino -b 57600 -C /etc/avr
dude.conf -U flash:w:/tmp/Blink.hex
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_disable(): protocol error, expect=0x14, resp=0x4c
avrdude done. Thank you.
или
root@OpenWrt:~# avrdude -p m328p -P /dev/ttyATH0 -c stk500v1 -b 57600 -C /etc/av
rdude.conf -U flash:w:/tmp/Blink_boot.hex
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_recv(): programmer is not responding
В чем может быть дело?
Reply
Почему не работает, так сразу не скажу - нужно проверить работоспособность ttyATH0 порта и GPIO7, если у вас именно такая железка. Транзистор VT1 открывается при включении GPIO7?
Reply
Leave a comment