Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр
Поднимайтесь как можно выше по дереву, собирайте цветы и дарите их близким.
Вас ждут уникальные награды и 22 выгодных промокода!

Пикаджамп

Аркады, Казуальные, На ловкость

Играть

Топ прошлой недели

  • AlexKud AlexKud 38 постов
  • SergeyKorsun SergeyKorsun 12 постов
  • SupportHuaport SupportHuaport 5 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая кнопку «Подписаться на рассылку», я соглашаюсь с Правилами Пикабу и даю согласие на обработку персональных данных.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня

Мобильные телефоны + Своими руками

С этим тегом используют

Телефон Смартфон Android Гаджеты Вертикальное видео Электроника iPhone Рукоделие без процесса Ручная работа Рукоделие Рукоделие с процессом Творчество Хобби Все
10 постов сначала свежее
3441
monobogdan
monobogdan
Посты о ремонте и моддинге ретрогаджетов.
TECHNO BROTHER
4 месяца назад

ФСБ-телефон российской разработки, о котором никто не знал…⁠⁠

ФСБ-телефон российской разработки, о котором никто не знал… Опрос, Телефон, Гаджеты, Покупка, ФСБ, Импортозамещение, Мобильные телефоны, Своими руками, Обзор, Железо, Микроконтроллеры, Длиннопост, Видео, YouTube, Видео ВК

...и нет, статья не унылый кликбейт, сегодня у нас действительно пойдет речь о довольно уникальном телефоне, который разработали в России специально для госслужб.

Иногда мне в руки попадают весьма интересные и диковинные гаджеты, порой выпускающиеся в тысячных, а то и штучных экземплярах. Когда мне предложили простенькую раскладушку, с виду точь в точь повторяющую Samsung C3520, я сначала подумал что это бюджетный китайский новодельный телефон. Однако, когда я увидел, что же у него находится под аккумулятором, я понял что с ним всё не так просто и решил его разобрать. Моему удивлению не было предела, так что если и вам интересно — добро пожаловать под кат!

❯ Предисловие

Пожалуй, сразу стоит расставить точки над i, дабы не привлечь на свою голову проблем, поскольку телефон действительно предназначается для использования в спец. службах. Заранее скажу, что статья несет исключительно познавательный характер. Телефон в статье списан в утиль, на нем нет никаких чувствительных данных и его можно назвать нерабочим — ну это так, на всякий случай :)

ФСБ-телефон российской разработки, о котором никто не знал… Опрос, Телефон, Гаджеты, Покупка, ФСБ, Импортозамещение, Мобильные телефоны, Своими руками, Обзор, Железо, Микроконтроллеры, Длиннопост, Видео, YouTube, Видео ВК

Как две капли воды...

Недавно мне написал подписчик, который пожелал остаться анонимным и предложил подарить весьма интересные девайсы, среди которых была легендарная нокла TV E72 с телевизором, китайская нокла-сонерик, красивый корпус для PSP и некий телефон Маском Н2. Сначала я подумал что это просто очень дешевый китайский телефон на стандартной медиатековской или спредтрумовской платформе, коих сегодня на рынке десятки тысяч, однако когда мне скинули фотографию что у него находится под задней крышкой, то я сразу понял, что аппарат не так прост, как кажется.

ФСБ-телефон российской разработки, о котором никто не знал… Опрос, Телефон, Гаджеты, Покупка, ФСБ, Импортозамещение, Мобильные телефоны, Своими руками, Обзор, Железо, Микроконтроллеры, Длиннопост, Видео, YouTube, Видео ВК

Я сразу же заметил внешний GSM-радиомодуль Telit GE866-Quad в корпусе LGA, который был припаян "бутербродным" способом на основную плату. Модуль является родственным SIM800, который в узких кругах embedded-разработчиков известен как очень популярное решение для добавления поддержки GSM в своё устройство. Однако сам по себе такой радиомодуль обычно не может выполнять полноценные функции телефона: обрабатывать ввод с кнопок, выводить картинку на дисплей или, например, заряжать аккумулятор. Поэтому в паре с ним должен быть микроконтроллер или в контексте конкретного этого телефона — центральный процессор.

ФСБ-телефон российской разработки, о котором никто не знал… Опрос, Телефон, Гаджеты, Покупка, ФСБ, Импортозамещение, Мобильные телефоны, Своими руками, Обзор, Железо, Микроконтроллеры, Длиннопост, Видео, YouTube, Видео ВК

Дабы разобраться, почему этот телефон представляет гиковский интерес, давайте посмотрим на схему типичного бюджетного кнопочника. В нулевых годах, мобильный телефон был достаточно сложным устройством с большим количеством различных чипов, каждый из которых выполнял свою функцию. Даже в такой с виду простой звонилке, как Nokia 1100, под капотом скрывается сложный контроллер питания UEM, полноценная ARM-система на кристалле UPP со своей оперативной и флэш-памятью, а также радиотракт от компании Infineon. Почти каждый производитель телефонов писал свою собственную прошивку с нуля с разным набором фич — в одних были просто функции "звонилки", в других можно было запускать Java-приложения, а в третьих телефоны могли рисовать 3D-графику в реальном времени без какого-либо GPU!

ФСБ-телефон российской разработки, о котором никто не знал… Опрос, Телефон, Гаджеты, Покупка, ФСБ, Импортозамещение, Мобильные телефоны, Своими руками, Обзор, Железо, Микроконтроллеры, Длиннопост, Видео, YouTube, Видео ВК

UEM в Nokia 1100

В наше время высоких технологий стало возможным реализовать целый телефон на одной-единственной системе на кристалле, где в одном чипе есть всё — и зарядка, и формирование напряжений, и радиомодуль, и центральный процессор, что удешевило серийные телефоны до цены буквально в 1.000 рублей. Но вот незадача, с удешевлением урезался и функционал устройств. Большинство таких телефонов работает на одной и той же прошивке с минорными изменениями, они ничем друг от друга не отличаются и на них даже нельзя установить сторонние программы! Большинство современных кнопочных телефонов построены на базе одной и той же платформы — MediaTek MT626x или Unisoc SC65xx для 2G/SC9xxx для LTE.

ФСБ-телефон российской разработки, о котором никто не знал… Опрос, Телефон, Гаджеты, Покупка, ФСБ, Импортозамещение, Мобильные телефоны, Своими руками, Обзор, Железо, Микроконтроллеры, Длиннопост, Видео, YouTube, Видео ВК

И тут, как гром среди ясного неба, некая компания Маском выпускает Телефон-Н2, сертифицированный для использования в госслужбах и ФСБ. На закрытых заседаниях обычные телефоны использовать нельзя из-за всяких допусков, секретностей и тому подобного, поэтому дабы исключить возможные закладки от производителей в виде скрытой отправки СМС, производитель решил разработать свою собственную прошивку для телефона и более того, построить сам телефон на базе очень нестандартной для серийного устройства аппаратной платформе.

❯ Что в коробке?

Телефон поставляется в картонной коробке на манер изделий времен СССР: простейший дизайн, сертификационный номер, а также серийный, который исчисляется в тысячах. На всякий случай, "серийник" своего устройства я замазал.

ФСБ-телефон российской разработки, о котором никто не знал… Опрос, Телефон, Гаджеты, Покупка, ФСБ, Импортозамещение, Мобильные телефоны, Своими руками, Обзор, Железо, Микроконтроллеры, Длиннопост, Видео, YouTube, Видео ВК

Внутри лежит сам телефон, подсказка о том, как пользоваться сим-лотком, сертификация ОКБ а также довольно объёмная инструкция-талмуд которую даже интересно полистать — она сильно отличается от других серийных телефонов. Забавно что несмотря на подсказку, сим-лоток всё же умудрились сломать — это и стало причиной списания телефона в утиль и выбрасывания на свалку (а затем и попадания ко мне).

ФСБ-телефон российской разработки, о котором никто не знал… Опрос, Телефон, Гаджеты, Покупка, ФСБ, Импортозамещение, Мобильные телефоны, Своими руками, Обзор, Железо, Микроконтроллеры, Длиннопост, Видео, YouTube, Видео ВК
ФСБ-телефон российской разработки, о котором никто не знал… Опрос, Телефон, Гаджеты, Покупка, ФСБ, Импортозамещение, Мобильные телефоны, Своими руками, Обзор, Железо, Микроконтроллеры, Длиннопост, Видео, YouTube, Видео ВК

В талмуде описана некая интересная фича от прослушки — если телефон открыт и светодиод не горит, то микрофон подключен к радиотракту, если закрыт, то физически отключается. Фишка, без шуток, довольно классная и была бы актуальна на Android-смартфонах с умными чехлами!

ФСБ-телефон российской разработки, о котором никто не знал… Опрос, Телефон, Гаджеты, Покупка, ФСБ, Импортозамещение, Мобильные телефоны, Своими руками, Обзор, Железо, Микроконтроллеры, Длиннопост, Видео, YouTube, Видео ВК

Хотя в инструкции и запрещена разборка устройства, мы говорим о списанном девайсе который уже ушел "на металл".

Сам телефон, как я уже говорил в начале статьи, внешне — точная копия Samsung C3520. Оригинальный телефон вышел в 2011 году и работал на аппаратной платформе от компании Broadcom с проприетарной оболочкой Samsung.

ФСБ-телефон российской разработки, о котором никто не знал… Опрос, Телефон, Гаджеты, Покупка, ФСБ, Импортозамещение, Мобильные телефоны, Своими руками, Обзор, Железо, Микроконтроллеры, Длиннопост, Видео, YouTube, Видео ВК

Однако его корпус по каким-то причинам стал очень популярным у китайцев и в нём выпускались бюджетные кнопочники, не имеющие ничего общего с оригиналом и дальше. Но конкретно Маском Н2 хоть и косит под "нонейм-китайца", на деле им не является! Давайте разберем телефон и узнаем почему!

❯ Разбираем

Разбирается телефон точно также, как и оригинал — откручиваем несколько винтиков по периметру устройства и снимаем заднюю часть корпуса. После разборки, нашему взору открывается материнская плата устройства. И сразу в глаза бросается довольно небольшая плотность монтажа элементов:

ФСБ-телефон российской разработки, о котором никто не знал… Опрос, Телефон, Гаджеты, Покупка, ФСБ, Импортозамещение, Мобильные телефоны, Своими руками, Обзор, Железо, Микроконтроллеры, Длиннопост, Видео, YouTube, Видео ВК

В верхней части платы у нас расположился чип зарядки литий-ионных аккумуляторов в лице классического TP4056, драйвер LCD-подсветки, предположительно линейный регулятор на 3.3В для запитывания микроконтроллера (в радиотракте есть свой собственный DC-DC, поэтому его питание можно повесить через ключ напрямую от аккумулятора), а также несколько неизвестных элементов.

ФСБ-телефон российской разработки, о котором никто не знал… Опрос, Телефон, Гаджеты, Покупка, ФСБ, Импортозамещение, Мобильные телефоны, Своими руками, Обзор, Железо, Микроконтроллеры, Длиннопост, Видео, YouTube, Видео ВК

А с нижней, под защитным экраном, скрывается микроконтроллер в лице STM32F427 с ARM-ядром Cortex-M3, способном работать на частоте до 180МГц, 2Мб флэш-памяти и 256Кб оперативной памяти. До этого момента я ни разу не видел, чтобы кто-то использовал микроконтроллер общего назначения в мобильном телефоне — это в целом очень диковинное решение. Обычно используют ASIC'и или полноценные системы на кристалле, но чтобы серийный телефон на STM32...

Рядом с процессором есть несколько тестпоинтов, скорее всего один из них переводит телефон в режим прошивки. Однако по софтовой части телефон я колупать не стал — думаю, сами понимаете почему.

ФСБ-телефон российской разработки, о котором никто не знал… Опрос, Телефон, Гаджеты, Покупка, ФСБ, Импортозамещение, Мобильные телефоны, Своими руками, Обзор, Железо, Микроконтроллеры, Длиннопост, Видео, YouTube, Видео ВК

С обратной стороны у нас расположились кнопки устройства и копирайт — плата произведена в 2019 году. Судя по информации в сети, телефон производится как минимум с 2017 года и до сих пор используется в госслужбах.

ФСБ-телефон российской разработки, о котором никто не знал… Опрос, Телефон, Гаджеты, Покупка, ФСБ, Импортозамещение, Мобильные телефоны, Своими руками, Обзор, Железо, Микроконтроллеры, Длиннопост, Видео, YouTube, Видео ВК

Пожалуй, насчёт конструктива и инженерных решений можно смело сказать что телефон простой как табуретка, или, например, АК-47. В телефоне фактически нет чипов в BGA-корпусе - только QFN, QFP и LGA, которые при желании можно перепаять чуть ли не советским паяльником (с хорошим флюсом, конечно-же). Все запчасти доступны в свободной продаже, обратно трассировать плату в виде схемы можно буквально за пару дней. Единственный вопрос - это прошивка, я не трогал JTAG в микроконтроллере, но думаю производитель заблокировал возможность её свободной вычитки.

ФСБ-телефон российской разработки, о котором никто не знал… Опрос, Телефон, Гаджеты, Покупка, ФСБ, Импортозамещение, Мобильные телефоны, Своими руками, Обзор, Железо, Микроконтроллеры, Длиннопост, Видео, YouTube, Видео ВК

Единственное потенциально больное место телефона - это TP4056, который очень любит сильно греться и сгорать при зарядке с силой тока выше 0.6-0.7А. Я не смотрел, какой резистор стоит на пине регулировки выходного тока, но судя по нагреву телефона там что-то около ~0.4А. Ну что ж, давайте соберем телефон, включим его и посмотрим что у нас здесь по программной части!

❯ Включаем

При включении телефона нас встречает логотип компании-производителя. Поскольку внешнего контроллера питания здесь нет, процессор запитан даже когда телефон полностью выключен, просто находится в режиме Deep Sleep. Так что при долговременном хранении, АКБ лучше вытащить.

ФСБ-телефон российской разработки, о котором никто не знал… Опрос, Телефон, Гаджеты, Покупка, ФСБ, Импортозамещение, Мобильные телефоны, Своими руками, Обзор, Железо, Микроконтроллеры, Длиннопост, Видео, YouTube, Видео ВК

Рабочий стол телефона максимально простой и визуально повторяет классический интерфейс телефонов Nokia. К сожалению, поменять обои или назначить кастомные действия на кнопки нельзя.

ФСБ-телефон российской разработки, о котором никто не знал… Опрос, Телефон, Гаджеты, Покупка, ФСБ, Импортозамещение, Мобильные телефоны, Своими руками, Обзор, Железо, Микроконтроллеры, Длиннопост, Видео, YouTube, Видео ВК

Главное меню телефона состоит всего из 4х-пунктов: звонки, контакты, настройки и СМС. С одной стороны всё что нужно для звонилки, с другой хочется хотя-бы "змейку" и FM-радио. А ведь если бы телефон был доступен на массовом рынке и под него можно было писать свои программы - только представьте сколько полезных приложений уже могли бы реализовать! Не уверен насчет модемов Telit, но SIMCOM точно умеет выходить в сеть и отправлять http/https-запросы. Уже это дало бы возможность реализовать клиенты мессенджеров и всякие QoL-штучки по типу прогноза погоды или RSS-ленты!

ФСБ-телефон российской разработки, о котором никто не знал… Опрос, Телефон, Гаджеты, Покупка, ФСБ, Импортозамещение, Мобильные телефоны, Своими руками, Обзор, Железо, Микроконтроллеры, Длиннопост, Видео, YouTube, Видео ВК

Контакты здесь самые простые: телефон и имя. Есть возможность импорта контактов с сим-карты и синхронизации с ПК, однако софта для этого в свободном доступе нет.

ФСБ-телефон российской разработки, о котором никто не знал… Опрос, Телефон, Гаджеты, Покупка, ФСБ, Импортозамещение, Мобильные телефоны, Своими руками, Обзор, Железо, Микроконтроллеры, Длиннопост, Видео, YouTube, Видео ВК

СМС, судя по всему, хранятся в радиомодуле и телефон каждый раз запрашивает их, показывая окно "подождите". Ну, сим-слот у нас сломан, поэтому потестить возможность отправки СМСок не выйдет!

ФСБ-телефон российской разработки, о котором никто не знал… Опрос, Телефон, Гаджеты, Покупка, ФСБ, Импортозамещение, Мобильные телефоны, Своими руками, Обзор, Железо, Микроконтроллеры, Длиннопост, Видео, YouTube, Видео ВК

В настройках есть самые необходимые пункты - время и дата, будильник, настройки энергосбережения, а также настройки мелодий. Полифония довольно неплохая, но мелодии очень простенькие, хоть и явно имеют знакомый мотив. Может кто-то из читателей сможет их угадать?

Видео на ютубе:

И в ВК для тех, кто не хочет включать впн:

В целом, по софтовой части телефон очень простой. Однако опять же, будь он хоть сколь-либо массовым - у него были бы довольно большие перспективы к моддинигу и разработке кастомного софта сообществом, поскольку железо здесь по меркам кнопочного телефона... вполне ничего! Разве что ОЗУ маловато...

❯ Заключение

Я понимаю, что данную статью будут читать не только мобильные гики и embedded-разработчики, которые сразу поймут в чём фишка устройства, но и просто заинтересованные в теме российских разработок читатели. Поэтому давайте подытожим нашу сегодняшнюю статью:

  • Программная часть телефона разработана в России (за исключением прошивки модема). Ничего удивительного в этом нет — когда-то в РФ были R&D-центры Motorola Mobility, мобильного подразделения LG и Elcoteq (крупный ODM и OEM производитель, один из подрядчиков Nokia и Siemens).

  • Плата телефона спроектирована и разведена в России. Насчёт производства и монтажа компонентов не уверен, но на сайте компании написано что у неё есть мощности для производства плат.

  • Корпус скорее всего отлит в Китае. Радиотракт, чарджер, ключи и микроконтроллер — иностранные.

То есть, можно сказать что телефон разработан примерно по такому же принципу, по какому раньше делали телефоны Sagem — закупается готовый модем (TI Calypso), пишется прошивка и на базе программно-аппаратной платформы разрабатываются конкретные модели устройств. Конечно такое крайне маловероятно, но сама концепция открытого кнопочного серийного мобильного телефона, поддающегося моддингу, была бы очень интересна сообществу гиков и любителей "простых" телефонов. Может, Маском захочет сделать гражданскую версию с возможностью разработки кастомных приложений?

ФСБ-телефон российской разработки, о котором никто не знал… Опрос, Телефон, Гаджеты, Покупка, ФСБ, Импортозамещение, Мобильные телефоны, Своими руками, Обзор, Железо, Микроконтроллеры, Длиннопост, Видео, YouTube, Видео ВК

Мечтай...

Если вам интересна тематика ремонта, моддинга и программирования для гаджетов прошлых лет, подписывайтесь на мой Telegram-канал "Клуб фанатов балдежа", куда я выкладываю бэкстейджи статей и видео, полезные заметки и иногда немножко щитпоста. Если вам интересны мои видео той же тематики — предлагаю подписаться на мой YouTube-канал.

Ваша искренняя реакция?
Всего голосов:
Что думаете об устройстве из статьи?
Всего голосов:

Очень важно! Разыскиваются девайсы для будущих статей!

Друзья! Для подготовки статей с разработкой самопальных игрушек под необычные устройства, объявляется розыск телефонов и консолей! В 2000-х годах, китайцы часто делали дешевые телефоны с игровым уклоном — обычно у них было подобие геймпада (джойстика) или хотя бы две кнопки с верхней части устройства, выполняющие функцию A/B, а также предустановлены эмуляторы NES/Sega. Фишка в том, что на таких телефонах можно выполнять нативный код и портировать на них новые эмуляторы, чем я и хочу заняться и написать об этом подробную статью и записать видео! Если у вас есть телефон подобного формата и вы готовы его задонатить или продать, пожалуйста напишите мне в Telegram (@monobogdan) или в комментарии. Также интересуют смартфоны-консоли на Android (на рынке РФ точно была Func Much-01), там будет контент чуточку другого формата :)

ФСБ-телефон российской разработки, о котором никто не знал… Опрос, Телефон, Гаджеты, Покупка, ФСБ, Импортозамещение, Мобильные телефоны, Своими руками, Обзор, Железо, Микроконтроллеры, Длиннопост, Видео, YouTube, Видео ВК

А также я ищу старые (2010-2014) подделки на брендовые смартфоны Samsung, Apple и т. п. Они зачастую работают на весьма интересных чипсетах и поддаются хорошему моддингу, парочку статей уже вышло, но у меня ещё есть идеи по их моддингу! Также может у кого-то остались самые первые смартфоны Xiaomi (серии Mi), Meizu (ещё на Exynos) или телефоны Motorola на Linux (например, EM30, RAZR V8, ROKR Z6, ROKR E2, ROKR E5, ZINE ZN5 и т.п, о них я хотел бы подготовить специальную статью и видео т. к. на самом деле они работали на очень мощных для своих лет процессорах, поддавались серьезному моддингу и были способны запустить даже Quake!). Всем большое спасибо за донаты!


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

Показать полностью 22 2 2
[моё] Опрос Телефон Гаджеты Покупка ФСБ Импортозамещение Мобильные телефоны Своими руками Обзор Железо Микроконтроллеры Длиннопост Видео YouTube Видео ВК
467
81
monobogdan
monobogdan
Посты о ремонте и моддинге ретрогаджетов.
TECHNO BROTHER
8 месяцев назад

Релизнул видос о том, как я портировал эмулятор денди и Wolfenstein3D на промышленный терминал⁠⁠

В видосе розыгрыш двух таких красавцев. А если кто то не любит смотреть, но любит читать, есть текстовая версия:

[моё] Смартфон Розыгрыш Гаджеты Своими руками Программирование Покупка Мобильные телефоны Видео YouTube
7
372
monobogdan
monobogdan
Посты о ремонте и моддинге ретрогаджетов.
Android
11 месяцев назад

Как делают смартфоны: смотрим на редкий девкит процессора Qualcomm Snapdragon 410⁠⁠

Как делают смартфоны: смотрим на редкий девкит процессора Qualcomm Snapdragon 410 Смартфон, Покупка, Android, Гаджеты, Одноплатный компьютер, Qualcomm, Snapdragon, Своими руками, Электроника, Мобильные телефоны, Длиннопост

Друзья! А вы когда нибудь задумывались о том, как делают смартфоны и планшеты? Какие инструменты для этого используются и откуда берутся материнские платы разных размеров и форм-факторов, но с таким похожим расположением элементов? Недавно мне удалось приобрести девкит aka evaluation board популярного в прошлом среднебюджетного чипсета Qualcomm Snapdragon 410 за 4.000 рублей и заценить его, что называется, в деле. Чем он отличается от одноплатного компьютера, из чего он состоит и что умеет — читайте в сегодняшней краткой, но достаточно подробной статье!

❯ Что такое девкит?


Если вы крутой и продвинутый инженер, то ответ на вопрос что такое evaluation board наверняка знаете и сами. Однако сегодняшний материал будет написан в эдаком научпоп-стиле «для всех», поэтому строго в комментах не судите — старался всё расписать максимально доступно для рядового читателя!

Как делают смартфоны: смотрим на редкий девкит процессора Qualcomm Snapdragon 410 Смартфон, Покупка, Android, Гаджеты, Одноплатный компьютер, Qualcomm, Snapdragon, Своими руками, Электроника, Мобильные телефоны, Длиннопост
  • Чипсет: сердце устройства, фактически процессор. Однако от процессоров общего назначения мобильные чипсеты отличаются тем, что в одном кристалле помимо ARM-ядер также находятся вспомогательные модули — контроллер памяти и eMMC/UFS, графический ускоритель, DSP-модуль для обработки изображения с камер, аудио-тракт, отвечающий за вывод звука через встроенный ЦАП или через протокол i2s на внешний кодек, а также модуль управления пинами общего назначения (GPIO) и общения с внешними устройствами с помощью шин SPI и I2C.

  • BT/Wi-Fi/GPS/FM радиотракт: обычно один комбо-чип, объединяющий в себе все указанные технологии беспроводной передачи данных. Модуль подключён к процессору напрямую, ранее — через SDIO, сейчас с помощью иных аппаратных шин. Вокруг чипа стоит обвязка — усилители сигнала и различные небольшие компоненты, необходимые для функционироавния тракта.

Как делают смартфоны: смотрим на редкий девкит процессора Qualcomm Snapdragon 410 Смартфон, Покупка, Android, Гаджеты, Одноплатный компьютер, Qualcomm, Snapdragon, Своими руками, Электроника, Мобильные телефоны, Длиннопост

GSM радиотракт: также известный как модем. Именно от него зависит, какие стандарты связи и наборы частот будет поддерживать устройство. Основой модема служит бейсбенд — специальный DSP-процессор со своей собственной прошивкой, который занимается измерением уровня сигнала, выбором вышки и коммуникацией с ней, а также обработкой AT-команд, которые посылаются чипсетом при совершении звонков, обработке SMS и т. п. Также бейсбенд занимается декодированием звука. К бейсбенду в пару идет антенный усилитель и свитч, обычно в одном или нескольких чипах (в зависимости от набора поддерживаемых стандартов).

Как делают смартфоны: смотрим на редкий девкит процессора Qualcomm Snapdragon 410 Смартфон, Покупка, Android, Гаджеты, Одноплатный компьютер, Qualcomm, Snapdragon, Своими руками, Электроника, Мобильные телефоны, Длиннопост

Контроллер питания: этот чип выполняет сразу несколько важных ролей, связанных с питанием устройства — схема зарядки (чарджер) литий-ионных АКБ, многоканальный ШИМ-контроллер, способный выдавать несколько уровней напряжений (обычно называемых Power Rail'ами. Типичные напряжения в смартфоне/планшете — ~0.8V питание ядер процессора, 1.8V — питание логики, 3.3V — питание контроллера тачскрина/дисплея, 5V — напрямую никуда не поступает, бывает лишь на входе USB). К КП всегда идёт обвязка в виде мелких SMD-компонентов и ключей. В редких случаях (привет Unisoc) и его умудряются запихнуть в чипсет!

Звучит сложно? После практики ремонта и моддинга смартфонов всё значительно проще :)
Однако спроектировать такую большую систему «на коленке» сложно и для разработчиков смартфонов/планшетов существуют специальные платы, называемые evaluation board или понятным любому русскому человеку словом девкит.

Как делают смартфоны: смотрим на редкий девкит процессора Qualcomm Snapdragon 410 Смартфон, Покупка, Android, Гаджеты, Одноплатный компьютер, Qualcomm, Snapdragon, Своими руками, Электроника, Мобильные телефоны, Длиннопост

Dragonboard 800

На таких платах распаяно всё необходимое для работы устройства: процессор, память, радиотракт, джек для звука и микрофона, чарджер для АКБ, USB и конечно-же, JTAG для отладки с гребенкой, на которую выведены пины процессора. Кроме того, на девкиты часто устанавливаются уже готовые дисплеи и тачскрины, а процессор с ОЗУ и памятью нередко выносят в отдельные системы на модуле (SoM, о серийном планшете с съемным процессором читайте в моей отдельной статье). Делается это для возможности быстрой замены спаленного проца (ну, в конце-концов, не все инженеры могут сдуть и поставить процессор в BGA-корпусе) и в некоторой степени для упрощения дизайна самой платы (поскольку на SoM есть лишь самая необходимая обвязка). То есть сами девкиты — это формально две платы, где основная представляет из себя лишь набор интерфейсов и гребенки пинов с процессора!

Как делают смартфоны: смотрим на редкий девкит процессора Qualcomm Snapdragon 410 Смартфон, Покупка, Android, Гаджеты, Одноплатный компьютер, Qualcomm, Snapdragon, Своими руками, Электроника, Мобильные телефоны, Длиннопост

На самом деле, evaluation kit'ы не шибко отличаются от современных одноплатников — единственное отличие в габаритах (одноплатники в разы меньше и подходят для готовых устройств), доступных шинах и GPIO: хотя и здесь есть интересные устройства типа Olimex A20 SoM, который выводит почти все пины с AllWinner A20. Так что можно смело сказать, что одноплатники отпочковались от девкитов и являются их куда более дешевыми, а главное поддерживаемыми коммьюнити аналогами.

Как делают смартфоны: смотрим на редкий девкит процессора Qualcomm Snapdragon 410 Смартфон, Покупка, Android, Гаджеты, Одноплатный компьютер, Qualcomm, Snapdragon, Своими руками, Электроника, Мобильные телефоны, Длиннопост

Недавно мне удалось купить девкит Snapdragon 410 под названием Variscite Dart SD410. Это, конечно, не самый крутой доступный девкит (у него нет GSM-части), но тем не менее это полноценная плата с собственным столом, дисплеем, тачскрином и различными образами ОС.
Нашёл я его на известной онлайн-барахолке, человек хотел сделать из него игровую консоль, но не сложилось. Так и выставил за 5.000 рублей. Немножко торга и вот — девкит уже у меня, а я как большой ценитель различных редких и интересных одноплатников и девкитов не могу нарадоваться :)

Давайте же распакуем его и познакомимся с ним поближе!

❯ Распаковка


Поставляется девкит в довольно большой коробочке с кратким мануалом, а также блоком питания. Для чуть более старых девкитов, например Idea6410 на базе Samsung S3C6410, характерны были DVD-диски в комплекте с лицензионной (?) Visual Studio 2005, Platform Builder с Windows CE и, конечно-же, BSP.

Как делают смартфоны: смотрим на редкий девкит процессора Qualcomm Snapdragon 410 Смартфон, Покупка, Android, Гаджеты, Одноплатный компьютер, Qualcomm, Snapdragon, Своими руками, Электроника, Мобильные телефоны, Длиннопост

Сама плата прикручена к специальному «столу», дабы всё нужное не висело «на соплях». Несмотря на относительно большие размеры, девкит вполне можно превратить и в готовое устрйоство, размерами близкими к 7-дюймовому планшету. Делаем свой Nintendo Switch на Снапе!? :)

Как делают смартфоны: смотрим на редкий девкит процессора Qualcomm Snapdragon 410 Смартфон, Покупка, Android, Гаджеты, Одноплатный компьютер, Qualcomm, Snapdragon, Своими руками, Электроника, Мобильные телефоны, Длиннопост

С верхней стороны платы расположен коннектор камеры, гребенка для JTAG, I2C/SPI и куча GPIO. Также сверху есть батарейка для поддержания работы RTC и три кнопки, характерных для Android (назад, домой и включение), а также перемычки на переключение режима загрузки. SD410 умеет грузиться с MicroSD, eMMC и… USB! Вот уж неожиданно для устройства на «снапе»!

Как делают смартфоны: смотрим на редкий девкит процессора Qualcomm Snapdragon 410 Смартфон, Покупка, Android, Гаджеты, Одноплатный компьютер, Qualcomm, Snapdragon, Своими руками, Электроника, Мобильные телефоны, Длиннопост

По центру расположена та самая съёмная система на модуле с процессором и ОЗУ на борту. В качестве чипсета выступает APQ8016E с eMMC производства Samsung, на плате SoM также можно увидеть радиотракт Wi-Fi/BT/GPS и с обратной стороны контроллер питания. Фактически — это минимально необходимый набор для работы планшета или смартфона, остальная плата — лишь разведенная периферия!

Как делают смартфоны: смотрим на редкий девкит процессора Qualcomm Snapdragon 410 Смартфон, Покупка, Android, Гаджеты, Одноплатный компьютер, Qualcomm, Snapdragon, Своими руками, Электроника, Мобильные телефоны, Длиннопост
Как делают смартфоны: смотрим на редкий девкит процессора Qualcomm Snapdragon 410 Смартфон, Покупка, Android, Гаджеты, Одноплатный компьютер, Qualcomm, Snapdragon, Своими руками, Электроника, Мобильные телефоны, Длиннопост

Снизу платы разведен сетевой контроллер для LAN, а также USB-порты и 3.5мм разъемы Jack для подключения микрофона и динамиков. Есть также пятачки для ручной пайки динамиков и некоторых иных элементов.

Как делают смартфоны: смотрим на редкий девкит процессора Qualcomm Snapdragon 410 Смартфон, Покупка, Android, Гаджеты, Одноплатный компьютер, Qualcomm, Snapdragon, Своими руками, Электроника, Мобильные телефоны, Длиннопост

С левой стороны платы расположен дисплей с емкостным тачскрином. Меня сразу удивила надпись LVDS, поскольку в мобильных устройствах гораздо более характерен MIPI DSI (схожий протокол), однако сняв и осмотрев дисплейный модуль я убедился, что Variscite изготовили переходную плату с TTL RGB на LVDS с помощью внешнего скалера. Зачем? Я и сам не знаю. Но с обратной стороны платы выведены пины DSI напрямую для подключения дисплея с мобильных гаджетов.

Как делают смартфоны: смотрим на редкий девкит процессора Qualcomm Snapdragon 410 Смартфон, Покупка, Android, Гаджеты, Одноплатный компьютер, Qualcomm, Snapdragon, Своими руками, Электроника, Мобильные телефоны, Длиннопост

Справа мы видим свитч питания и набор пользовательских светодиодов, которыми можно поморгать. Кнопочки, кстати, тоже отдельные GPIO экспортированные в систему и их можно использовать для своих нужд.

Давайте же запустим плату!

❯ Запускаем


Для функционирования платы необходимо как минимум две вещи. Первая — исходный код ядра. Так уж получилось, что далеко не все чипсеты поддерживают Mainline-ядро Linux и используют свои форки, пока ещё не объединённые с основной веткой. Вторая называется BSP (Board Support Package) — пакет для поддержки системой определенной платы. В случае Linux, в BSP содержится конфиг сборки ядра, device-tree или machine-файлы (если ядро не мейнлайн и без поддержки dtb) с описанием подключенных к плате устройств и конечно-же сами драйвера для дополнительной периферии (например контроллера дисплея).

Чтобы получить образы системы, нужно регистрироваться на сайте вендора и заходить на приватный FTP… но у меня такой возможности нет, поскольку девайс я покупал с рук. Но продавец выслал мне BSP с recovery-образами двух систем: Android и Yocto Linux.

Android уже был предустановлен на eMMC и здесь всё в целом стандартно: обычная система версии 7.1, AOSP, но с различным тестовым и презентационным софтом от Qualcomm. В целом, это уже фактически готовый самый обычный Android-планшет, только с внешней гребенкой и питающийся только от 5В:

Как делают смартфоны: смотрим на редкий девкит процессора Qualcomm Snapdragon 410 Смартфон, Покупка, Android, Гаджеты, Одноплатный компьютер, Qualcomm, Snapdragon, Своими руками, Электроника, Мобильные телефоны, Длиннопост
Как делают смартфоны: смотрим на редкий девкит процессора Qualcomm Snapdragon 410 Смартфон, Покупка, Android, Гаджеты, Одноплатный компьютер, Qualcomm, Snapdragon, Своими руками, Электроника, Мобильные телефоны, Длиннопост

Гораздо более интересной выглядит установка Linux. Образы поставляются в виде прошивки для fastboot, которые шьются буквально одной кнопкой. Сначала нужно ввести плату в режим fastboot: делается это включением платы с зажатой кнопкой «назад». Затем распаковываем архив с Yocto Linux и выбираем нужный образ — есть десктопный, консольный и с оконным менеджером Weston. Я выбрал последний: распаковываем gz-архив и редактируем скрипт прошивки, дабы он брал образ rootfs с weston:

Как делают смартфоны: смотрим на редкий девкит процессора Qualcomm Snapdragon 410 Смартфон, Покупка, Android, Гаджеты, Одноплатный компьютер, Qualcomm, Snapdragon, Своими руками, Электроника, Мобильные телефоны, Длиннопост

После этого запускаем процесс прошивки, ждём секунд 30:

Как делают смартфоны: смотрим на редкий девкит процессора Qualcomm Snapdragon 410 Смартфон, Покупка, Android, Гаджеты, Одноплатный компьютер, Qualcomm, Snapdragon, Своими руками, Электроника, Мобильные телефоны, Длиннопост

И у нас есть полноценный Linux как на одноплатнике!

Как делают смартфоны: смотрим на редкий девкит процессора Qualcomm Snapdragon 410 Смартфон, Покупка, Android, Гаджеты, Одноплатный компьютер, Qualcomm, Snapdragon, Своими руками, Электроника, Мобильные телефоны, Длиннопост


❯ Заключение


Ну что друзья, в сегодняшнем материале мы с вами рассмотрели такую интересную систему на модуле. Надеюсь, вам было интересно! А с какими интересными девбордами и чипсетами работали вы?

Друзья, если у вас есть похожие девкиты или просто одноплатники на каких-то интересных чипсетах типа древних самсунгов (времен S5PC), OMAP'ов, i.MX и т. п. и вам они не особо нужны — я готов рассмотреть их покупке. Особенно интересно было бы поколупать такой легендарный процессор, как Intel PXA (или его продолжателя в лице Marvel PXA) — киты с ним в свое время было достать несложно. Пишите в личку в ТГ (@monobogdan) :)

Кстати, если у кого-то из читателей есть ненужные устройства (в том числе с косяками) или дешевые китайские подделки на айфоны/айпады/макбуки и другие брендовые девайсы будучи нерабочими, тормозящими, или окирпиченными и вам не хотелось бы выкидывать их на свалку, а наоборот, отдать их в хорошие руки и увидеть про них статью — пишите мне в Telegram или в комментах! Готов в том числе и купить их. Особенно ищу донора дисплея на китайскую реплику iPhone 11: мой ударник, контроллер дисплея калится и изображения нет :(

Как делают смартфоны: смотрим на редкий девкит процессора Qualcomm Snapdragon 410 Смартфон, Покупка, Android, Гаджеты, Одноплатный компьютер, Qualcomm, Snapdragon, Своими руками, Электроника, Мобильные телефоны, Длиннопост

Статья подготовлена при поддержке TimeWeb Cloud. Подписывайтесь на меня и @Timeweb.Cloud чтобы не пропускать новые статьи каждую неделю!

Показать полностью 19
[моё] Смартфон Покупка Android Гаджеты Одноплатный компьютер Qualcomm Snapdragon Своими руками Электроника Мобильные телефоны Длиннопост
22
5670
monobogdan
monobogdan
1 год назад
TECHNO BROTHER

Сам себе Linux смартфон: Как я выкинул Android и написал свою прошивку с нуля⁠⁠

Сам себе Linux смартфон: Как я выкинул Android и написал свою прошивку с нуля Гаджеты, Смартфон, Телефон, Покупка, Китайцы, Fly, Моддинг, Программирование, 2D, Своими руками, Одноплатный компьютер, Raspberry pi, Orange pi, Инженерия, Электроника, Android, Linux, Unix, iPhone, Мобильные телефоны, Видео, Без звука, YouTube, Длиннопост



К огромному сожалению, старые смартфоны всё чаще и чаще находят своё пристанище в мусорном баке. К прошлым, надежным «друзьям» действует исключительно потребительское отношение — чуть устарел и сразу выкинули, словно это ненужный мусор. И ведь люди даже не хотят попытаться придумать какое-либо применение гаджетам прошлых лет! Отчасти, это вина корпораций — Google намеренно тормозит и добивает довольно шустрые девайсы. Отчасти — вина программистов, которые преследуют исключительно бизнес-задачи и не думают об оптимизации приложений совсем. В один день я почувствовал себя Тайлером Дёрденом от мира IT и решил бросить вызов проприетарщине: написать свою прошивку для уже существующего смартфона с нуля. А дабы задачка была ещё интереснее, я выбрал очень распространенную и дешевую модель из 2012 года — Fly IQ245 (цена на барахолках — 200-300 рублей). Кроме того, у этого телефона есть сразу несколько внешних шин, к которым можно подключить компьютер или микроконтроллер, что даёт возможность использовать его в качестве ультрадешевого одноплатника для DIY-проектов. Получилось ли у меня реализовать свои хотелки? Читайте в статье!

Мотивация


Честно сказать, идея попытаться реализовать свою прошивку мне пришла ещё давно. Однако, дабы не завлекать опытного читателя кликбейтом, я сразу поясню, в чём заключается «прошивка с нуля»:

  1. Мы всё ещё используем Linux: в качестве ядра мы продолжаем использовать образ Linux, предоставленный нам производителем. Написание прошивки полностью с нуля заняло бы очень много времени (особенно без схемы на устройство). Однако, мы вообще не загружаем Android никаким образом.

  2. Мы не используем библиотеки AOSP: наша прошивка без необходимости не использует никаких библиотек уже имеющегося образа Android. Вся работа с железом происходит с помощью низкоуровневого API Linux. Это значит, что отрисовка графики, звук, управление ресурсами и питанием ложится полностью на нас.

  3. Прошивка может запускать только нативные программы: да, это тоже камень в сторону Android. Изначально, наша прошивка умеет запускать только нативные программы, написанные на C. Причём она экспортирует собственное C API — дабы приложения могли использовать всю мощь нашего смартфона в виде простого и понятного набора методов.

Сам себе Linux смартфон: Как я выкинул Android и написал свою прошивку с нуля Гаджеты, Смартфон, Телефон, Покупка, Китайцы, Fly, Моддинг, Программирование, 2D, Своими руками, Одноплатный компьютер, Raspberry pi, Orange pi, Инженерия, Электроника, Android, Linux, Unix, iPhone, Мобильные телефоны, Видео, Без звука, YouTube, Длиннопост



Проектов по выкидыванию Android из, собственно, Android-смартфонов как минимум несколько: UBPorts — бывший Ubuntu Touch, FireFox OS и его наследник Kai OS и конечно же, postmarketOS. Отчасти можно сюда отнести и Sailfish OS — но там образы имеются в основном на смартфоны от Sony. Все эти проекты объединяет сложность портирования и невозможность их завести на устройствах без исходного кода ядра. Даже если у вас есть исходный код ядра, но, например, устройство использует ядро 2.6 — навряд-ли вы сможете завести современный дистрибутив на нём.

Другой вопрос в том, что можно использовать полу-baremetal подход, когда от Linux берется практически минимальный функционал. Всё, что мы имеем — busybox, libc и низкоуровневый доступ к железу, благодаря API самого ядра. Как под это всё программировать — я рассказывал впрошлойстатье. Этот же подход мы будем использовать и сейчас — как иллюстрация реального применения подобного способа.

Итак, что наша прошивка должна уметь:

  • Отрисовывать произвольную графику: графическая подсистема нашей прошивки должна работать с фиксированным форматом пикселя, уметь загружать прозрачные и непрозрачные изображения, отрисовывать картинки с альфа-блендингом и т. п.

  • Уметь звонить и работать с модемом: общение с модемом происходит посредством AT-команд — общепринятого в индустрии стандарта. Однако в случае нашего устройства, есть м-а-а-а-ленький нюанс, о котором я расскажу позже.

  • Иметь механизм приложений: мы ведь не будем хардкодить все «экраны» в прошивке в виде кучи стейтов, верно? Для этого у нас должен быть простой и понятный механизм слинкованных с прошивкой приложений.

  • Обрабатывать ввод: обработка тачскрина и жестов — это задача подсистемы ввода.

  • Реализовывать анимированный UI: здесь всё очевидно, наша прошивка должна иметь готовые элементы пользовательского интерфейса для будущих приложений: кнопки, текстовые поля и т. д. О деталях реализации этой подсистемы, я расскажу ниже (а реализовал я её очень необычно для такой системы).


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

Аппаратная часть


В качестве смартфона для нашего проекта, я выбрал популярную бюджетную модель из 2012 года — Fly IQ245 Wizard. Это простенький китайский смартфон, который работал на базе популярного в прошлом 2G-чипсета: MediaTek MT6573, да и стоил около 2х тысяч рублей новым. Однако вот в чём суть: мне удалось заставить работать «медиатековский» модем и даже позвонить с него на свой основной телефон, но… только ввод и вывод данных из звукового тракта модема происходит через звуковую подсистему Android — к которой доступа у нас нет!

Сам себе Linux смартфон: Как я выкинул Android и написал свою прошивку с нуля Гаджеты, Смартфон, Телефон, Покупка, Китайцы, Fly, Моддинг, Программирование, 2D, Своими руками, Одноплатный компьютер, Raspberry pi, Orange pi, Инженерия, Электроника, Android, Linux, Unix, iPhone, Мобильные телефоны, Видео, Без звука, YouTube, Длиннопост



Именно поэтому, мы идём на очень хитрый и занимательный костыль: мы распаяем внешний модем сами! В качестве радиомодуля у нас выступит модуль SIM800 от компании SIMCOM. И даже он очень близок к нашему смартфону в аппаратном плане: ведь в основе этого модуля лежит популярнейший чипсет из кнопочников тех лет: MediaTek MT6261D. Преимущество SIM800 в его цене — он стоит пару сотен рублей, так что по карману выбор модема не влияет.

Сам себе Linux смартфон: Как я выкинул Android и написал свою прошивку с нуля Гаджеты, Смартфон, Телефон, Покупка, Китайцы, Fly, Моддинг, Программирование, 2D, Своими руками, Одноплатный компьютер, Raspberry pi, Orange pi, Инженерия, Электроника, Android, Linux, Unix, iPhone, Мобильные телефоны, Видео, Без звука, YouTube, Длиннопост


На весу паять крайне неудобно. В финальном варианте перепаяю нормально.

Но как его подключать? SIM800 общается с другими устройствами посредством протокола UART — универсальный асинхронный приемо-передатчик. И вот тут мы включаем смекалочку. Разбираем устройство и видим то, что я пытаюсь долгое время донести до моих читателей — аж два канала UART: один практически посередине, второй справа. Нам нужны пятачки TXD4 и RXD4:

Сам себе Linux смартфон: Как я выкинул Android и написал свою прошивку с нуля Гаджеты, Смартфон, Телефон, Покупка, Китайцы, Fly, Моддинг, Программирование, 2D, Своими руками, Одноплатный компьютер, Raspberry pi, Orange pi, Инженерия, Электроника, Android, Linux, Unix, iPhone, Мобильные телефоны, Видео, Без звука, YouTube, Длиннопост



Обычно на этот канал UART летят логи ядра, которые можно без проблем отключить минорной правкой U-Boot в HEX-редакторе. Впрочем, модем никак не реагирует на «мусор» из консоли и просто отвечает ошибками — хватит лишь очистить буфер сообщений для того, чтобы все работало нормально. Подпаиваемся к UART'у с помощью преобразователя — у меня оным выступает ESP32 с выпаянным чипом.

Сам себе Linux смартфон: Как я выкинул Android и написал свою прошивку с нуля Гаджеты, Смартфон, Телефон, Покупка, Китайцы, Fly, Моддинг, Программирование, 2D, Своими руками, Одноплатный компьютер, Raspberry pi, Orange pi, Инженерия, Электроника, Android, Linux, Unix, iPhone, Мобильные телефоны, Видео, Без звука, YouTube, Длиннопост
Сам себе Linux смартфон: Как я выкинул Android и написал свою прошивку с нуля Гаджеты, Смартфон, Телефон, Покупка, Китайцы, Fly, Моддинг, Программирование, 2D, Своими руками, Одноплатный компьютер, Raspberry pi, Orange pi, Инженерия, Электроника, Android, Linux, Unix, iPhone, Мобильные телефоны, Видео, Без звука, YouTube, Длиннопост


Увидели логи? Замечательно, пора попытаться что-то отправить на ПК и с ПК. UART работают без тактовых сигналов и зависит исключительно от старт/стоп битов и бодрейта, который на устройствах MediaTek равен 921600. TXD4 и RXD4 обнаруживаются в системе на консоли/dev/ttyMT3. Пробуем что-то отправить: всё работает!

Сам себе Linux смартфон: Как я выкинул Android и написал свою прошивку с нуля Гаджеты, Смартфон, Телефон, Покупка, Китайцы, Fly, Моддинг, Программирование, 2D, Своими руками, Одноплатный компьютер, Raspberry pi, Orange pi, Инженерия, Электроника, Android, Linux, Unix, iPhone, Мобильные телефоны, Видео, Без звука, YouTube, Длиннопост



Вот теперь-то можно подключить наш внешний модем и попытаться пообщаться с ним, отправив тестовую командуAT. Модем отвечаетOK! На этот раз я работаю с смартфоном из режимаFactory mode— практически тоже самое, что и режим recovery, но позволяющий, например, получить доступ к камере устройства. Простая и понятная схема, поясняющая что и куда подключать:

Сам себе Linux смартфон: Как я выкинул Android и написал свою прошивку с нуля Гаджеты, Смартфон, Телефон, Покупка, Китайцы, Fly, Моддинг, Программирование, 2D, Своими руками, Одноплатный компьютер, Raspberry pi, Orange pi, Инженерия, Электроника, Android, Linux, Unix, iPhone, Мобильные телефоны, Видео, Без звука, YouTube, Длиннопост



На этом модификация аппаратной частипоказакончена. Пора переходить к реализации софта! Я решил разделить материал на каждый модуль, который я реализовывал — дабы вам был понятен процесс разработки и отладки прошивки!

Заставляем смартфон запускать нашу прошивку


На этот раз я решил загружать смартфон из режима рекавери. Однако никто не мешает в будущем просто прошить раздел recovery вместо boot и получить прямую загрузку прямо в нашу прошивку. Время такой загрузки будет заниматься ~3-4 секунды с холодного старта. Очень даже ничего.

Сам себе Linux смартфон: Как я выкинул Android и написал свою прошивку с нуля Гаджеты, Смартфон, Телефон, Покупка, Китайцы, Fly, Моддинг, Программирование, 2D, Своими руками, Одноплатный компьютер, Raspberry pi, Orange pi, Инженерия, Электроника, Android, Linux, Unix, iPhone, Мобильные телефоны, Видео, Без звука, YouTube, Длиннопост



Я взял уже готовый образ TWRP для своего смартфона и пропатчил его, дабы сам рекавери не мешал своим интерфейсом. Для этого я распаковал образ recovery.img с помощью MtkImgTools и убрал в init.rc запуск службы /sbin/recovery. После этого, я залил прошивку обратно на устройство и получил подобную свободу действий — консоль через USB и чистый холст в виде смартфона! Старые смартфоны на чипсетах MediaTek шьются через USB только после замыкания тест-поинта — на моем аппарате его местонахождение очевидно. Замыкаем контакты между собой, подключаем смартфон без АКБ к ПК и ждем прошивки:

Сам себе Linux смартфон: Как я выкинул Android и написал свою прошивку с нуля Гаджеты, Смартфон, Телефон, Покупка, Китайцы, Fly, Моддинг, Программирование, 2D, Своими руками, Одноплатный компьютер, Raspberry pi, Orange pi, Инженерия, Электроника, Android, Linux, Unix, iPhone, Мобильные телефоны, Видео, Без звука, YouTube, Длиннопост



Теперь можно деплоить программы! Важный нюанс: в отличии от Makefile из прошлой статьи, для Android 2.3 параметр -fPIE нужно убрать — иначе динамический линкер (/sbin/linker) будет вылетать в segmentation fault.

Сам себе Linux смартфон: Как я выкинул Android и написал свою прошивку с нуля Гаджеты, Смартфон, Телефон, Покупка, Китайцы, Fly, Моддинг, Программирование, 2D, Своими руками, Одноплатный компьютер, Raspberry pi, Orange pi, Инженерия, Электроника, Android, Linux, Unix, iPhone, Мобильные телефоны, Видео, Без звука, YouTube, Длиннопост

❯ Графическая подсистема


В комментариях под прошлой статьёй меня похвалили за то, что я делюсь достаточно профильными знаниями касательно эффективной отрисовки 2D-графики. Собственно, к реализации графической подсистемы я подошёл ответственно и постарался реализовать достаточно шустрый рендерер, к которому затем можно подключить другие модули.

Сам себе Linux смартфон: Как я выкинул Android и написал свою прошивку с нуля Гаджеты, Смартфон, Телефон, Покупка, Китайцы, Fly, Моддинг, Программирование, 2D, Своими руками, Одноплатный компьютер, Raspberry pi, Orange pi, Инженерия, Электроника, Android, Linux, Unix, iPhone, Мобильные телефоны, Видео, Без звука, YouTube, Длиннопост



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

В случае с этим устройством (и большинством старых устройств), формат пикселя оказался RGB565 — т. е. 5 бит красный, 6 бит синий, 5 бит зеленый. Конвертация форматов пикселей всегда была занозой в заднице для программных рендереров, поскольку занимает дополнительное время, которое обратно зависимо от размера дисплея. Изначально я решил выделить буфер в том же формате, что и фреймбуфер, но затем решил сделать классический и самый портативный формат — RGB888 (24х-битный цвет), а при копировании кадра на экран, на лету делать преобразования цвета:

Сам себе Linux смартфон: Как я выкинул Android и написал свою прошивку с нуля Гаджеты, Смартфон, Телефон, Покупка, Китайцы, Fly, Моддинг, Программирование, 2D, Своими руками, Одноплатный компьютер, Raspberry pi, Orange pi, Инженерия, Электроника, Android, Linux, Unix, iPhone, Мобильные телефоны, Видео, Без звука, YouTube, Длиннопост

Очень важный нюанс, который я не упомянул в предыдущей статье: на устройствах прошлых лет для обновления фреймбуфера необходимо послать структуру var_screeninfo, где хотя бы что-то изменено, иначе никаких изменений мы не увидим. Этот же костыль используется в родном recovery для отрисовки, а судя по исходникам драйвера fb, «правильный» способ обновить экран — послать драйверу ioctl (который я пока что не пробовал).

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

Сам себе Linux смартфон: Как я выкинул Android и написал свою прошивку с нуля Гаджеты, Смартфон, Телефон, Покупка, Китайцы, Fly, Моддинг, Программирование, 2D, Своими руками, Одноплатный компьютер, Raspberry pi, Orange pi, Инженерия, Электроника, Android, Linux, Unix, iPhone, Мобильные телефоны, Видео, Без звука, YouTube, Длиннопост

Загрузчик TGA сильно не поменялся: я таскаю его в неизменном виде из проекта в проект. Он поддерживает любые форматы пикселя, кроме палитровых, но я его искусственн ограничиваю на RGB888 и RGBA8888 — для поддержки обычных картинок и картинок с альфа-каналом. После этого, я написал не очень шустрые, но достаточно универсальные методы для отрисовки картинок. Для больших участков кода, я буду использовать pastebin, поскольку на Пикабу до сих пор не добавили ни подсветки синтаксиса, не нормальный перенос форматирования табов :(

__inline void __ClipPrimitive(CFrameBuffer* fbDesc, int* dw, int* dh){ if - Pastebin.com

PutPixel желательно заинлайнить в будущем. В целом, сама отрисовка работает достаточно быстро, но поскольку рендеринг выполняется на ЦПУ — рано или поздно мы упремся в количество картинок на экране. Есть некоторые оптимизации: например, непрозрачные картинки можно просто коприовать сканлайнами прямо в задний буфер.

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

Сам себе Linux смартфон: Как я выкинул Android и написал свою прошивку с нуля Гаджеты, Смартфон, Телефон, Покупка, Китайцы, Fly, Моддинг, Программирование, 2D, Своими руками, Одноплатный компьютер, Raspberry pi, Orange pi, Инженерия, Электроника, Android, Linux, Unix, iPhone, Мобильные телефоны, Видео, Без звука, YouTube, Длиннопост

Формат примитивнейший:

1 байт говорит нам о размере шрифта и далее идут 255 изображений символов. Да, это не очень эффективно т.к попадают пустые символы из ASCII-таблицы, но в будущем это можно поправить.

Прозрачность в символах обеспечивает фоновый цвет Magena — ярко-розовый. Я не стал делать дополнительный альфа-канал, т. к. иначе будут серьезные лаги при выводе большого количества текста.

Теперь у нас есть отображение картинок и текста! Что с этим можно сделать?

❯ Обработка ввода

Сам себе Linux смартфон: Как я выкинул Android и написал свою прошивку с нуля Гаджеты, Смартфон, Телефон, Покупка, Китайцы, Fly, Моддинг, Программирование, 2D, Своими руками, Одноплатный компьютер, Raspberry pi, Orange pi, Инженерия, Электроника, Android, Linux, Unix, iPhone, Мобильные телефоны, Видео, Без звука, YouTube, Длиннопост
Сам себе Linux смартфон: Как я выкинул Android и написал свою прошивку с нуля Гаджеты, Смартфон, Телефон, Покупка, Китайцы, Fly, Моддинг, Программирование, 2D, Своими руками, Одноплатный компьютер, Raspberry pi, Orange pi, Инженерия, Электроника, Android, Linux, Unix, iPhone, Мобильные телефоны, Видео, Без звука, YouTube, Длиннопост

Пока что здесь не хватает обработки «хардварных» кнопок — домой, меню, назад и т. п. Однако в будущем это всё можно реализовать!

❯ Анимация


Не забыл я и про анимации. Ну кому с такими ресурсами нужен неанимированный топорный интерфейс? Пусть лучше будет анимированный, пусть и примитивный!

Аниматор напоминает оный из ранних версий Android: он имеет фиксированный набор свойств, которые умеет интерполировать в промежутках определенного времени. Если простыми словами: то он оперирует линейными отрезками времени a и b, в промежутке которых мы имеем значение «прогресса» — которое даёт нам результат от 0.0f (начало анимации) до 1.0f (конец анимации). Пока время тикает до необходимого интервала (duration), аниматор интерполирует заранее назначенные ему поля до нужных значений.

Именно так и получается плавность! Похожим образом реализованы анимационные системы во многих играх и мобильных ОС, только там они гораздо более комплексны: есть сериализация/десериализация из файлов, поддержка кейфреймов (несколько последовательных состояний на одном промежутке времени), поддержка кастомных свойств и т. п.

Сам себе Linux смартфон: Как я выкинул Android и написал свою прошивку с нуля Гаджеты, Смартфон, Телефон, Покупка, Китайцы, Fly, Моддинг, Программирование, 2D, Своими руками, Одноплатный компьютер, Raspberry pi, Orange pi, Инженерия, Электроника, Android, Linux, Unix, iPhone, Мобильные телефоны, Видео, Без звука, YouTube, Длиннопост


❯ Модем


Как я уже говорил раннее, работа с модемом происходит посредством AT-команд. Лучше всего обрабатывать ввод-вывод модема из отдельного потока, поскольку он может отвечать довольно медленно и тормозить UI-поток основной программы, вызывая лаги. В SIM800 уже реализован весь GSM-стек, в том числе декодирование и вывод звука через встроенный усилитель с фильтром — остается только подключить динамики и микрофон от нашего телефона. Пока что я подсобрал аудиотракт на том, что было под рукой — микрофон от нерабочего смартфона и динамик от планшета, но для проверки этого хватает:

Сам себе Linux смартфон: Как я выкинул Android и написал свою прошивку с нуля Гаджеты, Смартфон, Телефон, Покупка, Китайцы, Fly, Моддинг, Программирование, 2D, Своими руками, Одноплатный компьютер, Raspberry pi, Orange pi, Инженерия, Электроника, Android, Linux, Unix, iPhone, Мобильные телефоны, Видео, Без звука, YouTube, Длиннопост

Важный нюанс: по умолчанию, tty-устройства в Linux работают по терминальному принципу — т. е. дробят транзакции по символу окончания строки (\n), имеют ограниченный буфер и т. д. Для нормальной работы в условиях модема — когда фактически длина ответа неизвестна, а в сам ответ могут «вклиниваться» Unsolicited-команды (своеобразные флаги о состоянии от модема, которые могут прийти в произвольное время — т. е. при входящем звонке, модем начнёт флудить RING в терминал), необходимо иметь возможность точно прочитать весь буфер до конца и парсить данные «по месту». Для этого используется raw-режим терминала:

tcgetattr(modemFd, &tio);

tio.c_iflag &= ~(BRKINT | ICRNL | INPCK | ISTRIP | IXON);

tio.c_oflag &= ~(OPOST);

tio.c_cflag |= (CS8);

tio.c_lflag &= ~(ECHO | ICANON | IEXTEN | ISIG);

tcsetattr(modemFd, TCSAFLUSH, &tio);

После чего можно запросить состояние модема:

Сам себе Linux смартфон: Как я выкинул Android и написал свою прошивку с нуля Гаджеты, Смартфон, Телефон, Покупка, Китайцы, Fly, Моддинг, Программирование, 2D, Своими руками, Одноплатный компьютер, Raspberry pi, Orange pi, Инженерия, Электроника, Android, Linux, Unix, iPhone, Мобильные телефоны, Видео, Без звука, YouTube, Длиннопост

И продолжить работу дальше. После этого, можно переходить к реализации самой прослойки между модемом и вашей программой:

void CModem::Dial(char* number){ if(strlen(number) > 32) return; cha - Pastebin.com

Пытаемся позвонить с помощью метода Dial и видим, что всё работает! Это очень круто! А теперь, конечно же, самое время переходить к реализации того, чего вы ждали — пользовательского интерфейса!

❯ Главный экран


К выбору концепции для интерфейса, я поступил максимально просто — «слизал» дизайн первых версий iOS. Как по мне, это одни из самых красивых версий iOS вообще — все эти приятные градиенты и переливания. Конечно, я не так крут, как инженеры Apple, да и мощного UI-фреймворка у меня пока что нет, поэтому я приступил к реализации с «минимальным» функционалом.

Сам себе Linux смартфон: Как я выкинул Android и написал свою прошивку с нуля Гаджеты, Смартфон, Телефон, Покупка, Китайцы, Fly, Моддинг, Программирование, 2D, Своими руками, Одноплатный компьютер, Raspberry pi, Orange pi, Инженерия, Электроника, Android, Linux, Unix, iPhone, Мобильные телефоны, Видео, Без звука, YouTube, Длиннопост



Начал я с разделения главного экрана на модули и продумывания архитектуры основного «лаунчера». У нас есть статусбар, который рисуется поверх всех приложений, полка с приложениями — AppDrawer и сами экраны приложений, унаследованные от суперкласса CScreen.

class CScreen{protected: CAnimator* windowAnimator;public: CScreen(); - Pastebin.com

На данный момент, отрисовка достаточно примитивная: сначала рисуются фоновые обои, затем, если нет никаких активных экранов — AppDrawer и в самом конце рисуется статусбар и всевозможные оверлеи.

void CLauncher::DrawAppDrawer(){ for(int i = 0; i < sizeof(Apps) / sizeof(CA - Pastebin.com

Практически сразу я решил обкатать анимационную «систему» и добавить первые анимашки — выезжающий статусбар и анимация а-ля айфон:

animator = new CAnimator();

animator->SetTranslation(0, -imFiller->Height, 0, 0);

animator->Run();

Выглядит симпатичненько. Если я смогу поднять хардварный GLES, то это получится сделать в разы плавнее и шустрее — не хуже айфонов тех лет! Реализация самого статусбара примитивненькая, но вполне рабочая:

gLauncher->Graphics->DrawImage(imFiller, animator->X, animator->Y);

gLauncher->Graphics->DrawImage(imBattery[(int)gLauncher->PowerManager->GetBatteryLevel()], imFiller->Width - imBattery[0]->Width - 5, animator->Y + 5);

char timeFmt[64];

time_t _time = time(0);

tm* _localTime = localtime(&_time);

strftime((char*)&timeFmt,

sizeof(timeFmt), "%R", _localTime);

gLauncher->Graphics->DrawString(gLauncher->Font, (char*)&timeFmt, 0, 0);

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

Обратите внимание на удобство примененного подхода Immediate GUI. Нам понадобился новый элемент интерфейса, который описывает кнопку номеронабирателя? Мы просто реализовываем ещё один метод, который берет за основу стандартную кнопку и дорисовывает к ней текст. Всё крайне просто и понятно, хотя на данный момент слишком захардкожено. :)

❯ Звоним!


Пришло время совершить первый звонок с нашей по настоящему кастомной прошивки. Набираем номерок и…

Сам себе Linux смартфон: Как я выкинул Android и написал свою прошивку с нуля Гаджеты, Смартфон, Телефон, Покупка, Китайцы, Fly, Моддинг, Программирование, 2D, Своими руками, Одноплатный компьютер, Raspberry pi, Orange pi, Инженерия, Электроника, Android, Linux, Unix, iPhone, Мобильные телефоны, Видео, Без звука, YouTube, Длиннопост



Да, всё работает и мы без проблем можем дозвониться :)

❯ Заключение


Конечно же, это далеко не весь функционал, необходимый любому современному смартфону. Здесь много чего еще нужно реализовать хотя бы для соответствия уровню бюджетных кнопочных телефонов: телефонную книгу, поддержку СМС/ММС, мультимедийный функционал с играми. Однако начало уже положено и самая необходимая часть модулей реализована. Этот проект очень занимательный для меня и я горд, что смог не на словах, а на деле показать вам, моим читателям, возможности моддинга совершенно NoName-устройств, без каких либо опознавательных знаков…

Моя задача заключается в том, чтобы показать вам возможности использования старых телефонов не только в потребительских, но и в гиковских DIY-сферах. Судите сами: огромный классный дисплей, емкостной тачскрин, готовый звук, камера — и всё это за каких-то пару сотен рублей. Главное показать людям, как всю эту мощь использовать в своих целях и делать совершенно новые устройства из существующих, а не выбрасывать их на помойку!
Сейчас смартфоны, подобные Fly из этого поста стоят копейки, а портировать на них прошивку можно без каких-либо трудностей. Я очень надеюсь, что после этого поста читатели попытаются сделать что-то своё из старых смартфонов, благо свои наработки я выкладываю на GitHub!

Показать полностью 23 2
[моё] Гаджеты Смартфон Телефон Покупка Китайцы Fly Моддинг Программирование 2D Своими руками Одноплатный компьютер Raspberry pi Orange pi Инженерия Электроника Android Linux Unix iPhone Мобильные телефоны Видео Без звука YouTube Длиннопост
442
72
Mr.Hater
Mr.Hater
2 года назад
Лига 3D-принтеров

Самодельный чехол для телефона⁠⁠

По приколу нарисовал и распечатал противоударный чехол для телефона. Кому то он казался колхозным, мне он нравился. Брутальный, на болтах. Да и вещь созданная своими руками.


Сегодня он пал смертью храбрых. Разлетелся при полёте с высоты более 2 метров на бетонный пол. Свою функцию выполнил, на телефоне ни единой царапины. Вечером распечатаю новый (чехол, не телефон).

Самодельный чехол для телефона Поделки, Своими руками, 3D печать, Мобильные телефоны, Длиннопост
Самодельный чехол для телефона Поделки, Своими руками, 3D печать, Мобильные телефоны, Длиннопост
Самодельный чехол для телефона Поделки, Своими руками, 3D печать, Мобильные телефоны, Длиннопост
Самодельный чехол для телефона Поделки, Своими руками, 3D печать, Мобильные телефоны, Длиннопост
Самодельный чехол для телефона Поделки, Своими руками, 3D печать, Мобильные телефоны, Длиннопост

Redmi 10s, Ссылка на модель для печати:

https://3dtoday.ru/3d-models/gadgets/phones/protivoudarnyi-k...

Показать полностью 4
[моё] Поделки Своими руками 3D печать Мобильные телефоны Длиннопост
19
0
WoodandTools
WoodandTools
3 года назад

Простая приспособа для телефона 3 в 1⁠⁠

Часто была проблема что хочется поставить телефон, подпирал его то чашкой, то еще чем😅

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

Решил сделать сам, но выпилить просто кусочек фанеры было слишком скучно))

И пошел мутить все что приходило в голову. В итоге решил встроить в подставку флешку и OTG переходник. Раньше именно переходником я не пользовался (только двусторонними флешками), к моему удивлению телефон вытянул даже внешний жесткий и мой комплект беспроводной клавиатуры с мышкой, правда нужна настройка языка))


Мой YouTube - https://www.youtube.com/channel/UC2NLp4KlgYr39eyhshMD-eA

Мой Дзен - https://zen.yandex.ru/id/6079bafe90024f5c1054b675

[моё] Своими руками YouTube Самоделки Телефон Мобильные телефоны Подставка для телефона Otg USB Переходник Изготовление Смартфон Техника Мобильные устройства Видео Видеоблог
4
135
DELETED
3 года назад
Рукодельники

Из того,что почти под руками⁠⁠

Из того,что почти под руками Мобильные телефоны, Подставка, Своими руками, Лайфхак, Длиннопост, Рукоделие с процессом
Из того,что почти под руками Мобильные телефоны, Подставка, Своими руками, Лайфхак, Длиннопост, Рукоделие с процессом
Из того,что почти под руками Мобильные телефоны, Подставка, Своими руками, Лайфхак, Длиннопост, Рукоделие с процессом
Из того,что почти под руками Мобильные телефоны, Подставка, Своими руками, Лайфхак, Длиннопост, Рукоделие с процессом
Из того,что почти под руками Мобильные телефоны, Подставка, Своими руками, Лайфхак, Длиннопост, Рукоделие с процессом
Из того,что почти под руками Мобильные телефоны, Подставка, Своими руками, Лайфхак, Длиннопост, Рукоделие с процессом
Из того,что почти под руками Мобильные телефоны, Подставка, Своими руками, Лайфхак, Длиннопост, Рукоделие с процессом
Из того,что почти под руками Мобильные телефоны, Подставка, Своими руками, Лайфхак, Длиннопост, Рукоделие с процессом
Показать полностью 8
Мобильные телефоны Подставка Своими руками Лайфхак Длиннопост Рукоделие с процессом
28
lampardinho
4 года назад

Телефон⁠⁠

Ребят, всем привет. У меня необычный вопрос. У меня телефон - обмылок в плане дизайна. Боковые рамки скруглённые какие-то. Каким образом можно сделать его более прямым, не используя чехол? Может, наклеить на рамки что-то можно?

[моё] Мобильные телефоны Своими руками Текст
26
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии