DMC was tasked to re-design a client’s household burner controller. The goals were to reduce costs, add Bluetooth/app control, and advanced diagnostics information. Before we began the design phase for our solution, we made sure to take an in-depth, holistic view of the entire system. With this information we could determine which parts were safety critical and what were the best ways to address these safety concerns using both hardware and software.
Preparatory Phase
DMC started the preparatory phase with a Failure Modes and Effects Analysis (FMEA) to effectively determine which failures can lead to unsafe conditions. These hazards were then evaluated to determine their severity and probability. Finally, our team created risk mitigation plans for each hazard to ensure that all had a low-risk rating. These plans detailed what was required for each hazard: such as redundant series outputs and/or elevated software coding standards to reduce the risk.
Hardware Design
Then, we leveraged our extensive hardware design experience to design a PCB that conformed to our mitigation plans—minimizing the need to adhere to onerous IEC-60730-1 Class C software standards. The Class C standards have significantly more requirements for the code and when validating that the processor is operating correctly—which would have made our solution far more difficult to implement.
We designed our hardware to allow inexpensive, off-the-shelf processors to be used in conjunction with vendor-supplied IEC-60730-1 Class B safety libraries. This significantly reduced the per-unit cost of the PCB without sacrificing quality. Furthermore, it allowed us to expedite the software development process and deliver a reliable product in a tight timeline.
Software Design
Once we created the hardware, our team designed the software. We used the IEC-60730 recommended V-shaped software design, implementation, and testing framework. This ensured that software modules were broken down from high-level architecture to low-level implementation and test validation requirements were defined upfront. When the programming was completed, each module was validated and tested according to the initial requirements to ensure reliable functionality. This process continued all the way back up the software’s V-shaped design until the entire system was validated.
DMC utilized our vast embedded software experience to design a modern and robust solution for building and unit testing each system. We used Docker to coordinate software tools between our entire team, CMake to control the build, and Ceedling to automate the unit testing of each submodule. This ensures that every build, release, and testing is functional, validated, and does not have unintended consequences.
Learn more about DMC's product development expertise and contact us to get started on your next project.