By Ray Upton, VP & GM, Connected MCU, and Zoran Mladenovic, GM, Software Development, Texas Instruments
A robust software/hardware foundational platform can improve the return on investment (ROI) in new products by facilitating long-term product strategies. Getting new products to market quickly is certainly essential, but microcontrollers (MCUs) that are part of a robust software/hardware platform will give new products staying power, effectively sustaining a healthy return on investment over a longer period of time.
Consider the development of a new IoT-enabled product such as a smart security control panel. By selecting an MCU that not only meets the performance requirements of the current design but is also part of a family of devices that share a robust software platform, the developers would be supported by a broad range of ready-to-deploy software, including low-level device drivers, middleware modules, operating system kernels, and others (Fig. 1 ). Instead of having to develop and integrate some or all of these foundational software modules, the second project team can spend more time developing exciting features and capabilities that will make a difference against the competition. They can also reuse their initial code investment on future products using other devices in the portfolio.
Fig. 1: Example of a hardware and software MCU platform.
A recent survey of design engineers bears this out. When asked about the most important factor in their choice of a processor, 70% of the engineers said that software development tools were their No. 1 criterion. When these tools are robust, intuitive to use, and comprehensive, they ease code generation and debug tasks considerably. The platform approach includes a complete set of intuitive and robust tools to help with each phase of development. Processor performance was a distant second in the survey with only 38% of the participating engineers listing it as No. 1.
This same survey also found that the foremost challenge over the next year for engineers will be “managing increases in code size and complexity.” In addition, 87% of the engineers said that they are reusing software from previous projects on their current project. Clearly, software is a major concern for development engineers. They know that they need effective tools and methodologies to efficiently manage the flow of code beginning with initial development but also from one system generation to the next and from one product to complementary or interrelated products.
Test until hardened
Of course, there are many other aspects of a foundational platform that must be considered. The code, which makes up the platform, must be not only exhaustively tested to make sure that it performs as expected but also hardened. This means subjecting it to as many stressful contingencies as possible to ensure that it will perform properly. Such testing should include static analysis, numerous industry-standard test suites, and the appropriate system and interoperability testing.
User feedback and operational data collected from user systems in the field as well as ongoing system testing may also trigger upgrades and improvements to the platform software, resulting in updates to the field. And this leads to the question of how and when code updates are distributed.
Some technology providers may go many months or even years without issuing a software update and then suddenly spring one on customers with little or no warning. Typically, product manufacturers find this sort of unpredictability disruptive. A more efficient approach would be to establish a schedule for maintenance updates so that manufacturers will know when to expect the next updates. Then manufacturers can plan accordingly to ensure that adequate resources are available for implementing the updates.
Another aspect of vendor-supplied software that can be disruptive involves the sources of that software and whether the proper licensing arrangements have been obtained. Pieces or parts of a software code base may have originated as open-source code. This raises the scepter of whether that code was properly licensed. If it wasn’t, the system supplier where the code has been deployed could be in legal jeopardy. Proper licensing is another measure of a software platform’s robustness.
The release cadence of software updates and fixes is another major headache that can halt production. If the supplier is not committed to regular software releases, it becomes difficult for the developer to continue to innovate and support products already deployed. The platform’s supplier must be able and willing to stand behind and account for all of the code in the platform.
Code and knowledge portability
Just as developing software for a product is considered an investment, so, too, is the time and effort spent learning the programming and integration tools that support a certain processing technology. Whereas code reuse can help achieve a better return on investment from the original product software, knowledge portability can also reduce development costs because engineers are not being forced to constantly learn new tools and development methods if they can consistently reuse the tools that they’ve already learned.
For example, a development team may believe that its product needs a certain technical capability to compete better in the marketplace. The MCU that the product is currently based on does not have this capability, and so the team decides to change vendors. The next hurdle to cross will be learning a new tools base and developing new code.
Another example would be a product supplier that has several related product lines, but each is based on a different MCU and each MCU has its code base that is not compatible with others. Each MCU may also have its own set of tools. Shifting development resources across product lines would be cumbersome at best and certainly inefficient because much time would be spent learning about the different tools that support each product line.
In both of these cases, the absence of a code-compatible foundational platform for all of the MCUs prevents knowledge portability among developers. Too often, developers are faced with relearning tools or reinventing a basic system architecture because their current MCU does not fit its next-generation product.
With a cohesive platform that offers a breadth of technical capabilities, the developer can easily pick another MCU without having to spend time and money relearning the basics of the product. It is much more efficient when technologies, such as families of MCUs and related devices, share a consistent platform. Code reuse and mobility as well as knowledge portability are ensured.
Engineers and product developers feel the daily pressure of facing the daunting challenge of creating the next great innovation. Of course, it’s not enough for developers to keep up with the competition. They must be ahead of the curve, always mindful of what’s over the horizon. And that takes smarter development methodologies, tools, plug-ins, resource libraries, and all aspects of a robust, code-compatible, foundational technology platform that shows them the way to efficient innovation, leveraging their initial software investment to create a comprehensive product portfolio that maximizes return on investment.
Part 1: Platform approach pays off for product and system engineers – Hardware and software platforms accelerate design innovation
Part 3: A platform approach to design speeds up product development of connected things – Designers can accelerate the development and enhance their portfolio of connected things by using the same MCU platform
Learn more about Electronic Products Magazine