Нерабочий планшет + Orange Pi

За $8 можно превратить во вполне рабочую систему на Linux с монитором, клавиатурой и трекпоинтом:

56692eaf39054791b5ca19d5168d7088.png

Предыстория


Был когда-то у меня Lenovo Thinkpad Tablet. Аппарат очень не понравился и привёл к разочарованию как в Android так и в Lenovo и надолго отбил желание покупать что-то аналогичное. Не понравился он тем, что:

  1. Мне кажется, это ужасно, когда люди заплатившие немалые деньги за устройство вынуждены использовать эксплоиты чтобы воспользоваться уже имеющимся в нём функционалом. В итоге root я там так и не сделал.
  2. Через некоторое время начали отваливаться кнопки. Вначале питание. Её я кое-как припаял. Потом регулировки громкости. На них я забил и стал использовать программную регулировку.
  3. Рамка вокруг экрана. При размере планшета 259×179 мм, экран всего 216×135 мм (мерил линейкой, может быть погрешность в 1–2 мм). Т.е. экран занимает всего 63% поверхности. Наверное, эту рамку сделали, чтобы его удобней было держать не касаясь сенсорного экрана, но лучше было бы решить эту проблему как-то по-другому (не располагать по краям элементы управления или как-то отличать удержание от умышленного касания…), чтобы не заставлять пользователя таскать такую лопату.


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

  1. Весьма неплохой дисплей LP101WX1-SLN2 с разрешением 1280×800 и диагональю 10.1»;
  2. USB клавиатура с трекпоинтом;
  3. Блок питания с USB выходом 5 В 2 А;
  4. Два ещё живых литий-йонных аккумулятора. Тест показал ёмкость в 3,25 А*ч;
  5. Wifi + Bluetouth модуль AW-NH931;
  6. 3G/GPS/HSPA модуль Ericsson F5521gw;
  7. Микрофон, динамик, вибромотор и прочая мелочь.


Orange Pi PC


Эта штука была куплена для поиграться. Тут про неё уже писали, но вкратце опишу, что я с ней сделал и могу рекомендовать сделать другим.

Охлаждение


Чипы памяти почти не греются. Радиатор нужен только для основного чипа. Я купил вот такие 40×40x11 мм:

a88a3e0e996745e59f04d4f32db3fd0b.jpg

Вырезал нужный размер ножовкой и приклеил на Алсил-5. Сам чип 14×14 мм, но радиатор можно сделать чуть больше.

Установка ОС


Рекомендуемый satie образ не поддерживал мой WiFi свисток (RTL8188CUS). Образ взял отсюда — по ссылкам из первого поста только реклама, кое-как удалось скачать по ссылке из второго поста, а чтобы вам было удобней, выложил на гуглодрайв.

Питание


Запитывать через гребёнку GPIO не удобно и опасно — можно ошибиться и что-нибудь сжечь. Я купил вот такой шнур:
86256c6ee3594fe8904ef514ed205745.jpg
Если хотите такой же — вот.

Но оказалось, что провод там настолько тонкий, что при потребляемых в среднем ~250 мА из-за падения напряжения в проводе Orange Pi включаться не хочет. Так что провод пришлось заменить, но покупка не была напрасной — разъёмы я те использовал.

Включаем и фиксим оверклокинг


Для пользователей orangepi и root по умолчанию установлен пароль orangepi. Кроме того, по ssh по умолчанию можно зайти рутом, так что думайте о безопасности!

Если не работает монитор и сеть, можно подключиться терминальной программой через UART.

Теперь про оверклокинг. Есть файл /media/boot/script.bin. В этом файле хранятся настройки чипа. В удобочитаемый вид его можно конвертировать утилитой bin2fex. Так и делаем. В получившемся fex файле ищем секцию [dvfs_table] и убираем оттуда неприемлимые с вашей точки зрения режимы. Я оставил:

[dvfs_table]
pmuic_type = 2
pmu_gpio0 = port:PL06<1><1><2><1>
pmu_level0 = 11300
pmu_level1 = 576
extremity_freq = 1008000000
max_freq = 1008000000
min_freq = 480000000
LV_count = 3
LV1_freq = 1008000000
LV1_volt = 1120
LV2_freq = 480000000
LV2_volt = 1060
LV3_freq = 0
LV3_volt = 1060


На таких режимах без корпуса чип греется не более чем до 55С.
При помощи утилиты fex2bin конвертируем всё это обратно в script.bin, перезагружаемся, радуемся, что нам теперь не нужен вентилятор!

Хорошо бы ещё уменьшить частоту памяти и GPU, но мне пока не удалось этого сделать.

Клавиатура


В комплекте с Lenovo Thinkpad Tablet была вот такая клавиатура-чехол:

f0512bf996ee4adb96214a0e4a669dc1.jpg

Как оказалось, это обычная USB клавиатура и она может работать даже с обычным компом с Windows. Трекпоинт при этом тоже работает. Единственная проблема — вместо клавиш F1 — F12 на ней всякие клавиши регулировки громкости и т.п., и не работают комбинации Alt + Ctrl + <что-то ещё> т.к. Alt и Ctrl представлены разными USB точками. Пришлось переназначить некоторые клавиши.

Как это сделать я узнал отсюда. Получившийся в итоге файл переназначений клавиш:

keyboard:usb:v*p*
 KEYBOARD_KEY_c00e2=f1
 KEYBOARD_KEY_c00ea=f2
 KEYBOARD_KEY_c00e9=f3
 KEYBOARD_KEY_c0223=f4
 KEYBOARD_KEY_10047=f5
 KEYBOARD_KEY_100a2=f6
 KEYBOARD_KEY_10081=f7
 KEYBOARD_KEY_c022e=f8
 KEYBOARD_KEY_c022d=f9
 KEYBOARD_KEY_c00b6=f10
 KEYBOARD_KEY_c00cd=f11
 KEYBOARD_KEY_c00b5=f12
 KEYBOARD_KEY_c0040=leftctrl
 KEYBOARD_KEY_c0221=leftalt


Подключаем клавиатуру и теперь можно пользоваться комбинациями Alt + Ctrl + Fx!

Дисплей


Подключение дисплея было самой интересной задачей. Получится или нет не знал до конца.
У меня уже был вот такой конвертер HDMI → VGA:

a8ca4d3fbce94c92bf3830b3e35789df.jpg

Но дисплей LVDS, поэтому понадобился контроллер LVDS с входом HDMI, DVI или VGA. Самый дешёвый из найденных — MT6820-B oбошёлся в $6.33 вместе с доставкой. Когда приехал, оказалось, что разъём у него не такой же как у дисплея. Хотел было купить подходящий разъём с проводами и колодкой, но цена в $6 меня остановила. Отрезал имеющиеся разъёмы от того, что приехало и от того, что было в планшете, взял распиновку дисплея из даташита и спаял проводки с похожими названиями, благо что на китайском контроллере каждый выход подписан.

Чип контроллера LVDS легко разогревается до 70С. Пока охлаждаю вентилятором, но надо будет тоже приклеить радиаторы к нему и стабилизаторам напряжения.

В итоге получилось:

add8ef0ba93a4b40a92e73d034654277.JPG
Внизу контроллер LVDS охлаждаемый вентилятором

bf1ba4d3999143ea85b3e2d39a1a4a13.JPG

К сожалению, пока не удалось заставить эту связку работать с разрешением 1280×800. Причём, если переходник HDMI → VGA вставить в HDMI порт компа, то Windows понимает, что он может работать на 1280×800, а вот Orange Pi — нет.

823ffb8733984e729de16acf0552bd27.JPG
Блок питания, Orange Pi, клавиатура

Итог


Вряд-ли я всё это буду использовать именно в такой связке. Скорее всего, дисплей с контроллером соберу в отдельный монитор и подключу его к компу с Windows, а Orange Pi с этой клавиатурой будут жить с другим монитором просто потому, что мне так удобней и потому что разрешения 1280×800 в этой связке получить не смог, а при 1280×720 искажаются пропорции, но сама идея кажется интересной, и, не факт, что у вас не получится сделать всё как надо. Для стационарного использования Orange Pi + Linux имеют ряд преимуществ по сравнению с планшетом на Android:

  1. Возможности настройки, нет проблем с получением root’a. Изменить частоту/напряжения чипа — пожалуйста, переназначить клавиши — пожалуйста!
  2. Наличие GPIO (это преимущество не для всех, но меня очень радует).
  3. Вся система на одной microSD карте! Мы можем забрать крошечную карту и никто не получит доступа к нашим данным! Мы можем иметь несколько карточек с системами под разные задачи! Легко делать резервные копии.
  4. Гибкость конфигурации: можем выбрать подходящую плату Orange Pi и независимо от этого дисплей.

И ещё одно сравнение. Orange Pi One стоит $14 с доставкой + $6.3 за microSD, Arduino Mega — $7. Платя в 3 раза больше мы получаем:

  • В 65536 раз больше ОЗУ;
  • 4 шустрых 32-х битных ядра;
  • Возможность зайти на устройство по SSH и программировать/компилировать/отлаживать прямо в нём на любимом языке;
  • Операционную систему, которая может одновременно выполнять программы написанные на разных языках!


Это не значит, что Arduino Mega больше не нужна, но в некоторых проектах можно задумываться об альтернативе.

К чему это всё?


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

А ещё есть у меня мечта продвинуть идею специализированных свалок/фримаркетов, где можно будет оставить то что тебе уже не нужно, но что кто-нибудь ещё сможет использовать.

© Geektimes