Над железом 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
Разработчик подключается к корпоративному серверу Altium 365

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

3D-модель

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

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

Комментарии

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

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

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

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

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

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

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

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

Комментарии (76)