For some, the Internet of Things made its Super Bowl debut during the advertising blitz, through an offer by Budweiser Canada to come to your home and install a red goal light synced to the scores of your favorite team.
If you’re not a hockey fan, you may not know the red light’s iconic flashing, spinning glow and horn sound that accompany every goal. It’s the sport’s equivalent of a soccer announcer’s “goooooool!” or a football player doing a touchdown dance. It’s a moment of ecstatic release in a game characterized by constant tension in the ebb and flow of plays.
The device is powered by Electric Imp a start-up that makes SD-card-like chips that have Wi-Fi and an embedded processor.
Electric Imp. What is the electric imp? In essence, the Imp provides an easy, integrated way to connect almost any hardware device both to other devices and to internet services. It’s more than just a WiFi card, or even a WiFi module with processing built in – it’s an integrated platform that deals with the drudgery of connectivity, allowing you to concentrate on the application instead of the mechanics.
The Imp itself is very small – 32mm x 24mm x 2.1mm – but packs a lot inside.
For starters, there’s industry standard 802.11b/g/n WiFi, complete with WEP, WPA and WPA2 encryption, along with a great antenna.
Next, there’s the processor. A Cortex-M3 core gives great performance combined with low power consumption, allowing the Imp to deal with both maintaining a secure connection to the service and also executing the developer’s code in a stable environment.
Finally, there’s the I/O. Though there are only six pins available for application use, they’re six very capable pins. UARTs, I2C, SPI, analog in and out, PWMs, GPIOs… all selectable under software control.
For more details, see the electric imp hardware page.
Developing for the Imp is quite unlike most embedded development. No SDK to install, no JTAG pods, no long download times… you develop your code in a browser-based IDE and can compile and run your code on the Imp – wherever it is in the world – in under a second. The Imp even sends logging back to your browser.
Software that runs on the Imp is written in Squirrel, a C-like language, with extensions to communicate with the hardware interfaces and the service. As the Squirrel code runs on top of the electric imp OS, you get many big system benefits like buffered I/O and crash recovery – plus you can push updates to devices in the field with a few clicks.
Data passes to and from the service over a TLS encrypted interface, and can take many forms including scalars, strings and tuples. An open API on the server allows devices to communicate with other communications networks (email, SMS, twitter, etc), web pages (displaying data and controls), APIs to communicate with other services (RESTful API, TCP pipes) and of course soft nodes, that can perform server-side processing on data that would be inconvenient to do device-side.
This innovative wifi controller has a few things that you’ll want to watch for. Although it is shaped like an SD card it will not work in a device that uses SD cards for storage. It won’t damage the imp or the device, but it wont work at all. Instead, a project that uses the imp is supposed to use an SD socket in a unique configuration with an Atmel ID chip. The SD shape just makes it easy to find matching sockets, the ID chip is so the imp knows ‘where it is’ and what program to download into its memory – so that you can swap in a new imp at any time and it will change its behavior based on the socket. If you’re starting out, we suggest picking up an April breakout board – it takes care of the ID chip, socket and power supply, letting you get on with the project!
PLEASE NOTE: The April board is not included!