Оживить роутер TP link tl mr3020 с помощью arduino mega2560
- Войдите на сайт для отправки комментариев
Всем доброго времени суток!
Вообщем вот в чем ситуация прошивал роутер на прошивку OpenWRT через веб интерфейс после перепрошивки роутер перестал работать(загружаться) доступа к веб интерфейсу нету на роутере горит только индикатор питания! Читал гугл нашел статью где говорится что с помощью arduino и uart портом роутера можно перешить роутер. Так вот я пытался сконфигурировать скетч arduino так что бы я мог на uart посылать запросы типа "tpl" но у меня ничего не получилось! но у меня получилось сконфигурировать скетч arduino так что я могу видеть процесс загрузки роутера (проверка памяти подключение загрузчика и т.п) после того как я увидел что загрузчик роутера жив и пытается загрузится камень с сердца упал и появилась надежда! Подскажите пожалуйста как сконфигурировать скетч чтобы получилось удачно прошить роутер
P.S процесс прошивки мне известен
вот код чтения загрузки роутера:
String inputString = ""; boolean stringComplete = false; void setup() { Serial.begin(115200); inputString.reserve(200); } void loop() { if (stringComplete) { Serial.println(inputString); inputString = ""; stringComplete = false; } } void serialEvent() { while (Serial.available()) { char inChar = (char)Serial.read(); inputString += inChar; if (inChar == '\n') { stringComplete = true; } } }
Заранее спасибо!
Неужели ни кто не поможет?
Извини, я не спец. Тем более по меге, но давай попробуем разобраться.
Что ты делаешь сейчас, судя по коду, читаешь из Serial порта, и прочитанное посылаешь туда же . Все что ты туда посылаешь, отслеживаешь монитором IDE.
Для прошивки тебе нужно просто писать и считывать данные из порта. У тебя не получится сделать это используя один порт для связи КОМП-АРДУИНО и АРДУИНО-РОУТЕР (ты будешь считывать данные посылаемые роутером, и отправлять их обратно что бы передать компу, но их же получит и роутер, хотя ждет совсем других данных). Хотя может я и не прав.
Но у меги три таких порта, следовательно можно развести, подключив мегу на Serial2.
А в скетче использовать что то типа Serial2.write=Serial1.read(), и соответственно на оборот Serial1.write=Serial2.read(), то есть все что пришло со второго порта посылаем в первый, все что пришло с первого посылаем во второй.
После чего, Ардуина станет простым переходником USB-UART. Далее уже качаем прошивку и прошиваем https://docs.google.com/file/d/0B8RHAmW4AacRYzZjMjZkMGUtZjFiNi00MTRhLTgyN2YtMDM1YjRjNjJlN2Y4/edit?hl=en&pli=1
Может я конечно не прав, тогда пусть гуру поправят, но я рыл бы именно в эту сторону.
А может всетаки легче найти переходник?
А при чём здесь Arduino? Соедините порт mr3020 через переходник TTL Serial-USB и работайте через терминальную программу.
Я сделал как здесь написано http://wiki.openwrt.org/ru/toh/tp-link/tl-mr3020 и никаких проблем.
У вас ядро грузится, какие сообщения выдаёт?
В том то и дело что перехлдника у меня такого нет а ардуино можно использовать как переходник только все запутаннее
вот лог порта:
Извини, я не спец. Тем более по меге, но давай попробуем разобраться.
Что ты делаешь сейчас, судя по коду, читаешь из Serial порта, и прочитанное посылаешь туда же . Все что ты туда посылаешь, отслеживаешь монитором IDE.
Для прошивки тебе нужно просто писать и считывать данные из порта. У тебя не получится сделать это используя один порт для связи КОМП-АРДУИНО и АРДУИНО-РОУТЕР (ты будешь считывать данные посылаемые роутером, и отправлять их обратно что бы передать компу, но их же получит и роутер, хотя ждет совсем других данных). Хотя может я и не прав.
Но у меги три таких порта, следовательно можно развести, подключив мегу на Serial2.
А в скетче использовать что то типа Serial2.write=Serial1.read(), и соответственно на оборот Serial1.write=Serial2.read(), то есть все что пришло со второго порта посылаем в первый, все что пришло с первого посылаем во второй.
После чего, Ардуина станет простым переходником USB-UART. Далее уже качаем прошивку и прошиваем https://docs.google.com/file/d/0B8RHAmW4AacRYzZjMjZkMGUtZjFiNi00MTRhLTgyN2YtMDM1YjRjNjJlN2Y4/edit?hl=en&pli=1
Может я конечно не прав, тогда пусть гуру поправят, но я рыл бы именно в эту сторону.
А может всетаки легче найти переходник?
Спасибо я примерно понял в какую сторонну нужно идти!
понимаете я живу в Томске и тут проблемно найти такой переходник!
Купите USB переходник от сотового телефона, там зачастую стоит PL2303. Их как грязи.
Ядро похоже грузится, надо подключаться через Serial порт терминальной программой.
Но прошивка другая , вот что у меня выдаёт:
Я буквально на днях проделывал тоже самое, скетч заливал наипростейший
Потом просто подключал
aduino -> router uart
землю к земле
tx -> rx
rx - >tx
и через putty прошивал :) надеюсь поможет ...
Всем спасибо с проблеммой справился!
Для Arduino Mega 2560 использовал следующий скетч:
подключение UART роутера (слева) к меге (справа):
VCC - 3.3V
GND - GND
RX - TX1 (18 пин)
TX - RX1 (19 пин)
дальше по следующей инструкции с 4 пункта:
http://forum.tp-linkru.ru/viewtopic.php?p=13086#p13086