A Short Guide For Product Managers And Production Engineers
Note Terms presented in bold represent formal Electric Imp Platform terminology. There is a useful glossary of terms at the end of this article.
A Connected Factory is any manufacturing site that is able to produce connected products that are based on the Electric Imp Platform. This requires Internet connectivity.
Every Connected Factory outputs Production Devices: units of imp-enabled hardware that have been prepared for sale to an end-user by you, an Electric Imp Customer. Creating Production Devices is the goal of the Connected Factory Process.
Every Production Device starts out as a Device Under Test (DUT). A DUT is a unit of newly manufactured imp-based hardware that has not yet been readied for sale to an end-user. To become a Production Device, it needs to be tested and then blessed.
Customers may also assemble Development Devices for their own use, but these devices are not commercial units, and their production does not require the Connected Factory Process. Making Production Devices does require the Connected Factory Process.
This is the lifecycle of these units:
Process Location | Connected Factory | Field | |
---|---|---|---|
Process Stage | Assembly → Factory BlinkUp → Test → Bless → | Final assembly/ packaging → | Shipment and Sale → End-user Activation → Subsequent Updates |
Device Type | Device Under Test | Production Device |
The Connected Factory Process is the part of the manufacture of a commercial imp-enabled connected product in which DUTs become Production Devices. This process ensures that the device is correctly registered with the Electric Imp impCloud™. You can see it demonstrated in the following brief video:
The Connected Factory Process is one of three key phases in the lifecycle of a commercial imp-enabled device. It forms the first and the most intricate phase, and is the focus of this overview. However, the subsequent two device lifecycle phases are closely related to the Connected Factory Process and so they are briefly covered here too, even though they take place outside of the Connected Factory.
The three key device lifecycle phases are:
This phase involves four stages in which the commercial imp-enabled device:
In order for this phase to begin, the DUT must powered on. The factory must be equipped with a local network (typically wireless but the exact type will depend on your product’s chosen mode of connectivity) and Internet access, unless the DUT connects by cellular. Let’s look at each of these stages in turn:
The first step in the Connected Factory Process is to connect the DUT to the Electric Imp impCloud. To gain authorized access to the impCloud, the DUT first requires a factory enrollment token. The DUT receives this token through a patented optical data-transmission technique called BlinkUp™. DUTs that use a WiFi module also require credentials to access the Connected Factory’s wireless network, and these credentials are also transmitted to the DUT by BlinkUp. BlinkUp takes approximately five seconds.
In the factory, the source of the BlinkUp signal is an imp-enabled assembly line station called a BlinkUp fixture, such as Electric Imp’s impFactory™ appliance.
Some imp modules support other modes of connectivity, such as wired Ethernet, cellular or Bluetooth LE. DUTs based on these modules may not require wireless network credentials, but they must still receive a factory enrollment token, and this can only be delivered by BlinkUp.
After BlinkUp, the DUT is able to connect to the factory network and then to the impCloud, to which it submits the factory enrollment token it received. The impCloud checks the token and, if the token is verified, assigns the DUT to a DUT Device Group. This causes the DUT to fetch the software that it will run within the Connected Factory: its factory firmware.
A product’s factory firmware is typically prepared alongside the product’s application firmware. The factory firmware comprises two separate components: one to run on DUTs (the DUT firmware) and the other to operate the assembly line’s BlinkUp fixtures (fixture firmware). Both types of factory firmware will have been developed and tested before production commences.
What does the DUT firmware do? Firstly, it incorporates code which tests the DUT, allowing faulty units to be identified. If a DUT passes these tests, it is suitable for sale, and can now be registered as such with the impCloud. This registration phase is called blessing. Only when a DUT is blessed is it ready for end-use: it has become a Production Device.
Blessing connects the Production Device to the Electric Imp billing system. It also binds the device’s imp to the product’s application: a blessed device’s application firmware cannot be changed by an end-user — in other words, it cannot become a different product.
Upon blessing, the Production Device is automatically assigned to a Production Device Group and this determines which application firmware the Production Device will subsequently receive. When a device is assigned to a group, it receives the most recent code that has been deployed to that group. When updated code is subsequently deployed to the group, all member devices receive that update automatically and without end-user intervention.
It is important that all testing functions are performed before blessing. Indeed, the result of the tests (pass or fail) is given to the blessing code so that the device can signal its status to an assembly line operator. A device that has tested successfully and been blessed will light its status LED green. Any other outcome (failed test or failed blessing) will cause the LED to turn red, allowing such units to be identified and removed from the assembly line.
The successful completion of this stage of the Connected Factory Process will be signalled to your server if you have set up the blessing webhook.
As a final step, the DUT firmware erases the Production Device’s network settings and factory enrollment token. This ensures that the unit will be in a clean state when an end-user powers up the device and activates it (also using BlinkUp, this time mediated by a configuration app that you will provide (see ‘Activation’, below).
Typically, the Production Device will download its application firmware at this time, though customers may instead elect to have the software download once an end-user has activated the device in the field. The former is desirable if you need your application to run as soon as the end-user powers up their device: for example, if it has to run to support Bluetooth LE activation, or provide activation instructions on a display.
Whichever of these alternatives you pick, you can be sure that once an end-user has configured a device, it will receive the latest version of the application firmware at that time, if such an update is available.
The Connected Factory Process in now complete for this device: another Production Device is ready to be packaged, shipped and sold. However you distribute your product, it will next interact with the Electric Imp impCloud when it is activated by or on behalf of one of your end-users.
Let’s look ahead to the next phase in the device’s lifecycle. An end-user has purchased or leased one of your Production Devices, which has been installed and is ready for use. The product packaging and/or documentation will have encouraged the end-user to download your BlinkUp app, or to access it via mobile web browser. The end-user may also have signed up for an account that you maintain so that you have a record of their ownership of the device. If your product has a display, you may have used the device’s own software, running as soon as the device is powered on, to present a set-up walkthrough on the screen.
You can see how end-user BlinkUp works in this short video:
The BlinkUp app is essential: it will use the features provided by the Electric Imp BlinkUp SDK to allow the end-user to configure the device for local network access, just as the factory BlinkUp fixture configured DUTs on the assembly line for factory network access, and to provide the device with a production enrollment token to allow the impCloud to verify the BlinkUp. Though the factory fixture transmits the BlinkUp signal using an LED, the BlinkUp app uses the host device’s screen. Factory BlinkUp and end-user BlinkUp are summarized later in this article.
Once again, the device connects to the local or cellular network (depending on the type of imp it contains) and then to the impCloud. This time, however, the device is registered as an end-user device — a process called activation. This is only possible if the device has been blessed, as described above. If this second registration is successful, billing commences for the device’s impCloud usage, the device’s agent is activated, and its URL returned to the app which may, for example, use it to transmit any changes that the end-user now makes to the device’s application-specific settings.
All this takes place in seconds, though at all times the end-user is given feedback through the device’s LED, which always indicates the status of each stage of the BlinkUp and activation process.
The successful activation of the device will be signalled to your server if you have configured the BlinkUp webhook.
The Electric Imp Platform makes it very easy to deploy updates and improvements to your application firmware whenever you need to. At least one version of the application firmware should be deployed before assembly commences, but further versions can be deployed as often as you require, even part way through a production run. This is because all Production Devices will automatically receive newly deployed versions of the application firmware when they next connect to the Electric Imp impCloud.
The following table summarized the differences and similarities between the configuration of a device as it undergoes the Connected Factory Process and when it is set up by its end-user in the field:
Action or Event | In the Factory | In the Field |
---|---|---|
Device Under Test loads and runs... | DUT firmware | N/A |
Device Under Test connects to... | Factory or cellular network | N/A |
Production Device loads and runs... | Application firmware | Application firmware |
Production Device connects to... | N/A* | The end-user’s network or cellular network |
BlinkUp performed by... | A BlinkUp fixture | Your BlinkUp SDK-based app |
impCloud Enrollment Token Type | Factory | Production |
Usage Mode | Device testing and blessing | Product end-use |
* Note Typically the production device does not re-connect to the factory network, but some production workflows may require it to do so. This is easily enabled through the DUT firmware.
Activation
The name of process by which a Production Device (ie. a blessed imp-enabled device) is registered with the impCloud by its end-user.
Application Firmware
The code that runs on an imp-enabled Production Device to deliver your product’s functionality.
Blessing
The process of readying a new Production Device for sale to an end-user. More detailed information can be found here.
BlinkUp
The patented process by which an impCloud enrollment token and network configuration information, if required, are sent to an imp-enabled device using the screen of a phone or tablet, or an LED. Development devices and BlinkUp fixtures are configured using the Electric Imp mobile app. Devices Under Test are configured by BlinkUp fixtures. Production Devices are configured by end-users with your BlinkUp SDK-based mobile app. More detailed information can be found here.
BlinkUp Fixture
An imp-based unit installed in the Connected Factory to prepare DUTs to connect to the impCloud for the first time.
BlinkUp SDK
Software used to integrate BlinkUp technology into the app you will provide to your end-users to allow them to configure the Production Devices they have bought. The BlinkUp SDK is only made available to Electric Imp customers. It is available in three forms: Android, iOS and JavaScript. More detailed information can be found here.
Development Device
The prototype version of your hardware, or simply a unit based on an imp breakout board that is being used to test your connected product’s software or evaluate the Electric Imp Platform. Development devices are configured using the Electric Imp app, not your BlinkUp SDK-based mobile app, which is for Production Devices only.
Device Under Test (DUT)
A newly assembled commercial imp-enabled unit that is not yet ready for sale and end-use. It will first need to be tested and then blessed and become a Production Device, ie. it must undergo the Connected Factory Process.
Factory Firmware
The code that runs on an imp-enabled device in the Connected Factory. These can be DUTs or BlinkUp Fixtures, and each runs its own type of factory firmware: DUT firmware and Fixture firmware, respectively.
Production Device
A newly assembled commercial imp-enabled unit that is blessed and therefore ready for sale and end-use.