- Имеем
- Ubuntu 12.04
- Arduino 1.6.8
- плата Arduino UNO
- модуль Ethernet shield W5100
- Ariadne Bootloader for Arduino
Подключить все необходимое прошивки bootloader в среде Ардуино оказалось очень просто:
Ардуино-Настройки-Дополнительные ссылки для менеджера плат добавляем https://per1234.github.io/Ariadne-Bootloader/package_codebendercc_ariadne-bootloader_index.json
Ардуино-Инструменты-Плата...-Менеджер плат- ищем Ariadne и устанавливаем
Теперь прямо в среде ардуино появились платы типа Ariadne UNO...
Выставляем программатор AVR ISP
и шьем bootloader (который и содержит возможность прошивки Ethernet по ip адресу 192.168.1.128)
Прошивается удаленно при помощи tftp
сначала надо перевести из hex в bin.
Для этого сначала установим avr-objcopy
sudo apt-get install binutils-avr
потом примерно так :
avr-objcopy -I ihex /tmp/build2902ca5d0c9177089ed0f2785a7bd340.tmp/BlinkWithoutDelay.ino.hex -O binary /home/p/1.bin
Теперь можно заливать любую прошивку по tftp:
Чтобы залить прошивку надо в первые 7-8 сек после включение или сброса платы Arduino UNO (c Ethernet) успеть выполнить несколько команд. Чтобы никуда не спешить лучше запустить прнимерно такой скрипт:
tftp 192.168.1.128 < ./tftp1.txt
- Содержние tftp1.txt:
- mode octet
- trace
- verbose
- put 1.bin
- quit
В общем хочу сказать , что у меня все получилось.
- Вот такой вывод примерно получиться
- p@p-office-black:~$ ./tftp.sh
- tftp> tftp> Packet tracing on.
- tftp> Verbose mode on.
- tftp> putting 1.bin to 192.168.1.128:1.bin [octet]
- sent WRQ
- received ACK
- sent DATA
- received ACK
- sent DATA
- received ACK
- sent DATA
- received ACK
- sent DATA
- received ACK
- sent DATA
- received ACK
- sent DATA
- received ACK
- Sent 2586 bytes in 5.0 seconds [4138 bits/sec]
И теперь можно прошивать удаленно , хоть через интернет.
Благодарности товарищу Ariadne!
Download the Ariadne files here: https://github.com/per1234/Ariadne-Bootloader/archive/ariadne.zip