Flipper Zero — вымученная сертификация, открытие исходников и новые приколдесы

в 14:37, , рубрики: BLE, bluetooth low energy, flipper zero, flipperzero, stm32wb55, Блог компании Flipper Devices Inc., Производство и разработка электроники

Flipper Zero — вымученная сертификация, открытие исходников и новые приколдесы - 1

Flipper Zero — проект карманного мультитула для хакеров в формфакторе тамагочи, который мы разрабатываем. Предыдущие посты [1],[2],[3],[4],[5],[6],[7],[8],[9],[10],[11],[12]

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

Трудности с сертификацией Sub-1 GHz

Flipper Zero — вымученная сертификация, открытие исходников и новые приколдесы - 2Как мы писали ранее, для того чтобы официально ввозить устройства в Евросоюз, США, Японию, Австралию, нам нужно получить сертификат соответствия радиочастотным нормам в этих странах. Наш первый дизайн тракта Sub-1 GHz не проходил сертификацию из-за паразитных гармоник, превышающих допустимый уровень. В итоге нам пришлось сильно переделать дизайн всего тракта. Это отняло много времени, потому что необходимо было добиться одинаково хорошего качества передачи на всех 3 поддерживаемых диапазонах: 315, 433, 868 MHz.

image
Гармоники в диапазоне 315 MHz

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

image
Вариант дизайна антенны из нескольких частей

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

image
Клейкая подложка для фиксации антенны убирает вибрации

flipperzero new design sub1ghz antenna
Старая антенна Sub-1 GHz могла оторваться при вибрациях и падениях. В новом дизайне 2 точки крепления

Уникальное имя

imageТак выглядит паспорт дельфина, в котором теперь указано его имя

Каждый микроконтроллер STM32WB55 внутри Flipper Zero имеет уникальный серийный номер в шестнадцатиричном формате. Но это скучно и мы решили дать каждому Флипперу уникальное читаемое имя. Для этого мы взяли нейронную сеть, натренированную на именах покемонов, и сгенерировали словарь из 1 миллиона имен. Для большей уникальности имена разбавлены 1337-спиком.

Иногда нейронная сеть генерировала очень провокацинные имена. Пришлось долго настраивать фильтры, чтобы убрать имена похожие на ругательства. Но весь миллион именем просмотреть нереально, поэтому есть риск, что вам достанется Флиппер с именем вроде Loh4mo.

image
Странные имена, сгенерированные нейронной сетью, обученной на именах покемонов

Уникальный путь к порту в macOS

Это имя передается в дескрипторе USB как серийный номер в формате flip_NAME. В macOS этот серийный номер дописывается к имени последовательного порта и получается: /dev/tty.usbmodemflip_Oleg

Flipper Zero unique  USB port name in macOS

Разработка интерфейса

Прошивка — это самая масштабная часть работы в проекте Флиппера. Над ней трудятся сразу несколько команд: программисты, UI/UX-проектировщики, дизайнеры. Дизайн интерфейса осложняется тем, что у Флиппера маленький экранчик (всего 128х64 px) и только 5 функциональных кнопок, не считая кнопки Back. Это порождает необычный процесс проектирования интерфейсов. Мы выработали такой порядок:

  1. Сперва интерфейс проектируется в виде майндмапов в Miro. В этом месте происходит обсуждение, проработка разных концепций, споры и т.д.
  2. Утвержденный интерфейс разбивается на конкретные экраны и отрисовывается в виде картинок 128x64 в фотошопе в формате BMP.
  3. Дальше ассеты (наборы графики) конвертируются из BMP в XBM и передаются программистам вместе с инструкциями как нужно реализовывать интерактивные элементы, вроде клавиатуры и диалоговых окон. В процессе реализации интерфейса часто возникают ситуации, когда существующая библиотека для графики не позволяет реализовать что-то, тогда приходится решать, переделывать ли интерфейс, или дорабатывать графическую библиотеку.

image
Структура приложения RFID в Miro

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

image
Пример логики перехода между экранами и уведомлений

Блокировка экрана и новый UI главного экрана

Полностью переработан главный экран и быстрый доступ к функциям.

  • ↑ Вверх — меню блокировки.
  • → Вправо — взаимодействие с дельфином.
    Можно посмотреть профиль, поиграть и покормить пацана.
  • ↓ Вниз — быстрый доступ к инвентарю
    Ключи из всех приложений сохраняются в архив, по которому можно быстро перемещаться, чтобы сразу иметь доступ ко всем ключам из разных приложений: iButton, RFID/NFC, Infrared и т.д.

Демонстрация функции блокировки экрана и новые окна главного экрана

Приложение qFlipper

image
Приложение qFlipper для обновления прошивки, радиостека, загрузчика и трансляции экрана Флиппера на компьютер

Мы разрабатываем свою утилиту для прошивки Флиппера на Qt и C++. Она будет нативно работать на всех десктопных платформах. Еще эта утилита умеет захватывать фреймбуфер экрана Флиппера и транслировать его на экране компьютера. Это позволяет делать качественные скринкасты вместо того, чтобы снимать Флиппер камерой. Это удобно для записи инструкций и обучающих материалов.

Через qFlipper можно транслировать экран Флиппера в реальном времени на компьютер

Обновление прошивки из браузера

image
Обновить прошивку Flipper Zero можно через браузер без сторонних программ. Поддерживается Chrome, Opera, Microsoft Edge

Оказывается, есть такая штука, как WebUSB — позволяет прямо из браузера общаться с USB-устройством. У нас получилось успешно обновить прошивку Флиппера через специальную страницу Web DFU-Util Пока поддерживается только в Chrome, Opera, Microsoft Edge.

Это безумно круто, потому что позволяет пользователю прошить свой Флиппер, вообще не скачивая никакие файлы из интернета! В итоге релизы альтернативных прошивок будут выглядеть так:

  1. Чувак форкает репозиторий с прошивкой Флиппера сразу вместе с файлами для WebUSB
  2. Делает свою сборку от Васяна и одной кнопкой создает страницу на GitHub Pages, куда выкладывает бинарник своей прошивки
  3. Любой желающий может зайти на его сайт и в один клик прошить свой Флиппер его прошивкой

Начинаем открывать исходники

Схема Flipper Zero теперь публична

Мы постепенно начинаем выкладывать исходники проекта. Сейчас уже опубликована принципиальная схема всего Flipper Zero в виде каждой отдельной платы. Мы просим вас изучить схему и написать обо всех замечаниях в комментариях.

Исходники схемы

Flipper Zero — вымученная сертификация, открытие исходников и новые приколдесы - 15
Мы также опубликовали чертежи и обновили 3D-модели корпуса и референсного модуля Флиппера.

Они доступны в документации и отдельном репозитории.

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

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

Упаковка и логистика

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

Внутри коробки находится вставка из упругой пенки, куда укладывается сам Флиппер. Под ним будет находиться Type-C кабель.

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

image
Тестовые образцы коробки. Финальная версия будет аккуратной, а изображение может отличаться

Если вы хотите принять участие в дизайне коробки, вот исходники cdn.flipperzero.one/Flipper_zero_Box_Template.zip Свои варианты можете выкладывать в комментариях.

image
Исходники дизайна коробки для желающих предложить свой вариант оформления

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

Мы будем отправлять Флиппер в транспортном режиме, когда питание процессора оставлено только на RTC, то есть сохраняется состояние внутренних часов. Чтобы включить устройство, нужно будет зажать кнопку Back.

Заполнение адресов и оплата доставки

imageНа сегодняшний день 92% бэкеров заполнили адрес доставки в пледж-менеджере. Около 3 тысяч бэкеров до сих пор не закончили опрос. Если вы до сих пор не заполнили свои данные, пожалуйста, сделайте это. Нам важно точно рассчитывать количество черных и белых корпусов для производства, а также регионы, в которые поедут посылки.

BackerKit работает точно так же как Кикстартер: в форме вы просто указываете карту, а списание произойдёт массово и позднее. В пледж-менеджере можно добавить в заказ дополнительных Флипперов, чехол и прочие аксессуары. Даже если вы завершили заполнение формы, любые поля в ней можно изменить, пока мы не заблокируем заказы, о чём предупредим заранее.

Подробнее описывали процесс в англоязычном посте.

image
8% бекеров не закончили ввод адреса и карты для оплаты доставки в пледж-менеджере

В середине апреля мы начнем списывать деньги с ваших карт за доставку и аксессуары. До этого момента вы можете свободно изменять адрес доставки, выбранные цвета, набор аксессуаров в заказе. Поменять можно даже страну доставки. За несколько дней до блокировки заказов и списания денег мы пришлем письмо, чтобы не застать вас врасплох. И всё же, не зевайте.

Отладочный модуль ST-Link V3

image
Модуль отладчика для Flipper Zero на базе ST-Link V3

Для всех желающих разрабатывать модули под Флиппер мы опубликовали исходники референсного модуля отладочной платы на базе STLink V3. Доступны полные исходники проекта в Altium, наша библиотека компонентов и чертежи механики.

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

— Алло, мы ищем таланты!

imageМы постоянно ищем инженеров и менеджеров в нашу дружную команду. Весь список вакансий можно посмотреть здесь.

C Разработчик (Embedded) / Middle

Прошивка — очень масштабная часть, состоящая из операционной системы на базе FreeRTOS и большого числа отдельных приложений, поэтому мы постоянно набираем новых разработчиков для ее реализации. Нам нужен человек, который уверенно умеет в C и хорошо знаком с эмбеддом. Полное описание вакансии: career.habr.com/vacancies/1000068496

QA-инженеры / Тестировщики ПО (Embedded)

Тестирование — объемная часть, которая невероятно важна на всех этапах создания Flipper Zero. Сейчас наши разработчики активно выкатывают новые версии софта и железа, поэтому в нашу команду нужен Middle и Juior QA-инженеры. Полное описание вакансий:

career.habr.com/vacancies/1000071996
career.habr.com/vacancies/1000071987

Project Manager

Наш проект состоит из большого количества систем, каждой из которых занимается один или несколько людей. Мы ищем человека, который поможет успевать со всеми задачами, синхронизировать команды и держать планирование под контроллем. Полное описание вакансии: career.habr.com/vacancies/1000063748


Наши соц.сети

Flipper Zero — вымученная сертификация, открытие исходников и новые приколдесы - 22     Flipper Zero — вымученная сертификация, открытие исходников и новые приколдесы - 23      Flipper Zero — вымученная сертификация, открытие исходников и новые приколдесы - 24     Flipper Zero — вымученная сертификация, открытие исходников и новые приколдесы - 25     Flipper Zero — вымученная сертификация, открытие исходников и новые приколдесы - 26    Flipper Zero — вымученная сертификация, открытие исходников и новые приколдесы - 27

Все характеристики Flipper Zero на официальном сайте.
Наш англоязычный блог.

Автор: Павел Жовнер

Источник


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js