Provision Your Module
This guide provides the steps to provision an ACK module as a virtual product via ACK managed services. You use the ACK Module Utility CLI tool to manually provision individual modules or ACK development kits. For general information about module provisioning, see the Module Life Cycle.
Overview
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.
Prerequisites
- A Development Kit for ACK, or a printed circuit board assembly (PCBA) with an integrated ACK module.
- A virtual product.
- Ensure that you have an internet connection.
- The Module Utility CLI version 4.0.6.0 or later.
- Complete the Module Utility CLI Quick Start.
Step 1: Download the configuration file for you product
To download the configuration file for your product
- Log in to developer.amazon.com, if you aren't already logged in.
- Go to the ACK console products page.
- Click on the product that you would like to provision the module as.
-
In the upper-right, click Download Provisioning File. This will save a zip file to your computer's default download location. After unzipping, you will find a ProvisioningInfo_[devicetypeid].conf file, which has three values that should not be modified:
deviceType
– A unique identifier that represents your virtual product. When you create a virtual product in the ACK console, a unique device type is created.simpleSetupId
– The Wifi Simple Setup ID used to register the product with Alexa via Amazon's Wifi Simple Setup service. For more information about Wifi Simple Setup, see Wifi Simple Setup.ztsKey
– The Zero-Touch Setup key used to register the product with Alexa via Amazon's Wifi Simple Setup service.
Step 2: Determine the serial port that corresponds to the module
-
First, connect the ACK hardware development board debug port to your computer. If you are using a Development Kit, see connect the development board to your computer.
-
To provision the module, you need to specify the serial port that corresponds to the module. Use the Module Utility
listports
command to list the serial ports and their connection status.
Step 3: Use the Module Utility CLI to provision the ACK module
To provision the module, use the provision
command which moves the module state from module provisioned to product provisioned.
-
Run the
provision
command, and specify the port that corresponds to the module and the location of the provisioning configuration file that you downloaded from the ACK console product page.Enter the following code into the terminal:
$ java -jar <path-to>/ackmoduleutility.jar provision -p <serial-port> --provisionconfigfile <path-to>/ProvisioningInfo.conf
1. If the module is already provisioned as a product, you'll see a message like `The module is already provisioned as product AZCQX0BWIKW8F. Reprovision? Y/N`. In this case, choose **Y** to reprovision the module.
-
An LWA sign in page opens in your web browser. Sign in to your Amazon developer account, and select Allow to grant the Alexa Connect Kit Device Provisioner permission to read ACK device certificates.
Important: If you have multiple Amazon developer accounts, be sure to sign in with the account credentials that are associated with your ACK virtual product.Grant the Alexa Connect Kit device provisioner permission to read the device certificate. -
When the provisioning process is successful, you'll see a
Device provisioning successful
message in your terminal window.The following output appears:
java -jar ackmoduleutility.jar provision -p /dev/tty.usbserial-XXXXXX --provisionconfigfile /Users/<username>/Downloads/ProvisioningInfo.conf Device provisioning beginning for device type AZCQXXXXXXXX... Setting device information Authorization is required. Your web browser should open the "Login with Amazon" page to the following link, please login with your Amazon developer credentials associated with device type AZCQXXXXXXXX. https://devicesigner.amazon.com/v1/authn?state=eBMxweDVK4bTojmFeHcXsQ-o2Oa1gelBSNOL9oSau6tIVWTrcpLGGvIbUKaY0AoNGE Waiting for you to login using "Login with Amazon" | Login detected, sending request for device certificate to the ACK service... Device certificate request was successful and device certificate has been provided to ACK module utility. Device provisioning continuing... Device provisioning successful