zepete: (Default)
[personal profile] zepete

Arduino можно перепрограммировать не вынимая из роутера, этого можно добиться двумя способами: используя avrdude + wget/winscp или ser2net + tibbo. Первый способ сложнее (надо искать hex файл), но зато второй глючный (arduino с tibbo сильно тормозит иногда).

Для обоих способов надо знать с какой скоростью прошивается и каким "программатором" прошивает avrdude эту arduino.
Сведения эти хранятся в файле c:\program files\arduino\hardware\arduino\boards.txt.
Скорость в переменной "<внутреннее имя платы>.upload.speed", а имя программатора в переменной "<внутреннее имя платы>.upload.protocol". Соответствие внутреннего имени платы внешнему задается строкой "<внутреннее имя платы>.name=отображаемое в меню "сервис->плата" имя платы".


Фрагмент этого файла.

diecimila.name=Arduino Diecimila or Duemilanove w/ ATmega168

diecimila.upload.protocol=arduino
diecimila.upload.maximum_size=14336
diecimila.upload.speed=19200

diecimila.bootloader.low_fuses=0xff
diecimila.bootloader.high_fuses=0xdd
.....
.....
##############################################################

nano328.name=Arduino Nano w/ ATmega328

nano328.upload.protocol=arduino
nano328.upload.maximum_size=30720
nano328.upload.speed=57600

nano328.bootloader.low_fuses=0xFF
nano328.bootloader.high_fuses=0xDA
nano328.bootloader.extended_fuses=0x05
nano328.bootloader.path=atmega
nano328.bootloader.file=ATmegaBOOT_168_atmega328.hex
nano328.bootloader.unlock_bits=0x3F
nano328.bootloader.lock_bits=0x0F

nano328.build.mcu=atmega328p
nano328.build.f_cpu=16000000L
nano328.build.core=arduino
nano328.build.variant=eightanaloginputs



Программирование используя avrdude.
Предварительно надо установить avrdude на роутер: команда "opkg update; opkg install avrdude".
После этого каждый раз выполнять команды.
1. Закрыть все окна arduino.
2. Запустить проводник.
3. Набрать в проводнике "%temp%"  и нажать <ввод>.

4. Удалить все каталоги "build<длинное десятеричное число>.tmp".

5. Запустить arduino с нужным проектом.
6. Скомпилировать проект командой <Ctrl>+R.
7. Обновить окно проводника из пунктов 2 и 3.
8. В окне проводника появится новая папка "build<длинное десятеричное число>.tmp". Эта папка будет использоваться для компиляции проекта все время, пока не закроете окно arduino. Перейти в нее.
9. Найти файл с именем совпадающем с названием проекта и двойным расширением "cpp.hex"

10. При помощи winscp перенести его на роутер.
11. На роуторе выполнить команду "avrdude -p <тип микросхемы> -P <последовательный порт, если используется встроенный в роутер, то /dev/ttyATH0, а если встроенный в arduino то/dev/ttyUSB0> -c <тип программатора из переменной "<внутреннее имя платы>.upload.protocol", чаще всего это будет arduino> -b <скорость связи из переменной "<внутреннее имя платы>.upload.speed"> -C /etc/avrdude.conf -U flash:w:<путь к hex файлу>".
В моем случае платы arduino nano эта команда будет такая: "avrdude -p m328p -P /dev/ttyUSB0 -c arduino -b 57600 -C /etc/avrdude.conf -U flash:w:./output.cpp.hex".
Таблица параметров arduino полученная из boards.
Название платыпараметр -pпараметр -с -b
Unom328parduino115200
Duemilanove w/ ATmega328m328parduino57600
Diecimila or Duemilanove w/ ATmega168m168arduino19200
Nano w/ ATmega328m328parduino57600
Nano w/ ATmega168m168arduino19200
Mega 2560 or Mega ADKm2560wiring115200
Mega (ATmega1280)m1280arduino57600
Leonardom32u4avr10957600
Esploram32u4avr10957600
Microm32u4avr10957600
Mini w/ ATmega328m328parduino115200
Mini w/ ATmega168m168arduino19200
Ethernetm328parduino115200
Fiom328parduino57600
BT w/ ATmega328m328parduino19200
BT w/ ATmega168m168arduino19200
LilyPad Arduino USBm32u4avr10957600
LilyPad Arduino w/ ATmega328m328parduino57600
LilyPad Arduino w/ ATmega168m168arduino19200
Pro or Pro Mini (5V, 16 MHz) w/ ATmega328m328parduino57600
Pro or Pro Mini (5V, 16 MHz) w/ ATmega168m168arduino19200
Pro or Pro Mini (3.3V, 8 MHz) w/ ATmega328m328parduino57600
Pro or Pro Mini (3.3V, 8 MHz) w/ ATmega168m168arduino19200
NG or older w/ ATmega168m168arduino19200
NG or older w/ ATmega8m8arduino19200
Robot Controlm32u4avr10957600
Robot Motorm32u4avr10957600

12. Когда на плате arduino загорится лампочка "TX" - нажать кнопку сброса.Вывод команды avrdude.
root@'mr3020':~/test# avrdude -p m328p -P /dev/ttyUSB0 -c arduino -b 57600 -C /e
tc/avrdude.conf -U flash:w:./output.cpp.hex

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.00s

avrdude: Device signature = 0x1e950f
avrdude: NOTE: FLASH memory has been specified, an erase cycle will be performed
To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: reading input file "./output.cpp.hex"
avrdude: input file ./output.cpp.hex auto detected as Intel Hex
avrdude: writing flash (1920 bytes):

Writing | ################################################## | 100% 0.54s

avrdude: 1920 bytes of flash written
avrdude: verifying flash memory against ./output.cpp.hex:
avrdude: load data flash data from input file ./output.cpp.hex:
avrdude: input file ./output.cpp.hex auto detected as Intel Hex
avrdude: input file ./output.cpp.hex contains 1920 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 0.39s

avrdude: verifying ...
avrdude: 1920 bytes of flash verified

avrdude: safemode: Fuses OK

avrdude done. Thank you.

root@'mr3020':~/test#

Программирование используя ser2net.

1. Установка на маршрутизатор ser2net: выполнить команду opkg update; opkg install ser2net. Этот пакет служит для организации удаленного доступа к последовательному порту.
2. В файле /etc/ser2net.conf маршрутизатора закомментировать все строки начинающиеся на 1001. 2001 и 3001 (добавить символ "#" в начало каждой строки) и добавить строку "2001:raw:0:<имя последовательного порта>:<скорость записи из файла boards> NONE 1STOPBIT 8DATABITS -XONXOFF -RTSCTS". В моем случае платы Nano w/ ATmega328 получится строка "2001:raw:0:/dev/ttyUSB0:57600 NONE 1STOPBIT 8DATABITS -XONXOFF -RTSCTS".

BANNER:banner3:this is ser2net TCP port \p device \d  serial parms \s\r\n

TRACEFILE:tw1:/tmp/tw-\p-\Y-\M-\D-\H:\i:\s.\U
TRACEFILE:tr1:/tmp/tr-\p-\Y-\M-\D-\H:\i:\s.\U

#1001:raw:0:/dev/ttyUSB0:9600 NONE 1STOPBIT 8DATABITS XONXOFF LOCAL -RTSCTS
2001:raw:0:/dev/ttyUSB0:57600 NONE 1STOPBIT 8DATABITS -XONXOFF -RTSCTS
#3001:raw:0:/dev/ttyUSB0:115200 NONE 1STOPBIT 8DATABITS XONXOFF LOCAL -RTSCTS
#2001:raw:600:/dev/ttyS0:9600 NONE 1STOPBIT 8DATABITS XONXOFF LOCAL -RTSCTS
#2002:raw:600:/dev/ttyS1:9600 NONE 1STOPBIT 8DATABITS XONXOFF LOCAL -RTSCTS
#2003:raw:5:/dev/ttyS2:9600
#2004:raw:5:/dev/ttyS3:115200
#2005:raw:5:/dev/ttyS4:9600

3. Установить на компьютере tibbo vsp manager.
4. Добавить в него порт с настройками из скриншотов, только заменив в них "baud rate (bps)" на значение из boards.

5. После этого можно программировать arduino по сети из компьютера, выставив в нем последовательный порт tibbo. Только когда в окне arduino появится надпись "Размер скетча в двоичном коде: XXXX байт (из 30 720 байт максимум)" - нажать кнопку сброса на плате arduino.

Date: 2016-10-23 05:45 pm (UTC)
From: [identity profile] redddis.livejournal.com
не подскажете, на mr3020 достаточно места, чтобы без флешки поставить avrdude? там же еще какие-то usb драйвера понадобятся.. (не совсем ардуина, aspmk2 программатор)
плюс удобнее бы было сетевой диск поднять, чтоб аврдюд сразу прошивку на компе подбирал. но там, кмк, без доп.флешки точно не хватит места.

Date: 2016-10-24 11:19 pm (UTC)
From: [identity profile] zepete.livejournal.com
Получиться, если согласны для компиляциии прошивки неделю компьютер гонять.

Date: 2016-10-24 11:27 pm (UTC)
From: [identity profile] redddis.livejournal.com
в смысле? собирать свою кастомную прошивку для роутера? у меня кажись за несколько часов собралась. сейчас уже чуточку лениво. с делами разгребусь - попробую поставить минимальный конфиг и установить avrdude...

Date: 2016-10-25 01:25 pm (UTC)
From: [identity profile] zepete.livejournal.com
Да. Для этого.
Если убрать графический интерфейс, то должно уместиться.

Profile

zepete: (Default)
zepete

January 2026

S M T W T F S
    1 23
4 56 78910
11121314151617
18192021222324
25262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 15th, 2026 12:22 am
Powered by Dreamwidth Studios