Над железом 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 выглядит так:
Разработчик авторизуется своим корпоративным аккаунтом в десктопном Altium Designer и подключается к удаленному воркспейсу. Вся работа происходит в нативной десктопной программе, не в браузере.
Ему сразу становятся доступны все проекты и библиотеки компонентов внутри его воркспейса, не нужно вручную выкачивать какие-то файлы.
После внесения изменений в проект выполняется коммит с комментарием и пуш на сервер, точно так же, как это делается в Git.
Предотвращение конфликтов
Для предотвращения конфликтов, когда два разработчика одновременно вносят изменения в один файл, в списке файлов появляется иконка о том, что файл уже редактируется другим пользователем. Можно видеть его имя и согласовать работу.
Сохранение на сервер
После завершения работы изменения можно сохранить на сервере. Для простоты есть кнопка Save to Server, которая по сути выполняет локальный коммит и пуш. В коммите можно ввести комментарий, описывающий изменения.
Общая библиотека компонентов
Внутри организации (воркспейса) доступна общая библиотека компонентов. Все наши собственные нестандартные компоненты вроде гребенки GPIO, коннекторов шлейфов, экранов и т.д. доступны глобально для всех инженеров. Больше не нужно класть библиотеку внутрь каждого проекта.
Веб-интерфейс Altium 365
Сервер Altium 365 имеет веб-интерфейс. В нашей компании к нему имеют доступ все инженеры: тестировщики, программисты, механики (разработчики корпуса). Это ОЧЕНЬ удобный инструмент, позволяющий из браузера и без установки программ быстро иметь доступ ко всей схемотехнике и 3D-моделям плат.
Зачем нужен веб-интерфейс Altium 365
Просматривать файлы проекта: схемы, герберы, 3D-модели, искать нужны компоненты на плате, дорожки т.д. ИЗ БРАУЗЕРА(!!!)
История коммитов. Можно отслеживать, когда и кто вносил изменения в проект. Это удобно для менеджеров, отслеживающих выполнение задач и всех членов команды. Любой коммит можно скачать отдельно или клонировать в отдельный репозиторий.
Система комментариев. Тестировщик может выделить нужную область или компонент на плате и написать комментарий для разработчика.
Оформление релизов для производства.
История коммитов и релизов
Вся история коммитов отображается в разделе History с комментариями. В каждом коммите есть список измененных компонентов, но на мой взгляд он не особенно полезен.
Также в истории публикуются релизы проекта. Это готовые наборы герберов и прочих файлов для производства, которые отправляются на завод. Их можно расшарить прямо в веб-интерфейсе, указав email получателя.
Просмотр схемы
Во вкладке SCH находится интерактивный просмотрщик схемы. Он умеет показывать информацию о компонентах и цепях. Можно выделить нужный компонент или дорожку на схеме и перейти к ней на 3D-модели или плате. Удобно при отладке физической платы.
Просмотр платы
Во вкладке PCB — интерактивный вьювер платы. Так же, как и во вьювере схемы, можно выделить каждый компонент и посмотреть информацию о нем, и как он выглядит на схеме и в 3D. Слева можно включить отображение платы по слоям.
3D-модель
Вьювер 3D-модели тоже интераткивный. Любой компонент можно выделить и найти его на схеме или во вьювере PCB. При этом все работает нативно в браузере на WebGL, без установки плагинов и программ.
Комментарии
Во вьюверах PCB и SCH можно оставить комментарий под компонентом или областью. Комментарий будет виден всем в веб-интерфейсе и разработчикам в десктопной программе. У каждого комментария можно поставить статус Resolved, то есть использовать их как задачи для правок.
Благодарности команде Altium
Мы пользуемся Altium 365 каждый день и очень рады, что больше не нужно страдать. От лица нашей компании Flipepr Devices хочу выразить благодарность команде Altium за удобный инструмент, который мы используем каждый день, и отдельное спасибо за поддержку, помощь в настройке и обучении.
Altium 365 активно развивается, и мы пробуем на себе все новые фичи как бета-тестеры, предлагая свои идеи, как сделать сервис удобнее. И хотя много функций еще допиливается, это уже очень мощный и удобный продукт.
Как попробовать Altium 365
Для маленьких команд и стартапов есть программа Altium Launchpad, по которой можно приобрести лицензию на Altium со скидкой.
Также рекомендую русскоязычный чат в Telegram @Altium_and_electronics,где можно пообщаться с пользователями и разработчиками самого Altium.