Standardisation for micro-controllers
96 boards is a great idea. For those of you familiar with it, skip to the next section. It’s an open-platform specification for 32 and 64 bit ARM processors. It lays down guidelines for hardware; this ensures that shields/capes/hats/add-on boards remain compatible even if the underlying hardware changes. It also has a reference software platform, so that one can shift between two different SoCs with ease.
So does something like this exist for good ‘ol µControllers?
Yes and no.
Yes because we have some not-set-in-stone standards run by people who might not want to collaborate. And no because well the same reason as yes.
Let’s look at the hardware first —
The Arduino Layout
The Arduino layout is quite a hit. So is their IDE and the trend for adding ‘Arduino-support’ to your development board. I have some serious issues about the layout of the standard Arduino pins, but that’s for a different day.
The DIP Layout
We have a plethora of development boards that have a simple breadboard compatible DIP (dual in-line package) layout — Teensy, Adafruit’s Feather series, and even our Makerville Knit.
And when it comes to software —
There is a huge gap between the Arduino world which was always meant for designers and artists, and the vendor-supplied SDKs like EZ-Connect from Marvell or Nordic’s nrf5 SDK. There are some efforts that are trying to bridge the gap, like ESP32's esp-idf which is a community driven effort.
Just to give an example, Marvell and Nordic’s SDKs have first class support for Apple’s HomeKit. EZ Connect’s support of the AWS IoT C SDK is recommended one in the porting guide.
FreeRTOS has been reigning supreme as the go-to real time operating system worthy of µControllers, but we have NuttX too. Zephyr, Google’s Magenta, Apache MyNewt are the new kids on the block who are pushing to add support for more SoCs. Linaro recently announced LITE, which I think is interesting.
Things to come
Google is coming up with Weave. Apple has been pushing for HomeKit adoption for quite a bit now. There are new protocols like LoRa, BLE is getting IPv6. <insert more such titbits>
Honestly, I don’t think the industry will ever converge like it did with AOSP. Of course there are lesser known contenders, but none of them have the muscle to dethrone Android. So do we expect something like this to happen ? Or is it going to be some other kind of arrangement that we make ourselves comfortable with ?
I feel bad about the people who are coming up with some awesome new product — so many cloud platforms, frameworks, wireless protocols, etc. How do you make sure that you pick the right one ? Or do you just ensure that your device has secure device upgrades so that whatever turn the industry/users take, you got it covered.
Whatever might be the case, I have my fingers X’d.
This is inspired from a late evening discussion about the state of the IoT union which was had between Siddesh, Nikita, Rahul and yours truly.