Steps to Provision a Module – ACK Managed Services

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 on module provisioning, see the Module Life Cycle Overview.

Overview

To provision the module, you will 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

  1. Complete the Module Utility CLI Quick Start guide.
  2. Ensure that you have an internet connection.
  3. Module Utility CLI version 4.0.6.0 or later.
  4. A virtual product in the ACK console.
  5. Either a USI Development Kit, or a printed circuit board assembly (PCBA) with an integrated ACK module.

Step 1: Download your product's configuration file

To download your product's configuration file:

  1. Log in to developer.amazon.com, if you aren't already logged in.
  2. Go to the ACK console products page.
  3. Click on the product that you would like to provision the module as.
  4. 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

  1. First, connect the ACK hardware development board debug port to your computer. If you are using a USI Development Kit, see connect the development board to your computer.

  2. 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, you will use the provision command which moves the module state from module provisioned to product provisioned. For more information, see the Module Life Cycle Overview.

  1. 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.
    
  2. An LWA sign in page will open 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.

    Grant the Alexa Connect Kit device provisioner permission to read the device certificate.
    Grant the Alexa Connect Kit device provisioner permission to read the device certificate.
  3. 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
    

Next steps

If you are ready to mass manufacture your product, see the Steps to Provision a Module – YubiKey guide.

Resources