Привет, Хабр! Хочу рассказать о своем порядком затянувшемся пет-проекте по сборке самодельного достаточно мощного планшетного ПК. Процесс еще не завершен, текущее состояние можно назвать «работающим прототипом». Но некоторые предварительные результаты достигнуты, и я хочу поделиться основными идеями.
Идея собрать самодельный планшетный компьютер пришла мне в голову еще несколько лет назад. В конце нулевых были популярны так называемые UMPC – устройства на базе процессоров архитектуры x86, способные выполнять все обычные программы для настольных компьютеров (ну, не все, а те, которые мощность «железа» позволит) но при этом помещающиеся если не в кармане брюк, то хотя бы в кармане зимней куртки. Часто подобные устройства помимо сенсорного экрана имели QWERTY-клавиатуру, причем в форм-факторе, оптимизированном под работу «на весу», а также тачпад или трекбол для точного позиционирования курсора мыши (что было особенно важно при низкой точности сенсорных экранов того времени и интерфейса «настольных» программ, не расчитанных на маленькие экраны и сенсорный ввод). В то время многие думали, что за подобными устройствами будущее. Они должны были стать настоящими помощниками в работе, позволяющими работать не только в офисе и дома, но вообще где угодно, и даже не обязательно, чтобы при этом имелась бы в наличии горизонтальная поверхность, на которую можно поставить свой гаджет. Я сам являлся счастливым владельцем одного из таких устройств. Мой UMPC был выполнен в форм-факторе горизонтального слайдера, с QWERTY-клавиатурой, тачпадом и сенсорным экраном диагональю 7 дюймов. И это устройство реально помогало экономить время. С его помощью была сделана значительная часть моей дипломной работы – причем не только написана пояснительная записка, но и написан, скомпилирован и отлажен программный код. Все это я делал прямо в метро по дороге в институт, на работу, и потом домой, и для этого даже не обязательно было искать сидячее место – размеры и форм-фактор устройства позволяли спокойно работать стоя. Часы дороги уже не тратились впустую, и вернувшись домой, я мог позволить себе потратить вечер на другие занятия.
Однако, вечных устройств не бывает, электронная техника стремительно устаревает. Мой UMPC изначально имел очень слабое «железо» даже по меркам своего времени, а спустя несколько лет его уже невозможно было использовать даже для самых простейших задач. Я долго пытался найти ему замену, но подобные устройства вышли из моды, и их перестали производить. Тогда (спустя уже несколько лет) я решил собрать подобное устройство самостоятельно. В итоге процесс сборки очень сильно затянулся, я занимался им урывками, одновременно прокачивая скилл работы с паяльником. Сейчас от многих вещей пришлось отказаться, а внешний вид устройства пока оставляет желать лучшего. Но как ни странно, несмотря на абсолютно дилетантский подход к проектированию, в общем и целом устройство оказалось работоспособным.
В Интернете можно найти много описаний различных самодельных портативных компьютеров. В качестве базы для них часто используются промышленные материнские платы различных компактных форм-факторов. На таких платах, как правило, находится CPU с низким или сверхнизким энергопотреблением, слот(ы) оперативной памяти «ноутбучного» форм-фактора SO-DIMM либо уже распаянная память, и разъем LVDS, позволяющий подключить ноутбучный экран. Я пошел тем же путем. Но основная проблема, которую я долго не мог решить, заключалась в том, как добиться, чтобы собранный компьютер «считал себя портативным», то есть на уровне операционной системы «знал» о наличии у него батареи, отображал бы ее текущее состояние и прогноз оставшегося времени работы на экране, поддерживал различные режимы энергопотребления (в том числе режим максимальной экономии энергии) и переключение этих режимов парой кликов, а не сложной последовательностью действий, и при критическом снижении уровня заряда автоматически переходил бы в режим гибернации до того, как напряжение упадет настолько, что работа будет прервана «аварийным» порядком. Во всех описаниях самодельных носимых устройств, которые мне удалось найти, эта проблема либо обходилась стороной, либо использовалась операционная система c максимально открытым исходным кодом и большими возможностями для разработки драйверов устройств, модификации ключевых системных модулей или создании новых (зачастую на базе Arduino). Мне же надо было обеспечить поддержку традиционных «настольных» операционных систем, в том числе, Windows. Как ни странно, никакой подходящей информации о том, как сделать Windows-совместимое управление батареей, я не нашел. Мне это до сих пор удивительно, возможно, я просто не там искал, но тем не менее, описанная далее идея пришла мне в голову самостоятельно, и поэтому я рассказываю про нее здесь.
Итак, я понял, что мне нужен какой-либо контроллер батареи, поддерживающий стандарт ACPI. И я знал, что существуют некоторые источники беспребойного питания, поддерживающие этот стандарт. В компьютерах, к которым подключен такой UPS (через USB-порт), появляется стандартный значок батареи Windows на панели задач, и вместе с ним также появляются все описанные выше функции. Я уже думал купить себе подобный UPS, выковырять из него плату управления и попытаться перепрошить ее под новые характеристики батареи, но нашел более легкий способ – использовать устройство под названием OpenUPS. Это устройство представляет собой плату универсального контроллера батареи, легко настраиваемого под самые разные потребности. В нем поддерживаются различные типы батарей (как свинцовые, так и литий-полимерные), и различное количество ячеек батареи. Есть также функция балансировки ячеек при заряде, а задавать все требуемые параметры очень легко с помощью специальной программы с графическим интерфейсом. Это было то, что мне нужно.
Таким образом, общая концепция устройства сложилась. В нем должны быть следующие обязательные компоненты:
Кроме этого возможны дополнительные компоненты – насколько хватит размеров устройства и емкости батареи. Очень желательно наличие встроенного GSM-модуля, причем по возможности с голосовыми функциями, чтобы устройство можно было использовать и в качестве смартфона. И еще хотелось бы снабдить устройство физической QWERTY-клавиатурой, либо располагающейся под экраном (сдвигающимся в виде горизонтального слайдера) либо состоящей из двух половин с двух сторон от экрана. Это ведь должно быть устройство для работы, а не только для того, чтобы фоточки в соцсетях смотреть?
При этом также:
Вот что примерно я хотел получить:
Что ж, граничные условия определены, некоторые детали уже подобраны. Вперед, за работу!
Поискав по различным материнским платам стандарта PicoITX, я нашел модель Axiomtek PICO512. Она снабжена процессором Intel Core i7-7600U, и по крайней мере, на то время это был самый мощный вариант, который мне удалось найти. На плату можно было поставить один модуль оперативной памяти форм-фактора SO-DIMM емкостью до 16 ГБ. Я захотел собрать максимально мощное устройство, и купил сразу 16 гигабайт оперативной памяти, а также терабайтный SSD стандарта mSATA.
Сразу же возникла проблема с охлаждением. Штатно плату охлаждал огромный алюминиевый радиатор, размеры которого позволяли считать плату удовлетворяющей стандарту PicoITX лишь формально: габариты радиатора существенно выступали за габариты самой платы. Мне такой вариант по понятным причинам не годился. Поэтому я решил использовать совсем маленький медный радиатор, установленный на процессоре, а другой стороной этот радиатор через термопасту должен крепиться к общей раме устройства, сделанной из алюминия. Рама при этом должна стать таким дополнительным эрзац-радиатором. Сбоку от медного радиатора должен располагаться маленький ноутбучный вентилятор.Вариант с жидкостным охлаждением «ноутбучного» типа у меня, к сожалению, не получился. Термотрубку просто было некуда отвести – устройство должно быть очень маленьким, и единственное свободное место оказалось прямо над процессором. Я боялся, что новая система охлаждения вообще не будет справляться. Но оказалось, что все не так страшно, хотя и далеко от идеала. В «офисном» режиме система охлаждения справляется с тепловыделением процессора. При полной нагрузке ее хватает где-то на пару минут – потом начинается перегрев и троттлинг. Для игр это не годится, но в повседневной работе программиста (долго пишем код, при этом процессор большей частью простаивает, потом максимально быстро этот код компилируем) такая система охлаждения проявляет себя нормально. А в некоторых отдаленных планах – попробовать использовать испарительную камеру. Быть может, она поможет довести теплоотвод до идеала.
Что касается вентилятора – с ним возникла дополнительная проблема. От материнской платы к вентилятору отходило всего два провода. Никакие программы управления вентилятором вообще не видели его наличия в системе. А значит, его обороты никак не регулируются и, он всегда вращается с одинаковой максимальной скоростью, даже когда это не требуется. С точки зрения расходования энергии батареи и шумности устройства это никуда не годилось. Но я решил, что просто подключу вентилятор через транзистор, управляемый терморезистором, и это должно решить проблему.
Экран я выбрал с диагональю 5.6 дюймов. Я нашел модель с разъемом LVDS и разрешением 1280 на 800 точек. По современным меркам это разрешение совсем маленькое, но для такого небольшого экрана оно кажется мне достаточным (особенно для «настольной» операционной система, не рассчитанной на маленькие экраны). С учетом размеров экрана, материнской платы (10 x 7 см) и платы контроллера батареи (на самом деле она оказалось слишком большой для моих целей, аж 10 x 5 см, и с огромными торчащими вверх конденсаторами) примерно определились общие габариты устройства. Длина будет чуть больше 21 см, ширина – 9 см. Что касается толщины… Да, тут все плохо. Никак не меньше 3 см, а скорее ближе к 4. По сравнению с современными смартфонами, про которые уже кто-то говорил, что ими сыр можно резать, это просто катастрофа. Но по стандартам UMPC рубежа нулевых-десятых это нормальные размеры. И в ладонь подобное устройство должно было ложиться вполне себе комфортно.
Вот так выглядит алюминиевая рама, к которой крепятся все остальные компоненты устройства. Раму я сложил из обычных уголков, купленных в магазине строительных материалов. Это позволило мне собрать работающий прототип, но впоследствии я попробую заказать изготовление новой рамы каким-либо фабричным способом.
Сверху и снизу к раме крепятся две пластиковые крышки. Верхняя является рамкой экрана, нижняя – корпусом батарейного отсека. Пластиковые детали я заказал в компании, занимающейся 3D-печатью. Экран содержал в своем составе сенсорную панель, но она была резистивной, поэтому мне пришлось искать отдельную емкостную панель. Выбор готовых панелей нужного размера практически отсутствовал, и единственный найденный более-менее подходящий экземпляр оказался чуть шире экрана. Панель удалось откалибровать под фактический размер видимой области экрана, но ее края сильно торчат в стороны, занимая ценную поверхность, где можно было бы разместить еще что-нибудь.
Батарея сделана легкосъемной. Ее 4 ячейки вставлены в отдельный пластиковый корпус, на котором с одной стороны находятся плоские контакты. Ответные контакты для них закреплены на раме. На задней крышке планшета находится защелка, позволяющая легко отсоединить батарею от устройства.
Каждая ячейка батареи представляет собой обычный литий-полимерный аккумулятор заявленной емкостью 3500 мАч. По расчетам, этого должно было хватить примерно на 5 часов работы устройства в «офисном» режиме. Но к сожалению, реальная емкость батареи оказалось ниже заявленной раза в два. И еще обнаружился «баг» контроллера – он не умеет нормально учитывать возможность снижения емкости батареи. Сколько задали в настройках – на столько и расчитываем. По мере разрядки батареи драйвер OpenUPS, как я понял, вычисляет текущий заряд по израсходованной энергии (т.е. интегрируя мощность и вычитая полученное значение из исходного жестко прописанного значения полной емкости)… а потом внезапно оказывается, что батарея полностью ушла в ноль. Неудобно. Что с этим делать, я пока не знаю.
К сожалению, дальше процесс создания затянулся на несколько лет. Свободного времени постоянно не хватало, возникало огромное количество технологических проблем. Большинство этих проблем сводилось к тому, как засунуть огромное количество компонентов в очень компактный корпус. Я изначально хотел спроектировать и изготовить тем или иным способом некоторую общую «плату периферии», на которой будут распаяны все дополнительные компоненты. Но пока что времени на это у меня совершенно не хватает. Поэтому для создания прототипа пришлось в лучших традициях начинающих самодельщиков просто напихать в корпус все возможные готовые платы, которые смогут туда поместиться. В качестве некоторого оправдания могу сказать, что мой старый UMPC был хоть и фабричной сборки, но тоже состоял из большого количества мелких платок.
Вот полный вид устройства снаружи по состоянию на текущий момент. Сбоку виден единственный порт USB (надеюсь, потом их будет больше, но для этого будет нужен дополнительный hub), а также стандартный комбинированный аудиовход/выход 3.5 мм. Еще на этом же ребре расположена кнопка включения устройства. По краям под верхней крышкой видны вентиляционные щели.
Противоположное ребро лучше видно на фото рамки без верхней крышки, показанном выше. На этом ребре расположен разъем HDMI. Рядом с ним на материнской плате располагается разъем LAN, который мне не нужен, и даже откровенно мешает – без него удалось бы сделать конструкцию на несколько миллиметров тоньше. Я не стал делать под него отверстие в корпусе. И разъем питания, который торчит рядом с HDMI, тоже абсолютно лишний и даже вредный в текущей конфигурации. Питание теперь заходит через плату контроллера батареи и далее по проводам, которые припаяны к отверстиям на материнке рядом с ее штатным разъемом. Штатный же разъем надо полностью выпаять, и это – в моих ближайших планах.
Вот так устройство выглядит во включенном состоянии:
Аппаратную клавиатуру пока что сделать не вышло, но я надеюсь все же реализовать этот важный элемент в обозримом будущем. Тогда устройство можно будет использовать по своему первоначальному назначению. Я надеюсь, что клавиатуру удастся разместить над краем материнской платы в самой тонкой части, и устройство примет форм-фактор горизонтального слайдера, так как я и собирался сделать изначально. Статьи про создание самодельных клавиатур на Хабре уже были, так что надеюсь, что я тоже смогу сделать свою клавиатуру аналогичным образом.
А GSM-модуль с поддержкой голосовых вызовов (опять-таки, в виде отдельной готовой платы) я уже попытался установить. Он работал, им можно было пользоваться, но в текущей конфигурации он немного не влез в корпус и торчал наружу примерно буквально на несколько миллиметров. Пока что я его убрал. Если получится немного передвинуть все компоненты – он должен влезть, и у меня будет свой персональный смартфон на базе Core i7.
Устройство, конечно же, в настоящее время еще совсем «сырое». Мне удалось довести его до мало-мальски работоспособного состояния, но на дальнейшую разработку могут уйти еще годы, если я вообще не заброшу это. Тогда какой же самый главный результат этого проекта, которым я могу поделиться здесь? Я считаю, что это сама концепция схемы «промышленная материнская плата + контроллер OpenUPS или подобный». Такая схема позволяет собрать себе полнофункциональный портативный компьютер под любые нужды даже человеку, очень слабо разбирающемуся в электронике. И если при создании моего конкретного устройства приходилось постоянно бороться с нехваткой пространства для компонентов и идти на компромиссы, то планшет или ноутбук обычных размеров на подобной платформе будут свободны от этих проблем. В них легко поместится любая требуемая периферия. Помнится, некоторое время назад кто-то из хабровчан уже мечтал о «нормальном ноутбуке для работы», жалуясь, как и я, на засилье устройств, пригодных только для просмотра соцсетей. При большом желании он сможет сделать себе «ноутбук мечты» самостоятельно, по тому же принципу, что и мое устройство. А еще подобные компьютеры будут легко поддаваться апгрейду – само собой, можно будет заменить оперативную память и долговременное хранилище, но при желании можно будет поменять даже материнскую плату, если новая плата будет иметь тот же форм-фактор, что и старая.
Напоследок хочется помечтать, что кто-нибудь когда-нибудь организует стартап по разработке универсального «конвертера промышленных материнских плат в ноутбучные» — платы, на которой будут присутствовать ACPI-совместимый контроллер батареи, аналогичный OpenUPS, и некоторая стандартно-ноутбучная периферия. В первую очередь, там должны присутствовать беспроводные интерфейсы, возможно еще контроллер сенсорной панели (если он будет достаточно универсальным, чтобы к нему можно было подключать панели различных производителей и различных стандартов). Создание подобного устройства позволило бы обычным любителям самоделок разрабатывать свои собственные ноутбуки и планшеты. Они могли бы разбавить огромное количество существующих сегодня однотипных устройств, похожих друг на друга как две капли воды.
Кто возьмется за такой проект?
Зачем это нужно
Идея собрать самодельный планшетный компьютер пришла мне в голову еще несколько лет назад. В конце нулевых были популярны так называемые UMPC – устройства на базе процессоров архитектуры x86, способные выполнять все обычные программы для настольных компьютеров (ну, не все, а те, которые мощность «железа» позволит) но при этом помещающиеся если не в кармане брюк, то хотя бы в кармане зимней куртки. Часто подобные устройства помимо сенсорного экрана имели QWERTY-клавиатуру, причем в форм-факторе, оптимизированном под работу «на весу», а также тачпад или трекбол для точного позиционирования курсора мыши (что было особенно важно при низкой точности сенсорных экранов того времени и интерфейса «настольных» программ, не расчитанных на маленькие экраны и сенсорный ввод). В то время многие думали, что за подобными устройствами будущее. Они должны были стать настоящими помощниками в работе, позволяющими работать не только в офисе и дома, но вообще где угодно, и даже не обязательно, чтобы при этом имелась бы в наличии горизонтальная поверхность, на которую можно поставить свой гаджет. Я сам являлся счастливым владельцем одного из таких устройств. Мой UMPC был выполнен в форм-факторе горизонтального слайдера, с QWERTY-клавиатурой, тачпадом и сенсорным экраном диагональю 7 дюймов. И это устройство реально помогало экономить время. С его помощью была сделана значительная часть моей дипломной работы – причем не только написана пояснительная записка, но и написан, скомпилирован и отлажен программный код. Все это я делал прямо в метро по дороге в институт, на работу, и потом домой, и для этого даже не обязательно было искать сидячее место – размеры и форм-фактор устройства позволяли спокойно работать стоя. Часы дороги уже не тратились впустую, и вернувшись домой, я мог позволить себе потратить вечер на другие занятия.
Однако, вечных устройств не бывает, электронная техника стремительно устаревает. Мой UMPC изначально имел очень слабое «железо» даже по меркам своего времени, а спустя несколько лет его уже невозможно было использовать даже для самых простейших задач. Я долго пытался найти ему замену, но подобные устройства вышли из моды, и их перестали производить. Тогда (спустя уже несколько лет) я решил собрать подобное устройство самостоятельно. В итоге процесс сборки очень сильно затянулся, я занимался им урывками, одновременно прокачивая скилл работы с паяльником. Сейчас от многих вещей пришлось отказаться, а внешний вид устройства пока оставляет желать лучшего. Но как ни странно, несмотря на абсолютно дилетантский подход к проектированию, в общем и целом устройство оказалось работоспособным.
Что главное в самодельном портативном ПК
В Интернете можно найти много описаний различных самодельных портативных компьютеров. В качестве базы для них часто используются промышленные материнские платы различных компактных форм-факторов. На таких платах, как правило, находится CPU с низким или сверхнизким энергопотреблением, слот(ы) оперативной памяти «ноутбучного» форм-фактора SO-DIMM либо уже распаянная память, и разъем LVDS, позволяющий подключить ноутбучный экран. Я пошел тем же путем. Но основная проблема, которую я долго не мог решить, заключалась в том, как добиться, чтобы собранный компьютер «считал себя портативным», то есть на уровне операционной системы «знал» о наличии у него батареи, отображал бы ее текущее состояние и прогноз оставшегося времени работы на экране, поддерживал различные режимы энергопотребления (в том числе режим максимальной экономии энергии) и переключение этих режимов парой кликов, а не сложной последовательностью действий, и при критическом снижении уровня заряда автоматически переходил бы в режим гибернации до того, как напряжение упадет настолько, что работа будет прервана «аварийным» порядком. Во всех описаниях самодельных носимых устройств, которые мне удалось найти, эта проблема либо обходилась стороной, либо использовалась операционная система c максимально открытым исходным кодом и большими возможностями для разработки драйверов устройств, модификации ключевых системных модулей или создании новых (зачастую на базе Arduino). Мне же надо было обеспечить поддержку традиционных «настольных» операционных систем, в том числе, Windows. Как ни странно, никакой подходящей информации о том, как сделать Windows-совместимое управление батареей, я не нашел. Мне это до сих пор удивительно, возможно, я просто не там искал, но тем не менее, описанная далее идея пришла мне в голову самостоятельно, и поэтому я рассказываю про нее здесь.
Итак, я понял, что мне нужен какой-либо контроллер батареи, поддерживающий стандарт ACPI. И я знал, что существуют некоторые источники беспребойного питания, поддерживающие этот стандарт. В компьютерах, к которым подключен такой UPS (через USB-порт), появляется стандартный значок батареи Windows на панели задач, и вместе с ним также появляются все описанные выше функции. Я уже думал купить себе подобный UPS, выковырять из него плату управления и попытаться перепрошить ее под новые характеристики батареи, но нашел более легкий способ – использовать устройство под названием OpenUPS. Это устройство представляет собой плату универсального контроллера батареи, легко настраиваемого под самые разные потребности. В нем поддерживаются различные типы батарей (как свинцовые, так и литий-полимерные), и различное количество ячеек батареи. Есть также функция балансировки ячеек при заряде, а задавать все требуемые параметры очень легко с помощью специальной программы с графическим интерфейсом. Это было то, что мне нужно.
Набор компонентов
Таким образом, общая концепция устройства сложилась. В нем должны быть следующие обязательные компоненты:
- материнская плата формата PicoITX;
- контроллер батареи OpenUPS;
- литий-полимерная батарея из 4 ячеек, соединенных последовательно (чтобы обеспечить напряжение питания не меньше 12 вольт даже при минимальном заряде);
- экран с разъемом LVDS, встроенная в него или отдельная сенсорная панель с контроллером, поддерживающая режим multitouch.
Кроме этого возможны дополнительные компоненты – насколько хватит размеров устройства и емкости батареи. Очень желательно наличие встроенного GSM-модуля, причем по возможности с голосовыми функциями, чтобы устройство можно было использовать и в качестве смартфона. И еще хотелось бы снабдить устройство физической QWERTY-клавиатурой, либо располагающейся под экраном (сдвигающимся в виде горизонтального слайдера) либо состоящей из двух половин с двух сторон от экрана. Это ведь должно быть устройство для работы, а не только для того, чтобы фоточки в соцсетях смотреть?
При этом также:
- процессор обязательно должен быть архитектуры x86-64, «ноутбучной» серии со сниженным энергопотреблением, но при этом максимально мощный из доступных;
- устройство должно нормально помещаться в ладони, если взять его за узкую сторону экрана (т.е. как показано на заголовочном фото), а еще хотя бы как-нибудь запихиваться по крайней мере в самый большой карман всех моих курток – как зимних, так и летних. С зимними куртками проще – у них, как правило, есть большие карманы. С летними сложнее.
Вот что примерно я хотел получить:
Что ж, граничные условия определены, некоторые детали уже подобраны. Вперед, за работу!
Процесс сборки
Поискав по различным материнским платам стандарта PicoITX, я нашел модель Axiomtek PICO512. Она снабжена процессором Intel Core i7-7600U, и по крайней мере, на то время это был самый мощный вариант, который мне удалось найти. На плату можно было поставить один модуль оперативной памяти форм-фактора SO-DIMM емкостью до 16 ГБ. Я захотел собрать максимально мощное устройство, и купил сразу 16 гигабайт оперативной памяти, а также терабайтный SSD стандарта mSATA.
Сразу же возникла проблема с охлаждением. Штатно плату охлаждал огромный алюминиевый радиатор, размеры которого позволяли считать плату удовлетворяющей стандарту PicoITX лишь формально: габариты радиатора существенно выступали за габариты самой платы. Мне такой вариант по понятным причинам не годился. Поэтому я решил использовать совсем маленький медный радиатор, установленный на процессоре, а другой стороной этот радиатор через термопасту должен крепиться к общей раме устройства, сделанной из алюминия. Рама при этом должна стать таким дополнительным эрзац-радиатором. Сбоку от медного радиатора должен располагаться маленький ноутбучный вентилятор.Вариант с жидкостным охлаждением «ноутбучного» типа у меня, к сожалению, не получился. Термотрубку просто было некуда отвести – устройство должно быть очень маленьким, и единственное свободное место оказалось прямо над процессором. Я боялся, что новая система охлаждения вообще не будет справляться. Но оказалось, что все не так страшно, хотя и далеко от идеала. В «офисном» режиме система охлаждения справляется с тепловыделением процессора. При полной нагрузке ее хватает где-то на пару минут – потом начинается перегрев и троттлинг. Для игр это не годится, но в повседневной работе программиста (долго пишем код, при этом процессор большей частью простаивает, потом максимально быстро этот код компилируем) такая система охлаждения проявляет себя нормально. А в некоторых отдаленных планах – попробовать использовать испарительную камеру. Быть может, она поможет довести теплоотвод до идеала.
Что касается вентилятора – с ним возникла дополнительная проблема. От материнской платы к вентилятору отходило всего два провода. Никакие программы управления вентилятором вообще не видели его наличия в системе. А значит, его обороты никак не регулируются и, он всегда вращается с одинаковой максимальной скоростью, даже когда это не требуется. С точки зрения расходования энергии батареи и шумности устройства это никуда не годилось. Но я решил, что просто подключу вентилятор через транзистор, управляемый терморезистором, и это должно решить проблему.
Экран я выбрал с диагональю 5.6 дюймов. Я нашел модель с разъемом LVDS и разрешением 1280 на 800 точек. По современным меркам это разрешение совсем маленькое, но для такого небольшого экрана оно кажется мне достаточным (особенно для «настольной» операционной система, не рассчитанной на маленькие экраны). С учетом размеров экрана, материнской платы (10 x 7 см) и платы контроллера батареи (на самом деле она оказалось слишком большой для моих целей, аж 10 x 5 см, и с огромными торчащими вверх конденсаторами) примерно определились общие габариты устройства. Длина будет чуть больше 21 см, ширина – 9 см. Что касается толщины… Да, тут все плохо. Никак не меньше 3 см, а скорее ближе к 4. По сравнению с современными смартфонами, про которые уже кто-то говорил, что ими сыр можно резать, это просто катастрофа. Но по стандартам UMPC рубежа нулевых-десятых это нормальные размеры. И в ладонь подобное устройство должно было ложиться вполне себе комфортно.
Вот так выглядит алюминиевая рама, к которой крепятся все остальные компоненты устройства. Раму я сложил из обычных уголков, купленных в магазине строительных материалов. Это позволило мне собрать работающий прототип, но впоследствии я попробую заказать изготовление новой рамы каким-либо фабричным способом.
Сверху и снизу к раме крепятся две пластиковые крышки. Верхняя является рамкой экрана, нижняя – корпусом батарейного отсека. Пластиковые детали я заказал в компании, занимающейся 3D-печатью. Экран содержал в своем составе сенсорную панель, но она была резистивной, поэтому мне пришлось искать отдельную емкостную панель. Выбор готовых панелей нужного размера практически отсутствовал, и единственный найденный более-менее подходящий экземпляр оказался чуть шире экрана. Панель удалось откалибровать под фактический размер видимой области экрана, но ее края сильно торчат в стороны, занимая ценную поверхность, где можно было бы разместить еще что-нибудь.
Батарея сделана легкосъемной. Ее 4 ячейки вставлены в отдельный пластиковый корпус, на котором с одной стороны находятся плоские контакты. Ответные контакты для них закреплены на раме. На задней крышке планшета находится защелка, позволяющая легко отсоединить батарею от устройства.
Каждая ячейка батареи представляет собой обычный литий-полимерный аккумулятор заявленной емкостью 3500 мАч. По расчетам, этого должно было хватить примерно на 5 часов работы устройства в «офисном» режиме. Но к сожалению, реальная емкость батареи оказалось ниже заявленной раза в два. И еще обнаружился «баг» контроллера – он не умеет нормально учитывать возможность снижения емкости батареи. Сколько задали в настройках – на столько и расчитываем. По мере разрядки батареи драйвер OpenUPS, как я понял, вычисляет текущий заряд по израсходованной энергии (т.е. интегрируя мощность и вычитая полученное значение из исходного жестко прописанного значения полной емкости)… а потом внезапно оказывается, что батарея полностью ушла в ноль. Неудобно. Что с этим делать, я пока не знаю.
Текущий результат
К сожалению, дальше процесс создания затянулся на несколько лет. Свободного времени постоянно не хватало, возникало огромное количество технологических проблем. Большинство этих проблем сводилось к тому, как засунуть огромное количество компонентов в очень компактный корпус. Я изначально хотел спроектировать и изготовить тем или иным способом некоторую общую «плату периферии», на которой будут распаяны все дополнительные компоненты. Но пока что времени на это у меня совершенно не хватает. Поэтому для создания прототипа пришлось в лучших традициях начинающих самодельщиков просто напихать в корпус все возможные готовые платы, которые смогут туда поместиться. В качестве некоторого оправдания могу сказать, что мой старый UMPC был хоть и фабричной сборки, но тоже состоял из большого количества мелких платок.
Вот полный вид устройства снаружи по состоянию на текущий момент. Сбоку виден единственный порт USB (надеюсь, потом их будет больше, но для этого будет нужен дополнительный hub), а также стандартный комбинированный аудиовход/выход 3.5 мм. Еще на этом же ребре расположена кнопка включения устройства. По краям под верхней крышкой видны вентиляционные щели.
Противоположное ребро лучше видно на фото рамки без верхней крышки, показанном выше. На этом ребре расположен разъем HDMI. Рядом с ним на материнской плате располагается разъем LAN, который мне не нужен, и даже откровенно мешает – без него удалось бы сделать конструкцию на несколько миллиметров тоньше. Я не стал делать под него отверстие в корпусе. И разъем питания, который торчит рядом с HDMI, тоже абсолютно лишний и даже вредный в текущей конфигурации. Питание теперь заходит через плату контроллера батареи и далее по проводам, которые припаяны к отверстиям на материнке рядом с ее штатным разъемом. Штатный же разъем надо полностью выпаять, и это – в моих ближайших планах.
Вот так устройство выглядит во включенном состоянии:
Аппаратную клавиатуру пока что сделать не вышло, но я надеюсь все же реализовать этот важный элемент в обозримом будущем. Тогда устройство можно будет использовать по своему первоначальному назначению. Я надеюсь, что клавиатуру удастся разместить над краем материнской платы в самой тонкой части, и устройство примет форм-фактор горизонтального слайдера, так как я и собирался сделать изначально. Статьи про создание самодельных клавиатур на Хабре уже были, так что надеюсь, что я тоже смогу сделать свою клавиатуру аналогичным образом.
А GSM-модуль с поддержкой голосовых вызовов (опять-таки, в виде отдельной готовой платы) я уже попытался установить. Он работал, им можно было пользоваться, но в текущей конфигурации он немного не влез в корпус и торчал наружу примерно буквально на несколько миллиметров. Пока что я его убрал. Если получится немного передвинуть все компоненты – он должен влезть, и у меня будет свой персональный смартфон на базе Core i7.
Основные выводы
Устройство, конечно же, в настоящее время еще совсем «сырое». Мне удалось довести его до мало-мальски работоспособного состояния, но на дальнейшую разработку могут уйти еще годы, если я вообще не заброшу это. Тогда какой же самый главный результат этого проекта, которым я могу поделиться здесь? Я считаю, что это сама концепция схемы «промышленная материнская плата + контроллер OpenUPS или подобный». Такая схема позволяет собрать себе полнофункциональный портативный компьютер под любые нужды даже человеку, очень слабо разбирающемуся в электронике. И если при создании моего конкретного устройства приходилось постоянно бороться с нехваткой пространства для компонентов и идти на компромиссы, то планшет или ноутбук обычных размеров на подобной платформе будут свободны от этих проблем. В них легко поместится любая требуемая периферия. Помнится, некоторое время назад кто-то из хабровчан уже мечтал о «нормальном ноутбуке для работы», жалуясь, как и я, на засилье устройств, пригодных только для просмотра соцсетей. При большом желании он сможет сделать себе «ноутбук мечты» самостоятельно, по тому же принципу, что и мое устройство. А еще подобные компьютеры будут легко поддаваться апгрейду – само собой, можно будет заменить оперативную память и долговременное хранилище, но при желании можно будет поменять даже материнскую плату, если новая плата будет иметь тот же форм-фактор, что и старая.
Напоследок хочется помечтать, что кто-нибудь когда-нибудь организует стартап по разработке универсального «конвертера промышленных материнских плат в ноутбучные» — платы, на которой будут присутствовать ACPI-совместимый контроллер батареи, аналогичный OpenUPS, и некоторая стандартно-ноутбучная периферия. В первую очередь, там должны присутствовать беспроводные интерфейсы, возможно еще контроллер сенсорной панели (если он будет достаточно универсальным, чтобы к нему можно было подключать панели различных производителей и различных стандартов). Создание подобного устройства позволило бы обычным любителям самоделок разрабатывать свои собственные ноутбуки и планшеты. Они могли бы разбавить огромное количество существующих сегодня однотипных устройств, похожих друг на друга как две капли воды.
Кто возьмется за такой проект?