Руководство по доведению «до кондиции» клона популярного китайского мини-роутера Hame A15, он же «unbranded A5-V11»

    Если я видел дальше других, то потому, что стоял на плечах гигантов.
    И.Ньютон


    Думаю многим известен маленький китайский роутер Hame A15 (он, а точнее массовые его копии, с улучшенными по сравнению с оригиналом ТТХ, одинаково хорошо гуглятся по ключевым словам 3g/4g router как на ebay, так и на aliexpress). Сегодня я хотел расказать, как я довел до ума роутер за 6,5$ и потратил на это 20$. Зачем? А примерно за тем же, зачем из бисера плетут браслетики — чтобы микромоторику потренировать и зрение подсадить (корпуса компонентов в основном 0402 :) Большей частью ради спортивного интереса, хотя немаловажно и то, что роутерчик этот, на сегодняшний день — моя любимая база для различных проектов (даже несмотря на сложность доступа к GPIO), вместо «народных» NEXX WT3020F, TP-Link TL-MR3020, TP-Link TL-WR703N и иже с ними. Причиной тому в первую очередь является его размер и форма печатной платы, удобная для встраивания куда угодно (на фото можно оценить размеры). В дальнейшем, чтобы избежать путаницы терминологии, буду называть показанное ниже устройство так, как его называет wiki openwrtA5-V11.



    Сердцем этого устройства является SoC Ralink RT5350F с частотой 360 МГц, на борту имеется полноценный USB-host, 4 МБ флеш-памяти и 32 МБ оперативной памяти SDRAM с частотой 166 MHz (это кстати странно, потому что даже древний D-link DIR-320 на борту имел более шуструю DDR). Некоторые клоны клона имеют 16 МБ памяти и не пригодны без наращивания RAM для описанных в статье манипуляций.


    Как водится, на картинке ниже показан оригинальный роутер Hame A15.


    Оригинал Hame A15
    image

    А вот так выглядит его улучшенная китайская копия (в конце статьи можно увидеть еще одну копию копии, но в 10 раз дороже :).


    Китайский клон Hame A15
    image

    Внутренности прошивки уже на хабре освещались, поэтому останавливаться на особенностях разметки не буду. Подробно проблемы и решения описываются и на 4pda. Информации много, но она разбросана невероятно. Надеюсь в этой статье собрать ключевые моменты, опираясь на опыт ребят-"гигантов роутероводства" :)
    Ответ на вопрос "а зачем это (роутер) нужно неискушенному пользователю" процитирую пользователя ded1971:


    Общепотребительские свойства — универсальный компактный 3G-WiFi-роутер. Удобно брать в поездки, подключать 3G/4G- модем, организовывать свою WiFi-сеть, либо использовать в качестве репитера для усиления WiFi, подключать интернет в смарт-телевизоре, если нет встроенного WiFi. В общем, куча полезных функций за смешные деньги.

    Ну и сравнение с вездесущей и всенародно любимой ES8266

    Часть первая, подготовительная


    Пока роутер шел почтой, было время изучить отзывы счастливых владельцев. Основные проблемы, с которыми столкнулось большинство — это проблемы перегрева роутера (и соответственно «отвала чипа») и нестабильность питания, когда роутер не может долгое время запуститься («индикатор» — тускло светятся два светодиода, с устройством невозможно соединиться по Ethernet).
    Для борьбы с первой проблемой было решено установить радиатор на чип. Для этого я заказал маленькие алюминиевые радиаторы размеров12х12х3 мм (аккурат под размер чипа). Высота в 3 мм выбрана потому, что хотелось чтобы выступающий радиатор не цеплялся за предметы (в сумке, например) и роутер устойчиво мог лежать на столе.


    Вот так выглядят россыпи радиаторов...

    Для крепления радиатора я решил использовать термоклей. Из доступных в наших краях — был только «одноразовый» Алсил-5, который несмотря на достаточно неплохую теплопроводность совершенно не подразумевает длительного хранения. Засыхает за пару дней (а если повезет, так можно купить уже засохший). Поэтому на том же самом aliexpress были заказаны две разновидности термоклея для радиаторов мощных светодиодов — Halnziye HY910 и Hcbonyx HC-910.


    Китайские ядреные термоклея

    Отзывы о них на специализированныз форумах неплохие, хотя специалисты все-таки для серьезных задач рекомендуют использовать двухкомпонентные эпоксидные термоклея, вроде Thermopox 85CT. Но его еще пойди найди…
    На всякий случай ниже приведу сравнительные характеристики теплопроводностей используемых мной термоклеев, найденные в Интернете.


    Термоклей Halnziye HY910 — теплопроводность 0.975W/m-K
    Термоклей Алсил-5 — теплопроводность 1,4-1,6W/m-K
    Термоклей hcbonyx HC-910 — теплопроводность 1.7W/m-K

    И общее фото :)

    Для того, чтобы установить радиатор, пришлось резать корпус (в том числе и для улучшения теплообмена). Чтобы сделать все максимально аккуратно, я первым делом перечертил на плотную бумагу габариты платы, вырезал отверстие под чип, а потом этот картонный шаблон уложил в корпус. Далее все просто — отчерчиваем карандашом контуры отверстия, режем канцелярским ножом и подшлифовываем надфилем.



    Разметка и обрезка пластикового корпуса под радиатор 12х12



    Параллельно с установкой радиатора необходимо припаять на роутер недостающий керамический SMD конденсатор 10 мкф 6.3 В в схеме преобразователя на 3.3В. (по совету пользователя return1). Место установки показано на картинке:



    А вот так выглядит плата с уже установленным конденсатором 10 мкф 6.3 в

    По отзывам, ток потребления устройства снижается и становится более стабильным. Предположительно, в преобразователе 3.3В на выходе проявляются пульсации которые выводят процессор из строя. Конденсатор эти пульсации сглаживает.


    Важно! Постарайтесь установку радиатора и напайку конденсатора произвести ДО запуска и эксплуатации роутера. В противном случае может оказаться, что "Боржоми пить" уже поздно...


    Проблему с питанием народ решает установкой вместо штатной RC-цепочки роутера специализированных микросхем мониторов питания, например КР1171СП28, DS1816 или MAX809TTR. Мне сразу понравился вариант с использованием супервизоров питания фирмы Maxim. Две основные задачи, которые позволяют решать супервизоры — это удержание контроллера в состоянии сброса до тех пор, пока напряжение питания не достигнет заданного значения и не стабилизируется, либо сброс контроллера при снижении напряжения питания ниже критического уровня или при внезапном провале напряжения. Также из плюсов данного типа супервизоров, можно отметить то, что для установки микросхемы не требуются дополнительные компоненты, и по размерам этот полупроводниковый приборчик ложится на места снятых элементов (да-да, предварительно нужно удалить ненужные уже резисторы и конденсаторы, а потом еще и пройтись оплеткой по контактным площадкам).



    Поиск на aliexpress ничего не дал, зато дал поиск по каталогу ЧИПиДИП, где обнаружились формирователи импульса (сброса) MAX809TEUR+T (с напряжением 3.08 вольт), один из которых и был успешно припаян в роутер.



    Установка формирователя импульса (сброса) MAX809TEUR+T



    Кстати, не могу не упомянуть китайский USB-паяльник, без которого я бы эту процедуру никогда не провернул (даже с хваленой микроволной...).
    Чтобы не гонять впустую паяльник, одновременно я решил припаять к контактным площадкам консоли UART (пятачки) контактную колодку для упрощения подключения dupont-овскими проводками от Arduino-конструкторов. Идеально совпали пины колодки с шагом контактов 2 мм (стандартные широкораспространенные 2,54 мм — уже широковаты). Вот такие, например. Чтобы было удобнее припаивать, я с помощью пинцета загнул кончики контактов буквой Г и залудил пятачки на плате роутера.


    Подготовка UART-консоли

    Потом достаточно было установить колодку на пятачки и слегка прогреть место стыка до расплавления припоя. Важно не переборщить (что легко сделать с мощным паяльником), иначе пятачки могут просто поотваливаться от перегрева. На этот случай на картинке показано резервные test-point, куда можно подпаяться.



    Кстати, можно контакты и другим методом припаять, но корпус уже просто так не закрыть.


    Альтернативный вариант припаивания контактов UART

    На этом подготовительная часть закончилась и началась основная.


    Часть вторая, «программаторная»


    Как я упоминал в начале статьи, в роутере мало памяти, всего 4 МБ. Мне конечно может кто-то вспомнить и про то, что «640 КБ должно хватить всем». Но провозившись неделю за попытками впихнуть в самостоятельно собираемую openwrt для D-Link DIR-320 все необходимые пакеты (а там ведь 8 МБ (!) ), я теперь точно знаю, что на памяти экономить не стоит. Поэтому было решено менять flash на более емкую и при этом обладающую разумной стоимостью (чтоб не дороже самого роутера). Для замены необходимы чипы с эффективной частотой ( SPI Clock rate) не ниже 100 МГц и напряжением питания 3.3 В. Из производителей — Winbond или любой другой (En=Eon, Mx=Macronix, Pm=PMC, At=Atmel). Из того, что советует openwrt.org — это W25Q128BV, MX25L128(35F), S25FL128P, S25FL129P, GD25Q128C, GD25Q128CSIG. Цифра 128 в маркировке говорит нам о том, что объем флешки 16 МБ (128Mbit=16Mб). Выбор именного такого размера обусловлен тем, что с таким объемом может без танцев с бубном работать дешевый китайский программатор 24/25-х микросхем памяти CH341A (о нем ниже). Для любителей скажу, что можно впаять и 32 МБ (например, W25Q256FV, MX25L25635F, N25Q256A, MX25L25645GM2I-10G и даже 64 МБ (MX25L51245G, MT25QL512AB). Правда хотелось бы отметить, что для 64 МБ модулей ценники на память уже далеко не гуманные. Отмечу, что разговор о микросхемах памяти ТОЛЬКО в корпусе SOP8, как самом удобном для пайки. Можно конечно брать и микросхемы в корпусах WSON8 с контактными площадками вместо ног, но пайка слишком трудоемка, а результат может и не оправдать ожидания.
    Прошить микросхему памяти можно несколькими различными способами, в зависимости от того, что имеется в наличии:
    а) Имеется диод/конденсатор и параллельный порт (самый простой программатор) — смотрим инструкцию по прошивке на чешском сайте или по-русски.


    Так этот простейший программатор из LPT-разъема и пары деталей выглядит в жизни
    image

    б) Имеется любое Arduino (Pro, Micro, Nano и т. п.) — готовим из них программатор для наших SPI-флешей по следующему рецепту.
    в) Если имеется Raspberry Pi — смотрим здесь
    г) Имеется в наличии «народный» программатор USBASP (о котором когда-то писали на Хабре) — готовим его по рецепту №2.
    д) Имеется только желание и немного денег — покупаем на aliexpress китайский программатор CH341A для 24/25 SPI флеш и спокойно начинаем работать.


    Сама флешка подсоединяется к программатору (-ам) следующим образом:


    Цоколевка микросхемы памяти
    image

    Флешку можно выпаивать и подключать к колодкам/переходникам программатора, а можно к ней подпаять уже упомянутые dupont-провода от Arduino, а уже провода подключать к программатору. «Рабочими» у флеш являются контакты MISO, MOSI, CLK, CS, VCC и GND. Если программирование ведется без снятия микросхемы с платы — лучше всего на время работы отпаять и немного приподнять над плоскостью платы контакт VCC. После окончания работы — прижать ножку к плате и припаять.
    Так как желания искать порт LPT у меня не было, я решил действовать по последнему варианту д) и приобрести дополнительную железку в свой парк. Называется эта штука CH341A и представляет собой, как ни странно, программатор на основе чипа CH341, за авторской разработкой "широко известной" китайской мегакорпорации Jiangsu QinHeng Ltd. :)


    Принципиальная схема программатора
    image

    При заказе только программатора, настоятельно рекомендую дополнительно прикупить переходник с корпусов SOP8/SOIC8 на корпуса DIP и клипсу-прищепку для работы с микросхемами.


    Переходник и клипса


    Можно не гнаться за мизерной экономией, а купить сразу готовый набор, состоящий из программатора и всех необходимых переходников, тогда получится помимо упомянутых выше двух переходников получить еще и адаптер для программирования микросхем 1.8 В.


    Так выглядит готовый набор

    По собственному опыту скажу, что клипса-прищепка работает через раз и скорее всего микросхему придется отпаять и посадить в адаптер SOP8-DIP или даже припаять к контактным площадкам на самом программаторе.


    Дополнение: наконец-то пришел мой переходник, или как он правильно называется ZIF адаптер SOP8-DIP8 150 mil. Этот адаптер подходит для микросхем с шириной корпуса 150mil, шаг выводов 1,27мм. Помимо 150 mil может быть и 200 mil, так что важно при заказе на аукционах обращать на это внимание (у меня микросхемы и такие и таки, посему адаптера два).


    Как визуально отличить ZIF адаптер на 150 и 200 mil

    Штука невероятно удобная, микросхема зажимается легко, непринужденно и очень четко (система напоминает плоскогубцы). Для этого достаточно нажать на пружинящую верхнюю часть корпуса, положить микросхему на оголившиеся площадки и отпустить эту самую часть корпуса обратно. Подпружиненные верхние контакты при отпускании выдвигаются и микросхема автоматически зажимается (фото для наглядности, ибо микросхема 200 mil лежит в адаптере 150 mil, так что не пинать, воткнул что было под рукой). Потом устанавливаем в программатор, поглядывая где у нас нога 1 (кружочек на микросхеме). Получается так :



    Больше красивых картинок SOIC8 SOP8 на DIP8 адаптера




    Я снимал родную микросхему памяти с помощью термовоздушной паяльной станции, а тем у кого такого оборудования нет — рекомендую настоятельно пользоваться методом со сплавом Розе. После работы обязательно остатки сплава Розе оплёткой уберите с платы и микросхем, от греха подальше.
    Снятую микросхему подсоединяем к программатору (у кого как и чем получается). Мне припаивать было лень, честно пытался зажать клипсой, в итоге ножки сильно приплюснулись пружиной клипсы. Но благо припаивать назад я 4 МБ флеш не собирался, а хороший контакт должен был обеспечить беспроблемное считывание. Так оно и произошло. Nota bene для тех кто припаивает микросхему — внимательно смотрите на циферки на платах-переходниках и в соответствии с ними припаивайте. В случае клипсы — красный провод на шлейфе ключевой и приходится на ножку с номером 1.



    Схвачено и успешно от...




    Разобравшись с железом, приходится разбираться с софтом. Как я уже писал, на хабре этот программатор периодически всплывает в статьях. Откуда ясно, что работает он без проблем со всеми современными операционными системами (например, в Windows 10 драйверы подтягиваются из сети автоматически, а в Linux они имеются в ядре уже несколько лет). Но, но мало ли что случится, вот здесь можно найти драйвера (для режима Serial/Parallel) отдельными файлами на всякий случай. Для программирования в Windows чаще всего используется китайский софт авторства некоего SkyGz. Для Linux имеются открытые проекты ch341prog (SPI) и ch341eepromtool (I2C), можно использовать и "народный" flashrom. Так как я использую Windows, а отзывы о "китай-проге" у большинства пользователей не особо позитивные (особенно о новых 1.28...1.30 версиях), то чтобы судьбу не искушать, считывание микросхемы проводилось с помощь простого, надежного, русского программатора AsProgrammer версии 1.4.0. Кстати, если что-то вдруг чего-то не понравилось/не понятно, или например, нужно добавить новую микросхему — можно запросто написать в теме "техподдержки" и получить быстрый feedback.


    Почему пока НЕ стоит покупать флеш-память больше 16 МБ

    Позволю себе небольшое лирическое отступление и объясню свое нежелание устанавливать флешку размером 32 МБ (разница в цене с 16 МБ некритичная). Дело в том, что ни в китайских программах (версии 1.29 или 1.30), ни в упомянутом AsProgrammer не заявлена поддержка микросхем аля W25Q256FV, MX25L25635F, N25Q256A, MX25L25645GM2I-10G. Возможно, причина этого в том, что для SPI-флеш максимальный объем равен 128 МБит (максимум, который можно адресовать 3-байтовым режимом адресации, принятым JEDEC). И здесь вариантов не так уж и много. Можно к примеру записать с помощью модифицированной flashrom первую половину чипа w25q256 (размером в 16 МБ), как знакомый этой программе 16 МБ чип w25q128 и засунуть в этот объем правильный bootloader (Breed, например) и factory-разделы со «служебной» информацией (mac-адрес роутера, калибровка wi-fi и т. п.). А уже загрузившись в режиме бутлоадера (в случае успешного распознавания им всего объема микросхемы) — из него можно было бы прошить скомпилированную заранее прошивку. Можно вообще закупить на будущее флешек и ждать, пока поддержка таких объемов появится в ломанных версиях китайского софта к ch341a или когда допилится flashrom. Подытоживая, лучше взять 16 МБ :) ибо «устав тянуться к звездам, подними то, что валяется под ногами».


    Работа с AsProgrammer предельно проста, сначала выбираем в меню "Микросхема" свою микросхему, а затем жмем на кнопочку "Читать". Пару-тройку минут и дамп у нас в кармане :)


    Считывание дампа с заводской микросхемы 4 МБ

    Заводской фулфлеш состоит из загрузчика, пары разделов для хранения разных настроек и самой прошивки.


    Структура заводской 4МБ прошивки

    0x00000000-0x00030000: "Bootloader"
    0x00030000-0x00040000: "Config"
    0x00040000-0x00050000: "Factory"
    0x00050000-0x0011282a: "Kernel"


    Сохраненный файл дампа нужно открыть в любом HEX-редакторе (я вот привык пользоваться WinHex) и по адресу 105720 (адрес в десятичной системе, в шестнадцатеричной будет 00019CF8) меняем 40 00 на 00 01 для 16 МБ флеш (ну или на 80 00, если вдруг вы решили съэкономит десяток центов и купить микросхему объемом 8 МБ). Сохраняем модифицированную прошивку для дальнейшего использования. Кстати, адрес 105720 не является точкой какой-то привязки и там вполне могут находится другие цифры, особенно в том случае, если вы уже пытались разблокировать загрузчик для прошивки openwrt и т. п. Поэтому, если вдруг ничего не получается, и заветных «40 00» по адресу 105720 не видно, ищем в меню шестнадцатиричного редактора поиск по HEX-значениями и вбиваем туда ключевую коМБинацию байтов «00 00 16 40». Она и выведет к нужным цифрам/адресу.


    В поисках заветной комбинации 00 00 16 40

    Зачем это было нужно? А затем, чтобы модифицированный загрузчик позволил перепрошивать роутер через UART по TFTP, используя прошивки большего размера.
    Далее сохраненную прошивку заливаем в заранее купленную флешку бОльшего размера начиная с адреса 0 (с начала). В случае успешного программирования впаиваем микросхему памяти на место и переходим к следующему этапу. Кстати, программируя купленную микросхему, мне стало жалко ее зажимать клипсой и пришлось припаять на колодку :)


    Заливка прошивки

    Часть третья, openwrt-шная


    Следующий этап — сборка собственной версии openwrt. Если бы мне не были нужны некие специфичные пакеты, которые невозможно найти в существующих официальных (и «от энтузиастов») sysupgrade-прошивках, то можно было просто скачать первый попавшийся вариант прошивки для своей модели роутера и загрузить ее через УЖЕ понимающий большие микросхемы памяти модифицированный бутлоадер или же по-старинке использовать выше упомянутый программатор. Но мне нужно встроить в прошивку своего роутера несколько нехарактерных пакетов, поэтому пришлось идти более сложным путем и собирать openwrt под себя. Процедура эта довольно хорошо описана для множества моделей роутеров (например, для Tp-Link TL-WR741ND на Хабре, Tp-Link TL-MR3020, D-Link DIR320A1, тысячи их...), поэтому ограничусь кратким перечислением основных шагов (подробнее можно глянуть тут и тут).


    Если дома машины с *nix не имеется, то первым делом устанавливаем на VirtualBox Ubuntu x64 (ну или кому-что).


    Обновляем информацию об установленных пакетах
    sudo apt-get update
    Доустанавливаем необходимое. Для Ubuntu 16.04 LTS это выглядит так:
    sudo apt-get install build-essential subversion mercurial libncurses5-dev zlib1g-dev gawk gcc-multilib flex git-core gettext libssl-dev unzip


    Копируем исходники выбранной прошивки к себе на компьютер командой git clone. Под спойлером — ссылки на исходники разных версий openwrt.


    Git-репозитории проектов OpenWrt и LEDE

    18.06.1
    git clone git://github.com/openwrt/openwrt.git -b v18.06.1
    18.06.0
    git clone git://github.com/openwrt/openwrt.git -b v18.06.0
    17.01.5
    git clone git://github.com/openwrt/openwrt.git -b v17.01.5
    17.01.4
    git clone git://github.com/openwrt/openwrt.git -b v17.01.4
    17.01.3
    git clone git://github.com/openwrt/openwrt.git -b v17.01.3
    17.01.2
    git clone git://github.com/openwrt/openwrt.git -b v17.01.2
    17.01.1
    git clone git://github.com/openwrt/openwrt.git -b v17.01.1
    17.01
    git clone git://github.com/openwrt/openwrt.git -b v17.01.0
    15.05.1
    git clone git://github.com/openwrt/archive.git -b v15.05.1
    15.05
    git clone git://github.com/openwrt/archive.git -b v15.05
    14.07
    git clone git://github.com/openwrt/archive.git -b v14.07
    12.09
    git clone git://github.com/openwrt/archive.git -b v12.09


    Скачанное добро у нас развернется в директории openwrt. Переходим в нее командой cd, подкачиваем и обновляем дополнительные компоненты командой
    ./scripts/feeds update -a && ./scripts/feeds install –a
    Теперь самое время поправить "важные файлы" для того, чтобы компилятор правильно смог собрать прошивку для нашей увеличенной флешки, а не застопорился, если вдруг размер превысит положенные прописанные 4 МБ. Для этого делаем следующее. В скачанной директории с исходниками openwrt в файле target/linux/ramips/dts/A5-V11.dts заменяем на свои значения обозначенные на картинке ниже (я использовал редактор nano, можно и через F4 в mc).


    Правка файла *.dts под память увеличенного размера (для 15.05.1)

    Сохраняем файл, в консоли запускаем
    make defconfig
    и применяем стандартные параметры для профиля, затем make menuconfig. Здесь основной ключевой момент — выбор правильного профиля:


    Target System: Ralink RT288x/RT3xxx
    Subtarget: RT3x5x/RT5350 based boards
    Target Profile: A5-V11

    а дальше — по аналогии со сборкой openwrt для других роутеров (ссылки я приводил выше), модифицируем набор пакетов нужным нам образом и сохраняем конфигурацию (в файл .config). Кстати, если планируется часто изменять конфигурации, то можно каждый раз делать резервную копию командой scripts/diffconfig.sh >mydiffconfig, так мы каждый раз сохраняем свои изменения конфигурации в файл mydiffconfig. После составления нужной конфигурации (и выбора всех необходимых пакетов) запускаем сборку командой make.
    Из-за самостоятельной компиляции ядра можно столкнуться с тем, что многие пакеты из официальных репозиториев для установки не подойдут. Это следует учитывать и чаще устанавливать флаг “M” напротив нужного пакета. Потом эти пакеты можно найти в папке openwrt/bin/ramips/packages и закинуть на какой-нибудь HTTP сервер для создания своего, личного репозитория с блекджеком и... для OpenWRT :).
    Вот кстати вспомнил, что очень удобно команду make запускать в следующем виде:
    make V=99 2>&1 | tee build.log | grep -i error
    В таком случае компилятор сохраняет полную подробную копию отладочной информации о сборке в файл build.log в каталоге openwrt и показывает на экране только ошибки. Потом этот лог удобно прикреплять на форумах, чтобы найти причину ошибки или задать вопрос. Кроме того, она замечательно позволяет идентифицировать пакеты, на которых компилятор прекращает работу. Найти текст, упоминающийся в логе можно поиском по директории с помощью команды
    grep –Hr «ТЕКСТ» <путь к директории поиска> | cut –d: -f1 | sort -u
    Но искренне надеюсь, что компиляция пройдет успешно и выискивать ошибки не придется. После завершения процесса в папке bin каталога openwrt можно будет найти файлы прошивки, что-то вроде openwrt-ramips-rt305x-a5-v11-squashfs-sysupgrade.bin. Забираем этот файл и переходим к завершающей стадии.


    Часть четвертая, консольная


    После того, как прошивка собрана в недрах виртуальной машины, все что остается — закинуть ее в роутер. Мне нравится вариант с UART (не даром же я к контактным пятакам припаивал колодку). Для подключения нужен либо USB to TTL UART адаптер, либо хоть дата-кабель от старого сименса. У меня, к счастью, был такой переходник на микросхеме FT232 (подходят также микросхемы CP2102 и вездесущая CH340). Цоколевка контактных площадок показана на фото.



    Основная и резервная распиновка UART-консоли

    Подключаем контакты к адаптеру по следующей схеме:


    GND роутера → GND адаптера
    RX роутера → резистор 470 Ом-1 кОм → TX адаптера
    TX роутера → RX адаптера

    Объясню, зачем нужен резистор. У меня при включении роутера подключенного к адаптеру, он зависал и начинал греться.


    Так все это подключалось...

    При этом в терминал успевало вывалиться что-то вроде


    ϟr▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒1▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒A▒▒(0▒▒▒▒▒
    ?▒▒▒{▒F▒▒▒▒▒^▒▒B▒▒▒KӉSP@▒(Y <0▒0▒$▒@▒▒▒ ▒▒▒怘▒▒ff▒▒▒▒▒`▒▒▒▒▒▒▒▒▒▒▒x▒▒x▒▒▒▒▒x~`▒▒怘▒▒▒▒▒x▒▒f▒▒▒▒▒f▒▒`ff▒▒▒▒▒▒▒▒▒fx▒▒▒f~f▒f▒▒`fxf▒▒▒▒`fx▒▒~▒x▒f▒▒f~f▒`▒f▒fx▒~▒f▒xf▒~▒▒fx▒▒x▒▒▒xx▒▒▒▒xx▒▒▒▒x▒▒▒xf▒▒`x▒▒▒▒▒▒fxf▒x▒▒`▒▒▒f▒▒f▒▒f▒fxx▒x▒枘▒x▒f▒▒

    Резистор (можно подключать любой, в диапазоне от 470 Ом до 1 кОм) все исправил. А вот здесь, например, автор вообще советует использовать для подключения к UART для развязки использовать микросхему-изолятор цифровых сигналов AduM1201. Но мне хватило и резистора, чего и вам желаю.


    UART и AduM1201
    image

    Принимаем сигнал от роутера с помощью программы-терминала на ПК. Как-то с народным любимцем Putty у меня не сложилось, и я использую отличную программу Terminal. Выбираем нужный виртуальный COM-порт (на котором сидит наш USB-UART), выставляем параметры:


    Speed: 57600
    Data Bits: 8
    Parity: None
    Stop Bits: 1

    И жмем Connect. Теперь при подаче питания на роутер мы будем видеть в консоли логи загрузчика:


    Логи загрузчика A5-V11 as is

    U-Boot 1.1.3 (Apr 11 2013 — 00:10:51)
    Board: Ralink APSoC DRAM: 32 MB
    relocate_code Pointer at: 81fb4000
    spi_wait_nsec: 42
    spi device id: ef 40 18 0 0 (40180000)
    Warning: un-recognized chip ID, please update bootloader!
    raspi_read: from:30000 len:1000
    .*** Warning — bad CRC, using default environment
    ============================================
    Ralink UBoot Version: 3.6.0.0




    ASIC 5350_MP (Port5<->None)
    DRAM_CONF_FROM: Boot-Strapping
    DRAM_TYPE: SDRAM
    DRAM_SIZE: 256 Mbits
    DRAM_WIDTH: 16 bits
    DRAM_TOTAL_WIDTH: 16 bits
    TOTAL_MEMORY_SIZE: 32 MBytes
    Flash component: SPI Flash
    Date:Apr 11 2013 Time:00:10:51
    ============================================
    icache: sets:256, ways:4, linesz:32 ,total:32768
    dcache: sets:128, ways:4, linesz:32 ,total:16384


    The CPU freq = 360 MHZ

    estimate memory size =32 Mbytes
    Please choose the operation:
    1: Load system code to SDRAM via TFTP.
    2: Load system code then write to Flash via TFTP.
    3: Boot system code via Flash (default).
    4: Entr boot command line interface.
    7: Load Boot Loader code then write to Flash via Serial.
    9: Load Boot Loader code then write to Flash via TFTP.
    4 3 2 1
    You choosed 3
    0
    3: System Boot system code via Flash.


    Booting image at bc050000 ...


    raspi_read: from:50000 len:40
    . Image Name: MIPS OpenWrt Linux-3.7.5
    Created: 2013-04-11 14:41:22 UTC
    Image Type: MIPS Linux Kernel Image (lzma compressed)
    Data Size: 915849 Bytes = 894.4 kB
    Load Address: 80000000
    Entry Point: 80000000
    raspi_read: from:50040 len:df989
    … Verifying Checksum… OK
    Uncompressing Kernel Image… OK
    No initrd


    Transferring control to Linux (at address 80000000) ...


    Giving linux memsize in MB, 32


    Starting kernel…
    [ 0.000000] Linux version 3.7.5 (lich@lich-pc) (gcc version 4.6.4 20121210 (prerelease) (Linaro GCC 4.6-2012.12) ) #2 Thu Apr 11 22:41:02 CST 2013
    [ 0.000000] bootconsole [early0] enabled
    [ 0.000000] CPU revision is: 0001964c (MIPS 24KEc)
    [ 0.000000] Ralink RT5350 id:1 rev:3 running at 360.00 MHz
    [ 0.000000] Determined physical RAM map:
    [ 0.000000] memory: 02000000 @ 00000000 (usable)
    [ 0.000000] User-defined physical RAM map:
    [ 0.000000] memory: 02000000 @ 00000000 (usable)
    [ 0.000000] Initrd not found or empty — disabling initrd
    [ 0.000000] Zone ranges:
    [ 0.000000] Normal [mem 0x00000000-0x01ffffff]
    [ 0.000000] Movable zone start for each node
    [ 0.000000] Early memory node ranges
    [ 0.000000] node 0: [mem 0x00000000-0x01ffffff]
    [ 0.000000] Primary instruction cache 32kB, VIPT, 4-way, linesize 32 bytes.
    [ 0.000000] Primary data cache 16kB, 4-way, VIPT, no aliases, linesize 32 bytes
    [ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 8128
    [ 0.000000] Kernel command line: board=MPR-A1 console=ttyS1,57600 mtdparts=spi0.0:192k(u-boot)ro,64k(u-boot-env)ro,64k(factory)ro,896k(kernel),2880k(rootfs),3776k@0x50000(firmware) rootfstype=squashfs,jffs2 mem=32M
    [ 0.000000] PID hash table entries: 128 (order: -3, 512 bytes)
    [ 0.000000] Dentry cache hash table entries: 4096 (order: 2, 16384 bytes)
    [ 0.000000] Inode-cache hash table entries: 2048 (order: 1, 8192 bytes)
    [ 0.000000] __ex_table already sorted, skipping sort
    [ 0.000000] Writing ErrCtl register=00023ff6
    [ 0.000000] Readback ErrCtl register=00023ff6
    [ 0.000000] Memory: 29632k/32768k available (1969k kernel code, 3136k reserved, 473k data, 180k init, 0k highmem)
    [ 0.000000] SLUB: Genslabs=9, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
    [ 0.000000] NR_IRQS:48
    [ 0.000000] console [ttyS1] enabled, bootconsole disabled
    [ 0.000000] console [ttyS1] enabled, bootconsole disabled
    [ 0.010000] Calibrating delay loop… 239.61 BogoMIPS (lpj=1198080)
    [ 0.080000] pid_max: default: 32768 minimum: 301
    [ 0.080000] Mount-cache hash table entries: 512
    [ 0.090000] NET: Registered protocol family 16
    [ 0.100000] MIPS: machine is HAME MPR-A1
    [ 0.130000] bio: create slab <bio-0> at 0
    [ 0.140000] Switching to clocksource MIPS
    [ 0.150000] NET: Registered protocol family 2
    [ 0.160000] TCP established hash table entries: 1024 (order: 1, 8192 bytes)
    [ 0.180000] TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
    [ 0.190000] TCP: Hash tables configured (established 1024 bind 1024)
    [ 0.200000] TCP: reno registered
    [ 0.210000] UDP hash table entries: 256 (order: 0, 4096 bytes)
    [ 0.220000] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
    [ 0.230000] NET: Registered protocol family 1
    [ 0.280000] squashfs: version 4.0 (2009/01/31) Phillip Lougher
    [ 0.290000] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) © 2001-2006 Red Hat, Inc.
    [ 0.320000] msgmni has been set to 57
    [ 0.320000] io scheduler noop registered
    [ 0.330000] io scheduler deadline registered (default)
    [ 0.340000] Serial: 8250/16550 driver, 2 ports, IRQ sharing disabled
    [ 0.360000] serial8250: ttyS0 at MMIO 0x10000500 (irq = 13) is a 16550A
    [ 0.370000] serial8250: ttyS1 at MMIO 0x10000c00 (irq = 20) is a 16550A
    [ 0.390000] ramips-spi ramips-spi.0: master is unqueued, this is deprecated
    [ 0.410000] m25p80 spi0.0: found w25q128, expected pm25lq032
    [ 0.420000] m25p80 spi0.0: w25q128 (16384 Kbytes)
    [ 0.430000] 6 cmdlinepart partitions found on MTD device spi0.0
    [ 0.440000] Creating 6 MTD partitions on "spi0.0":
    [ 0.450000] 0x000000000000-0x000000030000: "u-boot"
    [ 0.460000] 0x000000030000-0x000000040000: "u-boot-env"
    [ 0.480000] 0x000000040000-0x000000050000: "factory"
    [ 0.490000] 0x000000050000-0x000000130000: "kernel"
    [ 0.500000] 0x000000130000-0x000000400000: "rootfs"
    [ 0.520000] mtd: partition "rootfs" set to be root filesystem
    [ 0.530000] mtd: partition "rootfs_data" created automatically, ofs=380000, len=80000
    [ 0.550000] 0x000000380000-0x000000400000: "rootfs_data"
    [ 0.560000] 0x000000050000-0x000000400000: "firmware"
    [ 0.580000] ramips-wdt ramips-wdt: timeout value must be 0 < timeout <= 35, using 35
    [ 0.600000] TCP: cubic registered
    [ 0.610000] NET: Registered protocol family 17
    [ 0.620000] 8021q: 802.1Q VLAN Support v1.8
    [ 0.650000] VFS: Mounted root (squashfs filesystem) readonly on device 31:4.
    [ 0.660000] Freeing unused kernel memory: 180k freed
    [ 5.100000] input: gpio-keys-polled as /devices/platform/gpio-keys-polled/input/input0
    [ 5.210000] Button Hotplug driver version 0.4.1


    • preinit — Press the [f] key and hit [enter] to enter failsafe mode

    Читая и просматривая логи важно не упустить момент и когда будет такая вот строка:


    Please choose the operation:
    1: Load system code to SDRAM via TFTP.
    2: Load system code then write to Flash via TFTP.
    3: Boot system code via Flash (default).
    4: Entr boot command line interface.
    7: Load Boot Loader code then write to Flash via Serial.
    9: Load Boot Loader code then write to Flash via TFTP.

    Нужно быстренько успеть нажать цифру "2". Тогда увидим следующее :


    You choosed 2
    2: System Load Linux Kernel then write to Flash via TFTP.
    Warning!!! Erase Linux in Flash then burn new one. Are you sure?(Y/N)
    Please Input new ones /or Ctrl-C to discard
    Input device IP (10.10.10.123) ==:10.10.10.123
    Input server IP (10.10.10.3) ==:10.10.10.3
    Input Linux Kernel filename () ==: openwrt-ramips-rt305x-a5-v11-squashfs-sysupgrade.bin

    Нажимаем последовательно "Y", ввод, ввод, "openwrt-ramips-rt305x-a5-v11-squashfs-sysupgrade.bin". В последнем случае нужно будет вручную прописать название нашей прошивки, которую нужно будет закинуть на предварительно запущенный tftp сервер. Я для этой цели использовал программу TFTPD64. После активации консольной загрузки прошивки нужно соединить наш A5-V11 c компьютером, у которого IP адрес совпадает с указанным в консоли. Кстати для подключения напрямую (аля "usb-флешка") я наделал себе переходничков RJ45-RJ45. Их очень удобно носить вместе с роутером.



    Переходники RJ45-RJ45 и их схема

    Роутер прошьется и после перезагрузки будет готов к выполнению новых боевых задач. Кстати, если с консолью прошить не удалось — возвращаемся к "программатороной" части статьи и зашиваем прошивку openwrt-ramips-rt305x-a5-v11-squashfs-sysupgrade.bin через старый добрый AsProgrammer, но уже не с адреса 0, а с 327680 (!).


    Дополнение: можно не ковыряться с поиском байт и модификацией родной прошивки, а залить программатором в новую микросхему китайский загрузчик Breed от товарища Hackpascal, для нашего V5 последний найденный вариант — breed-rt5350-hame-a5-r1163.bin. А уже из этого лучшего (имхо) на сегодняшний день загрузчика прошивать все что нужно. Там еще много всяких вкусностей, достойных отдельной статьи, НО, но блин прошивка абсолютно без локализаций, на голом китайском языке. Вроде как технические термины понятны… Но "осадочек остался". Китаец в принципе не идет на контакт :(


    Часть пятая, информационная («на заметку»)


    В конце повествования хотелось бы сказать пару слов о приспособлениях которые использование A5-V11 нашего делают более комфортным.
    В первую очередь это U-образный переходник на USB порт. Незаменимое устройство, при совместном использовании роутера с USB-флешкой/карт-ридером/3g-4g модемом/SDR тюнером наконец :)



    Так переходнички выглядят вживую



    Второй важной "вехой" при работе с описываемы мини-роутером является USB-хаб. Да с очень непростой компоновкой USB-портов. Вертикальная компоновка этого пассивного хаба так и подталкивает к покупке Bluetooth "грибка" на каком-нибудь CSR8510. Мне еще с детства нравится концепция промышленных ПК от Octagon — MicroPC — и их вертикальные PC/104 «бутерброды». С упомянутым хабом есть возможность сделать что-то подобное (кстати, если кто-то из читателей нашел на просторах интернет-аукционов что-то подобное интересное — прошу поделиться в комментариях).



    На борту у микрохаба чип GL8506 от Genesys Logic Inc.



    В принципе, вместо вертикального USB-порта вполне можно поместить описанный выше небольшой USB-Bluetooth-брелок или миниатюрный карт-ридер MicroSD.



    А так выглядит готовый "микророутер бутерброд" :)



    Больше микро-хабра-бутербродов






    Ну и напоследок самое вкусное. Есть в мирУ такая новозеландская контора CloudStore, известная своей продукцией под брендом Airconsole. Хороши эти устройства, помимо всего прочего и тем, что единственные абсолютно легально и за разумные деньги подключить к iOS всевозможные RS232 логгеры. Очень крутая полезная штука, в том числе для автоматизации старых приборов и оборудования, управляемых посредством RS232. Упоминал об этих крутых девайсах и Хабр.
    А вот так пишут о себе они сами :)


    Если вам требуется управление удаленным оборудованием через COM/USB порты, то зачем тратить сотни или тысячи долларов на терминальные серверы Moxa*, Perle* или Opengear*? AirConsole имеет все возможности удаленного доступа и управления для серверов или сетевого обоудования, но гораздо портативнее и потребляет минимум электроэнергии.

    Так вот, теперь внимание. Ниже приведены интересные картинки. Как говорится "найдите 10 отличий" :)


    Сравнить Airconsole Mini (69$) и Hame A15 (6.9$)

    image

    Сравнить Airconsole Standart (79$) и Hame MPR-A1 (7.9$)

    image

    Сравнить Airconsole XL (139$) и Hame MPR-A3 (13.9$)

    image

    Меня это заинтриговало, и конечно же я честно попросил у производителя их устройство на тест, но ответа не дождался. Пришлось работать методом мысленного эксперимента :) Ну и читать немного. Как говорил Генри Форд "Воздух полон идей. Они постоянно стучатся к вам в голову. Вы просто должны знать что вы хотите, затем забыть это и заниматься своим делом. Идея придёт внезапно. Так было всегда".


    Поэтому в чистом итоге ответ следующий "Китайские роутеры A5-V11 можно превратить в Airconsole". Вот здесь мельком этот вопрос обсуждался и с помощью заливки дампа ребята превращают свои Hamе за 6$ в Airconsole за 69$. И правильно, не Zyxel Keenetic 4G II единым жив энтузиаст.


    Кстати, если вдруг среди читателей есть владельцы оригинальных AirConsol-ей, которые их уже вскрывали — с удовольствием приму в дар фото плат и дополню статью :)


    Ну вот, в принципе и все, что хотелось сказать. Многое из написанного здесь применимо для другого (компактного) железа и надеюсь будет полезно "широкому кругу читателей" :)



    p.s. Для владельцев упомянутых в начале статьи NEXX WT3020F, TP-Link TL-MR3020, TP-Link TL-WR703N (т.е. всех роутеров, обладающих достаточно просторным корпусом) очень удобным для встраивания вариантом может быть недорогой хаб на микросхеме HS8836 показанный ниже:



    На всякий случай, схема найденная здесь приведена под спойлером.


    Принципиальная схема 3-х портового китайского хаба на HS8836

    Основной плюс, на мой взгляд, помимо миниатюрного размера и минимума деталей — крепление платы с контроллером и USB-портами через провода. Для встраивания в роутер — минимум телодвижений, правда установить алюминиевую пластинку радиатор на чип все-таки можно.



    Дополнение от 2019 г.: дошли руки сделать охлаждение по методу walti. Подробности под спойлером



    Внешняя охлаждающая пластина

    Первым делом нашел и вырезал подходящую пластину алюминия толщиной 1 мм



    Просверлил отверстия под винты M1 и нарезал в пластине резьбу (специально ждал метчика на М1)





    Пытался дополнительно накрутить гайки M1. Цеплялись за карман, мне не понравилось, поэтому от этой идеи отказался и просто сточил выступающие концы винтов.



    К алюминиевой пластине на термоклей (упомянут в статье) приклеил медную пластинку толщиной 1,5 мм по размеру кристалла.



    Чтобы винты не коротнули платку роутера — закрыл их термостойкой полиимидной пленкой



    На медную пластинку уложил кусок теплопроводной резины (снял с какой-то ноутбучной платы) и собрал роутер.



    Теплопередача и полет — нормальные :).




    Использованные источники
    • http://skproj.ru/hame-mpr-a1-proshivka-openwrt-i-apgrejd-fleshki-na-16-ili-8-megabajt/?doing_wp_cron=1472313516.0620179176330566406250
    • http://4pda.ru/forum/index.php?showtopic=884713&
    • https://github.com/nofeletru/UsbAsp-flash/releases/
    • http://forum.easyelectronics.ru/viewtopic.php?f=17&t=10947
    • http://my-embedded.blogspot.com/2013/12/mini-4g-router-rt5350f.html
    • http://eko.one.pl/?p=openwrt-gpio2
    • https://habr.com/post/238713/
    • https://nm-projects.de/2017/09/analysis-of-mini-3g4g-wifi-wireless-router-a5-v11/
    • https://tuxotronic.org/wiki/tools/flashrom/
    • http://srr.cherkessk.ru/owrt/help-owrt.html
    • https://tuxotronic.org/wiki/openwrt/rt5350/build-firmware/
    • https://mysku.ru/blog/aliexpress/27796.html
    • https://habr.com/post/247513/
    Support the author
    Share post

    Similar posts

    Comments 73

      +2
      А можете просветить для чего всё это было надо?
        0

        использую такой как mqtt север для работы с esp. дешевле pi

          0
          Raspberry Pi Zero W в Микроцентре стоит 5$, что уже дешевле этого роутера. Обычная цена вроде бы 10$ — да, чуть дороже но зато без всего того геморроя с апгрейдами, перепайками и прочим.
            0
            Доступное в Беларуси RaPiZero — начинается от 20$ и выше. И что я буду делать с HDMI вместо WiFi, для сетевого применения очередного? Еще за 20$ докупать обвес?
            Ну и что мне категорически не нравится в Zero-отсутствие флеш. Карта памяти помрет в неподходящий момент вот и думай потом, что с этим делать, едь за 300 км ее менять (а микророутерчики часто работают в оutdoor-условиях).
            ИМХО, Zero — отличный подарок подросшему ребенку вместо Lego :) А работает пусть A5-V11
              0
              Если вам нужен WiFi — то для вас есть RPiZeroW. Он дороже, но примерно в общую цену того, во что вам обошлась ваша поделка.

              А насчёт «умершей карты памяти»… можно подумать флеш не мрёт. Это точно такой же чип, как и в карте памяти, только в другой упаковке…
                0
                Посмотрел у нас, 33$. Интересно, откуда продаваны берут такую разницу, если «в Микроцентре стоит 5$». Мда.
                Насчет флеши — так вроде двухмерная NOR (в ПЗУ) считается понадежнее трехмерной NAND (в картах памяти). А более или менее похожая по структуре SLC NAND будет стоить при одинаковом объеме еще и дороже. Или я ошибаюсь?
                  0
                  SLC NAND дешевле и надёжнее SLC NOR. Другое дело, что в копеечных картах «пятачок за пучёк» вы можете не то, что TLC… иногда и QLC можно обнаружить. Тут, конечно, о надёжности говорить не приходится.
                  –1
                  Фишка в том что малинка по умолчанию активно пишет на флешку, изнашивая её. Наверно, можно как-то сделать чтобы работала в режиме R/O но там вылазят сплошные костыли и ограничения.
                    +1
                    пишет все таки не малинка, а система.
                    разобраться что пишет (предположу логи) и настроить как надо.
                      0
                      Одними логами флешку не затрёшь, там ИМХО намного серьёзнее запись, вроде свопа. Но опять же, есть варианты систем для экономии ресурса флешки но с сильными ограничениями и неудобствами связанными с этим. Часто эти ограничения оказываются решающими.
                        0
                        хм, на роутере стоит zswap — хватает.
                        я про то что систему можно настроить чтоб она не писала всякую хрень и будет счастие
                          0
                          Конечно можно всё настроить. Только это связано с всевозможными ограничениями. Отключишь что-то, и не сможешь выполнять определённые программы или утилиты т.к. они требуют то что ты отключил и т.д.
                          Конечно роутеру хватает, а вот малинке для своих задач может не хватить или потребоваться что-то более серьёзное.
                  0
                  Ищите другие способы купить если местные "барыги" цены заламывают. Я говорил про Zero W — он с WiFi. Даже если брать простой — микро WiFi свисток из Китая с переходником выйдет пару баксов — в таможенный лимит 22 евро влезет пучок(правда не советую так зазывать — попадете на «коммерческую партию»). Карта на гигабайты будет умирать очень долго — Wear Leveling в этом нам поможет. А вот если постоянно писать на флешку маленького размера, её можно очень быстро затереть до дыр. Кроме того, у вас имеется USB флешка — а делаются они из того же, из чего делаются и карты памяти.
                  Кстати, зачем вам "микророутерчик за 300 км в оutdoor-условиях"? Что-то коммерческое? Тогда "колхоз" выглядит еще более странно…
                    0
                    Nick_Shl: ну почему сразу коммерческое, есть же разные инициативы, экологического плана, например. Да и вообще, с научными целями. «колхоз» быстро развертывается и модифицируется под свои нужды (openwrt с отличным коммьюнити) и допускает простой ремонт «человеком не в теме». Хотя, хотя есть вероятность что я просто не проникся Raspberry Pi :)
              0
              roboter: как минимум для создания беспроводного rs232 моста к старому железу (см. последнюю часть). А так — применений масса, начиная от сетей и заканчивая сельским хозяйством :)
                0

                ну тогда проще использовать esp8266, для работы с

                  0
                  Чем проще ESP? На него навешать еще кучу всего надо (хотя бы NodeMCU), а тут готовое устройство в симпатичном корпусе :). Ну и openwrt же, погибче, на мой взгляд, чем голое Lua…
                    0

                    все зависит от задач, но если работа. с gpio, то лучше все же есп, да и луа прожорлива к памяти, вот на ардуино ещё ни разу не получилось забить память, и полно библиотек, для работы.

                      0
                      в A5-V11 gpio довольно туговато распределены по плате, сверху, фактически, только два светодиода. Остальные сидят неудобно. НО! Но есть вот такая штучка USB GPIO Extender
                      image
                      0
                      чем голое Lua…

                      Эм, не устраивает LUA есть Espressif SDK/Arduino sdk с либой под ESP.
                      Я лично юзаю Arduino sdk + platformio удобно и не особо геморно.

                0

                у себя прошивал флеш после ушатанного загрузчика с помощью ардуино, и не выпаивая из роутера, с нескольких попыток все получилось. в принципе для mqtt хватает и 4х мегабайт памяти, но если нужен больший функционал, то придётся увеличивать хотя бы до 8…

                  0
                  telobezumnoe: так разница 8-16 Мб минимальная в цене. Чего экономить?
                  0
                  Госпади. Купил роутер huawei e5573 за примерно 3100 руб в магазине и никакого тебе рукоблудства.
                  Мсье воистину знает толк в извращениях
                    +1
                    ай ну не, что это за бандура такая, я лучше 8 или 9 малюток A5-V11 прикуплю за 3100 р. :)
                      +1
                      а почему он «3g/4g router», если на борту только WiFi?
                        0
                        ну типа китайский продавец подразумевает что туда можно воткнуть любой 3g/4g свисток и он заведется из коробки. Может иероглиф у них такой, который одинаково обозначает wifi-роутер и 3g-роутер. Не знаю :)
                          0
                          Так сейчас во всех интернет-магазинах, на любом роутере способном работать с usb-свистком, гордо пишут 3g/4g.
                            0
                            пишут, но бОльшая часть под такое наименование подпадает в виде упомянутого hame A15
                        0

                        По ссылке на Thermopox 85CT:


                        Клей эпоксидный, двухкомпонентный- Thermopox 85CT, проводящий тепло с очень хорошими параметрами теплопроводности (> 7W/mK)

                        Когда тут и тут


                        Min.: 1.4 – 2.2 W/mK

                        &


                        Thermal conductivity 2.2W/mK

                        Так что китайцы тоже хороши:


                        Термоклей Halnziye HY910 — теплопроводность 0.975W/m-K
                        Термоклей Алсил-5 — теплопроводность 1,4-1,6W/m-K
                        Термоклей hcbonyx HC-910 — теплопроводность 1.7W/m-K
                          0
                          Мда уж, разброс хорош. Но термопокс на практике неплохо себя показал, мой знакомые «светодиодеры» лепят на него. Я просто не нашел на рынке, заказал HC910… Потому что вездесущий Алсил-5 при неплохой (=достаточной) теплопроводности — достал…
                            0
                            На самом деле, при большом разбросе теплопроводности термопасты как таковой в реальном применении на тонких слоях термоклея разница будет небольшой.
                              0
                              Cогласен, + ко всему шероховатости чипа и радиатора есть. Полировать ради каких-то долей процента выигрыша — смысла нет.
                              0
                              Неплохо себя показал — в смысле радиатор оторвался вместе с чипом?
                              Идея клеить на BGA радиатор, выступающий за корпус — так себе. Вся нагрузка будет на пайку, рано или поздно оторвется.
                              Для дивайсов, которые носят или лапают руками — часть корпуса из металла (типа привинтить на «флешку» пластину алюминия), контакт между чипом и пластиной — через термопрокладку.
                                0
                                walti: я это понимаю, поэтому радиатор — самый низкопрофильный, он практически на 0,5 мм выступает и при этом (я надеюсь) достаточно теплообменит с окружающей средой. Плюс отверстие в корпусе вырезано впритык, чтобы исключить любые колебания радиатора. Очень тяжело будет вырвать, на мой взгляд (хотя признаюсь, усилие на отрыв не мерял — динамометра нету :( )
                                Интересный вариант был бы — половинка корпуса из металла :) Но это в случае роутера за «6 с чем-то баксов» избыточно и ударит по цене.
                                  0
                                  Его нужно вбок бить, по радиатору — именно так он обязательно упадет, ибо везение не бесконечно.

                                  Я имею ввиду, что вот на єто вот вырезанное отверстие надеть «латку» во всю поверхность из алюминия с креплением изнутри 4-мя мелковинтиками.
                                  На али это бы сразу накинуло +5 баксов и эпитеты «премиальные материалы, металл, и пр.»
                                    +1
                                    in pain(t) we trust
                                    image
                                    Сверху — пластинку алюминия с чего угодно толщиной 2-3мм с 4 (6 или 8 отверстиями)
                                    Винтиками в отверстия — изнутри.

                                    Мороки чуть больше — пластинку выпилить, слегка ее привести в подобающий вид, винтики по высоте подобрать.
                                    Зато и надежность и внешний вид.
                                      0
                                      Пластина будет «перегевать» оперативную память от процессора. Память же эту заменить (=«найти») будет гораздо сложнее, чем доступный на aliexpress SoC. Это вот меня больше всего от пластины отталкивает :)
                                        +1
                                        Не будет, пластина-то снаружи.
                                        Особые эстеты всегда могут проделать еще одну дырку в пластмассе и положить еще одну термопрокладку между пластиной и памятью.
                                          0
                                          Аааа, сверху. Тогда другое дело, я просто не понял, что «сверху» относилось к кожуху, а не самой плате. Тогда да, классный вариант, правда в расходник добавятся микро-саморезы :). Радиаторчик нужно делать из меди (хорошо забирает тепло), а пластину из алюминия (хорошо отдает). Крутая штука получится кстати. Если сверху выгравировать на алюминии что-то, так и «подарок посонам» отличный :)
                                          Спасибо за совет. Закажу-ка я себе еще A5-V11 к Новому году :)
                                            0
                                            Нельзя пластинку из меди.
                                            Посмотрите как это делается в ноутбуках — механическая связь всегда не жесткая — или подпружинено, или через мягкую термопрокладку.

                                            В современных роутерах, даже в тех, в которых ЦП жрет под н-цать Ватт, всеравно термопрокладка.
                                            Вставку между чипом и радиатором-пластинкой, во -1 запаришься подгонять, во-2 при малейшем движении теряется контакт
                                              0
                                              Нет, пластинку не как индивидуальный радиатор, а именно как дополнение. Я думал сделать вот такую штуку, как монолитное изделие. Пооксидировать потом алюминий сверху под «luxury» :)) С таким вариантом процессор будет дополнительно прижат, а терморезина (Thermal Grizzly Minus Pad 8 или Arctic Thermal Pad какой-нибудь), обеспечит допустимый ход.
                                                0
                                                Годно.
                                                Но, думаю, несколько слоев резины дадут тот же эффект.
                                                Потребление там на уровне пары-тройки Ватт.
                                                  0
                                                  Думаю, скорее всего дадут. Медь — это конечно стрельба из пушки по воробьям (но ИКР :) ). Померял сча, примерно 3 мм термопрокладки нужно. Теоретически, такие толщины должны быть в продаже.
                                                    0
                                                    Измерил штангенциркулем даже, 2.3 мм от верха чипа, до верхней поверхности корпуса.
                                                      0
                                                      3mm термопрокладки будет выше крыши.
                                                      Посмотрите фотки того же Xiaomi Mi3G, там двуядерник с гипертридингом и гиговым свичем контактирует через такую прокладку.
                                                      У асусовского RT-n13b — прокладка была вообще миллиметров 5 толщиной.
                                                      /а умер он от кривой пайки — после сняти процика штук пять пятаков не несли никаго следа припоя. Пока роутер был свежий, был простой прижим. Потом постоял, погрелся, окислился — и трупик.
                                                        0
                                                        5 мм прокладка это уже что-то такое. Все что больше 2-3 мм, я лично, как имеющий некий опыт ремонта ноутбуков человек, меняю на «пластинка меди + термопрокладка тоньше». Явно что асусы из-за экономии не ставят медь, а лепят 5 мм резины :) А в случае наших роутеров «штучной» работы экономия мизерная
                                                          0
                                                          Вставлял внутрь алюминиевые пластины толщиной 1мм с посадкой на КПТ8 на проц. Пластина почти на всю площадь платы. Сначала на плату клеил термоскотч с прорезью под SOC.
                                                          Температура выше 45 не поднималась.
                            0
                            16 Мб (128Mbit=16Mб)
                            16 МБ.
                            И повсеместно по тексту. Сокращённое обозначение байта — "Б".
                              0
                              Спасибо, исправил!
                              +2
                              Что касается сравнения «Airconsole Mini (69$) и Hame A15 (6.9$)», да ещё сравнению с MOXA…
                              Раз уж речь идёт о «автоматизации старых приборов и оборудования, управляемых посредством RS232», то надо не забывать, что RS-232 — это совсем другие уровни, а не TTL 3.3V. И преобразователь — это ещё деньги, место, работа, питание.

                              Зачем? Есть же куча готовых в том же Китае:
                              USR-TCP232-T2 (от US $ 7.02 / шт.), CH9121 (от US $10), HLK-RM04 (от $8.5; которые я покупал уже лет 10 назад), в котором уже есть Linux (и сторонние прошивки), Wi-Fi, 2 Ethernet (можно включать приборы последовательно), и для которого есть «кроватка» с разводкой всего и вся (включая RS-232)…
                              imageimage

                              Следует честно говорить, что это всё — Just For Fun, для самообразования и хобби, но это не лучшее решение, отнюдь.

                              Всё это было актуально лет 10 назад, когда как раз активно искали альтернативы первым дорогим платам, искали решения для первых дешёвых роутерах на первых SoC… Я сам этим занимался, писал загрузчики, собирал прошивки… Я понимаю, что кто-то подошёл к этому позже, но… Всерьёз советовать это сейчас…
                                0
                                Спасибо за отличный комментарий. Правда как на мой взгляд, сравнимым функционалом обладает только HLK-RM04. Но, но те же airconsole (=>A5-V11) это ведь уже готовое устройство. При этом на вашей плате больше gpio и выведены 2 ethernet, т.е. для поделок ваш вариант предпочтительнее, но требует, корпуса хотя бы требует :)

                                  +1
                                  Пожалуйста! :)
                                  Корпус, как раз, часто не нужен, если речь идёт о встраивании в готовое/строящееся устройство. Ну, и разве это проблема сейчас? Мыльницы, китайские корпуса разных размеров, 3D-принтеры…

                                  10 лет назад не было ESP (где всё же не Linux), не было многих других, платы были дорогими… А это уже было готовым и очень дешёвым (хоть на старте они и были дороже в US$, но вспомним курс...) решением. Доступность прошивок (включая OpenWRT, правда, официально только 14.07), поддержка «железа» (от GPIO до Wi-Fi) позволяет «на коленке» за пару часов сделать, к примеру, аппаратный Watch Dog для какого-нибудь компа, коммутатора или прибора, или плату для сбора информации с датчиков, работающую по проводам (а таких решений сейчас не очень много).

                                  А корпус… От корпуса роутера тоже ничего не останется, если «запилить» нормальное питание (а не ненадёжный microUSB), преобразователь в RS-232 (если нужно управлять по «настоящему» COM-порту), напаять проводочки к неразведённым GPIO…
                                    +1
                                    Меня смущает то, что достаточно серьезная компания, вроде упомянутой в статье СloudStore, использует в качестве основы для своей продукции китайские роутеры, а не упомянутые вами, к примеру, платы. В чем может быть причина?
                                    Насчет корпуса и нормального питания. Я лично для организации питания использую копеечные модули HLK-PM01 (маленький размер, разумный нагрев и устойчивость под нагрузкой). Они не сильно разбередят размеры конечного устройства. GPIO — решается через упомянутый мной выше GPIO Extender + USB-RS232 в компактном исполнении. C использованием «правильного» пассивного хаба (о котором я написал) — все остается компактным и красивым, выполняя свою функцию и главное, легко модернизируясь даже неискушенным «ремонтником» (в случае чего).
                                      0
                                      Меня смущает то, что достаточно серьезная компания, вроде упомянутой в статье СloudStore, использует в качестве основы для своей продукции китайские роутеры, а не упомянутые вами, к примеру, платы. В чем может быть причина?
                                      В том, что на этих платах «в качестве основы» делают продукцию другие фирмы?

                                      На Raspberry Pi тоже полно всего делают, но да, он дороже. Если вы производите что-то тиражами в сотни-тысячи штук — на этом можно экономить. Но два-пять-десять экземпляров? Проще время своё сэкономить…
                                        0
                                        На Raspberry Pi тоже полно всего делают, но да, он дороже. Если вы производите что-то тиражами в сотни-тысячи штук — на этом можно экономить. Но два-пять-десять экземпляров? Проще время своё сэкономить

                                        Вот теперь посыл понял. Согласен.
                                0
                                В чем прикол картинок в спойлерах, чтобы случайно не увидеть?
                                  0
                                  удобнее читать, когда текст не загроможден картинками. имхо
                                    0
                                    А можно наоборот, текст в спойлер, а картинки вытащить?
                                    Так удобнее смотреть картинки, текст не отвлекает (это шутки).

                                    Мне как читающему человеку интересно и почитать и картинки по теме посмотреть. А тут картинок не видно.
                                      0
                                      За картинку взгляд цепляется и хочется прочитать о чем речь.
                                        0
                                        Понял ваше замечание и с ним согласен. Видимо нужно по одной картинке из под спойлера поднять, оставить скрытыми только поясняющие.
                                  0
                                  Openwrt c ser2net — вот вам и готовый Airconsole. В usb втыкаем переходник usb-com плюс драйвера в зависимости от чипа: kmod-usb-serial-ch341, kmod-usb-serial-ftdi или kmod-usb-serial-pl2303 (есть еще несколько других не особо популярных)
                                  У меня например недорогой переходник USB-RS485 стоит в роутере и через него опрашивается электросчетчик Меркурий-230.
                                  Делал также роутер с тремя одновременными консолями через usb-хаб, для настройки коммутаторов, работало нормально, возможно и больше потянуло бы
                                    0
                                    Я примерно так и делаю, только драйвера закидываю в wrt все сразу (не задумываясь про чип). Да, такой вариант работает отлично и ничем не хуже той же Airconsole. Но, но удобство девайсины от новозеландцев еще и в том, что под нее есть отличный клиент под iOS (+ очень неплохой iOS SDK) и возможность создавать виртуальный «висящий в воздухе» com-порт (удаленная консоль и т.д.). Там работает т.н. serialproxy (wsproxy — проброс в web sockets, btproxy — в bluetooth, m2mproxy — terminal to terminal). Как это реализовать в openwrt — даже подумать тяжело :)
                                    0
                                    у меня такие точно роутеры тоже трудятся. Один как принтсервер вдохнул вторую жизнь в старый самсунг. Второй сейчас как mpd плеер играет онлайн радио и шары с NAS (добавил тоже флешь до 16мб ему) Считаю что под такие вещи вполне оправдано применение, ест мало, openwrt собран только с тем что мне надо, грузится быстро. Orange Pi или малина мне показалось под это дело избыточным.
                                      0
                                      Кстати да, как принтсерверы — вообще песня. Я даже пробовал «scan-cервер» делать. (на Хабре подобное тоже упоминалось).Но что-то там постоянное сбоило в сканере, так и не довел до конца дело.
                                      0
                                      Годно!
                                      И… это… показалось — ты не курсе, что клипса предназначена для программирования без выпайки ИМС с платы?
                                        0
                                        В курсе :))) Но для этой платы она не подошла (мешал конденсатор) и чтобы наказать — я воткнул туда микросхему :)
                                          0
                                          Лучший друг 24/25 памяти в корпусе SOP8 — это ==>

                                          Замечательная штука, можно как страшный сон забыть прищепки всякие и пайку :)
                                        0
                                        коли все-равно поставили убунту:
                                        1. чтобы не «таскать» прошивку на виндовый хост + стаивть виндовый tftp — можно было поднять tftp на убунте...
                                        2. minicom есть для терминала
                                        3. еще и ttyUSBXX чтобы не ставить дрова в винду...
                                          0
                                          Да, все есть, и миником и тфтпд. Но, но в виртуальной машине на рабочей станции. А «таскание» на виндовый хост (нетбук) для прошивки обусловлено, хм, личными причинами :) Так ессно, все можно сделать без каких-либо «костылей» для windows. юниксы получше заточены для подобной работы с железом, однозначно.
                                          0
                                          флешбеки из 2014
                                            0
                                            Мастер, вы правы! :) Ссылки сохранены по мере возможности и эпиграф для вас ;)
                                            0
                                            Статья прекрасна, но есть замечания:
                                            1. Автор, я просто в шоке :) имея на руках все нужное для полной хирургии, вместо того чтобы залить готовый загрузчик и новый образ kernel на программаторе — шить через tftp! Зачем такой гемор? На крайняк залить breed с поддержкой 8-16Мб SPI и все.
                                            2. Клипсу перед употреблением надо подточить, тогда она нормально садится на флешку. Выпаивать и поднимать ноги не надо.
                                            3. Роскомпозор блокирует репы гитхаба, клонировать исходники и обновлять фиды при самостоятельной сборке приходится через TOR демона.
                                            4. Собранные 'старые' модули (м) скорее всего не заведутся на обновлённой trunk-прошивке, даже с ключом -force
                                              0
                                              1. «Все нужное» подходило постепенно. Залить через программатор — большого ума не нужно :) а вот с тфтп надо поковыряться. Но дополнить статью планирую, по поводу загрузчиков. Так что, да, все можно сделать быстрее и проще. Но это ведь не просто статья, это _моя_борьба_ :)
                                              2. Главное не переточить, там достаточно тонкие стенки.
                                              3. Не учел, в Беларуси слава богу такого нет (пока).
                                              4. Согласен, не работают…

                                            Only users with full accounts can post comments. Log in, please.