Расскажу, как мы делаем железо для Neko. Взлёты и падения, победы и провалы, всё как мы любим. Фактически, это лог одного из наших чятов про HW.
Речь пойдёт только про железо в общих чертах. Треки дизайна, софта, AI и биздева тут рассказывать не буду — там в каждом отдельные увлекательные блокбастеры.
Идея устройства — будучи владельцем висящей на стене электрогитары, хочу иметь возможность от неё кайфануть, не разматывая провода, подлючая преампы-процессоры-усилители.
Вот есть у меня 15 минут после работы, и я хочу кайфануть — поиграть любимые песни, записать рифф, который весь день крутится в голове, и чтобы он сразу превратился в готовый трек.
Вот видо-скринкаст из Neko. Здесь пример fx-процессора, в который подгружаются все модели усилителей и педалек в мире из Tone3000 прямо онлайн, без регистрации и смс
Но это лирика, собственно, к рассказу.
Интро
Точнее, к небольшому интро о нюансах hw-разработки.
Делать железо — дело неблагодарное, которое жутко растит сложность проекта, а дальше (если проект окажется востребован и интересен) ещё и ограничивает рост бизнеса.
Есть примеры, типа Паши Жовнера и его Флиппера — но это случай уникальный, скорее исключение из текущего порядка дел. Обычно по причинам выше и разработчики и бизнес сторонятся hardware-проектов.
Но меня, наоборот, эта страсть одолевает больше 10 лет — началась с совсем наколеночных рок-девайсов, дальше завела в умные устройства Яндекса. А потом дала жизнь Neko, вокруг которого собралась команда из ещё десятка таких же одержимых ребят.
Несмотря на то, что у нас всех довольно глубокий опыт разработки железа, мы умудрились понаступать на кучу граблей, о части которых и расскажу ниже.
Чтобы было понятнее, добавлю чуть терминологии о стандартных этапах разработки железок. Их придумали, чтобы сделать девелопмент более предсказуемым и управляемым:
-
MVP (Minimal Viable Product — это мы знаем, когда идею надо ну хоть как-то проверить)
-
EVT (Engineering Validation Test) — когда собираем устройство из около-продовых компонент, но девайс должен заработать в прод-режиме
-
DVT (Design Validation Test) — когда запихиваем заработавшее железо в красивый прод-корпус
-
PVT (Production Validation Test) — когда работающий красивый девайс адаптируем к конвейеру, и убеждаемся, что попадаем в экономику
Если пытаться перепрыгнуть какую-то из этих стадий, например, чтобы всех обмануть и ускориться, получится кошмар, сущий ад, сорванные сроки и маховик безумия, грозящий разнести любую блестящую идею в щепы.
Конечно же, мы попытались, и вот что из этого вышло.
MVP
Итак, из интервью и личного опыта определили необходимые составляющие гаджета:
— Пусть он будет как AirPods, всегда готов к игре: для этого будут радио-джеки, которые вставляются в гитару, и в комбик (если нужно), без проводов,
— Можно сказать «хочу чистый, как One Металлики», и звук станет реально крутой, как у металлики, и не надо три часа крутить ручки,
— Можно записать рифф из головы, за минуту сгенерировать для него аранжировку, чтобы с ней поджемить или пошейрить другу.
В общем, подключил, сыграл рифец, получил трек, кайфанул, повторил на следующий день.
Посмотрев на эти задачи, как-то родился наивный план — не следовать той самой последовательности EVT-DVT-PVT, а пойти по простому (так показалось) пути.
За 2-3 месяца поднимем MVP на Raspberry, радио соберём из BT-передатчиков, но со своим протоколом данных (чтобы не было BT-задержек). И ещё за пол годика соберём уже девайс из около-продовых запчастей, который отдадим в китайский дизайн-хаус на финальный этап подготовки производста. Ну мы ж спецы, не по объявлению нанялись!
Большая ошибка 🙂
Про звуковую технику тут даже писать не хочется. Писал об этом отдельную статью, потому что всё вылилось в суровое RnD, результат которого сейчас патентуется.
Первый нюанс был как раз в приёмниках — они отправляют звуковые данные, полученные из передатчика, по SPI. И из-за критичного для устройства требования к latency (задержке от удара по струне инструмента до звука из колонок), должны залетать в Raspberry в режиме SPI Slave.
Естестенно, Raspberry 4 не поддерживает такой режим SPI Slave на уровне процессора. Надо менять процессор (то есть, всю Raspberry 4) на что-то другое.
Параллельно совещаясь с фабрикой в Китае, технологическими партнёрами, и между собой об опыте использования других камней, выбрали новые мозги для MVP — Banana Pi на RK3576. Подключили 7″ экран, собрали прототипчик — огонь, MVP готово, идея работает.
По пути подняли бэк с генеративкой, стем-сплиттером и разметкой табов, написали минимальный софт, чтобы это склеить в работающий прототип.
В итоге проверили на MVP — задуманное сделать можно, играет это норм, всё что задумали, прям надо, но абсолютно всё надо переделать.
EVT не обойти
MVP был полезен, потому что подтвердил в общих чертах, что концепт живой. Но он не ответил ни на один из технических вопросов:
— из каких компонентов будет собрано прод-устройство? Есть ли для них драйвера? Будут ли они работать все вместе?
— какие схемотехнические решения будут использованы? Сможем ли мы упихать их в единое устройство?
— ну и всякие совсем нюансы: масса, стоимость, тепловыделение, etc.
Ещё на этапе выбора процессора мы много общались с инженерами китайской фабрики, которая взялась за производство ещё не созданного девайса — они должны гарантировать, что в проде мы сможем установить нужные компоненты, и подтверить их цену.
И там мы поняли, что эмм.. у нас несколько завышенные ожидания от китайцев (китайци!), и нам предстоит чуть больше работы сделать самим, а не надеяться на китайский дизайн-хаус.
В общем, никто кроме нас работу не сделает, если хотим хорошо. Начали подбирать компоненты для EVT.
Параллельно шла большая работа по промышленному дизайну устройства — печатали прототипы, крутили в руках, пробовали разные концепции. Один из них был признан финальным, и компоненты выбирали, исходя из его внешки.
Начали с экрана — весь дизайн устройства и основных экранов в UI был построен от пропорций экрана 4:3, дальше там золотое сечение, правильно буравчика или что там у дизайнеров.
Если честно, засыпаплись мы с первого же вопроса — какой размер диагонали у экрана? Здесь мы чуть не передрались, и чтобы не допустить кровопролития, занялись прототипированием из картона, чтобы обогнать даже 3д-принтер.
В итоге нашли не только размер экрана, но и способ, как внутрь девайса будут прятаться джеки — блочками слева и справа.
Естестенно, экранов в нужном размере с соотношением сторон 4:3, которые можно брать в прод, не нашлось. Вообще маленькие экраны почти не выпускают, и если для пары прототипов можно найти всё что угодно, то на серию выбор крайне ограничен.
Нашёлся классный вариант похожего размера, но с другим соотношении сторон, ценой и интерфейсом.
Чтобы подключить экран к Банане, разработали ещё одну плату. Для кнопок и контролов нужна была ещё плата, ещё пара плат для передатчиков, и ещё какие-то платы.
В общем, чтобы не захлебнуться в этом обилии рассыпухи, решили, что мы пойдём в самое настоящее EVT, которое будет собрано как Arduino — бутерброд из всех необходимых шилдов для тестов технических решений, упакованных в одну коробочку.
EVT-1
Задачи, возложенные на EVT-1 были такими:
— понятно, что надо потестить всю технику,
— надо потестить UX, который мы придумали, топ-панелька должна быть похожа на прод-устройство,
— EVT станет тестовым девайсом для разработки и тестов,
— а заодно и девайсом для отправки партнёрам, чтобы тестить интеграции.
Естественно, их количество по пути удвоилось, и EVT мы переделывали тоже несколько раз.
Под изменившийся экран и механику вкладывания радио-модулей ещё раз перепридумали, как будет выглядеть устройство.
EVT должно было сверху выглядит похоже, но в остальном — это ящик любых размеров, в котором прячется бутерброд из плат. А их в итоге было.
На NRF борду заехало всё радио, немного павер менеджмента цифровой части.
Топ-панелька с контролами — с адаптером LCD, кнопочками, тач вилом, светодиодами, моторчиком, etc.
На аудио-шилде разместили аналоговую часть, такую же как и на радио-джеках, которая отвечает за то, чтобы это всё играло в любых случаях с любыми гитарами и любыми усилителями.
Всё это собрали в невероятно красивую коробочку, от которой, естественно, пришлось отказаться. Потому что при сборке об неё ломался LCD.
А ещё доехали требования и экспы по радио-каналу, и в неё физически не влазили новые передатчики на 5,8 ГГц, которые мы вывезли с Тайваня.
Но устройство уже завелось и начало радовать своей работой. При появлении законченного EVT, команда софта ускорилась раз так в 10.
Это обнаружило новые баги, которые невозможно починить софтом. Например, пришлось менять конструкцию тач-вила, чтобы сгладить механикой недостаток контроллера (чувствительность в одном из каналов), о котором не было заявлено в дата-шите.
Но кайф, конечно, от того, когда ты получаешь прям физический работающий девайс, вот как ты его и задумал — это невероятно для всех, от дизайнера, проектирующего интерфейс и менеджера, крутящего эти фичи в голове, до инженеров и хардверных и софтверных.
DVT-1
DVT — это Design Valuation Test. Примерно то же, что и EVT, только уже в красивой прод-коробке.
Там важно другое:
— чтобы вся техника впихнулась в нужную коробку и работала там по продуктовым требованиям,
— чтобы CMF (Color, Material, Finish) соответствовал требованиям — нужные оттенки, глубина кликов, шероховатость, etc.
— чтобы UX от устройства соответствовал ожиданиям, конструкция работала, и не разваливалась на запчасти в различных ситуациях.
Работу над ним начали параллельно с EVT, потому что уже лучше понимали, какие будут основные прод-компоненты.
Для начала распечатали несколько вариантов DVT-корпуса на 3Д-принтере, поприкладывали его части друг к дружке, джеки к гитаре, пощупали руками, ну вроде всё збс.
Начали с заказа продовых LCD — с нужными нам стёклами, а не как кусочек андроидофона. Для этого пришлось договориться с фабрикой перестроить ненадолго конвейер под наши требования.
В итоге получили красивущие LCD, правда, чуток с отклонениями по размерам (не критичными, если есть напильник), без клея (научились вклеивать сами) и естественно (естественно!) с неожиданной распиновкой разъёма, для которого пришлось разработать ещё одну версию адаптера.
Параллельно для производства корпуса отобрали несколько фабрик. На всякий случай заказали алюминиевые болванки с примером шероховатостей.
Семплы пришли в отвратительном качестве, уже привычно напостили мемов «китайци» в чат, в шорт-листе фабрик осталась одна. И уже через пару недель у нас уже появились фотки настоящийх продовых DVT-образцов, точнее из запчастей.
Нашли у других поставщиков подходящие безмолдовые джеки и магнитные разъёмы, отправили напрямую в нашу DVT-фабрику. Договорились об их сборке и подгонке, что фабрика, конечно же, не сделала, и мы собирали уже после получения компонентов сами.
Заключение
Вот такое небольшой рассказ про наши итерации разработки.
Конечно, можно было сделать быстрее и лучше. Да и историй там ещё — тысяча и одно тележка. На всё это накладывается всегда сложная логистика запчастей, блокада Ормуза, война в Иране, пандемия, торговые войны и пошлины, китайские и не только праздники и ещё куча самых разнообразных сюрпризов.
Но год назад Neko было просто идеей, пол-года назад — картонкой на столе и франкенштейном из проводом и плат, а сейчас — вполне себе красивая DVT-шка с радио-джеками, работающим процессором и даже нейросетками внутри.
Спасибо, что дочитали, и если интересно следить за тем, как это превратится в готовый девайс, забегайте в канальчике: https://t.me/smirnov_ceo. Пишу не сильно часто, зато никакой рекламы.
Ну а если играете на инструменте — пишите пожелания, учтём 🙂
ссылка на оригинал статьи https://habr.com/ru/articles/1037880/