Open main menu

DAVE Developer's Wiki β

Changes

MISC-TN-023: Altium Designer-based workflow

3,133 bytes added, 08:21, 19 July 2022
Implementation
|-
|1.0.0
|June July 2022
|First public release
|}
==Introduction==
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 [https://www.altium.com/altium-designer 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 ==
* '''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 [https://www.altium.com/altium-365 Altium 365<sup>®</sup>] platform does this the job superbly and therefore it was included in the workflow. From an engineering perspective, the support of [https://www.altium.com/documentation/altium-designer/using-version-control 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 ==
The overall infrastructure implementation is depicted in the following image.[[File:AltiumDesigner workflow.png|center|thumb|1000x1000px]]
TBDIt 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.
It will be described with the help of an example that represents a typical scenario: the company needs to interact with an external partner such as an outsourcee to carry out a design. The DAVE R&D team sits at the heart of the systemimplementation shown in the previous image. Let's say that one of its 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 ''[https://www.altium.com/documentation/altium-designer/building-maintaining-components-libraries-overview 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 files 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 the UK 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 ''[https://www.altium.com/documentation/altium-designer/building-maintaining-components-libraries-overview 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 receives a snapshot of pushes his modifications to the repository on the 365 platform. On DAVE database library (DBL) as well. If necessaryside, this snapshot allows him to instantiate new components by picking them up from Bob does the DBLsame so that they can keep synchronized each other (Altium Designer supports natively [https://git-scm. What if Mallory needs to instantiate com/ git] as a component that is not available in the DBL? Within the project, he creates an ''native [https://www.altium.com/documentation/altium-designer/buildingusing-external-version-control Version Control System], a tool that DAVE Embedded Systems has been using [https://git-scm.com/book/en/v2/Getting-Started-A-maintainingShort-componentsHistory-librariesof-overview Git 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'' in which s say Alice, takes care of completing their definition/qualification process using as starting point the new component is temporarily storedschematic/PCB symbols he created. At After this stagestep, the new component is not yet 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 qualifiedinstances. And what about the project developed by Bob and Mallory? At the end of the the design process, but this does not prevent Mallory from continuing the DAVE team will take care of synchronizing the project with his taskthe database library in order to have fully qualified instances only. Although component's fields such as DAVE code After this step, the project is ready to undergo post-design sanity checks and manufacturer are not populated, finally, to generate the component is complete from manufacturing documentation required to order the projectPCB's perspective: as long as Mallory has designed its schematic symbol and PCB footprint according to DAVE Embedded Systems requirements, the component is totally usableassemble them.
PeriodicallyInterestingly, Mallory pushes updating the ERP database and the master database library is a process '''that leverages the modifications to same tools DAVE Embedded Systems adopted several years ago for software development/maintenance''': [https://gitlab.com/ GitLab] along with its [https://docs.gitlab.com/ee/ci/ CI/CD module]. Likewise software build process, data merging between the repository on ERP database and the 365 platformdatabase library needs the execution of many commands, which are tedious, prone to errors, and can lead to a bugged library. On DAVE sideThanks to the CI/CD modules, Bob does we can guarantee that the merge is always executed by running exactly the same so that they can keep synchronized each othercommand chain. If Mallory put new In essence, merging consists of the following steps:* exporting from ERP database the footprint code for all the components in * connecting to each component all the available footprints* generating the integrated database libraryby 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 takes care and is a software developer. At some point, he needs to access the schematics of completing their definition/qualification processthe 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. After this stepOf course, the new components will end up to same approach can be available in used with other coworkers who are not even part of the DAVE master database libraryR&D team such as Project Managers, executives, manufacturing engineers, etc. Interestingly, TBD
4,650
edits