The Internet of Things (IoT) is basically IP connected devices sending data back and forth to servers in the cloud.
Computers and mobile phones do this all the time so how is IOT different?
IoT devices tend to be “appliances” that do one job well and contain micro-controllers not computers. The data they send back can be valuable to the customer but is often consumed by the supplier. For example a lawnmower manufacturer used sensors to measure its customers’ utilisation of its devices and redesigned the motors accordingly.
Securing IoT devices is a big worry. Security is hard and easy to do wrong and after you have sold thousands of devices it is very difficult to update them. There are IoT backbone providers that provide services to solve this problem.
The Electric Imp is one such provider. I bought a Sparkfun dev. kit for Arduino and built a little prototype application.
Electric Imp
The System
To my surprise the tiny Electric Imp module actually contains a microprocessor and can already do most of the things an Arduino can do. Rather than buying Sparkfun kit you could buy their own prototype board.
An Electric Imp application has either two or three parts:
The firmware that runs on the Electric Imp. You write this in Squirrel which is an event-driven language similar to JavaScript. No problem to JavaScript or node.js developers.
The software that runs on Electric Imp’s servers (the Agent). You write this in Squirrel and it handles all communication with the outside world.
The Imp module is powerfull but you might need your own custom firmware that runs on your device (e.g. Lawnmower).
Security
All software is written in the cloud and deployed through the Imp network and side-loading is not permitted. The Imp is designed from the ground-up for security and your code is running in sandbox on the device.
Device Management
The Electric Imp servers let you register and manage thousands of devices at once. This is the most impressive part of the system. You can securely roll-out updates to groups of devices.
Connecting to the Internet
The Electric Imp allows Ethernet and WiFi (2.4GHz) connections with cellular modules currently in beta.
Electric Imp was one of the first IoT backbone providers and they use their patented Blink-Up method to enter WiFi SSID and passwords to their modules. You use an app on your phone to strobe a photocell on the device and transfer the settings. I wasted two hours on this until I found I had to use “legacy mode” in the Android application.
This looks really dated now. In the early days phones could not reliably detect and connect to the Access Points (AP) on IoT devices but since millions of Amazon Echo devices have been sold I don’t think that this will be a problem today.
A problem for the enterprise is that Imp does not (seem) to support EAP and Radius authentication.
Pricing
Imp pricing is completely opaque. You can buy Imp Months for devices or life-time service contracts but it does not say how much they cost.
Conclusion
The Electric Imp is a well polished product that offers an appealing alternative to writing your own infrastructure to monitor and manage devices (in node.js say). Their capability to design and fabricate PCBs and potentially software means that you can outsource a lot of the risk of IoT development to them and focus your own efforts on delivering value to the customer from the data that you collect.
The downsides are the rather weird and limited Blink-Up process for on-boarding and the lack of transparent pricing.
My next adventure in IoT will be an investigation of the Particle IoT system.
Important Notice
This article is written in July 2018 and IoT is developing rapidly so do check their site for updates.