How to upgrade from card blessing and imp001-based factory BlinkUp fixtures
Electric Imp has ended support for card blessing and for factory BlinkUp™ with imp001-based BlinkUp Fixtures. If you make use of this process, you will need to upgrade your assembly line straight away. This document will show you how to do so.
In addition, with the introduction of impCentral™ we have changed the way factory fixtures are associated with the product that is going into production, so this document also covers the new procedure — it directly affects customers impacted by the changes outlined above. impCentral will replace the legacy IDE entirely in August 2018, at which point the current way of setting up production using factory imp MAC addresses will no longer be available to you and a new, more simple process must be used. This is described below.
If you are already using module-based fixtures, they will continue to operate exactly as before. The changes Electric Imp has made to card blessing and imp001-based BlinkUp Fixtures will not affect you, even if your product is based upon the imp001 card. However, the move from the legacy IDE to impCentral will affect you should you add further fixtures or set up a new production line. Consequently, you should review the section on adding fixtures in impCentral.
Card blessing is process by which you manually insert a specially assigned imp001 card into each of the devices under test (DUTs) on your assembly line. The card, which was called a factory imp in the legacy IDE, contains the factory firmware and runs it to test and then bless each DUT in which it is placed.
Support for this procedure ended on January 15, 2018. A factory imp can no longer bless DUTs, which it did by calling the imp API method server.bless() from within the factory firmware. The method’s callback argument will now be executed immediately and signal a failed blessing (it will pass
false into the callback’s blessSuccess parameter).
In place of this procedure, you will need to adopt factory BlinkUp. This procedure uses a separate device, called a BlinkUp Fixture, to transmit to DUTs the factory’s WiFi network credentials and the token a DUT needs to gain access to the impCloud™ and receive the factory firmware — which they will then run to test and bless themselves. This process is essentially identical to developer and end-user BlinkUp, but performed by a station on the assembly line rather than a mobile device.
Factory BlinkUp is also the recommended procedure for preparing imp-enabled devices for sale. It should be used whatever type of imp your product is based on, even the imp001. Indeed, for imp001-based products, factory BlinkUp is considerably quicker in operation and less error prone than card blessing.
Electric Imp offers a pre-built factory BlinkUp fixture, the impFactory™ for purchase, but its design is also available for you to build your own if you prefer. You can even construct a very simple fixture simply by connecting an imp module to a switch and a single-color LED, but for large-scale factory use we recommend a more rugged solution like the impFactory. But whatever form your fixture takes, it must not contain an imp001 because support for such devices will end August 2018 when the legacy IDE is removed from service.
The Electric Imp impFactory BlinkUp fixture
Connecting the impFactory or other BlinkUp fixture to your production setup is straightforward — the process is outlined below. You will also need to update your factory firmware in order to be able to run on both the fixture and DUTs, each with its own code path. We have complete example code to help you make this change, and full guidance can be found in ‘Writing, Testing And Using Factory Firmware’, elsewhere in the Dev Center.
You should only use BlinkUp Fixtures which are based on imp modules (ie. imp002, imp003, imp004m or imp005). impCentral cannot be used to add imp001-based fixtures.
If you have imp001-based fixtures, you can purchase the impFactory, or build your own fixture using the imp005 or a different module, as described above. Again, this change has no impact on which imp you base your product on — the imp005-based impFactory can and has been used to prepare imp001-based products. You will not need to change your product in any way.
Your existing factory firmware can be readily repurposed for use with new, module-based fixture. You will simply need to update the names of pins and buses to which the fixture’s components are connected. This is because imp modules from the imp003 onwards use a different pin nomenclature from the imp001. However, the changes should be trivial — the sample factory firmware, written for the imp005, will help you make the adjustments to your own code.
If you have never used a BlinkUp Fixture before, you will first need to add it to your Electric Imp account. You do this using the Electric Imp mobile app just as if it were a development device. If you are already using a fixture, you will have done this.
To add the new module-based fixture to a Product — impCentral’s way of representing a connected product you are working on — you will need to create a Factory Device Group, which you do in the Product’s Production Zone section. Select the factory icon () in the left-hand sidebar and then click Create New Device Group:
Once the group has been created, you can deploy factory firmware to it (click Deploy under the MANAGE column in the Production Zone’s Factory Device Groups list) and assign your new fixture to it (click Fixtures under MANAGE). Once a fixture is assigned to a Factory Device Group, it receives any code that has been deployed to the group and is ready to begin priming DUTs:
Note Creating a Factory Device Group requires a Production Device Group to be nominated as its target — DUTs configured by the Factory Device Group’s fixtures will automatically be added to that target when they are blessed. As such, you need to create the Production Device Group first. Your application code will be deployed to this Group once it has been developed and tested. For more information on how impCentral structures products, code and devices, and to learn how to perform production tasks, please see the impCentral User Guide.
impCentral provides a complete testing environment for developing your factory firmware and refining your factory flow before you go into production. Lab-based testing allows you to thoroughly check your factory firmware and its operation with BlinkUp Fixtures and real DUTs. If you test with the same type of fixture that your factory uses, you can be confident that if the process works in the lab, it will work in the factory.
For more detailed guidance on pre-flighting your factory flow, please see ‘How To Test The Connected Factory Process’.
impCentral applies a number of lesser changes to the production process than those described above, but which users of the online application’s production features should be aware.