Привет! Это Алексей Фоменко, инженер-электронщик Алисы и умных устройств. Я руковожу группой аппаратной разработки, но время от времени делаю платы и своими руками. Недавно вышел небольшой ролик, где я рассказал про несколько пасхалок на печатных платах, которые можно найти внутри Яндекс Станций. Такой формат не предполагал каких-то подробностей и тонкостей, но реакция на него показала, что это интересно — и стоит поведать чуть больше деталей. Так и появилась эта статья.
Да, я знаю, что суть пасхалки не в том, чтобы о ней рассказывать самостоятельно, а чтобы её нашли случайно (или специально). Но нюанс пасхалок в разработке железа заключается в том, что вряд ли о них узнает кто-то, кроме сотрудников сервисного центра или нескольких особо любопытных пользователей. Ведь обнаружение такой штуки автоматически лишает гарантии. Так что лучше я покажу всё сам.
Предыстория
Ни для кого не секрет, что разработку Станций мы проводим полностью своими силами, что называется in-house. А так как Станции относятся к категории «потребительская электроника», то этой самой «электронике» мы уделяем особое внимание и прорабатываем все схемы и платы до мелочей.
У каждой платы довольно длинная история разработки, начиная с опытных образцов, заканчивая мелкими партиями с переходом к массовому производству (подробности описаны в статье «Полный цикл создания устройства и работа с фабриками в Китае»). В ходе проектирования накапливается множество изменений: то тут, то там нужно что-то подвинуть, что-то заменить, где-то улучшить. Инженер-схемотехник проводит со схемой и платой много часов один на один. Всегда хочется сделать выверенным каждый миллиметр этой сложной и запутанной многослойной конструкции. И инженер, можно сказать, вкладывает частичку себя, частичку своей души в эту плату: ведь прямо у него на глазах она продвигалась от осторожных первых экземпляров к уверенной и надёжной конструкции, которую производят тысячами в день. И понимая, что этими устройствами будут пользоваться сотни тысяч (а то и миллионы) людей, хочется передать самым искушённым из них какое-то послание, условно «помахать ручкой» или «подмигнуть». И все разработчики мира обычно для этой цели используют пасхалки.
Как правило, пасхалки ассоциируются с видеоиграми: именно там разработчики закладывают различные послания для тех игроков, которые хотят прошерстить каждый квадратный метр виртуального мира. Например, моя любимая пасхалка от Rockstar в GTA: San Andreas: когда игрок с горем пополам добирается до одной из опор огромного моста, то там можно обнаружить табличку с надписью There are no Easter Eggs up here. Go away («Здесь нет пасхалок. Уходи»).
Если перенестись в реальный мир, и, в частности, в разработку электроники, то первую пасхалку я увидел у Di Halt с его «Положи чип, #@%!». А ещё на Reddit есть целый тред, посвящённый пасхалкам на печатных платах.
Тогда это меня знатно улыбнуло, и я вдруг осознал, что инженеры-электронщики — такие же творческие люди, как и разработчики игр. С такими же желаниями и чувством прекрасного. Ведь разработка электроники — тоже, можно сказать, вид искусства. Одного и того же результата (функционального) можно достичь почти неограниченным количеством способов. И какой именно выберет разработчик, и как именно он его оформит — именно это останется «высеченным в меди и текстолите».
Пасхалки в Станциях
Так сложилось, что я всегда стремился делать платы не только так, чтобы они просто выполняли свою функцию. Мне важно было сделать таким образом, чтобы каждая плата и выглядела гармонично и закончено, всё в ней было взвешенно и красиво. И однажды мне попался на Хабре пост под названием «Вооот такоооой красотыыы». Я просто тащился от работы этих ребят. Я понимал, что настолько глубоко, изящно и продуманно могут сделать только те инженеры, которые по-настоящему любят своё дело и любят продукт, над которым они трудятся.
Станция 2
Прошли годы, и мне посчастливилось поучаствовать в разработке Станции 2. В ней я корпел над верхней платой, на которой расположено 84 светодиода. У каждого светодиода четыре цвета: красный, зелёный, синий и белый (да, дополнительно белый, это не оговорка). А время разработки пришлось на разгар чипагеддона (мирового кризиса электронных компонентов в 2020–2022 годах), мы срочно меняли микроконтроллер на ПЛИС, и это была уже третья итерация платы, над которой я проводил целые дни напролёт.
Как-то раз я заметил, что посадочное место самого светодиода с восемью контактами похоже на светлячка с лапками. У него даже та часть, которая светится белым, выделена в отдельную зону с люминофором — прямо как брюшко. Недолго думая, я пририсовал одному из этих светодиодиков усики и тельце. И продолжил работу над платой.
Платы изготовили, а никто не заметил светлячка :) Но после того, как я намекал, что если внимательнее присмотреться, можно найти «баг» среди светодиодов — коллеги расплывались в улыбке. Тогда мы решили, что это безобидная и милая деталь, которую точно стоит оставить.
Так и началась история пасхалок в Станциях.
Светлячок — не единственная пасхалка в Станции 2. В ней всего четыре платы: плата с разъёмом Type C, плата со светодиодиками, плата с тач-зонами и микрофонами, основная плата. Как раз в основной-то и творится вся магия! На ней расположены самые важные узлы: SoC, память, флешка, Wi-Fi-модуль, звуковой усилитель.
На маркетплейсах про Станции пишут: «Алиса живёт здесь». И вот это «здесь» показалось нам недостаточно точным — решили это место несколько уточнить. Между SoC и памятью как раз было немного свободного места, на которое мы поместили эту самую надпись (кстати, шрифтом Yandex Sans).
Да, код Алисы исполняется не совсем в центральном процессоре, а, в основном, на бэкенде. И, говоря о колонке, правильнее было бы указать на флешку, ведь именно там хранится её исполняемый код. Но мне показалось, что это не так романтично. Да и в целом — именно на SoC расположены важные аппаратные блоки для взаимодействия с Алисой: это и PDM-шина для микрофонов, и I2S, по которой звук отправляется в цифровой аудиоусилитель, и SPI к светящейся панели, и SDIO к Wi-Fi, по которому идёт обмен данными с серверами.
К слову, в Станции Миди этот «недочёт» исправлен, и мы просто указали место, в котором происходит вся магия умной колонки (и, между прочим, Алиса в этой Станции умеет управлять устройствами умного дома без интернета, так что указатель считаю валидным).
Станция Миди
Раз уж заговорили о Станции Миди, стоит поделиться ещё парочкой пасхалок из неё. Светлячков рисовать мне понравилось, поэтому на плате с часами почти сразу же появился ещё один.
Кстати, о плате часов. Сзади в неё упираются пластиковые рёбра жёсткости, и инженер-конструктор передавал мне их чертёж в DXF, чтобы я мог превратить их в специальные зоны запрета установки компонентов. На картинке ниже они обозначены перекрёстной штриховкой, а сам DXF — белыми линиями.
Но в одну из итераций что-то пошло не так (рука дрогнула, видимо), и я импортировал обновлённый чертёж не на служебный слой, а прямо на слой шелкографии. То, что получилось, мне напомнило трубопровод. Я решил ничего не переделывать и оставить плату как есть, украсив манометром (или счётчиком) и вентилем.
Про огурцы
Маркетинговые названия у Станций появляются сильно позже старта их разработки и долго держатся в строжайшей тайне. Но проекту нужно было какое-то кодовое имя. Да ещё такое, чтобы никто не догадался о том, какое место в линейке займёт эта колонка. Выбрали слово Сucumber, по которому сложновато было предугадать его назначение. На каждой плате колонки появились надкушенные огурчики, но на верхней плате для него нашлось особое место.
Дело в том, что центральная тач-зона на самом деле представляет собой металлическое кольцо, касающееся платы в двух местах. И под этими посадочными местами важно обеспечить минимальную ёмкость к общей земле: так чувствительность будет значительно выше. Поэтому на всех слоях под этими опорными местами из меди вырезаны прямоугольники, а на последнем слое сплошная заливка превращается в сеточку.
И вот когда я поместил рисунок огурчика на эту плату, он аккуратно лёг в этот прямоугольник, который мне смутно начал что-то напоминать. Ах да, это же самое подходящее место для хранения огурцов — литровая банка! Пара кликов мышью, и...
И снова про пасхалки
У всех этих пасхалочек нет какой-то важной цели, нет глубокого смысла или тайного посыла — они просто появились в процессе разработки. Можно сказать, естественным образом. И можно было бы так и оставить их без внимания, чтобы позабавить лишь инженера в сервисном центре, который впервые разбирает Станцию. Но есть у меня надежда, что эта статья сможет натолкнуть других влюблённых в своё дело инженеров на что-то подобное: доброе и безобидное. Как меня когда-то натолкнула статья на Хабре.