Skip to main content

Software Development Overview

Electric Imp provides you with all of the functionality and the tools that you need to create the application software that will drive your connected product

Connected Code Basics

Electric Imp applications comprise two parts: code that runs runs on your product hardware (device code) and code that runs in the cloud (agent code). Every device has its own, unique agent instance, which acts as the device’s intermediary for all Internet communication. New and updated application code is deployed via the Electric Imp impCloud™ and the Internet, allowing products to be kept up to date remotely.

The imp API: A Rich Application Foundation

The agent and device code you write make use of the imp API, which allows your code to interact with each device’s imp module and connected hardware, the link between a device and its agent, and agent-mediated communications with Internet-connected resources. Some imp API objects and methods are available to both agent and device code, others only to device or agent code.

On the device, the imp API is delivered by impOS™, a sophisticated and secure yet power-friendly operating system. Application code runs in a virtual machine provided by impOS. Each agent code runs in a similar, but cloud-based virtual machine.

Squirrel: Powerful Scripting Made Easy

All Electric Imp application code is written in Squirrel, a modern object-oriented scripting language with a syntax similar to JavaScript, Swift and C. It’s easy to use and can be adopted by any programmer without difficulty. Squirrel code is compiled into virtual machine code before transfer to device and agent virtual machines.

Application Lifecycle And Connection State

Connected products may become temporarily disconnected, or even powered down. You may choose to have your application frequently put your product into deep sleep to reduce battery drain. These events impact how your product behaves. For example, deep sleep saves power, but suspends the application. When the product awakens, the application starts afresh — you will need to persist your data. Depending on how you configure each imp in the application code, disconnections may cause the product to sleep or to continue running regardless.

Complete And Comprehensive Tooling

Applications can be developed and maintained using Electric Imp’s browser-based online development and product management environment, impCentral™, or locally using your own tools. The impCentral API provides the means by which such tools can interact with the Electric Imp impCloud to upload code and manage devices.

Where Next?

Expand your knowledge of the ideas covered in this overview with the following documentation.