Как сделать свой собственный телефон
How it’s made: этапы создания современного смартфона
Для многих телефоны, которые мы видим в магазинах или на страничках электронных витрин, — это совокупность неких параметров за определенную цену. Иногда это сдобрено ореолом бренда, иногда рекламой, а иногда той самой, приятной и соблазнительной функцией, ради которой можно потратить куда как больше запланированного бюджета. Так или иначе, это уже готовый продукт. Мы же предлагаем заглянуть «за» и показать весь путь устройства — от идеи и печатной платы до витрины. Готовы? Поехали!
С самого начала стоит сделать ремарку о том, что описанное ниже охватывает самые популярные и распространенные ситуации для рынка РФ, но оставляет место исключениям.
Наверняка многим уже знакомы принципы сотрудничества OEM и ODM, которые в различных вариациях господствуют на рынке.
ODM (англ. original design manufacturer) — производитель изделия, которое создается по его собственному оригинальному проекту, а не по лицензии.
ODM-контракт — вид сотрудничества двух компаний, при котором одна компания заказывает другой разработку и производство некоторого товара (например, техники или программного обеспечения и др.), а выпускает в продажу его потом уже под своей торговой маркой.
Таким образом, ODM-контракт отличается от OEM-контракта тем, что в первом случае заказчик размещает заказ не только на изготовление, но и на разработку изделия, а во втором — только на изготовление, а разработкой и дизайном занимается сам.
И тот, и другой немного видоизменились от своих относительно энциклопедических значений, и сейчас устройства весьма условно можно разделить на три категории:
Разумеется, сроки разработки устройств из этих категорий тоже разнятся. Если в первой находятся преимущественно флагманские решения (но возможны и другие ценовые категории) со сроком от начала и до прилавка, достигающим порой 9-12 месяцев, то во второй могут быть и флагманы, и устройства среднего уровня. Разброс же сроков разработки тут тоже большой: от 4-5 месяцев до года. В последней категории играют те самые устройства, которые предлагают отличное соотношение цены-качества в начальном и среднем ценовом сегменте. Работа над ними происходит быстрее благодаря наличию «базы», на которой продукт строится.
Ввиду того, что приличный пласт работы над флагманами и большинством устройств среднего уровня проходит в красивых и секретных лабораториях, самым актуальным будет рассмотреть цикл недорогого устройства, где процесс разработки более динамичен.
Стадия 0
Спрос рождает предложение. Именно эта мысль является основополагающей для всех устройств — от флагманов до бюджетных решений. Нужно как предложить хорошую цену для покупателя вкупе с широкими возможностями аппарата, так и суметь сделать это вовремя, ведь конкуренты не дремлют.
Исходя из параметров типа желаемых сетей (3G или LTE), экрана и его разрешения, беспроводных модулей, версии Android (вряд ли в 2016 году есть смысл говорить о кнопочном телефоне), а также АКБ и сроков, когда партнер будет готов начать производство, продукт зарождается на бумаге.
Местами система дает сбой, и на свет появляются химеры со слишком большой ценой по сравнению с конкурентами или совершенно новой технологией на борту, которая остается недооцененной рынком. Так или иначе, приоритеты и сильные стороны заложены изначально в соответствии с ожиданиями рынка на определенный период.
Стадия 1
Параллельно с этим, другие реальные устройства начинают проходить тесты там, где они планируются к продаже, для учета региональных особенностей сетей, застройки и положения спутников на небосводе (да-да, это не шутка). Цель всего этого — собрать данные для исправлений в конструкции для второй и третьей ревизии устройств в рамках работы над ним для достижения оптимальных результатов.
Работа над ПО включает в себя как общую стабильность, так и региональные особенности. Не секрет, что Россия является одним из самых сложных для производителей регионов: например, перевод интерфейса в 99% случаев более длинный по сравнению с английским, пользователи не готовы мириться с ошибками в ПО, которым в Европе просто не придали бы значения, а номера могут начинаться как с 8, так и с +7 и быть равнозначны, — словом, особенности есть, и их много. Не последними по значению являются результаты камеры или камер, работы с беспроводными аксессуарами.
Все это вкупе с настройками для операторов и рядом, казалось бы, мелочей и может оказаться решающим фактором при выборе устройства в магазине и его коммерческого успеха.
Стадия 2
На основании тестов первого этапа устройство уже обретает свои финальные формы: работа с навигацией и сетью проходит без нареканий, ПО становится стабильнее, камера снимает лучше, — половина пути в работе над ПО пройдено.
В этот момент начинается еще одна важная веха для любого устройства — прохождение испытаний для получения нотификации и сертификатов на территории РФ. Суть испытаний сводится к тому, что телефон должен соответствовать нормам по SAR, а также быть безопасным для пользователя как вместе с батареей, так и сам по себе, зарядное устройство тоже проходит тесты. И не стоит скептически относиться к словам про испытания — в РФ они вполне серьезны и суровы, так что за безопасность для владельца любого устройства с сертификатом соответствия можно не беспокоиться.
Параллельно с этим устройство отправляется на ревью в Google (мы же говорим про Android смартфон) на CTS/GTS тесты. Это автоматизированное и многоуровневое тестирование, его цель — выявлении ошибок, которые помешали бы конечному пользователю комфортно использовать сервисы Google. Здесь не пропустят и фатальные ошибки и неправильные настройки прав доступа у приложений внутри ПО, а также выявят проблемы по показателям стабильности. Ошибки, выявленные на этом этапе, являются не рекомендациями, а блокирующим фактором, и без их исправления устройству путь дальше заказан.
Единственное исключение, где все это учтено в полном объеме и сразу это представители линейки Nexus, ПО которых делается Google.
Как вы догадываетесь, ошибки выявленные на этом шаге не рекомендации, а блокирующий фактор, без которых устройству заказан путь дальше.
Стадия 3
Итак, тесты на прочность пройдены, сертификаты получены Google дает «добро», компоненты устройства зафиксированы, производство готовится к пробному запуску, а ПО почти идеально. Как правило, в этот момент с третьей итерацией устройств и начинается работа с медиа, первые тизеры. Примерно на этом этапе обычно и случаются утечки.
Наступает черед кропотливой работы над инструкциями, дизайном упаковки и ее содержимого, а также тестов обновлений для простых пользователей и подготовки сервисного обслуживания.
Конечно же, совершенству нет предела, но на данном этапе в прошивке не остается существенных проблем, или они должны быть решены к моменту начала продаж и максимально минимизированны до отсечки по финализации.
Стадия 4
Пробный запуск и анализ его результатов является еще одной вехой, ведь фактически на выходе получаются устройства, полностью эквивалентные тому, что начнет продаваться буквально через несколько недель. Таким образом, определяется дата начала массового запуска, а в ПО продолжают решаться оставшиеся спорные моменты — их пользователи получат уже с первым обновлением, которое зачастую совпадает со стартом продаж.
Финал
Произведена первая партия, которая прошла все проверки и готова к отправке и прохождению таможни. Параллельно полным ходом идет рекламная кампания, появляются первые анонсы, обзоры в медиа, а желающим купить становится доступна форма предзаказа и образцы в открытой выкладке.
После прохождения таможни по логистической цепочке те самые коробочки с заветными аппаратами попадают на склад магазина и его реальные его витрины. Но это вовсе не означает, что работа закончена и проектная документация торжественно сожжена, а работа команды напоминает картинку ниже.
Наоборот, начинается этап по сбору отзывов о ПО и самом продукте, что влияет на состав обновлений прошивки, следующие производства и даже следующие устройства.
Как видите, рынок РФ является одним из самых непростых и по ряду требований безопасности, и по уровню доработки ПО, что дает возможность выбора из множества устройств со всесторонне высокими стандартами качества независимо от ценового сегмента
Мобильный телефон своими руками. Часть 1
Недавно на хабре был пост про то, как некие умельцы из Массачусетсого Технологического создали «самодельный» мобильный телефон. Я думаю, пришла пора доказать, что наши месье тоже знают толк в из… э… в изысканных удовольствиях.
Итак, представляю вашему вниманию мобильный телефон, собранный практически «на коленке»!
Всех заинтересованных прошу под кат. Много картинок!
В связи со значительным объёмом материала статья будет в двух частях. В первой части будет приведено описание аппаратной части, а во второй части будут рассмотрены AT-команды модуля и приведены примеры их использования.
Итак, начнём.
Краткое описание
«Сердцем» телефона является GSM-модуль Quectel M10, обладающий широкими функциональными возможностями, включая как телефонную связь, так и передачу данных. Также устройство имеет источник питания, позволяющий питать устройство от источника 12В (например, свинцово-кислотного аккумулятора), интерфейс RS-232, клавиатуру, антенну, держатель SIM-карты и разъём подключения гарнитуры.
Модуль M10-TE-A
Начнём с блока питания
Блок питания
Блок питания обеспечивает питание устройства напряжениями +4,1В (ток до 2А), +5В (ток до 500 мА), +3,3В (ток до 100 мА). Напряжение 4,1В нужно для питания GSM-модуля. GSM-модули предъявляют весьма высокие требования к источнику питания. Источник питания модуля должен иметь напряжение от 3.4 В до 4.5В при токе до 2А, при этом амплитуда пульсаций при скачкообразном изменении тока нагрузки от нуля до максимума не должна превышать 400мВ. На рис. 1 показана допустимая амплитуда пульсаций питающего напряжения при работе модуля.
Рис. 1. Допустимые пульсации напряжения питания при работе GSM-модуля.
Изначально предполагалось, что устройство будет содержать микроконтроллер с напряжением питания 3.3 В и дисплей, для питания подсветки которого нужно будет напряжение 5В. На данном этапе предположим, что ток по каналу 5В не превышает 0.5А. Входное напряжение источника питания выберем равным 12В. Схема электрическая принципиальная приведена на рис. 2.
Рис. 2. Схема источника питания (pdf)
Схема не лишена недостатков, и в основном использует то, что было у меня «под рукой». Для серийной продукции такое решение, конечно, мало подходит, но для экспериментов вполне годится. Не будем подробно останавливаться здесь на работе этой схемы и на расчетах номиналов, так как они элементарны и подробно описаны в документации на соответствующие микросхемы.
Итак, собираем схему на макетной плате (рис. 3) и проводим испытания под нагрузкой, при этом контролируя температуру тепловыделяющих элементов. Испытания пройдены успешно.
Если вы собираетесь использовать только GSM-модуль, без других узлов, то источники +5В и 3,3В не нужны.
Рис.3. Плата источника питания
Плата клавиатуры
Схема платы клавиатуры практически без изменений взята из документации на модуль. Однако, уже после того, как она была собрана, оказалось, что ряд кнопок не поддерживается данной версией модуля. В принципе, можно вообще не подключать клавиатуру к модулю, все действия с модулем можно производить с помощью AT-команд через UART.
Схема клавиатуры приведена на рис. 4. Диоды служат для защиты модуля от статического напряжения.
Рис.4. Схема клавиатуры (pdf)
Рис.5. Плата клавиатуры
Плата GSM-модуля
Переходим к основной плате.
Так как устройство собрано на макетной плате, я решил использовать не модуль Quectel M10, который распаивается на плате, а его «производную», модуль с модулем M10-TE-A, имеющий разъём IDC с шагом контактов 1,27мм (двухрядная розетка). Антенна подключается к специальному маленькому разъёму (GSC) через переходник GSC-SMA. В серийном устройстве, на нормальной плате, разумеется, имеет смысл использовать обычный модуль M10. Следует иметь в виду, что M10 и M10-TE-A имеют разную нумерацию выводов, поэтому схему также придётся скорректировать.
Рис.6. Схема платы GSM (pdf)
Схема содержит модуль, держатель SIM-карты, разъем для подключения гарнитуры, разъем клавиатуры и пару микросхем: интерфейс RS-232 и вспомогательную микросхему для подключения к модулю пъезоизлучателя и светодиода. Никаких особых схемотехнических изысков здесь нет, практически всё взято из документации на модуль.
Ещё пара слов про подключение клавиатуры. Так как ряды ROW3, ROW4 и столбец COL4 не используются модулем, я решил задействовать их для кнопок включения и выключения модуля.
Дисплея телефон тоже не имеет. Хотя модуль имеет выводы для прямого подключения дисплея, его всё равно нельзя подключить, так как эта функция (как и многие другие) отключена у модулей, поступающих в открытую продажу.
Для питания часов реального времени используется ионистор (конденсатор ёмкостью 1Ф, большая круглая штука на плате). Если часы не нужны, его можно не устанавливать.
Сборка
Итак, пришла пора собрать наш конструктор:
Рис. 8. Всё готово к сборке
Рис. 9. Телефон в сборе
Теперь можно вставить SIM-карту, подключить питание, подключить телефон к компьютеру через COM-порт и приступить к исследованию AT-команд.
Пара слов про бюджет.
Бюджет
Модуль Quectel M10-TE-A 665,64 р.
Антенна 120 р.
Держатель SIM-карты SCV-W2523X-06-LF 21,80р
Кабель-переходник GSC-SMA — 161,86р.
Остальные комплектующие найдены в радиусе трёх метров.
В заключение первой части
В следующей части будут рассмотрены AT-команды, поддерживаемые модулем.
Ссылки
К сожалению, на сайте производителя представлена далеко не полная информация о модуле. Большая часть pdf-файлов не выложена в открытый доступ, тем не менее, в сети можно найти некоторые из них. Я взял на себя труд собрать эти файлы и выложить для скачивания.
1. M10_ATC_V1.03.pdf — справочник по AT-командам модуля M10
2. M10_EVB_UGD_V1.01.pdf — описание отладочной платы на базе модуля M10
3. M10_GSM_Module_Specification.pdf — краткое описание модуля M10
4. M10_HD_V1.02.pdf — Hardware Design
5. M10-TE-A_HD_V1.01.pdf — описание платы на основе модуля M10
6. GPRS_Startup_UGD_V101.pdf — установка модема в Windows
7. GSM_UART_AN_V100.pdf — подключение устройств к UART
8. RF LAYOUT_AN_V1.0.pdf — подключение антенны к модулю
9. GSM_Location_ATC_V10.pdf — запрос координат и времени
Документы, описывающие работу с FTP, HTTP, MMS, SMTP и TCP/IP соответственно:
10. GSM_FTP_ATC_V100.pdf
11. GSM_HTTP_ATC_V100.pdf
12. GSM_MMS_ATC_V101.pdf
13. GSM_SMTP_ATC_V11.pdf
14. GSM_TCPIP_AN_V101.pdf
PS. Если у вас не открываются ссылки, попробуйте скачать здесь:
PDF (одним архивом)
Схемы (одним архивом)
Собираем свой собственный смартфон
Это руководство описывает от начала до конца конструирование своего собственного смартфона. Начинается дело с печати на 3D-принтере корпуса, затем спаиваются печатные платы, всё это дело собирается, и, в конце концов, на смартфон устанавливается мобильная операционная система, и с помощью языка программирования Python она становится персонально Вашей. Вы можете ознакомиться с подробностями о данном проекте по ссылке.
Необходимые навыки:
— базовые навыки пайки;
— знакомство с Raspberry Pi.
Или:
— много свободного времени и терпения.
Шаг 1: Собираем необходимые материалы
Перед тем, как начать, давайте-ка закажем все компоненты, которые нам потребуются. Итак, вам потребуются следующие электронные компоненты и печатные платы (в России компоненты можно приобрести, например, в таких магазинах):
1. Raspberry Pi A+ 256MB
2. модуль GSM Adafruit FONA uFL Version
3. 3.5′ PiTFT сенсорный экран
4. Raspberry Pi Camera 5MP
5. преобразователь Powerboost 500 Basic
6. GSM антенна
7. 1В 8Ом динамик
8. адаптер USB — Wifi
9. электретный микрофон
10. 1200мА литий-ионная батарея
11. 4-40 x 3/8′ винты
12. M2.5 x 5mm винты
13. M2.5 x 20mm винты
14. M2 x 5mm винты
15. ползунковый переключатель
16. провода
Ну а пока вы ждете доставки заказа со всем перечисленным, можно напечатать корпус.
Шаг 2: Печатаем корпус на 3D принтере
Шаг 3: Основная сборка
Теперь давайте соединим всё вместе. На диаграмме изображен Raspberry Pi. Вместо того, чтобы сразу подключаться к нему, подключите провод к 26 контакту на PiTFT. Теперь дальше.
1. Присоедините контакт «bat» на модуле GSM (Adafruit FONA) к такому же контакту на преобразователе (PowerBoost).
2. Припаяйте провод от контакта GND (земля) на модуле GSM к такому же контакту на преобразователе.
3. Припаяйте провод от контакта GND на преобразователе к одному из контактов полузнкового переключателя.
4. Также присоедните контакт GND от преобразователя к «земле» дисплея PiTFT (Такая же распиновка первых 26 контактов, как у Raspberry Pi, обратите внимание, что стрелка и «1» обозначаются первый контакт).
5. Присоедините 5В линию от преобразователя к 5В линии дисплея.
6. Припаяйте провод от центрального контакта ползункового переключателя к контакту «EN» (Включено) на преобразователе.
7. Припаяйте провод от контакта «KEY» на модуле GSM к контакту 12 (GPIO 18) на дисплее.
8. Поместите дисплей над Raspberry Pi.
9. Перепроверьте все соеднинения!
ВНИМАНИЕ: Пока проходит тестирование, убедитесь, что 5В разъем micro USB не подключен. Raspberry Pi уже запитан от батареи.
Если вы переключите ползунковый переключатель, светодиоды на преобразователе должны загореться и Raspberry Pi должен включиться. Подсветка дисплея также должна включиться. Если у вас на SD карте Raspberry Pi настроена отправка картинки на дисплей, то она должны отобразиться на нем. В противно случае, дисплей будет просто гореть белым, что на данный момент тоже пойдет. Скорее всего, на модуле GSM не загорятся светодиоды. Чтобы его включить, удерживайте кнопку включения на нем в течении пары секунд. Или подайте сигнал на разъем GPIO 18 на Raspberry Pi в течении того же времени. Если вам удалось запитать Raspberry Pi, дисплей и модуль GSM от батареи, пора переходить к следующему шагу.
Шаг 4: Финальная сборка
Если вы попытаетесь все включить сейчас, то поведение устройства должно быть аналогичным, как на предыдущем шаге. На следующем шаге мы установим сим-карту в модуль GSM, что позволит устройству контактировать с сотовой сетью.
Шаг 5: Установка сим-карты
Теперь, когда соединение модулей завершено, можно установить сим-карту, чтобы модуль GSM мог контактировать с сотовой сетью. Данный модуль использует сети 2G для передачи данных, например T-Mobile. Обратите внимание, что модуль не работает с сетями 3G и 4G. AT&T планирует отключить поддержку 2G сетей к 2016 году, так что мы будем использовать сим-карту T-Mobile. Данный модуль GSM использует сим-карту стандартного формата, так что микро или нано сим-карты сюда не пойдут. Активируйте карту согласно инструкциям оператора. Затем установите сим-карту в модуль GSM и включите его. Если красный светодиод модуля будет моргать каждые 3 секунды, значит он подключился к сотовой сети! На следующем шаге мы установим программное обеспечение, чтобы Raspberry Pi смог общаться с модулем GSM.
Шаг 6: Установка SD карты
Теперь, когда все железо собрано, можно приступить к настройке взаимодействия Raspberry Pi со всем этим хозяйством. Начните с прошивки последней версии PiTFT OS на SD карту Raspberry Pi. Жмите сюда чтобы скачать. Когда SD карта готова, установите ее в Raspberry Pi и включите его. Вам понадобится утилита raspi-config. Вот несколько вещей, которые потребуется настроить:
1. Развернуть файловую систему.
2. Включить поддержку камеры.
3. Выключить serial port. Так Raspberry Pi сможет общаться с модулем GSM.
4. Включить ssh. Это важно, поскольку в Raspberry Pi A+ есть только USB порт.
Закончите установку и перезапустите Raspberry Pi.
Напишите startx и Raspberry Pi запустит LXDE на дисплее. Чтобы войти через HDMI, напишите:
Шаг 7: Установка Wifi
У вашего телефона нет клавиатуры, так что для доступа к устройству через консоль, нужно установить wifi для подключения по ssh. Подключите Wifi адаптер к компьютеру и настройте подключение через Wifi Config. Выключите Raspberry Pi и подключите к нему Wifi адаптер. Если вам все еще не удается подключиться к Raspberry Pi по ssh, попробуйте использовать USB концентратор. Больше информации по настройке Wifi можно найти здесь.
Шаг 8: Финальная подготовка программного обеспечения
Тестирование модуля GSM
Чтобы протестировать модуль GSM, установите minicom с помощью команды:
Должен открыться терминал по взаимодействию с устройствами через ком-порт. Если вы напишете:
в ответ должны получить «ОК». Если не получили, то проверьте все соединения. Если же получили, значит модуль GSM готов к работе.
Вы могли заметить, что текст на экране показывается боком, а не ориентируется на положение телефона. Давайте изменим это с помощью команды:
Измените в файле значение параметра «rotate» на 180.
Наконец, чтобы добавить LXDE в автозагрузку, следуйте описанию в инструкции.
Установка программного обеспечения для камеры
Теперь давайте установим программное обеспечение, которое помогает снимать фото камерой Raspberry Pi. Для начала напишите:
Наконец, загружаем программное обеспечение:
Шаг 9: Установка TYOS
TYOS — это операционная система для мобильных устройств (Технически, модифицированная версия Raspbian — это операционная система, а TYOS — это только графическая оболочка), дающая возможность телефону отправлять и получать sms сообщения, а также делать звонки. В консоли напишите:
Для запуска TYOS напишите:
Когда TYOS запустится, убедитесь, что все работает путем отправления sms и совершения звонка. Когда вы убедитесь, что все в порядке, можно установить TYOS в автозагрузку.
чтобы открыть конфигурационный файл. Внизу, после текста и до строчки «exit 0», добавьте следующий текст:
Теперь перезапустите Raspberry Pi. TYOS должен стартовать при загрузке устройства!
Шаг 10: Собираем всё вместе
Теперь можно всё надежно упаковать в корпус.
1. Используя горячий клей, приклейте микрофон и динамик в разъемы под них.
2. Используя винты M2, закрепите камеру. Потребуется соединить ленточным кабелем камеру и Raspberry Pi, так что разместите ее подходящим образом.
3. Используя винты M2.5, закрепите Raspberry Pi вместе с установленной SD картой и адаптером Wifi вниз корпуса.
4. Присоедините ленточный кабель камеры с Raspberry Pi.
5. Также используя винты M2.5, закрепите модуль GSM с сим картой в корпус.
6. При укладке проводом убедитесь, что они не мешают никакой другой электронике.
7. Оберните преобразователь изолентой, чтобы избежать короткого замыкания.
8. Поместите преобразователь и батарею между Raspberry Pi и дисплеем.
9. С помощью горячего клея приклейте ползунковый переключатель в разъем, предназначенный для него вверху корпуса.
10. Используя винты 4-40, соедините верхнюю и нижнюю часть корпуса вместе.
11. Проверьте все соединения.