electric imp’s Technology

Electric imp provides two hardware form factors: a card and a soldered down module (see below). Each consists of a Broadcom Wi-Fi chip, Cortex M3 Processor and antenna.

Electric imp’s hardware form factors: the imp001 card (left) and the imp002 module (right)

The card has 6, the module 12 general purpose I/O pins which can be connected to an analog to digital converter, two digital to analog converters, digital input and output, pulse width generation, counters and several serial communication interfaces (3 UARTs as used for RS232 or RS485, 2 SPI and 2 I²C to connect more electronic functions such as memory or I/O).

Electric imp already sold several 100,000 of these devices for all kind of applications. Reference designs have been developed for many typical sensor and control applications and are freely available in hardware and software on electric imp’s website. This leads to short integration time for new designs. There is no special system development kit (SDK) necessary. Every imp card can be used for development. The complete development system comes from the cloud, only a browser is carrying out software development. Simple breakout boards are available to support the hardware side of the development process.

It takes two hours from receiving the hardware to controlling a LED from internet. That is the “Getting Started” project  for the software developers as described in electric imp’s website. All the developer needs is shown below. The USB cable is only for power supply.

The typical structure for systems based on electric imp (short the “imp”) consists of the imp hardware itself embedded in the device, the firmware running on the imp, the agent, which is a kind of pico virtual machine, together with the API (application programming interface) on the impCloud server (see below). The impIDE development system can access both, the imp and the agent, the impConsole which controls the programming process during production and impOverview, an use analysis tool. Each running imp has its own agent, and this agent has its own URL. Through this URL and the API apps on smartphones or tablets, software on PCs or own servers can communicate with the agent. The imp itself has its own operating system called impOS on which all programming of the real world interface takes place. There are standardized communication procedures between the imp and its agent.

Structure of imp together with cloud servers and apps

There is one interesting technical solution aspect. The imp doesn’t initially know which wireless network is the one to use and with which password. Electric imp has implemented an optical data exchange between a smartphone display and the imp (using a phototransistor) to initially set SSID and password of the intended wireless network. This process is called “BlinkUp” and exists as a generic app and it can be integrated in vendor apps.

The programming language is called Squirrel. Squirrel is a high level imperative, object-oriented programming language, designed to be a light-weight scripting language that fits in the size, memory bandwidth, and real-time requirements of applications like video games. It fits very well into the limited memory of the imp device and is also used for the agent software. The agent software runs on a virtual machine (VM), 10s of thousands on electric imp’s servers with complete resource management there.

The typical set up will allocate the real world part of the software (dealing with signals from or to the device) on the imp while the agent takes care of the internet communication.

Hinterlasse eine Antwort