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 based on the Electric Imp Platform. This requires Internet connectivity.
Every Connected Factory outputs Production Devices, each a unit of imp-enabled hardware that has 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.
Production Devices start out as Devices Under Test (DUTs). Each DUT is a unit of newly manufactured imp-based hardware that has not yet been readied for sale and end-use. To become a Production Device, it needs to be tested and then blessed.
Advanced 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 Stage||Factory BlinkUp →||Test →||Bless →||Finalization||Shipment and Sale||End-user Activation||Subsequent Updates|
|Device Type/State||Device Under Test (DUT)||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 registered with the Electric Imp impCloud™, whether Public or Private.
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) and Internet connectivity. Let’s look at each of these stages in turn:
The first step in the Connected Factory Process is to get the DUT online and in communication with the Electric Imp impCloud. To authenticate itself with the impCloud, a process called enrollment, the DUT requires a factory 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 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 factory 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 be enrolled with a factory token.
Thanks to BlinkUp, the DUT can now connect to the factory network and then to the impCloud, to which it submits its factory token. Enrollment causes the DUT to receive 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 will have been developed and tested before production commences so that it is ready to be downloaded to DUTs on the line.
What does the factory 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 end-use, and can now be registered 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 application: a blessed device’s application firmware cannot be changed by an end-user — it cannot become a different product.
Upon blessing, the Production Device is assigned to a Production Device Group and this determines which application firmware the production device will receive. When a device is assigned to a group, it receives the code 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 LED green. Any other outcome (failed test and/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 factory firmware should erase the Production Device’s network settings and factory token. This ensures that the unit will be in a clean state when an end-user applies their own settings (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.
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.
The Connected Factory Process in now complete. Another Production Device is ready to be packaged and shipped. 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.
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 fresh enrollment token. Where the factory fixture transmits the BlinkUp signal using an LED, the BlinkUp app uses the host device’s display. Factory BlinkUp and end-user BlinkUp are summarized later in this article.
Once again, the device connects to the local network and then to the Electric Imp impCloud. This time, however, the device is enrolled 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 enrollment 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 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 runs...||Factory firmware||N/A|
|Device Under Test Connects to...||Factory network||N/A|
|Production Device runs...||Application firmware||Application firmware|
|Production Device Connects to...||N/A||End-user’s network|
|BlinkUp performed by...||Factory BlinkUp fixture||BlinkUp SDK-based mobile or web app|
|impCloud Enrollment Token Type||Factory||Production|
|Usage Mode||Device test and bless||Product end-use|
The name of process by which a Production Device (ie. a blessed imp-enabled device) is initialized by its end-user.
The process of registering a new Production Device with the Electric Imp impCloud. More detailed information can be found here.
The patented process by which network configuration information and an impCloud enrollment token are sent to an imp-enabled device using the screen of a phone or tablet, or an LED. Development devices and factory BlinkUp fixtures are configured using the Electric Imp mobile app. Devices Under Test are configured by factory BlinkUp fixtures. Production Devices are configured by end-users with your BlinkUp SDK-based mobile app. More detailed information can be found here.
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
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, ie. it must undergo the Connected Factory Process.
A newly assembled commercial imp-enabled unit that is blessed and ready for sale and end-use.