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