Breaking Out of the Office with Altium 365
A few years ago, I was working as a PCB design engineer for a company in the stunning Italian countryside, designing power inverters for water pumps. The work was as intricate as it was commensurately fulfilling, with every board presenting an extremely sharp dI/dt and stringent EMC and reliability requirements. Driving to work each day, with the hills slowly emerging from behind the freeway to reveal the tiny dot that was our factory, was scenic but time intensive. Eventually, after 45 minutes of music and podcasts (often including Altium’s OnTrack podcast), I’d reach the office.
Despite how idyllic the building settings were, there were many days when I, given the commute, was not able to get anything done but the work itself, and many of my colleagues and I eventually demanded to work from home one day of the week in order to ease our work/life balance. These were the halcyon days, when working from home was something to demand and not a necessity. Altium was the second most important tool in my toolkit after pen and paper, and I was initially hopeful that I could bring it home with me.
Altium’s settings pointed to network folders shared between all engineers. Libraries which relied on a piece of software I’d developed that intertwined with the company ERP and several internal databases which ran on two different servers. The entire office had less than 10Mbit upload speed, which was allocated between almost forty people, and was located in a rural environment. VPNs were therefore wholly non-viable.
The truth is, given the limits of the network infrastructure, working from home would not have been feasible at the time. Altium 365 had just been anticipated back then, a centralized solution for electronic development seemed a distant and impossible dream.
The times have changed, and what Altium 365 enables us to do now is unrivaled: centralize all the ECAD data, access it from anywhere, enable sharing, and review designs from a web browser. No more VPNs, no more sending screenshots everywhere only to lose track of the changes after a couple of weeks, no more notes without context. You can Git for hardware development capabilities into Altium Designer when you use Altium 365.
Migrating Projects to Altium 365
Recently, I’ve been working on a family of products called the Microwave Optics Platform, which is meant to aid budding engineering students in learning the basics of optics through experimentation with microwaves instead of visible light.
A customer requested the development of an LED display accessory that could be manufactured in high quantities at low cost, and an earlier prototype was developed.
The product is straightforward: it takes two AC inputs with typical consumer audio levels (max 1 Vpp) through two mono 3.5 mm jacks, rectifies them through a precision peak detector, filters it, then displays the value through a linear analog bar of 20 or so LEDs. It has a couple of additional features, such as a power-only USB connector, audio and banana outputs, but they required no more than a couple of op-amps and passives to implement.
Even with such an elementary project, working on different products in parallel and reviewing them with customers can make keeping track of changes and maintaining properly contextualized feedback challenging. For example, we recently lost track of a bug fix on a capacitor that should have been 22 uF, but was instead left at 10 uF. This small oversight prevented the device from filtering noise properly, casting a shadow on the performance of the entire product range.
I want to share with you how to migrate your projects to Altium 365 to take advantage of all the collaboration features. These features also provide version control and revision tracking for your projects, as well as comment tracking to help with bug fixes. In these days of working remotely, the cloud collaboration features in Altium 365 are ideal for tracking changes to design data and helping you avoid the mistakes we made.
First Step: Git for Hardware Development
Let’s start by taking a look at the structure of a typical project. From the image below, we can see that the project for the LED board shown above is fairly typical of many Altium projects. We have a few Schematic Sheets organised in a three-tiered hierarchical structure, one PCB file, two Draftsman documents (PCB Manufacturing, PCB Assembly, and a reference for the mechanical engineer), a bill of materials (BomDoc), and a few Output Job files.
By storing our project in the Altium 365 Environment, we're creating a de-facto Git repository. Git was released in 2005 by none other than Linus Torvalds, the legend behind the Linux operating system. The invention and adoption of Git in the software development world shows how electronic engineers have been managing projects until very recently.
Since its inception, Linux has risen through the ranks of the most significant distributed projects in the world, sharing the title with the likes of the gargantuan human efforts that is Wikipedia. In its early years (from 1991 to 2002), changes to the code were managed by exchanging email, notes, and code patches, much like one might share a single annotated SchDoc with some copy-pasted sub-circuits via email. Sharing data this way lacks context, makes keeping track of changes almost impossible, and creates an enormous administrative burden.
Version Control Systems (VCS) were created to improve the process of collaboration, as multiple engineers could now work on a single repository while still seeing each other's revisions. Altium Designer has been supporting SVN, one of such systems, for longer than I can remember. Between 2002 and 2005, the Linux project moved to a proprietary VCS. Eventually in 2005, Linus Torvald wrote Git, taking inspiration from a previously industry-leading software called Bitkeeper.
Git was created to be entirely distributed. When you work using Git, the data is copied locally to your computer, where you can work on it as if it was any standard windows folder. The changes could then be saved in “commits” and subsequently “pushed” to the server. This allowed teams of tens of thousands of developers to collaborate efficiently. When you pair the robustness of Git with the advanced features of Altium Designer and Altium 365, you get a system that can handle teams of almost any size, even in slow network environments.
If you are familiar with Git repositories, you'll know they work best when the file structure is kept somewhat static, as renaming and moving files around complicates revision tracking. For this reason, I am taking advantage of a tool that has been available in Altium Designer since the dawn of ages: Storage Manager.
Through the storage manager, I’m able to to delete unneeded files and rename them in a coherent structure. This step is optional, but recommended if your project is not already well organized.
Designs that include Sheet Symbols may, however, result broken after the files have been renamed. We can simply go over the schematic and update the Sheet Symbols as needed.
We should soon find ourselves with a clean structure. We can go ahead and validate our project (once called compile) by selecting Validate PCB project under the Project menu, if we did an adequate job we should find ourselves with no errors in the messages panels, only warnings and info messages.
If this is your first time running the command in Altium 20, you should find it’s much faster than in previous releases, thanks to the dynamic compiler that runs in the background.
There is no limitation to the content of projects hosted on Altium 365, and you’re free to upload incomplete projects that do not yet validate.
Second Step: Migrating a Project
Migrating a project into Altium 365 on Altium 365 is extremely straightforward. After having logged into our platform, we can simply right-click on our project file and select “Make Project Available Online…”
Altium will proceed to create a Git repository where our project resides, migrate all the data in it, and set up everything needed on the server-side so that we can start collaborating right away.
Two clicks are all it takes to migrate a project from a local folder to Altium 365.
Accessing from the web
Once our project has been uploaded, we can access it on the web. There are many ways to do so, such as logging in from your Altium 365 workspace or through your Altium Live account profile page. Since we are inside Altium Designer, we might as well take advantage of the “Show in Web Browser” button, which will open the design in the default web browser.
In Altium 365, our project will be organized into three tabs: Design (contains schematics and the PcbDoc file), BOM (shows a list of all components and notes for sources), and Manufacturing (contains all project releases and fabrication documentation).
What I find exceptionally exciting about Altium 365 is the ability to share the project and comment on it, especially on schematics. Through this simple feature, teams of any size are granted unprecedented flexibility in the review process. What are design reviews if not a bunch of people commenting on drawings? We can share our Altium Project through Altium 365 with nothing but a couple of clicks, sending it to any user, including users without an Altium subscription, and from any device.
Starting from Version 20.1 Altium Designer features a quick-share button, allowing you to invite collaborators to your projects without switching back-and-forth between ECAD and web browser. Altium 365 allows commenting on any part of the schematic and PCB. A user simply needs to click on an object or area of your document, and they can comment on any object or draw freehand. In the following example, you can see I have placed a freehand comment on top of two resistors, asking my colleagues to finalize that section of the design after testing the prototype.
Comments are instantly synced back to Altium Designer, so you don’t have to leave your ECAD software to manage them. All comments on a project are accessible through the Comments Panel. By selecting a comment, Altium Designer will automatically open the corresponding document and zoom in on the relevant area.
It’s also possible to place comments directly inside Altium Designer through the place menu as if they were any other schematic or PCB object. Each comment will persist on your schematics/PCB until it is flagged as “resolved”, either through the web interface or through Altium Designer. This way, changes can be performed atomically, reducing the risk of forgetting to flip that electrolytic capacitor the correct way. If you’ve recently run a Design Rule Check inside the PCB editor, the violations will also be accessible from Altium 365.
Altium 365 is bringing an unprecedented amount of integration to the electronics industry which has until now been relegated to the world of software development, allowing designers to work from home and reach unprecedented levels of efficiency.
We have only scratched the surface of what is possible to do with Altium Designer and Altium 365. You can check the product page for a more in-depth feature description or one of the On-Demand Webinars.