Real-time Embedded Linux and POSIX RTOSs For Microcontrollers (MCUs)

Wednesday, September 26, 2012

Free - Software Based Trojan Horse


It is always interesting to me how large companies offer "free" products to lock in naive customers. Somehow they are oblivious to one of the most famous tricks of all time.

In the past couple of years both Freescale and now TI have launched "free" operating system support in the MCU space. The Freescale offering called MQX provides a range of features that is quite broad and solves many problems. It is only available on Freescale MCU products. It has been used on many projects.

Now, TI has just announced that its proprietary OS which is years old is available for its MCU products. It offers similar features to that of MQX. Over the years, many have used their OS and there is clearly demand for this. Again it is a vendor specific product.

Both offerings are completely proprietary, locking the customer into the vendor's MCU offerings. As a customer you should ask yourself "Why is this semi-conductor company investing millions of dollars in proprietary OS development and giving this to my company?" The reason should be obvious - they are making money doing it. It gives them account control if nothing else.

When an OEM builds a product, they will stick with the same basic hardware for many years. If the OEM product purchase for their MCU based devices is 100K units per year, then over the life of the product line, there will be many hundreds of thousands of units purchased. When the OEM is in a single supplier position, they have no negotiating position and the margins are much better. Also, if development is started with the vendor OS, and the OS is proprietary, the switching costs are high, and other options are eliminated.

How can OEMs avoid this obvious cash grab? Well, the first thing is to educate their engineering managers on the basics of software engineering. Open system solutions for operating systems have been the norm in all but very deeply embedded systems for at least 20 years. By choosing an open system operating system, any lock in to a specific set of hardware and software is eliminated and the purchasing department has maximum leverage in all negotiations. This can easily mean hundreds of thousands of dollars in cost reduction over the life of a product line.

Does this really save money? Yes, it does if the operating system product pricing reflects the needs of the OEM on a single product. If it costs $8000-$10000 to purchase software for an MCU product development which will utilize three programmers and take four months to develop, then this cost must be considered as part of the overall product development budget and amortized over the total number of units sold. Note that total development costs should be used in this calculation which means using fully loaded labor rates for development cost calculations.

Generally, the software costs will outstrip the electronics hardware development costs in an 80/20 or 90/10 ratio. If the operating system software is correctly priced, on a single product development, the operating system cost will be more in the range of 5%-10% of the overall software development cost and less than half of the core electronics development cost. The operating system software purchase price will be easily recouped in decreased hardware costs, elimination of training, enhanced software reuse, reduced time to market and increased flexibility independent of unit sales volume.

The operating system component cost will be recouped just in reduced hardware costs if product volume exceeds a few thousand units. This is the real measure of whether the Trojan horse is a trick or not. Intangible benefits are not measured here so the total savings of an open operating system are much greater but you should be able to see benefits in the range of $1-$2 today in terms of pricing if you can go to any vendor to purchase your MCU if you have a low volume solution. The cost savings are much more obvious with volume MCU purchases although the absolute savings per MCU is much smaller.

The market share gained through more rapid market access totally dwarfs the hardware savings costs. What this means is use an off the shelf, completely integrated operating system as the overall savings will be huge. Market share is correlated with time to market and the savings that this brings diminishes the cost of the operating system to zero in the scope of things.

Other factors are important too. By using open standards like POSIX, knowledge and software reuse is maximized. This approach leads to reusable applications, elimination of training, faster development, lower cost development, lower time to market, larger market share and total cost of ownership minimization.

With open system solutions, platform based approaches and lean product development is possible. Now the software platform is POSIX based which supports the use of any of the various embedded operating system platforms for larger systems (embedded Linux, QNX, VxWorks, ...) and also supports POSIX based MCU solutions including DSPnano and Unison from RoweBots. Most larger and sophisticated companies understand this and use this approach today.

The real message here is "Don't get a free Trojan horse." The overall costs of locking in to a closed solution stopped making sense over twenty years ago and certainly make no sense today. By keeping your long term interests in mind, you can maximize your company's flexibility and profits.