/ 4 min read
Software Tools for the electronics development process – an overview
posted on November 20, 2020
Electronics are the motor of our technical world, or rather the brain that drives the motor. Without Printed Circuit Boards (PCBs) no device would work in the way are used to it. The process can be very complex and tedious until a PCB is finished and ready to be integrated into a device. We described the 10 steps that need to be taken (sometimes several times) in this article. But how can the electronic developers be supported by software tools? We will dive into this in this article.
(Please note: All prices as well as advantages and disadvantages should give an orientation, please contact the manufacturer for detailed information and offers)
1. Project Management
Nothing works without an official project! Clear requirements must be defined so the developers know what they are supposed to develop. These need to be defined and structured by the project manager before starting the project. However, all requirements need to be monitored during the project and mistakes have to be identified early, so that they do not result in delays on the product release. For this, there are many tools to keep an eye on the progress, the individual workload and much more.
Two agile project management tools are Jira by Atlassian or Trello. The most popular tool within the electronics industry is Microsoft Project. Depending on the number of projects and employees, different functionality is needed. The tools also offer different add-ons, for example regarding reporting and time management. The costs start with free basic versions up to around 50$ a month per user.
2. Tools for schematics simulation
Before the actual design process starts, the requirements can be tested and simulated by using a model. With the help of mathematical calculations, it is possible to predict the behavior of schematics in real conditions and select components based on this.
Many companies use LTSpice, PSpice by Cadence Design Systems, Matlab by Mathworks, NI Multisim or MathCAD. There are great differences in pricing starting from LTSpice as a freeware up to 6,000$ per year for the most expensive tool. Depending on the individual requirements, all programs can deal with common cases and switch events, while very special cases might not be covered by every option.
3. Component- or module selection
Once management has clarified all requirements and all simulations are done, the electronic developers needs to choose the fitting components or modules. For this, many parameters need to be taken into consideration, like costs, surface, certain manufacturers and many more. To search for components or modules, online-libraries are often used to check all parameters.
Several online component distributors offer free search engines based on parameters, which can be used to find relevant components. These are for example Avnet, Arrow, Digikey and Mouser, among others. They offer fast delivery and a good search engine. One downside might be that some parts can only be purchased in bulk quantity. In addition, for very specific requirements the providers might not offer certain parts and instead, they must be purchased directly from the manufacturer.
4. Component Data Management
In case a module or component with fitting parameters is found, the corresponding part needs to be added to the library of the CAD software. Unfortunately, the information cannot be directly extracted in the correct file format for the CAD tool and due to this it cannot be transferred directly into the CAD systems. Therefore, applications have been developed to take over the database administration. They generate a file that contains all parameters and can be used by the CAD tool.
For example, UltraLibrarian and SnapEDA are capable of doing this. In general, both have similar advantages and disadvantages, depending on the personal preferences for the interface. They save time by automatically generating and exporting the components’ footprints and symbols into CAD systems. However, each of them only supports a few CAD tools and they might not have all required components available in their database.
5. CAD Tools
After successfully simulating and modeling, the actual design process of the PCB begins. This can be divided into two steps. On the one hand, the schematics design, where the engineer can arrange, dimension and connect components and on the other hand, the PCB design, where the actual board can be drawn on several layers. CAD systems provide a development environment for both steps, which means that the tools not only offer manual circuit drawings, but also component placement and routing. There are different categories of CAD tools available: Basic, Advanced and Premium Tools. They differ in add-on options, the assembled library and the user interface.
A basic CAD software is for example Eagle by Autodesk. It is below the 4-digit price range and offers support like FAQs, several short videos describing new features as well as a user forum. This software tends to be used by many users and offers lots of community support.
Advanced CAD tools are in the medium, 4-digit price range. Some examples are Cadstar by Zuken, PADS by Mentor Graphics and Altium Designer by Altium to mention the most common. They all offer 3D CAD software. Besides, most, but not all of them, provide several resources in the form of videos, weekly webinars touching complex subjects and yearly conferences as a part of the maintenance contract.
Premium Tools are for instance Allegro by Cadence or CR-8000 by Zuken. The costs for these high-end tools can be in the high five-digit range per year. Higher cost software tends to offer more features and possibilities as well as more complex content.
6. Tools for verification and simulation
To avoid any unpleasant surprises during the production of the Boards, the designs are simulated again for the purpose of verification. Of course, special applications for this exist as well.
Suitable software options can be Hyperlynx by Mentor Graphics or PathWave Design Software by Keysight Technologies. The company Polar Instruments also offers simulation tools that can be used on the verification of controlled impedance traces on PCB designs. Additionally, all software options from point two can be used here. The choice is based on individual requirements, for instance, not all options offer high voltage above 10 GHz or 3D-analysis of electromagnetic effects. The price ranges are very broad, depending on node-locked or floating licenses.
7. Tools for Embedded Software
Not every PCB needs embedded software to work, but PCBs containing microcontrollers definitely do. This part often belongs firmly to hardware development – without software there is no functioning microcontroller. Embedded software sometimes consists of prefabricated code snippets, which are collected, adapted and optimized on a modular basis.
It is usually edited in Visual Studio Code or other Integrated Development Environments (IDEs) from major chip manufacturers like Microchip, XMOS, Texas Instruments or STMicroelectronics. One option for this function can be IAR Embedded Workbench by IAR or as an alternative the ARM© Keil development tools. They both offer high flexibility due to add-ons with special features. There are free trial versions for both, the actual costs are depending on the size of the company and the chosen add-ons.
8. Development of the application software
The PCB, together with its components, is the brain of the electrical device, but especially on the consumer product field, it needs to be operated by humans. A functioning PCB in a smartphone would be of little use if there is no operating system that can control everything. Such application software is developed by software developers - for example using the following tools and frameworks.
The common programming languages are Java or C++. For Java, IntelliJ Idea by Jetbrains is a very well-known Integrated Development Environment (IDE), another one is also Eclipse. For C++ Microsoft Visual Studio or a tool like CLion by Jetbrains is often used for programming. The cost ranges from free versions to around 15$ a month per user. Also, Python and Go are being used more and more broadly as programming languages.