Форум обсуждения оборудования  

Вернуться   Форум обсуждения оборудования "Умный дом" > Форум умного дома > Сделай сам > OpenWRT

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 13.10.2012, 11:47   #1
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 8,912
Вес репутации: 9109
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию Удаленная прошивка Arduino Nano в OpenWrt, по сети

Сначала требуется установить драйвер и подключить Arduino Nano в OpenWrt
Устанавливаем ser2net
opkg update
opkg install ser2net

В файле /etc/ser2net.conf
Добавим следующую строку
1001:raw:0:/dev/ttyUSB0:57600 NONE 1STOPBIT 8DATABITS XONXOFF LOCAL -RTSCTS

В нашем случае тип связи с портом будет RAW.
Таймаут - 0.
Скорость необходимая устройству - 57600.
Четность не проверять - None.
Стоп бит один - 1STOPBIT.
Биты данных 8-ми битные - 8DATABITS.
XONXOFF выключено.
Аппаратное управление потоком выключено.

После внесения необходимых изменений, сохраняем фаил настроек и запускаем демона
ser2net
Придется запускать демона каждый раз после перезагрузки или добавить его в автозагрузку

Теперь нужно утановить клиента на Вашем PC
Я воспользовался рекомендацией andr128 и установил Tibbo
Скачать Tibbo
В настройках Tibbo укажите номер виртуального Serial порта. У меня был свободным 9 порт, по этому я его указал. Также не забудьте указать BoudRare 57600
И на последок укажите локальный IP адрес роутера и порт. У меня 192.168.1.20 и 1001
Название: tibbo3.jpg
Просмотров: 25150

Размер: 33.9 Кб Название: tibbo2.jpg
Просмотров: 25676

Размер: 27.0 Кб

Теперь в ArduinoIDE укажите Ваш виртуальный Serial Port и можете заливать код в контроллер Arduino Nano удаленно
Также указывая в своих программах Виртуальный Serial Port, можно удаленно в сети запускать программы написанные для работы с Ардуино
Будут вопросы , спрашивайте не стесняйтесь, а то я наверно как всегда что то забыл написать
Admin вне форума   Ответить с цитированием
Старый 13.10.2012, 19:25   #2
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 8,912
Вес репутации: 9109
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию

Обнаружен баг
Прошить можно только 1 раз после ребута роутера, после прошивки связь с Arduino есть, но сигнал DTR упорно не хочет появляться. Это приводит к тому что не передается управление bootloader, не происходит софтовый сброс контроллера.
Получается прошить можно, только предварительно перед этим сделав ребут.
Admin вне форума   Ответить с цитированием
Старый 16.10.2012, 16:18   #3
michael_s
Member
 
Регистрация: 28.09.2012
Сообщений: 52
Вес репутации: 0
michael_s is an unknown quantity at this point
По умолчанию

Цитата:
Сообщение от Admin Посмотреть сообщение
Обнаружен баг
Прошить можно только 1 раз после ребута роутера, после прошивки связь с Arduino есть, но сигнал DTR упорно не хочет появляться. Это приводит к тому что не передается управление bootloader, не происходит софтовый сброс контроллера.
Получается прошить можно, только предварительно перед этим сделав ребут.
Видимо DTR дергается только в момент подключения клиента к tcp порту(до этого момента порт физически не открывается ser2net)
По окончанию заливки порт не закрывается, отсда и все дальнейшие проблемы. Можно перезапустить ser2net
michael_s вне форума   Ответить с цитированием
Старый 16.10.2012, 16:37   #4
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 8,912
Вес репутации: 9109
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию

ser2net перезапускал, не помогает.
Admin вне форума   Ответить с цитированием
Старый 26.10.2012, 19:48   #5
andr128
Senior Member
 
Аватар для andr128
 
Регистрация: 16.09.2012
Адрес: Irkutsk
Сообщений: 555
Вес репутации: 1597
andr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond repute
По умолчанию suart

Собрал пакетик с программкой suart (аналог ser2net) для нашего роутера. Информация взята отсюда
В работе с arduino не пробовал, может будет лучше чем ser2net

установка:
1. распаковать.
2. скопировать в /tmp
3. opkg install /tmp/suart_1-1_ar71xx.ipk

искать в папке /bin.

Код:
root@OpenWrt:~# suart -?
Suart is tool that allow you to tunnel a local serial connection over a network

Usage: suart [-s<serial_port>] [-p<socket_addr>] [-b<baudrate>] [-d] [-?]

   -s<serial_port> Set serial port, default is /dev/ttyS0
   -p<socket_addr> Set socket address, default is 3000
   -b<baudrate> Set serial port baudrate (9600/19200/38400/57600/115200), default is 115200
   -d Show debug info - transferred data
   -? Show this help page

Example: suart -s/dev/ttyS1 -p3005 -b9600 -d
Надеюсь будет полезна.
Вложения
Тип файла: zip suart_1-1_ar71xx.zip (3.6 Кб, 521 просмотров)

Последний раз редактировалось andr128; 28.10.2012 в 18:10.
andr128 вне форума   Ответить с цитированием
Старый 31.10.2012, 13:48   #6
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 8,912
Вес репутации: 9109
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию

Есть еще вариант удаленной прошивки Arduino без использования клиента
Для этого нужно
Проверить установленные ранее пакеты
kmod-usb-core
kmod-usb-ohci
kmod-usb-serial
kmod-usb-serial-ftdi
kmod-usb2


Установить avrdude
opkg update
opkg install avrdude


Получить *.hex
На клавиатуре нажимаем и Shift, а в Arduino IDE нажать кнопку компилировать
После поной компиляции в папке со скетчем, появится папка applet и в ней Вы найдете нужный нам файлик *.cpp.hex

Теперь проверяем. Через FTP закачайте файлик Blink.cpp.hex в роутер
И выполните команду
avrdude -p m328p -P /dev/ttyUSB0 -c stk500v1 -b 57600 -C /etc/avrdude.conf -U flash:w:/root/Blink.cpp.hex

Процесс прошивки будет выглядеть вот так

Цитата:
avrdude: AVR device initialized and ready to accept instructions

Reading | ######################################## ########## | 100% 0.02s

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 "/root/Blink.cpp.hex"
avrdude: input file /root/Blink.cpp.hex auto detected as Intel Hex
avrdude: writing flash (896 bytes):

Writing | ######################################## ########## | 100% 0.28s

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

Reading | ######################################## ########## | 100% 0.22s

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

avrdude: safemode: Fuses OK

avrdude done. Thank you.
Admin вне форума   Ответить с цитированием
Старый 04.12.2012, 22:33   #7
d00m
Senior Member
 
Регистрация: 06.11.2012
Сообщений: 150
Вес репутации: 0
d00m is an unknown quantity at this point
По умолчанию

не получается залить новый скетч через ser2net.
настраивал как тут показано..
Arduino IDE пишет Done uploading, но ниже есть какаято красная строчка:

avrdude: stk500_getsync(): not in sync: resp=0x00

Tibbo Monitor dj время аплоада показывает какуюто активность..

12/04/12 22:27:47 - COM9 (INFO): VSP opened, transport=TCP(TDI), routing=client, remote=192.168.1.6:1001, connect=immediately, OTF=disabled
12/04/12 22:27:47 - COM9 (INFO): Device closed
12/04/12 22:27:47 - COM9 (INFO): VSP opened, transport=TCP(TDI), routing=client, remote=192.168.1.6:1001, connect=immediately, OTF=disabled
12/04/12 22:27:47 - COM9 (INFO): Established TCP connection with 192.168.1.6:1001
12/04/12 22:27:47 - COM9 (INFO): TCP connection with 192.168.1.6:1001 closed
12/04/12 22:27:47 - COM9 (INFO): Established TCP connection with 192.168.1.6:1001
12/04/12 22:27:52 - COM9 (INFO): Device closed
12/04/12 22:27:52 - COM9 (INFO): VSP opened, transport=TCP(TDI), routing=client, remote=192.168.1.6:1001, connect=immediately, OTF=disabled
12/04/12 22:27:52 - COM9 (INFO): Established TCP connection with 192.168.1.6:1001
12/04/12 22:28:05 - COM9 (INFO): TCP connection with 192.168.1.6:1001 closed
12/04/12 22:28:05 - COM9 (INFO): Established TCP connection with 192.168.1.6:1001
12/04/12 22:28:10 - COM9 (INFO): Device closed
d00m вне форума   Ответить с цитированием
Старый 05.12.2012, 10:21   #8
andr128
Senior Member
 
Аватар для andr128
 
Регистрация: 16.09.2012
Адрес: Irkutsk
Сообщений: 555
Вес репутации: 1597
andr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond repute
По умолчанию

У меня на меге тоже не получается.
andr128 вне форума   Ответить с цитированием
Старый 05.12.2012, 11:42   #9
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 8,912
Вес репутации: 9109
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию

А с avrdude прошить не пробовали?
Admin вне форума   Ответить с цитированием
Старый 05.12.2012, 20:54   #10
d00m
Senior Member
 
Регистрация: 06.11.2012
Сообщений: 150
Вес репутации: 0
d00m is an unknown quantity at this point
По умолчанию

кажется я понял в чем проблема
нужно порт открывать на 115200
в Arduino IDE все programmer's настроены на такую скорость судя по конфам..

после этого изменения мне удалось прошить Arduino Uno rev3

кстати вот еще способ расшарить порт с помощью утилиты socat (надо поставить отдельно):

Цитата:
socat tcp-l:1001,reuseaddr,fork file:/dev/ttyACM0,nonblock,raw,echo=0,waitlock=/var/run/tty,b115200
вобщем прошивка работает, но както нестабильно. если сделать какойто действие, пока не пойму какое - прошиваться перестает и помогает только ребут. хотя могу утверждать точно, что можно прошиться несколько раз без ребута.

еще точно заметил что мешает прошивке, если открыт порт:

screen /dev/ttyACM0 9600
или
cat /dev/ttyACM0

хотя если чесно до сих пор непонятно что это - баг или фича этот autoreset на Arduino - у кого-то он проявляется, у кого-то нет.. ктото режет дорожку ктото паяяет резистор, а ктото даже кондер ставит.. а у когото даже спец джампер есть для этого.. не понятно зачем такое сделано..

Последний раз редактировалось d00m; 05.12.2012 в 20:56.
d00m вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 18:08. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd. Перевод: zCarot
Яндекс.Метрика