All you need to know, in a nutshell
In order to run application firmware, a production device must be blessed — there must be a link between the device’s unique ID and the Production Device Group to which the latest application firmware has been deployed.
To bless a production device, you call the imp API method server.bless() on the device, which is running factory firmware. Only factory firmware can call server.bless(). It can and should include hardware tests you have written, and run these before calling server.bless().
To get the factory firmware onto a device under test, you connect the device to the factory network: WiFi or Ethernet, depending on the type of imp in your product.
To get the production device to connect, you call the imp API method server.factoryblinkup() on your factory BlinkUp fixture. You can only call server.factoryblinkup() on a factory BlinkUp fixture, which runs the same factory firmware as the devices under test — it is written for both types of hardware.
Putting all this together, this is what you need to put a product into production:
Using impCentral you:
Because the factory firmware runs on both the factory BlinkUp fixture and devices under test, it needs to distinguish between these two types of hardware. Electric Imp’s FactoryTools library can help you with this.