MISC-TN-023: Altium Designer-based workflow

From DAVE Developer's Wiki
Jump to: navigation, search
Info Box


History[edit | edit source]

Version Date Notes
1.0.0 July 2022 First public release

Introduction[edit | edit source]

Unlike most of the Technical Notes (TN) available in this wiki, this one does not refer to any DAVE Embedded Systems' product. Instead, this article deals with one of the tools we use for hardware designing, namely Altium Designer. More specifically, this TN describes how DAVE Embedded Systems conceived an Altium Designer-based design workflow, which has been deployed since 2021 and is fully integrated with the existing company's IT infrastructure and procedures.

Requirements[edit | edit source]

In order to implement a smooth integration towards all the company's departments, the workflow had to satisfy multiple requirements. The most important are:

  • Technical documents for manufacturing: At the end of the design process, a set of standardized technical documents has to be generated automatically for the manufacturing department. This set must be equivalent to the ones produced by other hardware design workflows already in use, which are based on different tools.
  • Database interfacing: The hardware projects must be interfaced to the existing component's database, which is shared across all the company departments (purchasing, manufacturing, R&D, etc.). From this database, several data are retrieved during the design process. These data are stored in the project for each instantiated component. Examples are the manufacturer code, the operating temperature range, the nominal value of passive components, etc. This information is required for bill of materials (BOM) management and post-design automatic checks.
  • Projects sharing: Nowadays, it is often necessary to share the hardware projects with other departments or partners outside the company. In this regard, the native Altium 365® platform does the job superbly and therefore was included in the workflow. From an engineering perspective, the support of Git-based version control is outstandingly useful because allows to synchronize the modifications made by all the people working on the same projects, being them internal or external resources.

Implementation[edit | edit source]

The overall implementation is depicted in the following image.

AltiumDesigner workflow.png

It will be described with the help of an example that represents a typical scenario: the company needs to interact with an external partner, an outsourcee named Mallory in this example, to carry out a hardware design.

The DAVE R&D team sits at the heart of the implementation shown in the previous image. Let's say that one of the team members, Bob, starts the new design according to the product's requirements. He takes care of part of the schematics and sets up the PCB project by choosing the number of layers, manufacturing technologies, dimensions, etc.

The components that Bob instantiates on the schematics are retrieved from a database library according to Altium nomenclature. This library — denoted as DAVE database library (master) in the picture — contains the components defined and qualified as per DAVE Embedded Systems' procedures. As such, these components are also linked to the ERP database so that they embed vital information for the manufacturing process like DAVE code, manufacturer part number, type, etc.

At first, Bob saves the project on a local storage device that is part on the DAVE's internal IT infrastructure. Later on, he needs to share the project with Mallory, an external contractor located in another country who helps Bob to speed up the design. The project is shared through Altium 365. Upon starting to work on the project, Mallory receives a snapshot of the DAVE database library (DBL) as well. If necessary, this snapshot allows him to instantiate additional components in the project by picking them up from the DBL. What if Mallory needs to instantiate a component that is not available in the DBL, however? In this case, Mallory creates an integrated library within the project in which the new component is temporarily stored. At this stage, the new component is not yet fully qualified, but this does not prevent Mallory from continuing with his task. Although component's fields such as DAVE code and manufacturer are still not populated, the component is totally usable and can be instantiated in the project: as long as Mallory has designed the schematic symbol and the PCB footprint according to DAVE Embedded Systems requirements, he can proceed with no worries.

Periodically, Mallory pushes his modifications to the repository on the 365 platform. On DAVE side, Bob does the same so that they can keep synchronized each other (Altium Designer supports natively git as a native Version Control System, a tool that DAVE Embedded Systems has been using since its birth). If Mallory puts new components into the project's integrated library as described above, a member of the DAVE R&D team, let's say Alice, takes care of completing their definition/qualification process using as starting point the schematic/PCB symbols he created. After this step, the new components will end up to be available

  • in the DAVE ERP database
  • in the DAVE master database library.

From now on, any new design in which they will be used will integrate fully qualified instances. And what about the project developed by Bob and Mallory? At the end of the the design process, the DAVE team will take care of synchronizing the project with the database library in order to have fully qualified instances only. After this step, the project is ready to undergo post-design sanity checks and, finally, to generate the manufacturing documentation required to order the PCB's and assemble them.

Interestingly, updating the ERP database and the master database library is a process that leverages the same tools DAVE Embedded Systems adopted several years ago for software development/maintenance: GitLab along with its CI/CD module. Likewise software build process, data merging between the ERP database and the database library needs the execution of many commands, which are tedious, prone to errors, and can lead to a bugged library. Thanks to the CI/CD modules, we can guarantee that the merge is always executed by running exactly the same command chain. In essence, merging consists of the following steps:

  • exporting from ERP database the footprint code for all the components
  • connecting to each component all the available footprints
  • generating the database library by merging the ERP data with the unique electrical symbol and the applicable footprints.

Last but not least, sharing the projects via Altium 365 is not only efficient when working with external engineers and partners in general. It is also extremely convenient for DAVE Embedded System's employees who do not work with Altium Designer. For instance, w.r.t. the above image, let's suppose that Charlie is a member of the R&D team and is a software developer. At some point, he needs to access the schematics of the board designed by Bob and Mallory to see how an I2C device for which he is writing a driver is connected to the application processor. Even though Charlie can not use Altium Designer, he can access the project schematics via web browser by accessing Altium 365 platform. Of course, the same approach can be used with other coworkers who are not even part of the R&D team such as Project Managers, executives, manufacturing engineers, etc.