Официальная цена на последнюю модель Raspberry Pi составляет около 40$ за штучку. Однако купить её за такую цену невозможно, перекупы накручивают огромные ценники за одноплатники, основным преимуществом которых должна быть цена. И даже альтернативы от китайских друзей в виде Orange Pi или Banana Pi стоят как минимум 3-4 тысячи рублей, что по карману может быть не каждому. Но сейчас на барахолках можно найти старые и дешевые ТВ-стики по совершенно смешным ценам: 2-4$ за штучку, иногда даже с пультом и всеми кабелями. Почему бы не попробовать использовать их в качестве доступных одноплатников? Предлагаю попробовать.

Железный вопрос



Дисклеймер: Хотя такой стик вполне можно считать одноплатником, но прямым конкурентом RPi он не является — нет GPIO. Спасибо за понимание.



Ещё в нулевых люди интересующиеся embedded и разработкой собственных устройств осваивали такие микроконтроллеры, как AVR и PIC32. Но область применений микроконтроллеров довольно узкая, если речь заходит о каких-то серьёзных применениях по типу быстрой обработки показаний с датчиков или реализации собственных компьтеров/игровых консолей. Конечно на рынке уже были DSP — цифровые сигнальные процессоры, которые были во много раз быстрее обычных микроконтроллеров и использовали все преимущества концепции VLIW (которая, кстати, применяется в отечественных процессорах Эльбрус), но раздобыть девкит, а тем более распаять его самому было настоящей проблемой для одиночек или даже небольших предприятий.



Поэтому с появлением одноплатных компьютеров всё стало гораздо проще: мы получаем вычислительные мощности среднего планшета/медиаплеера, но при этом, выполнено это всё в форм-факторе одной небольшой платы, где уже есть всё необходимое: подведено питание ко всем необходимым модулям, разведен USB-хаб, есть выходы на дисплей/телевизор и иногда на звук. Другим серьёзным преимуществом является открытость системы: в подобных платформах обычно используется Linux в том или ином виде (Android, десктопных Linux) или другие операционные системы. Производитель обычно предоставляет всё что нужно для разработки своих приложений и устройств на подобных платформах, в том числе исходники загрузчиков, device tree, исходный код ядра, а также полную схему устройства — это называется Open Source Hardware.



Я и сам давно интересовался одноплатниками, но, к сожалению, цены на них мягко скажем кусаются. Если искать какие-то старые и слабые модели по типу Raspberry Pi Zero, то даже на них цены конские (от 2.500 рублей на момент написания статьи). Приятный сюрприз сделали Orange Pi, выпустив в своё время 2G IoT с чипсетом RDA8810 за ~700 рублей, но его производство было прекращено около года назад. В один день, я смотрел объявления на авито/юле и приметил интересный девайс, коим оказался NoName ТВ-стик на чипе Rockchip RK3028A. Цена была указана более чем демократичная, всего 400 рублей. Не раздумывая, я забрал его для дальнейших экспериментов.



Характеристики


Когда я получил устройство, я удивился с его размеров: в небольшой корпус размером со флэшку умудрились засунуть полноценный и довольно мощный ARM-компьютер! Включив его, я практически сразу понял, в чём был недостаток: циклическая перезагрузка на логотипе. Из кнопок на устройстве была только Fn, которая ничего не делала, даже если включить устройство с ней. Кнопки RESET я также не нашёл. Пришло время его разобрать, благо сделать это не сложно: весь корпус держится на клипсах, которые нужно аккуратно расщелкнуть пластиковой картой.



Перед нами открывается вид платы, которую можно легко вытащить.





Из того, что мы видим, мы можем сделать следующие выводы:

  • Процессор: Rockchip RK3028A (RK302A) с двумя ядрами Cortex-A9, работающими на частоте 1.2ггц и графическим ускорителем Mali-400.
  • Память: 512 мегабайт, судя по всему, DDR2, одной банкой.
  • ПЗУ: NAND-чип Hynix H27UBG8T2CTR-BC 4гб. Есть место под eMMC, практически готовое к установке чипа (припаяны BGA шары).
  • Вход на питание: 5в, среднее потребление до 0.5А при пиковой нагрузке. Стик способен питаться даже от порта USB на ПК. Выходы на питание OTG и USB-портов тоже 5 вольт, а не 3.3 как на смартфонах.
  • Один полноценный USB 2.0 порт с питанием 5в + дополнительный порт USB-OTG для подключения к ПК или выведения дополнительного USB-хоста (с него тоже можно питать плату)
  • Слот MicroSD для расширения памяти, до 32гб SDHC
  • Что-то похожее на UART для диагностики платы (предположительно, обведено в синий прямоугольник).
  • Ну, и само собой, HDMI для передачи видео (до 1080p 60FPS) и звука


Прошивка


Прошивку пришлось поискать: название устройства я нашёл, это некий MK805II, родной прошивки на который найти не удалось (в том числе, по номеру платы). Но поскольку ромы TV-боксов практически идентичные и в них нет зависимости от тачскринов/дисплеев/расположений GPIO (обычно они построены на базе референсной платы), я принялся искать другие боксы на этом чипе. Попутно найдя даташит, я узнал, что RK3028A — это полный аналог RK3026 (отличие в корпусах — 3026 в LQFP) и BatchTool они определяется как RK301A (родственник RK3066). После недолгих поисков, я нашёл DEXP LD303, который работал на том же чипе и на той же версии Android. Прошивка в формате img скачана, пора прошивать устройство.



Но сначала в режим прошивки нужно войти. Для этого у процессоров Rockchip есть два режима: LOADER (стандартный прошивочный режим, который можно активировать зажав кнопку RESET) и MaskedROM (для прошивки новых устройств, только-только сошедших к конвейера и где память пока ещё пуста. Активируется, если загрузчик первого уровня не может найти загрузчик второго уровня). Если кнопки/контакта RESET у нас нет даже на плате, то остаётся только MaskedROM, который активировать очень легко, если у вас NAND память: необходимо просто замкнуть I/O линии иглой. При чтении загрузчика, процессор получит бессвязный набор байтов и сам перейдет в режим MaskedROM, тут то мы и сможем его прошить. I/O линии можно найти в даташите к вашему чипу памяти.


Замыкать можно любой из этих 4х пинов между собой.

Замыкаем контакты, подключаем устройство со стороны разъема OTG (на DC IN линии USB не разведены) к компьютеру. Устанавливаем драйвера.



И запускаем RkBatchTool.



Как только устройство будет обнаружено и драйвер правильно установлен, мы сможем прошить устройство. Жмём кнопку Restore (именно её, а не Upgrade) и ждём, пока программа запишет новый загрузчик, перезагрузит устройство в LOADER-режим, отформатирует память и запишет новый образ системы.



Всё, процесс прошивки завершен, бежим втыкать наш одноплатник в HDMI телевизора, подключать питание и ждать загрузки. Заработало! Для первичной настройки понадобится мышь, которую можно подключить в обычный USB-порт.

По итогу мы получили стабильно работающий TV-стик на базе Android 4.2. Не сказать, что система очень свежая, но тоже вполне ничего, на неё всё ещё можно жить. Попробуем найти ему применение. Ниже будут именно фото, а не скриншоты для того, чтобы вы могли увидеть как оно смотрится в действии, ну и потому что нет встроенного скриншоттера.

Тонкий клиент


Применений у такого стика есть масса, и одно из них — тонкий клиент. Помните, были такие машинки раньше? Это небольшие компьютеры, которые обладают минимальными характеристиками (процессоры ARM, Geode, MIPS, небольшой объем ОЗУ, в качестве ОС — Linux/WinCE), предназначенные для подключения к более мощным компьютерам/серверам и работы с них. При этом, тонкий клиент занимается обработкой ввода, выводом картинки, сетью и иногда умеет автономно выполнять часть задач и может комплектоваться жёстким диском.



Такой стик тоже можно использовать в качестве компактного тонкого клиента, подключив его сзади монитора. Выводим хаб, подключаем периферию и ставим клиент RDP. Я смог без проблем подключится к основному ПК и пользоваться им. Кроме того, Android поддерживает некоторую другую USB-периферию: потенциально, даже внешние Ethernet сетевые адаптеры. К слову, Wi-Fi на стике реализован в виде USB-свистка, припаянного к плате. Выводить такой ТК сможет картинку вплоть до 1080p, чего должно хватать всем.

Игровая приставка




2 ядра на частоте 1.2ггц и Malii-400 — весьма неплохие вычислительные ресурсы для игр. О современных Modern Combat и Call Of Duty Mobile можно забыть, но кто сказал, что на таком стике будет не во что играть? Android полностью поддерживает USB-геймпады в любом количестве, так что из устройства выйдет неплохая машинка для игр. А вот для каких?



Не так уж и много Android-игр начала десятых поддерживают геймпад. Из некоторых — почти все части Asphalt и другие игры Gameloft, некоторые игры на Unity, GTA (который, к слову, будет тяжеловат для игры даже в 720p на Mali400). Но те, что поддерживают, обычно работают неплохо. Кое где придется повозиться с настройками графики.
И с эмуляторами дела обстоят вполне ничего: денди/сега/PS1 проявляют себя хорошо. Увы, игры с PSP или Ps2 консоль не потянет: смотрите в сторону устройств с Amlogic S905X.



Компактный сервер


Да, это не шутка. На устройстве можно развернуть сервер, в том числе и файловый. Или разместить на нём персональную страницу — кто на что горазд. У устройства есть поддержка USB-HDD или флэшек.



Серверов различных типов на Android довольно много, поэтому найти применение в таком ключе мы тоже сможем.

Мультимедийная станция




Самый очевидный пункт, ведь даже производитель называет это устройство медиаплеером. Впрочем, не для всех могут быть очевидны большинство возможностей данного гаджета. В список того, что сможет такой стик сейчас входит не только проигрывание музыки или видео в качестве до 1080p, но и DLNA-медиасервер и возможность использовать что-то типа Invidous для просмотра YouTube.


MP4 h263, 1080p30

Сейчас в магазинах техники до сих пор продаются бюджетные телевизоры без поддержки возможностей Smart-TV, так что если бюджет очень сильно ограничен, а получить смарт-устройство хоть в каком-то виде хотелось бы, то чем не вариант? У некоторых ТВ-боксов (именно боксов), есть и аналоговые выходы, что позволяет подключить их даже к старым ЭЛТ-телевизорам. Наверняка тут есть кто-то, кто до сих пор фанатеет по тем здоровым телевизорам, размером с шкаф и весом в пару сотен килограмм?



Подведем итог


Похоже на то, что старенькие ТВ-стики всё ещё могут послужить человеку хорошую службу и остаться полезными даже спустя 9-10 лет после их выпуска. Благодаря копеечной цене, поддержкой вывода изображения в FHD и наличию нескольких USB-хостов, подобные устройства могут оказаться крайне полезными на даче, в гараже или даже в офисе, особенно если есть нужда в тонком клиенте. Теоретически сюда есть возможность установить обычный десктопный linux, даже на отдельную SD-карту, но из-за малого объема ОЗУ и слабого, по меркам десктопного Linux, процессора, работать он будет так себе. Однако на барахолках стремительно дешевеют более мощные устройства на S905X и восьмиядерных, свежих RockChip'ах!

Конечно назвать это устройство полным аналогом RPi нельзя: тут нет гребёнки с GPIO. Но это не значит, что их нельзя реализовать самому: у нас есть потенциальный UART, у нас есть USB-хост, а значит с помощью самодельного GPIO Expander'а, мы сможем рулить пинами условной ардуины так, как нам нужно. Если вас заинтересовало такое устройство — то вперед на барахолки, выбор действительно большой.