- PVSM.RU - https://www.pvsm.ru -
Flipper Zero [1] — проект карманного мультитула для хакеров в формфакторе тамагочи, который мы разрабатываем. Предыдущие посты [1 [2]],[2 [3]],[3 [4]],[4 [5]],[5 [6]],[6 [7]],[7 [8]],[8 [9]],[9 [10]],[10 [11]],[11 [12]],[12 [13]]
Мы изо всех сил готовимся к старту массового производства, но на пути возникают шероховатости. Нам посчастливилось, что наше производство приходится на один из самых крупных кризисов в поставке электронных компонентов за последние пару десятков лет. Вы можете наблюдать это, например, по ситуации с видеокартами. Также нам пришлось переделать Sub-1 GHz тракт, чтобы он соответствовал требованиям регулятора, и антенна не отваливалась от ударов. В посте я расскажу, что мы делаем сейчас, как движется разработка, как выглядит подготовка к доставке, и покажу пару новых классных фич.
Как мы писали ранее, для того чтобы официально ввозить устройства в Евросоюз, США, Японию, Австралию, нам нужно получить сертификат соответствия радиочастотным нормам в этих странах. Наш первый дизайн тракта Sub-1 GHz не проходил сертификацию из-за паразитных гармоник, превышающих допустимый уровень. В итоге нам пришлось сильно переделать дизайн всего тракта. Это отняло много времени, потому что необходимо было добиться одинаково хорошего качества передачи на всех 3 поддерживаемых диапазонах: 315, 433, 868 MHz.
Гармоники в диапазоне 315 MHz
Были даже совсем экзотические варианты: разделить антенну на несколько сегментов и подключать разные ее части с помощью переключателей на GPIO. К счастью, такое усложнение не потребовалось, а новый дизайн отвечает всем формальным требованиям.
Вариант дизайна антенны из нескольких частей
Мы проводили тесты надежности, в которых устройство роняют, трясут и по-всякому пытаются сломать. В результате тестов выяснилось, что вибрация разрушает точку пайки антенны, и со временем, при активной тряске и падениях, антенна может отвалиться. Пришлось переделать крепление антенны: теперь она закреплена в двух точках и дополнительно усилена демпфирующим материалом в корпусе, чтобы устранить неприятный металический дребезг.
Клейкая подложка для фиксации антенны убирает вибрации
Старая антенна Sub-1 GHz могла оторваться при вибрациях и падениях. В новом дизайне 2 точки крепления
Так выглядит паспорт дельфина, в котором теперь указано его имя
Каждый микроконтроллер STM32WB55 внутри Flipper Zero имеет уникальный серийный номер в шестнадцатиричном формате. Но это скучно и мы решили дать каждому Флипперу уникальное читаемое имя. Для этого мы взяли нейронную сеть, натренированную на именах покемонов, и сгенерировали словарь из 1 миллиона имен. Для большей уникальности имена разбавлены 1337-спиком [14].
Иногда нейронная сеть генерировала очень провокацинные имена. Пришлось долго настраивать фильтры, чтобы убрать имена похожие на ругательства. Но весь миллион именем просмотреть нереально, поэтому есть риск, что вам достанется Флиппер с именем вроде Loh4mo.
Странные имена, сгенерированные нейронной сетью, обученной на именах покемонов
Это имя передается в дескрипторе USB как серийный номер в формате flip_NAME. В macOS этот серийный номер дописывается к имени последовательного порта и получается: /dev/tty.usbmodemflip_Oleg
Прошивка — это самая масштабная часть работы в проекте Флиппера. Над ней трудятся сразу несколько команд: программисты, UI/UX-проектировщики, дизайнеры. Дизайн интерфейса осложняется тем, что у Флиппера маленький экранчик (всего 128х64 px) и только 5 функциональных кнопок, не считая кнопки Back. Это порождает необычный процесс проектирования интерфейсов. Мы выработали такой порядок:
Структура приложения RFID в Miro
Кроме самого дизайна экрана необходимо придумывать логику перемещения между разными состояниями, таймауты, индикацию (вибрация, пищалка, статусный светодиод), механизмы работы персонажа дельфина, очки за совершение действий и бездействие. Эта логика тоже отражена в карте приложения.
Пример логики перехода между экранами и уведомлений
Полностью переработан главный экран и быстрый доступ к функциям.
Демонстрация функции блокировки экрана и новые окна главного экрана
Приложение qFlipper для обновления прошивки, радиостека, загрузчика и трансляции экрана Флиппера на компьютер
Мы разрабатываем свою утилиту для прошивки Флиппера на Qt и C++. Она будет нативно работать на всех десктопных платформах. Еще эта утилита умеет захватывать фреймбуфер экрана Флиппера и транслировать его на экране компьютера. Это позволяет делать качественные скринкасты вместо того, чтобы снимать Флиппер камерой. Это удобно для записи инструкций и обучающих материалов.
Через qFlipper можно транслировать экран Флиппера в реальном времени на компьютер
Обновить прошивку Flipper Zero можно через браузер без сторонних программ. Поддерживается Chrome, Opera, Microsoft Edge
Оказывается, есть такая штука, как WebUSB [16] — позволяет прямо из браузера общаться с USB-устройством. У нас получилось успешно обновить прошивку Флиппера через специальную страницу Web DFU-Util [17] Пока поддерживается только в Chrome, Opera, Microsoft Edge.
Это безумно круто, потому что позволяет пользователю прошить свой Флиппер, вообще не скачивая никакие файлы из интернета! В итоге релизы альтернативных прошивок будут выглядеть так:
Мы постепенно начинаем выкладывать исходники проекта. Сейчас уже опубликована принципиальная схема всего Flipper Zero в виде каждой отдельной платы. Мы просим вас изучить схему и написать обо всех замечаниях в комментариях.
→ Исходники схемы [18]
Мы также опубликовали чертежи и обновили 3D-модели корпуса и референсного модуля Флиппера.
Они доступны в документации [19] и отдельном репозитории [20].
Эти модели уже очень близки к финальным, хоть и могут незначительно измениться перед процессом литья.
Мы продолжим открывать исходники проекта, и к моменту отправки основной волны устройств опубликуем все оставшиеся части проекта.
Готовим упаковку. Мы выбрали самый простой, дешевый и экологичный картон с черно-белой печатью. От упаковки требуется быть максимально компактной и при этом уберечь устройство внутри от падений, ударов и сжатий.
Внутри коробки находится вставка из упругой пенки, куда укладывается сам Флиппер. Под ним будет находиться Type-C кабель.
Важно, чтобы устройство внутри было зафиксировано неподвижно, иначе от тряски могут быть потертости. Чтобы проверить это, устройство проходит ряд тестов на безопасность транспортировки, в том числе на вибрационном стенде.
Тестовые образцы коробки. Финальная версия будет аккуратной, а изображение может отличаться
Если вы хотите принять участие в дизайне коробки, вот исходники cdn.flipperzero.one/Flipper_zero_Box_Template.zip [21] Свои варианты можете выкладывать в комментариях.
Исходники дизайна коробки для желающих предложить свой вариант оформления
Так как мы отправляем устройство с подключенной батареей, нам нужно получить все необходимые для этого сертификаты, UN38.3 и тестовые отчеты по транспортной безопасности, а также убедиться, что устройство едет в безопасном режиме.
Мы будем отправлять Флиппер в транспортном режиме, когда питание процессора оставлено только на RTC, то есть сохраняется состояние внутренних часов. Чтобы включить устройство, нужно будет зажать кнопку Back.
На сегодняшний день 92% бэкеров заполнили адрес доставки в пледж-менеджере [22]. Около 3 тысяч бэкеров до сих пор не закончили опрос. Если вы до сих пор не заполнили свои данные, пожалуйста, сделайте это. Нам важно точно рассчитывать количество черных и белых корпусов для производства, а также регионы, в которые поедут посылки.
BackerKit работает точно так же как Кикстартер: в форме вы просто указываете карту, а списание произойдёт массово и позднее. В пледж-менеджере можно добавить в заказ дополнительных Флипперов, чехол и прочие аксессуары. Даже если вы завершили заполнение формы, любые поля в ней можно изменить, пока мы не заблокируем заказы, о чём предупредим заранее.
Подробнее описывали процесс в англоязычном посте [23].
8% бекеров не закончили ввод адреса и карты для оплаты доставки в пледж-менеджере
В середине апреля мы начнем списывать деньги с ваших карт за доставку и аксессуары. До этого момента вы можете свободно изменять адрес доставки, выбранные цвета, набор аксессуаров в заказе. Поменять можно даже страну доставки. За несколько дней до блокировки заказов и списания денег мы пришлем письмо, чтобы не застать вас врасплох. И всё же, не зевайте.
Модуль отладчика для Flipper Zero на базе ST-Link V3
Для всех желающих разрабатывать модули под Флиппер мы опубликовали исходники референсного модуля отладочной платы на базе STLink V3. Доступны полные исходники проекта в Altium, наша библиотека компонентов и чертежи механики.
Наша разработчица Сахаайа, которая занимается трассировкой плат, записала небольшой видеоурок о том, как выглядит работа в Altium.
Мы постоянно ищем инженеров и менеджеров в нашу дружную команду. Весь список вакансий можно посмотреть здесь [24].
Прошивка — очень масштабная часть, состоящая из операционной системы на базе FreeRTOS и большого числа отдельных приложений, поэтому мы постоянно набираем новых разработчиков для ее реализации. Нам нужен человек, который уверенно умеет в C и хорошо знаком с эмбеддом. Полное описание вакансии: career.habr.com/vacancies/1000068496 [25]
Тестирование — объемная часть, которая невероятно важна на всех этапах создания Flipper Zero. Сейчас наши разработчики активно выкатывают новые версии софта и железа, поэтому в нашу команду нужен Middle и Juior QA-инженеры. Полное описание вакансий:
career.habr.com/vacancies/1000071996 [26]
career.habr.com/vacancies/1000071987 [27]
Наш проект состоит из большого количества систем, каждой из которых занимается один или несколько людей. Мы ищем человека, который поможет успевать со всеми задачами, синхронизировать команды и держать планирование под контроллем. Полное описание вакансии: career.habr.com/vacancies/1000063748 [28]
Все характеристики Flipper Zero на официальном сайте [35].
Наш англоязычный блог [36].
Автор: Павел Жовнер
Источник [37]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/ble/362691
Ссылки в тексте:
[1] Flipper Zero: https://flipperzero.one/
[2] 1: https://habr.com/ru/post/477440/
[3] 2: https://habr.com/ru/post/490196/
[4] 3: https://habr.com/ru/post/496984/
[5] 4: https://habr.com/ru/post/513074/
[6] 5: https://habr.com/ru/post/514326/
[7] 6: https://habr.com/ru/company/flipperdevices/blog/522964/
[8] 7: https://habr.com/ru/company/flipperdevices/blog/523558/
[9] 8: https://habr.com/ru/company/flipperdevices/blog/528808/
[10] 9: https://habr.com/ru/company/flipperdevices/blog/530886/
[11] 10: https://habr.com/ru/company/flipperdevices/blog/532028/
[12] 11: https://habr.com/ru/company/flipperdevices/blog/538516/
[13] 12: https://habr.com/ru/company/flipperdevices/blog/546550/
[14] 1337-спиком: https://lurkmore.to/Leet
[15] Miro: https://miro.com/
[16] WebUSB: https://wicg.github.io/webusb/
[17] Web DFU-Util: https://devanlai.github.io/webdfu/dfu-util/
[18] Исходники схемы: https://docs.flipperzero.one/ru/development/hardware/schematic/
[19] документации: https://docs.flipperzero.one/ru/development/mechanics/blueprints/
[20] отдельном репозитории: https://github.com/Flipper-Zero/flipperzero-3d-models
[21] cdn.flipperzero.one/Flipper_zero_Box_Template.zip: https://cdn.flipperzero.one/Flipper_zero_Box_Template.zip
[22] пледж-менеджере: https://flipperzero.backerkit.com
[23] англоязычном посте: https://blog.flipperzero.one/complete-the-order/
[24] посмотреть здесь: https://career.habr.com/companies/flipper-devices
[25] career.habr.com/vacancies/1000068496: https://career.habr.com/vacancies/1000068496
[26] career.habr.com/vacancies/1000071996: https://career.habr.com/vacancies/1000071996
[27] career.habr.com/vacancies/1000071987: https://career.habr.com/vacancies/1000071987
[28] career.habr.com/vacancies/1000063748: https://career.habr.com/vacancies/1000063748
[29] Image: https://t.me/zhovner_hub
[30] Image: https://instagram.com/flipper_zero/
[31] Image: https://fb.com/flipperzero
[32] Image: https://twitter.com/flipper_zero
[33] Image: https://flipperzero.one/discord
[34] Image: https://www.youtube.com/channel/UCfKVWB_pOfsY-HQ2siMBn6g
[35] официальном сайте: https://flipperzero.one
[36] англоязычный блог: https://blog.flipperzero.one
[37] Источник: https://habr.com/ru/post/547844/?utm_source=habrahabr&utm_medium=rss&utm_campaign=547844
Нажмите здесь для печати.