Skip to main content

The Electric Imp Connected Factory Process in Seven Steps

All you need to know, in a nutshell

  1. In order to run application firmware, a production device must be blessed — ie. 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.

  2. 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().

  3. 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.

  4. 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.

  5. Putting all this together, this is what you need to put a product into production:

    • A Product — What you will be manufacturing.
    • A Factory Device Group — The collection of your factory BlinkUp fixtures.
    • A Production Device Group — The collection of your production devices.
    • Your factory firmware — Code that runs on the factory BlinkUp fixtures, and on devices under test before blessing.
    • Your application firmware — Code that runs on production devices after blessing.
  6. Using impCentral you:

    • Assign the Production Device Group as the Factory Device Group’s Target.
    • Promote and deploy the factory firmware to the Factory Device Group.
    • Promote and deploy the application firmware to the Production Device Group so that production devices receive the application after blessing.
  7. 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.