For a successful product, a well defined embedded system development process is critical.
- Do you follow a process for embedded system development, what all it includes?
- Do you use some tools to make the process work for you?
I have worked in the embedded domain for more than a decade and have gone through various stages myself while developing the products.
In this article, I am sharing what all I have learned in the past few years i.e what stages any embedded product development should go through to create a successful product.
What all stages an embedded system development process should have?
- Ideation/purpose of the product
- Technical specification
- Architecting the Solution
- Component section & design finalization
- Test Plan
- Design implementation
- PoC / Prototype Development
- Field Trials
- Final Product Improvements
- Product Release
This is the stage where an idea is discussed with all the stakeholders and brain-stormed to conclude if the idea is worth taking to the development stage.
Market data is collected from online research, interviews with customers, prospects, other people facing market to make a case with two important points:
- Problems the product will solve. All features of the products could be segmented into urgent needs, good to have and luxury. More you are solving urgent needs better the response from the market would be for the product.
- The price at which the customer would be willing to pay for solving the problem. The cost of manufacturing & selling the product should be 50% of the actual price to the customer at <1000 units volume as a thumb rule. For higher volumes, the price will be less.
In my opinion, this is one of the most challenging & important tasks in any business i.e to identify the right product which solves the customer’s problem.
2. Detailed Technical Specification
Many engineers loose time and effort because they don’t have a clear technical specification of their product. They start with the design and keep adjusting as they discover more. They end up redoing part of the design because old architecture does not hold good for the new requirements. This is a huge waste of time, effort and cost.
A detailed technical design requirement specification document should be created. Product spec should cover the main things like the purpose of the product, block diagram, main features, environmental conditions, manufacturing requirements, etc.
I have written about this stage in detail, please read here “How to write a good technical specification requirement document for your embedded product?”
3. Architecting the Solution
After finalizing a detailed technical specification document, it’s time to architect the solution.
On a high level, how the design will look like, what are strategies you will use to build a solution, which type of power supply, which type of wired or wireless connectivity you will use, how the firmware design will look like, Mobile App/PC software/cloud-based application design needs to be decided.
For the hardware design part, this forms the basis for the next step which is selecting the appropriate component for each block or part of the circuit based on various critical parameters like quality, size, features, cost, lead time, EOL, etc.
Here, you need to refine the system level block diagram (Hardware, Software) and add more details to the execution flow using a flow chart for the firmware/software part.
4. Component Selection & Design Finalization
Once the architecture is done, engineers need to look at each block in the system and select the components and finalize the design (application circuit).
An engineer in this stage will decide, for example, a power supply which type of power supply needs to be designed like using a linear regulator or using a DC-DC switching converter or with something else and then which power chip need to used and its application circuit, everything is decided here.
Hardware component selection is another critical task that needs great care. I have written an article “How to select electronic components?“, please read it carefully to understand what all parameters one need to consider and the steps involved.
5. Creating a Test Plan
Hardware & Software Testing is very important to check the reliability of the product. Customers pay for the working products and get frustrated with the product which does not meet the expectation or fail in the field.
Companies spend a huge amount of time testing their products so that their customer does not experience any issues. See this video, how mobile is getting tested for hours and days to check it’s reliability.
For any embedded product, you need to define a proper testing plan, it should cover the following:
- Hardware design validation
- Software design validation
- Production level product testing
Creating a test plan before design implementation helps incorporate any changes if required in the design to enable the testing.
I will write more on this topic in a separate article some other time. Please follow my blog so that you will be notified once I publish the article.
6. Design Implementation: Hardware, Firmware, software, Enclosure Design
This is the core engineering stage of the implementation. Here the architecture is converted into the design.
For hardware: schematic capture, PCB layout will be done. MCU firmware & if any software is required will be developed. Enclosure design work will also come into this stage.
A necessary review system needs to be put in place to ensure first time right is developed. If an external consultant is required for the design reviews, one should not hesitate, most of the time it’s worth the investment.
7. Proof of Concept, Prototype Development & Testing
If the design is completely new or if you don’t have the confidence on the full-design or a part of the design, it is a good idea to build the prototype first to prove the design and while doing so see if there are any issues.
Some times buying readily available block level modules (power supply, MCU, Wireless modules, etc.) and connecting them to form a system, writing a basic firmware and testing in a simulated environment helps gain initial confidence on the design’s performance. This could save a huge amount of money, effort and time otherwise might get wasted if a respin of the design is required due to some issues.
Once this is proven, you can build the prototype and test it again for the functionality & the environmental conditions.
8. Field Trials
You might have heard engineers saying that their product works well in their lab but has issues in the field.
Field conditions are different, engineers need to think through what all conditions their product will go through in the field so that they can reproduce those conditions and check the performance of their product even before sending their product out in the field. Not only field conditions but the user is also different. Engineers need to think of how a layman will handle their product in the field.
One example is, if a power supply connections need to be done in the field, it is a good idea to have over-voltage and reverse-polarity protection for the power supply input. Imagine a layman in the field connecting the wrong power supply (high voltage) or connecting reverse may damage the product. For the same reasons many companies provide power supply also along with the product and have a mating connector that can connect in one direction only, so it eliminates the possibility of wrong power supply or a reverse connection. But, not in all products this is possible to achieve.
Another example is, if the product has wireless connectivity (ex: GSM/GPRS), the signal strength or reliability of the connection will depend on the coverage area. Many times it is not easy to have this replicated in the lab so a field test is necessary to the performance and how your product is handling all the scenarios.
Environmental conditions are another thing that your product will go through in the field. Temperature, Humidity, Vibration, Pressure, etc. can have an impact on product performance.
Ultimately, only after the product is tested in the field, you will know exactly how your product performs.
9. Final Product Improvements
After field trials are done for several weeks and months, all the improvement needs to be incorporated in the design based on the feedback.
If during field trials some issues are found, you will need to also improve the test procedures you follow during the design validation/ production testing stage to ensure a flawless product comes out of production.
10. Product Launch
Before launching the product, several other things need to be put in place other than the product itself like:
- Various product certifications based on features it has and the countries it will be sold in.
- Documentation: Product page on the website, Quick introduction video, Datasheet, User guide, Setting up the Support channel, etc.
I hope the above information helps you understand the different stages of embedded system development & how important it is to have an embedded system development process in place.
If you have any suggestions or feedback please share it in the comments below or send me an email here.
Read articles on Embedded System Design.