Над железом Flipper Zero работают одновременно несколько инженеров. Коллективная работа над железным проектом — это боль. У программистов есть крутые системы контроля версий и модные сервисы вроде GitHub, но бинарные файлы печатной платы и схем нельзя так просто засунуть в Git. Мы долго и мучительно искали решение этой проблемы и наконец нашли.

Altium 365 — это система контроля версий с веб-интерфейсом для работы над железными проектами. Мы смогли перенести привычный воркфлоу GitHub на железную разработку. В посте я расскажу про наш опыт использования Altium 365 на примере реальной задачи в нашем проекте Flipper Zero.

Как разрабатывали железо раньше

Хардкорные ребята из отечественных НИИ привыкли вести версионность железных проектов в папках и архивах. На каждую версию просто создается папка. Такой подход очень легко ломается, когда внутри папки кто-то внезапно отредактировал и забыл изменить версию, и все потерялось.

Версионность для бедных — На каждую версию создается отдельная папка

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

Что если использовать GitHub?

Железо для Flipper Zero разрабатывается в Altium Designer силами трех инженеров. Вначале мы по привычке пробовали использовать GitHub для версионирования и коллективной работы, но это оказалось ОЧЕНЬ неудобно. Каждому инженеру приходилось долго согласовывать, кто в какой момент начнет работу над платой, ждать пока каждый закончит свои изменения и выгрузит их в Git, потому что в отличие от обычного кода, бинарные файлы нельзя так просто редактировать параллельно.

Минусы использования GitHub вместе с Alitum

  • Нельзя сравнить бинарные файлы. Непонятно, чем один релиз отличается от другого. Каждый коммит обновляется сотни раз

  • Нужно использовать отдельную программу для ведения репозитория

  • Нельзя посмотреть содержимое проекта в веб-интерфейсе. Непонятно, что вообще находится в репозитории

  • Неудобно готовить релизы. Итоговые Gerber-файлы нужно подкладывать руками в релиз

В итоге мы начали искать решение лучше.

Что такое Altium 365

Altium 365 — это облачный сервис для коллективной работы над железом. В нем есть одновременно система контроля версий, предотвращения конфликтов, веб-интерфейс для просмотра и управления проектом. Десктопная версия Altium Designer подключается к удаленному серверу Altium 365, с которым синхронизирутся проекты, библиотеки компонентов и т.д. Изменения сохраняются на удаленный сервер, как обычные коммиты. Разработчики при этом работают в нативной десктопной программе Altium Designer как обычно.

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

Altium 365 глазами разработчика железа

Со стороны разрабочтика печатных плат работа с Altium365 выглядит так:

  1. Разработчик авторизуется своим корпоративным аккаунтом в десктопном Altium Designer и подключается к удаленному воркспейсу. Вся работа происходит в нативной десктопной программе, не в браузере.

  2. Ему сразу становятся доступны все проекты и библиотеки компонентов внутри его воркспейса, не нужно вручную выкачивать какие-то файлы.

  3. После внесения изменений в проект выполняется коммит с комментарием и пуш на сервер, точно так же, как это делается в Git.

Разработчик подключается к корпоративному серверу Altium 365

Предотвращение конфликтов

Для предотвращения конфликтов, когда два разработчика одновременно вносят изменения в один файл, в списке файлов появляется иконка о том, что файл уже редактируется другим пользователем. Можно видеть его имя и согласовать работу.

Другой пользователь редактирует файл

Сохранение на сервер

После завершения работы изменения можно сохранить на сервере. Для простоты есть кнопка Save to Server, которая по сути выполняет локальный коммит и пуш. В коммите можно ввести комментарий, описывающий изменения.

Сохранение изменений на сервер и описание изменений

Общая библиотека компонентов

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

Веб-интерфейс Altium 365

Сервер Altium 365 имеет веб-интерфейс. В нашей компании к нему имеют доступ все инженеры: тестировщики, программисты, механики (разработчики корпуса). Это ОЧЕНЬ удобный инструмент, позволяющий из браузера и без установки программ быстро иметь доступ ко всей схемотехнике и 3D-моделям плат.

Зачем нужен веб-интерфейс Altium 365

  • Просматривать файлы проекта: схемы, герберы, 3D-модели, искать нужны компоненты на плате, дорожки т.д. ИЗ БРАУЗЕРА(!!!)

  • История коммитов. Можно отслеживать, когда и кто вносил изменения в проект. Это удобно для менеджеров, отслеживающих выполнение задач и всех членов команды. Любой коммит можно скачать отдельно или клонировать в отдельный репозиторий.

  • Система комментариев. Тестировщик может выделить нужную область или компонент на плате и написать комментарий для разработчика.

  • Оформление релизов для производства.

Веб-интерфейс нашего вокрпейса Altium 365. Все платы Flipper Zero

История коммитов и релизов

Вся история коммитов отображается в разделе History с комментариями. В каждом коммите есть список измененных компонентов, но на мой взгляд он не особенно полезен.

Также в истории публикуются релизы проекта. Это готовые наборы герберов и прочих файлов для производства, которые отправляются на завод. Их можно расшарить прямо в веб-интерфейсе, указав email получателя.

Просмотр схемы

Во вкладке SCH находится интерактивный просмотрщик схемы. Он умеет показывать информацию о компонентах и цепях. Можно выделить нужный компонент или дорожку на схеме и перейти к ней на 3D-модели или плате. Удобно при отладке физической платы.

Интерактивный вьювер схемы

Просмотр платы

Во вкладке PCB — интерактивный вьювер платы. Так же, как и во вьювере схемы, можно выделить каждый компонент и посмотреть информацию о нем, и как он выглядит на схеме и в 3D. Слева можно включить отображение платы по слоям.

Интерактивный вьювер платы

3D-модель

Вьювер 3D-модели тоже интерактивный. Любой компонент можно выделить и найти его на схеме или во вьювере PCB. При этом все работает нативно в браузере на WebGL, без установки плагинов и программ.

Вьювер 3D-модели платы

Комментарии

Во вьюверах PCB и SCH можно оставить комментарий под компонентом или областью. Комментарий будет виден всем в веб-интерфейсе и разработчикам в десктопной программе. У каждого комментария можно поставить статус Resolved, то есть использовать их как задачи для правок.

Можно оставить комментарий под любым компонентом

Благодарности команде Altium

Мы пользуемся Altium 365 каждый день и очень рады, что больше не нужно страдать. От лица нашей компании Flipper Devices хочу выразить благодарность команде Altium за удобный инструмент, который мы используем каждый день, и отдельное спасибо за поддержку, помощь в настройке и обучении.

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

Как попробовать Altium 365

Для маленьких команд и стартапов есть программа Altium Launchpad, по которой можно приобрести лицензию на Altium со скидкой.

Также рекомендую русскоязычный чат в Telegram @Altium_and_electronics,где можно пообщаться с пользователями и разработчиками самого Altium.