Небольшой отчет о граблях с установкой OR-WRT на NP-LINK TL MR3020 в моем личном случае.
Прочитав статью о роутере вот тут:
http://robocraft.ru/blog/electronics/1053.html я решил повторить путь автора, сделать свой вариант WiFi-бота по мотивам вот этой вот машинки:
https://geektimes.ru/post/255590/ Только идея не просто в "радиоуправляемой машинке с камерой", а говоря языком еще советской академической робототехники - сделать робота с "супервизорным управлением". Т.е. машина должна быть автоматической с постоянно действующей "системой безопасности вождения разрешительного типа". Система датчиков безопасности должна предупреждать столкновение машины с преградой, падение в ямы и прочие коллизии обеспечивая безопасное движение даже без постоянного внешнего управления. И не позволяющая намеренно загнать машину в яму или лужу, учитывая работу на улице и использование WiFi как среды передачи телекодовой информации.
Начал я с покупки двух роутеров MR3020 которые оказались прошиты OpenWRT. И начались грабли.
При перепрошивке через Web-интерфейс уже установленной прошивки OR-WRT встала криво. Просто перемешались файлы разных прошивок и система стала работать некорректно.
Вместо 192.168.217.1 Веб-морда оказалась на 192.168.1.1, пароли тоже стали непонятно какие, по Телнету не войти и по SSH. Плюс еще старый добрый никак не освещенный на Вики проекта косяк с нерабочими Веб-мордами 0.70-0.76 прошивки, которые показывают "погоду в Гондурасе" и просто Веб-страницы не до конца загружались.
Потом первый из двух роутеров я стал перешивать подцепившись к консоли кривой прошивки через встроенный UART действуя по материалам статьи вот отсюда:
http://portax.com.ua/forum/viewtopic.php?f=34&t=390 Кривая прошивка выводила информацию в консоль встроенного порта и реагировала на tpl.
В этой статье во первых на фото перепутаны пины Rx Tx местами на подписи. Мелочь а неприятно. Так что когда до меня доехал шнурок USB-UART пришлось еще разбираться что да как.
Во вторых действуя по инструкции из статьи по восстановлению прошивки я вовсе "окирпичил" роутер. Ибо загрузившаяся прошивка просто затерла ВООТ и роутер вовсе перестал грузится. Пришлось искать человека с программатором который во первых скопировал с еще живого роутера на мертвый кривую прошивку, во вторых поменял пароли все внутри прошивок на один и тот-же.
Только после этого удалось загрузиться телнетом после нажатия кнопки на роутере, поменять пароль рута, потом через SSH и pscp залить бинарник прошивки в /tmp и перешить нормально на OR-WRT 0.76 командой из консоли.
Прошивка зашилась, Веб-морда переползла на правильный адрес 192.168.217.1, я сменил пароль в телнете как положено но к моему удивлению страницы админки все еще показывали "погоду в Гондурасе". И только потом когда я нашел прошивку 0.77 о которой на Вики ни слова, что крайне забавно, и снова перепрошил систему - оно наконец-то заработало.
И то, пришлось после править serial.cgi в vi чтобы перенаправить вывод команд на ttyATH0. Хотя это должно было быть сделано изначально "из коробки", поскольку UART набортный доступен изначально а переходники USB-UART в моем конкретно захолустье еще заказывать через Интернет надо.
Кстати простейший способ согласовать роутерный UART 3.3 V с 5V Arduino - более чем простой. 3.3 В TxD спокойно переключает 5В вход Ардуино, тут ничего делать не надо, кроме резистора между Tx роутера и +3.3 В на 10 ком подтягивающего, иначе в терминале будет мусор нечитаемый. А между входом RxD роутера и выходом TxD 5V надо включить резистор токоограничивающий на 330 Ом. Тогда встроенные в микросхему защитные диоды погасят 5В уровень лог 1 UART до уровня рабочего чипа 3,3 В. А если резистора не будет - порт может сгореть рано или поздно.
И еще есть очень полезная фишка для МР3020 - можно подключить внешнюю WiFi антенну. Я подключил внешний штырь на 5 дВ обычный, TL-ANT2405C согласно вот этой теме:
http://antex-e.ru/forum/7/543/ Даже с такой антенной дальность выросла почти в 2 раза и покрывает весь мой огород. Можно будет попробовать и более мощную антенну или направленный волновой канал от 2.4 ГГц видеонаблюдения. Но там надо уже городить систему наведения антенны...
Резюмирую - допинал роутеры я только потому что достаточно упорный человек и уже лет 10 пользуюсь linux. Обычный человек давно бы плюнул и забросил затею или перешел на другую платформу аппаратно-программную не такую глючную и лучше документированную, например Arduino Yin или Rapsberry Pi.
Надеюсь Вики проекта будет дополнена, чтобы люди не повторяли мой танец по граблям снова.