Simplifying hardware development with Antmicro's open source Hardware Component Database
Topics: Open hardware, Open source tools
Antmicro’s numerous open hardware projects and their derivatives developed over the years all build on top of an extensive collection of electronic components in the form of unified KiCad assets and 3D Blender models that we meticulously maintain. A standardized library of elements that have been tested in practice across a variety of designs greatly improves confidence, reliability and speed of prototyping.
Recognizing the benefits of such a standardized database for hardware development, we have decided to share our component library with a broader community by creating a dedicated GitHub repository containing a collection of hardware components and their KiCad and Blender assets. In this note, we’ll describe the library itself and show you how it can serve as a basis for developing not only new hardware designs, but also entire automated workflows, using Antmicro’s Open Hardware Portal and Visual System Designer as examples.
Creating a hardware component library
The component database lies at the heart of the Open Hardware Portal, described in more detail in a dedicated blog note. While the Open Hardware Portal’s main focus is on visualizations of complete designs together with 3D renders for an interactive browsing experience, as well as showcasing component reusability across hardware projects, the underlying component library can be used for practical, day-to-day work with hardware design as well as automated reuse.
Currently the Antmicro Hardware Components repo contains the following directories:
- components - contains all available assets related to a given component together with component-level metadata,, with symlinks to the other directories which hold, respectively
- kicad-symbols -
- kicad-footprints -
- blender-models - Blender models
Some components also include extra assets such as Blender previews. Each asset (component, symbol, footprint, 3D model) in the repository is accompanied by a JSON file with additional information helpful for automated processing.
Building on top of the component database
As mentioned, the component repository is one of the inputs for Antmicro’s Open Hardware Portal which presents it in the form of an interactive component browser.
To view the components in the interactive browser available in the Open Hardware Portal, go to the Components tab. It provides numerous filtering options - you can choose a specific manufacturer, filter by one or more attributes, or simply use the search field to quickly find what you are looking for. After choosing a component, you can download the available KiCad and Blender assets as well as the datasheet.
This view also provides information about Antmicro’s open hardware designs the component was used for.
Another practical application of the component database can be found in Antmicro’s Visual System Designer, a comprehensive, open source tool for creating and editing interactive hardware block diagrams, from simple SoCs to entire boards, described in detail in a recent blog note.
The component database is not featured in VSD in its entirety - it is used to provide data about the “active” building blocks of your designs, or ones that are involved in converting or exposing interfaces, relevant from a block diagram perspective. Thus, SoCs, sensors, connectors and signal converters in the component database would be featured in the Designer, whereas resistors and capacitors would not. For every available component, in the VSD sidebar you can pick a category (e.g. Connector) or use the search bar to look for a specific part. These building blocks also come with links to the Open Hardware Portal and Renodepedia, allowing you to easily find more information and real-life applications for a specific component.
The home page for the Designer, is in fact a large interactive demo, so you can go try VSD for yourself by starting from scratch or loading an example board.
Easily customizable open hardware designs
Visual System Designer also allows you to create new diagrams from scratch, or customize existing ones, using the available component nodes. Consider Antmicro’s Jetson Orin Baseboard as an example - the interactive block diagram provided below (desktop only) illustrates major functional blocks located on the board:
You can expand any of the available base block diagrams with new functionalities, or drop those which are not required for the given use case, by adding new components, connectors etc. and connecting them to relevant I/O ports. Since VSD features data from the electronic component database, the building blocks feature nice icons rendered from the Blender models and you can inspect their datasheets from the VSD level. This greatly helps in prototyping and discussing project requirements, providing a structured description of the system already at the early stages of development.
Expanding the hardware component library
Next to Renodepedia, Open Hardware Portal and Visual System Designer, the hardware component library has joined a long list of Antmicro’s projects that aim to bring together information about the hardware ecosystem and demonstrate reusability and interrelation between seemingly unrelated data.
The component database also provides us with a structured framework for discussing projects with customers, as well as a common point of reference at every stage of the design process for easier collaboration.
With the vast collection of verified components we already have, creating new hardware designs is easier than ever, and Antmicro can help you at every step of the process. If you’re interested in developing your next hardware project using Antmicro’s wide range of tools and services, including the Hardware Component Library and the Visual System Designer, don’t hesitate to contact us at firstname.lastname@example.org.