Over iron Flipper Zero several engineers work at the same time. Teamwork on an iron project is pain. Programmers have cool revision control systems and fancy services like GitHub, but PCB and schematic binaries can’t be stuffed into Git so easily. We searched for a solution to this problem for a long time and painfully, and finally found it.
Altium 365 is a web-based version control system for working on iron projects. We were able to migrate the familiar GitHub workflow to hardware development. In this post I will tell you about our experience of using Altium 365 using an example of a real problem in our Flipper Zero project.
How iron was developed before
Hardcore guys from domestic research institutes are used to maintaining versioning of iron projects in folders and archives. For each version, a folder is simply created. This approach breaks down very easily when, inside a folder, someone suddenly edited and forgot to change the version, and everything is lost.
This approach is still very popular and can even be used for simple projects with one developer. But for complex projects, it creates a terrible mess and mess. It is impossible to prepare releases normally, everything is constantly confused.
What if using GitHub?
The hardware for Flipper Zero is developed in Altium Designer by three engineers. In the beginning, out of habit, we tried to use GitHub for versioning and teamwork, but it turned out to be VERY inconvenient. Each engineer had to agree for a long time who would start working on the board at what moment, wait for everyone to finish their changes and upload them to Git, because, unlike regular code, binary files cannot be edited in parallel so easily.
Cons of using GitHub with Alitum
Cannot compare binaries. It is unclear how one release differs from another. Every commit is updated hundreds of times
You need to use a separate program to maintain the repository
You cannot view the contents of the project in the web interface. It is not clear what is in the repository at all
It is inconvenient to prepare releases. The final Gerber files need to be put into the release by hand
As a result, we started looking for a better solution.
What is Altium 365
Altium 365 is a cloud-based collaboration service on hardware. It has both a version control system, conflict prevention, a web interface for viewing and managing the project. The desktop version of Altium Designer connects to a remote Altium 365 server with which projects, content libraries, etc. are synchronized. Changes are saved to the remote server as normal commits. At the same time, developers work in the native desktop program of Altium Designer as usual.
In addition to hardware developers, there are other engineers in the team: programmers, testers. All of them need access to the latest hardware versions in order to see the diagrams, the location of the components, find out how the tracks are laid, and where the necessary test points are located on the board. They can do all this from the web interface without having to install a desktop program.
Altium 365 through the eyes of an iron developer
From the side of a PCB developer, working with Altium365 looks like this:
The developer logs into his corporate account in the desktop Altium Designer and connects to the remote workspace. All work happens in the native desktop program, not in the browser.
All projects and component libraries inside his workspace immediately become available to him, no need to manually download any files.
After making changes to the project, a commit is performed with a comment and a push to the server, just like it is done in Git.
To prevent conflicts, when two developers simultaneously make changes to one file, an icon appears in the file list indicating that the file is already being edited by another user. You can see his name and agree on the work.
Saving to the server
After completing the work, you can save the changes to the server. For simplicity, there is a button Save to Serverwhich essentially does a local commit and push. In a commit, you can enter a comment describing the changes.
Shared component library
A common library of components is available within the organization (workspace). All our own custom components like GPIO combs, ribbon connectors, shields, etc. available globally for all engineers. You no longer need to put the library inside every project.
Altium 365 Web Interface
The Altium 365 server has a web interface. In our company, all engineers have access to it: testers, programmers, mechanics (body designers). This is a VERY handy tool that allows you to quickly access all circuitry and 3D models of the boards from the browser and without installing programs.
Why you need the Altium 365 web interface
View project files: diagrams, gerberas, 3D models, look for components on the board, tracks, etc. FROM BROWSER (!!!)
Commit history. You can track when and who made changes to the project. This is useful for managers tracking tasks and all team members. Any commit can be downloaded separately or cloned into a separate repository.
System of comments. The tester can highlight the desired area or component on the board and write a comment for the developer.
Release design for production.
Commit and release history
All commit history is displayed in the History section with comments. Each commit has a list of changed components, but in my opinion it is not particularly useful.
Project releases are also published in the history. These are ready-made sets of gerberas and other files for production that are sent to the factory. They can be shared directly in the web interface by specifying the recipient’s email address.
The SCH tab contains an interactive schematic viewer. It can display information about components and circuits. You can select the desired component or track on the schematic and navigate to it on the 3D model or board. Convenient when debugging a physical board.
View the board
On the PCB tab – interactive board viewer. Just like in the schematic viewer, you can select each component and see information about it, and how it looks in the schematic and in 3D. On the left, you can turn on the display of the board by layers.
The 3D model viewer is also interactive. Any component can be selected and found on the schematic or in the PCB viewer. At the same time, everything works natively in the browser on WebGL, without installing plugins and programs.
In the PCB and SCH viewers, you can leave a comment under a component or area. The comment will be visible to everyone in the web interface and to developers in the desktop program. Each comment can be assigned the Resolved status, that is, they can be used as tasks for editing.
Thanks to the Altium team
We use Altium 365 every day and are very happy that we no longer need to suffer. On behalf of our company, Flipepr Devices, I would like to express my gratitude to the Altium team for the convenient tool that we use every day, and special thanks for the support, help with setup and training.
Altium 365 is actively developing, and we are trying out all the new features as beta testers, offering our ideas on how to make the service more convenient. And although many functions are still being finalized, this is already a very powerful and user-friendly product.
How to try Altium 365
There is a program for small teams and startups Altium Launchpadto purchase a discounted Altium license.
I also recommend the Russian-language chat on Telegram @Altium_and_electronicswhere you can chat with users and developers of Altium itself.