Roman Pakholkov, the head of Promwad Innovation Company, Minsk
1. Embedded systems
The definition of embedded systems is not clear nowadays because it has formed for the last 25 years along with the entire industry of electronics, and as it is known, this process of development has been very rapid. That is why today there is no consensus what should be called embedded systems, and what is should not.
Let's try to understand together. Back in the early 21st century, it was assumed that an embedded system is a special purpose compact computer (a microcomputer), integrated inside an electronic device, which controls work of the device it is integrated in. Besides that an embedded system is designed taking into account power consumption limitations, performance, size as well as one or several applications where it is going to be used.
During the last years expression “embedded systems” significantly expanded its boundaries, and now they use it in regards to most electronic OEM modules (processor modules, wireless, interface etc.), as well as regarding to relatively all compact operational systems (micro OS, real-time operating system (RTOS), planners etc., regarding other hardware or software modules for electronic devises, and even regarding IP-cores used in PLD.
As you we see, the range of use of this term has grown considerably. In many cases, we can even hear speculations about the embedded systems expression that arise in respect to a variety of electronic products (for example, PLC-controllers) that are not embedded systems in reality, as they do not require design engineers’ efforts for their integration into a device or a system. This kind of speculations are caused by incredible popularity of embedded systems phrase, particularly in English language version.
So we would like to make some amendments to the definition of embedded systems in accordance with stated above. Embedded systems is a combination of hardware and software components with clearly defined functional and technical specifications used by design engineers in the form of ready-made modules when designing electronic equipment and performing functions as parts of electronic devices or computer interfaces. Electronic devices designed for using by large electronic systems integrators cannot be called embedded systems.
2. A business model of a contract developer
Contract development of electronics as business model is aimed at B2B services on development of electronic products for further manufacturing of these products and sales under a customer’s trade mark. In fact, a contract developer provides outsourcing services, having a staff of highly qualified specialists in various fields to perform a full range of services for development of electronic devices.
Contract development of electronics is an activity where a customer and a contract developer participate together. A customer is interested in getting profit by selling the developed product, and a contract developer is interested in getting its profit from the amount of work conducted within the project.
The subject of contract development can be a product (an electronic device) or its component part (hardware, software, enclosure). The result of the work performed by contract developer is a product prototype or its component parts, accompanied with design documentation for further production. Any stage or a part of the work performed has to be transferred to the customer in a way that further work could continue without participation of the involved contract developer.
2.2. Differences from other business models
We have to understand that services of an independent contract developer and contract development services of a production company are completely different approaches.
In the first case, an independent developer builds its business exclusively on providing its services and earns only on technical advice and on carrying out development projects. That pushes this company to a constant development of knowledge, skills and specialist expertise, improvement of business processes, costs reduction at development cycles and development time reduction as well. Putting itself in a such framework, an independent developer of electronics has to be always at the forefront of technology and this is its main advantage. An insignificant lack of this model compared to the manufacturer, is the absence of own production and additional risks of the terms of prototypes production.
For a manufacturer of a product obvious benefits of this model are:
- Possibility to create a complex electronic device without the cost of keeping and managing its own staff of qualified specialists.
- Possibility to conduct separate development stages quickly and with little financial investment, for example creation of concepts and testing the feasibility of the idea etc.
- Possibility to get independent vision on technical implementation of a new device, and that is especially important when evaluating a possibility to develop of an embedded system with strict technical requirements when in-house developers claim that this task is impossible.
In the second case a large manufacturing company that sells its services to keep busy its staff of specialists cannot be a serious competitor to a contract developer though it has certain advantages. Those advantages can be: firstly, its own manufacturing which can accelerate making prototypes and even be acceptable for small batches manufacture; and secondly, due to the fact that the main income of such companies is formed by production, they cannot afford to do contract development at a loss. So here all advantages end, and disadvantages arise:
- Time frame for development is unpredictable due to allocation of limited resources and unpreparedness of business processes for strict design engineering management.
- Designers of such companies like applying old experience and platforms there where it is inappropriate.
- Most developers in those companies are also busy with maintaining main production and their development slows down.
- Specialization of the developers in those companies on the projects related to the main business of the company's does not give them abilities to create successful products for other industries.
- Product development is created for production in its own facilities and with their own capacities, and that may not be appropriate for a customer, especially in case of mass production.
Thus when selecting a contract developer it is important to take into account all these factors and choose an optimal contractor.
3. The role of contract development on the market of embedded systems
Embedded systems can be universal and be distributed as OEM modules with software. Most often, those modules have to be adjusted for a specific solution, and such work can be given to a contract developer. But most often it is effective to attract a contract developer when it is necessary to create an electronic device with unique functional and technical features and when it is necessary to decrease the cost of an embedded system or to create a product with strict dimensions.
Universal embedded systems and modules can be used in the development of product prototypes and they can be highly successful in small-scale production, when at their expense, development time and costs can be significantly reduced.
Unfortunately in other situations new development or redesigning of an existing embedded system is necessary, and in this case contract development is the most effective way. Thus, in comparison with manufacturer’s own development department, a contract developer, who has extensive experience working with digital platforms set in electronic products can do the job in a short time and with the predicted result.
4. Contract development in Russia
Unfortunately in Russia contract development as a market sector is not well developed. The main reason is absence of demand for development services from domestic manufacturers and a consequence weak stimulation of developing strong electronics design companies. The reasons were analyzed in article titled “Effective contract development” published in the annual book of the "Living electronics of Russia 2007".
Nowadays in the market of contract development in Russia, provision of certain services on the principles of outsourcing takes a dominant position. Moreover, such services are provided by small companies or even single engineers who work in their spare time, trying to get extra money. There is a very little number of serious companies that seek to occupy a leading position in the market of electronics contract development.
Providing our services in the European and North American markets, our company managed to break out of this vicious circle and now it has a large staff of professionals. We can offer our customers an entire development cycle that does not only include turnkey product development along with enclosure design, electronics and embedded systems design, but it also includes process aspects such as bringing the project to preparation and putting into mass production which is the final goal of developing new products.
Today we cannot say that in Russia, there are many companies willing to take responsibility for the success of customized developed electronic products. This is the second reason and a deep deterrent for businesses to address to contract development services.
5. Embedded systems development: stages and risks
Embedded systems development is not just the development of electronic modules because contemporary embedded systems are practically unthinkable without laborious work mostly on intelligent provision in the area of embedded software. That is why for the work on embedded systems it is necessary to draw more highly qualified specialists.
5.1. Development stages of embedded systems
Let’s consider the development stages of customized embedded systems, which are the hardware and software modules designed to work as parts of electronic devices.
At this stage, the idea of the product is being formed, its market prospects are identified, the requirements for the cost of the device are worked out. At this stage, a contract developer has to provide technical and commercial proposal to make a decision on the beginning of the project.
It is an important stage, which sometimes is ignored by vertically integrated companies. At this stage, the check on the feasibility of the device is carried out. For example, on the basis of a debug package or an OEM-module from the third party (developer) important parameters of the embedded systems have to be checked: most of all, they are performance and power consumption tests. In order to conduct such a feasibility test, special testing software and sometimes additional hardware modules a needed to be designed.
After the feasibility test, the architecture of the embedded system is finally defined, the requirements specification is approved, and if necessary, additional documents are designed: sketch design, technical design, specification for software, presentations to customers and investors etc.
The main stage when the entire development process of the embedded system for a specific design goes on, with all parameters defined in the requirements specification and in other documents approved at the stage of technical study. The development stage is the most laborious and diligent; it has to be fully and strictly supervised by product and project managers. Besides that, it is necessary to understand that the main task of the engineers is to create a product matching previously approved specifications staying within the framework of the cost of the product, milestones and the budget dedicated for development.
We have to note that man-hours for software development often exceed the man-hours for the hardware of the embedded system. Since the main functions of the device are often conducted by software solutions, and the requirements to functional features can be changed during development and testing, so man-hours of those tasks significantly increase. In the latter case it can disrupt the timing of development and budget growth. In order to avoid such scenario, all changes of requirements for the software are recommended to conduct during the next stage, Assembly and verification.
Assembly and Verification
At this stage, there are the following steps:
- production of products prototypes;
- first activation of the device;
- module testing of the embedded system separately and assembled (integration testing);
- corrections in the prototypes;
- corrections in the design documentation and in software;
- full-scale and certification testing of prototypes.
According to the results of this stage, they make a decision to move to the preparation of the Initial Batch stage, or repetition of Development and Assembly and Verification stages.
At this stage, the design documentation is improved taking into account technological possibilities of the manufacture where the device is going to be produced in series. That also includes cost optimization works of the device when they may change component vendors or even replace certain components and optimize the PCB to decrease the production cost. The design documentation can also be amended in relation to manufacturability of the device: plug connections, control points, mounting holes etc.
Additional software to test the device is prepared, Готовятся дополнительное программное обеспечение для тестирования устройства, stands for firmware downloading and testbeds for manufacture are made. At the same time and initial batch of 10-50 pieces is done.
Coming to the stage of mass production of the device can be carried out only after a successful finish of the Initial Batch stage. At this stage the work on improvement of the previous stage can be partially performed: instructions, software for PMAT (post-manufacture acceptance test) and testbeds. In addition, continuous quality auditing of the manufactured products should be carried out, checking for compliance with technological standards and analysis of tests conducted by the manufacturer. We have to monitor trends in the market of electronic components and other component base for reaction to the news about changes made by the manufacturers in their products (microchips in particular), or on the timing and reasons of removal some components from production.
5.2. Risks of developing embedded systems
As we previously said, development of embedded systems is a laborious process associated with a large amount of technical and organizational risks. In order to avoid risks, it is necessary to have understanding from the developer’s side. We will try to describe that below.
The risk of selecting the element base. The risk is that the success of the whole project depends of the choice of electronic components. At the stage of selecting electronic components we have to pay attention at such parameters as cost of various batches, availability of components in the local market and in the market where mass production will take place, the life cycle of microchips stated by the manufacturer. In addition, the selection of component base is largely dependent on the architectural solutions, errors can be avoided if the stage of Technical Study is fully completed, and iteration for feasibility test is made where they tested perfomance of selected hardware platform.
The risk of exceeding the development budget. At the stage of budget formation for development, they often forget that the stages for putting to production can cost a lot, and they can be compared and sometime exceed the cost of prototypes. Also insufficient specification of requirements can lead to increase of labor costs, which is most often seen in the software development of embedded systems. Besides that the functions formed in the beginning of the development can be revised after prototype testing by potential customers, and that may lead to repeat the stages of development, assembly, and prototype verification.
The risk of delays in development. The time for development can be extended, and that is the most common risk. This risk emerges during creation of innovative products or when applying new technologies which were not tried before. The design process of an electronic device is a development activity with all the complexities of engineering tasks. Poor expertise of attracted engineers and ignoring of technical study stage can also affect the terms of development.
The risk of inadequate technical support and chip error. Selection of a chip without substantiation of its unavailability and without check of vendor reliability may even lead to the fact that at the stage of pre-production such chip will be removed from production or they will produce an unequal replacement. Other negative circumstances can be: a large number of errors not indicated in Datasheet and multiple errata, lack of competence of the technical support or support only in Chinese language, the new chip is raw and errors are first detected during development.
The risk of deviation from the development process. The risk of sequence violation of development stages and lack of coordination may occur in a variety of design iterations. For example elements selection can take place without participation of system programmers, as a consequence at the stage of designing of support kit for a hardware platform, t can happen that the selected chip cannot be supported by standard drivers of the OS, and its documents do not contain necessary information for independent development of the driver.
The risk of exceeding the production cost. The risk of exceeding the cost of the embedded system in comparison with expected cost can occur if there is in sufficient study if selected architecture and solutions at the stage of technical study. Most often this kind of a risk occurs when creating innovative products with great integration of new technologies untested before.
The risk of solutions leakage to competitors. We do not have to exclude a potential possibility of reverse engineering i.e. reproduction of devices by other manufacturers. It is almost impossible to protect the device from copying, but during its development it is worth to foresee minimum of protection means that will make hacking unprofitable. In addition, intelligent software can be protected by different data encryption. Another method of protection may be the creation of a line or several versions of the product.
6. Calculation and comparison of the development budgets
Once again, we emphasize the importance of the question of the budget forming issues for the development, both in the services of a contract developer and during independent work on the project with its own internal resources of the company. As we noted in the chapter dedicated to risks, when planning the budget, it is necessary to take into account the cost of development and making a few prototypes, but the stages such as concept development, technical study, preparation to mass production as well. It is also necessary to take into account the cost of materials and the cost of labor related to making test equipment, production of initial batch and mass production of the device.
The differences in calculation the cost of contract development services and the cost of implementing the project by the customer manpower are primarily associated with the fundamental difference in the subject of business and such parameters as overhead expenses, jobs provision, the cost of risks related to incompetence, differences in processes of project management.
Contract development of embedded systems can be most profitable in creating successful mass-produced products.