OR-WRT 0.60-Eng
Содержание
About
Project description
This is subproject of Open Robotics project, intended to production easy-to-use, low-cost platforms for hobby robotics (also not only hobby). This subproject target is to develop ready-to-flash firmware for SOHO wifi-routers, which allows to use the linux-based routers as a head devices for wifi-controlled hobby robots. Router will be able to control UART- and USB devices (for the moment, UVC-webcams, some MCU boards and some USB-UART adapters are supported). Firmware is based on the OpenWRT, author - elmot (elijah.mot [at] gmail.com).
URL to forum about this project
License
You can freely use and/or modify the project materials for any non-commercial purpose. For commercial license you have to contact author (elijah.mot[at]gmail.com).
WARNING
You are doing on your own risk. We warn that disassembling the router (to connect uart-interface), as far as flashing custom firmware, may lead to loss of warranties or even to device damage. Unexpected robot behavior could lead to damages or even injures. The author of the firmware, neither Open-robotics.ru, nor OpenWRT.org don't carry any responsibility for any direct or indirect consequences of projects materials usage.
Supported equipment
Routers
- WiFi routers:
- D-Link DIR-320 (but not DIR-320NRU, aka "H/W ver B1"!),
- ASUS wl500gP (tested by ddcharacter)
- May be any other routers, based on SoC Broadcom BCM47xx/53xx (not tested yet)
- You can try to modify firmware by you own for other USB-equipped routers compatible with OpenWRT.org
USB-Webcams
All UVC-webcams (consider this list — [http://www.ideasonboard.org/uvc/]).
We recomment MJPEG-webcams, but YUV-webcams can be used too (but with increaced latency of video-streaming).
USB-UART adapters
- Silicon Labs CP210x, including OR-USB-UART-v1
- Pololu Orangutan SVP-1284 (with some patching, see below)
- Others weren't checked, most likely will be supported..
Firmware installation
D-Link DIR-320
- Set up tftp client (included in win 7 distributive but is not installed to default).
- Connect computer with RJ-45 cable to any LAN-port on router
- Setup IP 192.168.0.2 for computer LAN adapted
- open DOS-prompt window and prepare (may be in .bat-file) command "tftp 192.168.0.1 PUT <trx-file-name>"
- Switch on router power
- Wait for exactly two seconds and run prepared command. LAN LED should start flashing frequently for few seconds, after that command must be completed successfully and write in console something like (digits may differ):
- Start Flashing ****
- Successfull transfer: 3592480 bytes in 11 сs, 281134 bytes/s
- Wait for about five minutes. When firmware is reloaded, and router failed to connect to WiFi (because unlikely your home WiFi is named "OpenWrt" and has password “1”), side blue led starts lighting and going out every ten seconds.
Robot firmware setting up
There are two ways to set-up OR-WRT wirmware
ssh 192.168.0.1
, with LAN cable connected to any router LAN/WAN port. Alsossh <wifi ip>
, if wifi is already configured and up. Login root, password 123- Type in in browser http://192.168.0.1 with LAN cable or http://<wifi IP> via wifi, if wifi is already configured and up. Login admin, password oradmin. There is a link to admin pages on the frontpage.
Home WiFi connection
It is supposed that the router is connected to a home network wifi as the static IP client.
- Select approaching IP. It should be in IP range of the network, not to be occuped, and to be out of DHCP address range.
- Open web interface, then admin pages, and there is a "WiFi" page. There you can set up:
- protection: WPA-PSK/WPA2-PSK, NONE
- network SSID
- password
- static IP
- netmask
- default GW
- dns
As a network configuration check, firmware pings default gateway address every ten seconds. If the ping is unsuccessful, the blue LED is lit for next ten seconds. So it can light time to time even if wifi is working IP in case of packet drop (it happens time to time).
webcam Adjustment
On camera settings page you can choose:
- resolution
- frame rate
- camera number (connection of several cameras through USB-hub is possible)
- YUV or MJPEG modes
Использование прошивки на ПК
Получение видеопотока или отдельных кадров
- видеопоток в формате mjpg "http://wifi-ip:8080/?action=stream"
- кадр в формате jpg "http://wifi-ip:8080/?action=snapshot"
Проброска UART-а
Встроенный UART
Доступен двумя способами
- сервис ser2net транслирует обмен на TCP порт 2000
- запись в порт доступна по протоколу http URL /cgi-bin/serial.cgi , метод POST, значение параметра SERIAL_DATA будет записано в порт
CP210x (OR-USB-UART)
в файл /etc/config/ser2net.conf надо добавить строку:
3001:raw:600:/dev/ttyUSB0:115200 NONE 1STOPBIT 8DATABITS -XONXOFF -LOCAL -RTSCTS
После перезагрузки UART порт доступен на TCP порту 3001
Pololu Orangutan SVP-1284
На оборудовании tenik удалось связать роутер с систмой Pololu Orangutan:
в файл /etc/rc.local для перезапуска драйвера были добавлены строки:
rmmod usbserial insmod usbserial vendor=0x1ffb product=0x0087
в файл /etc/config/ser2net.conf добавлены строки:
3001:raw:600:/dev/ttyUSB0:115200 NONE 1STOPBIT 8DATABITS -XONXOFF -LOCAL -RTSCTS 3002:raw:600:/dev/ttyUSB1:115200 NONE 1STOPBIT 8DATABITS -XONXOFF -LOCAL -RTSCTS 3003:raw:600:/dev/ttyUSB2:115200 NONE 1STOPBIT 8DATABITS -XONXOFF -LOCAL -RTSCTS
После перезагрузки 3 UART порта Pololu доступны на TCP портах 3001, 3002, 3003
Внесение изменений в прошивку
Для внесения серьезных изменений в прошивку штудируем документацию OpenWRT
Загрузка своих страниц для управления роботом
Текущие страницы доступны для сливания через админку робота. Для заливки новых страниц я использую команду:
pscp.exe -r -pw 123 -scp www/* root@192.168.0.1:/www
pscp входит в комплект программ Putty.
Не заливайте файлы из каталогов /cgi-bin/* На них скорее всего слетят unix-права и прошивка перестанет работать.
Нерешенные проблемы
- Задержка видео. При использовании 160*120 30 fps она минимальная, но есть.
- Нет удобного способа менять пароль, только через SSH консоль (команда passwd).
- Защита. Робота с такой прошивкой надо держать на защищенном протоколе. Сейчас видео идет по http порт 8080 вообще открыто, web-face и управление - либо http либо https, либо с паролем, либо без. Самый правильный способ - https+пароль. Но https в данной конфигурации жутко тормозит.
- Скрипты Webface написаны на awk и ash, их неудобно поддерживать, Следует мигрировать на Lua
- Webface содержит явную недоделку - когда заходишь на страничку настройки, то она показывает не текущие значения из конфигов роутера, а ее собственные дефолты
Other warnings
- Don't disable both HTTP and HTTPS at the same time. In this case router configuring will be available only through SSH.
- Don't forget about security risks. Remember, that somebody may spy on you through webcam, and mobile robot can damage something or even cause injuries.
Downloads
Файл:Or-wifi-dir320-0.54.tar.gz
What inside?
- Ready-to-use firmware in .trx-format.
- Kernel and addons for standard ImageBuilder from OpenWRT backfire 10.03.01-RC6, used to build firmware.
- make.sh file, used to build and pack firmware.