- PVSM.RU - https://www.pvsm.ru -

Flipper Zero [1] — проект карманного мультитула для хакеров в формфакторе тамагочи, который я разрабатываю с друзьями. Предыдущие посты [1 [2]],[2 [3]],[3 [4]],[4 [5]],[5 [6]]
В этом выпуске: Системное API, Набор для разработчиков, Улучшения в механике и электронике, Обновления в GPIO, Новая функция в NFC, Удаленный тестовый стенд.
В сентябре мы почти ничего не писали о проекте, и сейчас пришло время объяснить, почему. Мы приостановили всю маркетинговую деятельность, чтобы сосредоточиться на разработке и других задачах: контракты на поставку и производство, юридические вопросы, поиск новых сотрудников и многое другое. Все это отнимало силы настолько, что у нас даже не было времени опубликовать обновление. Теперь мы готовы поделиться с вами новостями.

За этот месяц мы разработали архитектуру прошивки и системные API-интерфейсы, абстракции для взаимодействия с железом, управление потоками и многозадачность. Это работа под капотом, которую мы не показываем, но это важная часть разработки.
Наша главная цель при разработке прошивки — сделать ее максимально удобной и понятной для разработчиков, чтобы они могли легко писать свои программы для Flipper Zero. Поэтому после завершения кампании мы выбросили весь грязный код и начали разработку архитектуры с нуля.

За это время мы активно работали над внутренностями: писали бутлоадер, рефакторили код операционной системы, писали драйвера периферии, проектировали API пользовательских приложений. Также рефакторинг затронул систему сборки и зависимостей, переработан код пользовательского интерфейса. Наиболее важные изменения произошли в стеке нашей разработки: мы обновили используемый CMSIS RTOS до второй версии и привели наш код к использованию единого API. Новый API пользовательских приложений сделал большой шаг в сторону беты и мы надеемся открыть его публично в ближайшем будущем.

Новые комплектующие и дизайн корпуса
Корпус сильно изменился по сравнению с первым прототипом. Мы полностью переработали расположение кнопок и компонентов внутри, чтобы Флиппер не разваливался, был прочным и мог выдерживать интенсивное использование.
Мы перенесли модули RFID и NFC на отдельную плату под аккумулятором. Она подключена к материнской плате кабелями FPC.

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

Несъемные аккумуляторы — это бич современных устройств. Мы решили не использовать запаянную батарею и взяли батарею с трехконтактным разъемом, чтобы пользователи могли заменять её самостоятельно. Для большей ремонтопригодности мы планируем продавать отдельные компоненты Флиппера, в том числе и батарею, прямо на сайте.

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

Переделали распиновку GPIO. Добавилось ещё два контакта GND — их много не бывает.

Ресурсоемкие задачи вроде криптографических атак нельзя выполнить напрямую на Флиппере. Для некоторых недостаточно даже Raspberry Pi — нужен полноценный мощный десктопный процессор. Например:
Мы решили добавить возможность использовать Флиппер в качестве обычного USB NFC-адаптера вместе с библиотекой LibNFC. В итоге все существующие программы, работающие через LibNFC, будут работать сразу из коробки без модификаций. В этом режиме все команды с ПК будут проксироваться непосредственно на NFC-чип ST25R3916 через USB-интерфейс.
Главная проблема этой задачи в том, что библиотека LibNFC жестко прибита гвоздями к чипам NXP PN5xx, и в новом драйвере придется по сути эмулировать поведение чипа PN53ххх, но это не так страшно.

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

За кулисами Flipper Lab
Пока пишется код, его нужно постоянно тестировать. Задача усложняется тем, что тесты нужно выполнять на реальном железе и взаимодействовать с реальным миром. Для этого был сделан удаленный тестовый стенд, который интегрируется с CI-скриптами через GitHub Workflow. При каждом коммите в прошивку она автоматически собирается и заливается в девайс, после чего выполняются тесты, результаты которых выплевываются в UART: так можно понять какие тесты завершились успешно. Пока это работает криво, но в дальнейшем так мы будем проверять все функции: принимать/отправлять радио, считывать/записывать NFC карты, передавать/принимать ИК-сигнал и т.д.
Это такой же dev kit для разработчиков. Физические кнопки подключены через реле, что позволяет управлять ими удаленно. Изображение с экрана снимается камерой и транслируется на сайте в режиме реального времени. Через веб-морду можно залить прошивку вручную и потыкать на кнопки, если даже у разработчика нет устройства под рукой.

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

На нашем Discord-сервере мы добавили прямую трансляцию обновлений внутри проекта. Вы можете узнать, как идут дела у разработчиков, в режиме реального времени с новым каналом #updates, где видно коммиты, попадающие в репозиторий.
Сейчас на сервере более 6 тысяч участников!

Ранее мы запустили программу Flipper Developer Program [8] и получили около тысячи откликов. Нескольких разработчиков мы пригласили в полузакрытый репозиторий с прошивкой.
К сожалению, мы поняли, что горизонтальная модель управления нам не подходит, потому что большинство разработчиков, не работающих фулл-тайм, уделяют время проекту, только когда у них есть вдохновение и желание. Таким процессом сложно управлять и прогнозировать результат во времени. Поэтому сейчас мы нанимаем только разработчиков в штат на фулл-тайм. Возможно, когда основная часть низкоуровневого кода будет готова и мы откроем репозиторий, принимать вклад от сообщества будет проще.
Автор: Павел Жовнер
Источник [10]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/news/357805
Ссылки в тексте:
[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] Присоединяйтесь к нашему серверу Discord: http://flipperzero.one/discord
[8] Flipper Developer Program: https://blog.flipperzero.one/launching-the-developer-program/
[9] flipperdevices.com/jobs: https://www.flipperdevices.com/jobs
[10] Источник: https://habr.com/ru/post/522964/?utm_source=habrahabr&utm_medium=rss&utm_campaign=522964
Нажмите здесь для печати.