Understand Module Provisioning

This page provides an overview of the different ACK module states used in the product development process, and how and when to transition between those states. For details about ACK, see What is ACK?

Understand module states

As you develop your product, the ACK module will be in one of five primary states: module provisioned, product provisioned, product provisioned – registered, locked, or locked – registered. You use the Module Utility CLI to transition the module between these states.

 Module life cycle
Alexa Connect Kit module life cycle

These are the five different module states used in the product development process:

  • Module provisioned – When a module is in this state, it does not represent a product, cannot be registered with Alexa, and has limited functionality. This state is precursor to the product provisioned state. If the module is already product provisioned, you use the Module Utility reverttomoduleprovisoned command to set the module to this state. For more information, see the reverttomoduleprovisoned reference.
  • Product provisioned – When the module is in this state, the module is designated as a product and can be registered with Alexa. You set the module to product provisioned as you develop and test your product. Due to permission restrictions, you can only provision the module as the products available to your developer account in the ACK console.
  • Product provisioned – registered – When in this state, a module is provisioned as a product and registered with Alexa and ACK managed services via Wifi Simple Setup.
  • Locked – When the module is in this state, product provisioning is finalized, and the module is ready for your customers. You use the lockmodule command to lock the module, which is an operation that can't be undone. For more information, see the lockmodule reference.
  • Locked – registered – When in this state, a module is locked as a product and registered with Alexa and ACK managed services via Wifi Simple Setup.

How you provision a module

To provision the module, you use the provision command which moves the module state from module provisioned to product provisioned. In order to provision a module, you first need a virtual product in the ACK console. The virtual product represents the Alexa capabilities that your product has, and defines other qualities such as Alexa app display category. See Virtual Products for more information.

You download your virtual product's configuration file directly from the ACK console. This configuration file contains a deviceType identifier that associates the module with your virtual product, as well as keys used for Wifi Simple Setup.

You use the Module Utility provision command to provision the module and pass the configuration file in as an argument. Login with Amazon (LWA) is used to authorize ACK managed services to provision the module. Once authorization is complete, ACK managed services generate device certificates and write them to the module's memory. Device certificates are used to verify your product's identity, and enable it to access and register with Alexa and ACK managed services.

For a step-by-step guide on how to provision the module as a product, see Provision Your Module. If you are using a YubiKey for provisioning, see Provision Your Module with a YubiKey.

Factory reset the module

When the module is registered with Alexa via Wifi Simple Setup, you use the Alexa app to reset the module. When you factory reset the module, it clears user and product data. You can factory reset the module when it is either a locked state or product provisioned state.

To factory reset the module via the Alexa app:

  1. Open the Alexa app
  2. Go to Devices
  3. Select All Devices
  4. Choose the device you want to factory reset.
  5. Click on the Trash Icon to delete the device from the Alexa app.
  6. Choose Yes to confirm deletion. This factory resets the module.