When I made the very first posting to this blog, more than five years ago, I made the observation that the world of embedded software is very fashion conscious. I certainly do not mean that embedded software developers are renowned for their dress sense! I am talking about the way that a particular technology is really “hot” at any one time …
Every few years, a product or technology comes along and it seems like everyone is talking about it. Everyone has the best support, integration, expertise … whatever. For the most part, the source of all the excitement does not go away, but becomes mainstream as it finds its place in the diverse world that is embedded software.
Historically, the “fashions” that I have tracked include C++, Windows CE, Java, Eclipse, UML and low power design. The most interesting feature of this list is that they are all very software oriented, except for the last. Designing for low power requires a hitherto unheard of amount of cooperation between software developers and their hardware design counterparts. In the context of embedded systems development, I feel that this is an excellent and long overdue trend.
As you can probably guess, the embedded systems fashion of the moment is the Internet of Things – IoT. This continues the trend set by low power of being more abstract. In theory it is all about [autonomous] devices – that are not computers, tablets or smartphones – talking to one another and to human users via the Internet. It is more or less what we used to call M2M. In practice, the term is also being applied to a wide range of technology – wearable computing primarily – which is not connected in any direct way to the Internet; typically these devices use Bluetooth, Zigbee or WiFi to connect to a smartphone or whatever, which will itself be connected to the Internet.
I would go as far as to say that many companies, who are claiming IoT support have simply spotted a passing band-wagon and have jumped aboard. And who can blame them? IoT is not so much a technology as a marketing hype generator. As it can impact on such a massively wide range of technologies and products. The result is quite a long list of technologies that, if a company supports one of more of them, gives them the incentive to say that they “support IoT”. Here are some possibilities:
- small footprint hard real time operating systems [like Nucleus]
- full featured operating systems [like Linux]
- Bluetooth support – particularly low energy
- Zigbee support
- WiFi support
- IPv6 support
- low power design and OS power management
- multicore design
The list goes on …