How Alexa Connect Kit Works
The following sections describe how the different components of the Alexa Connect Kit (ACK) work together and how you and your users interact with your ACK-based device.
To learn about the benefits and features that ACK offers, see What's the Alexa Connect Kit.
Video: Connect your smart device to Alexa with Alexa Connect Kit
You can also watch the following video for an end-to-end introduction about how ACK works.
How ACK works
When you build an ACK-based device, you don't have to build an Alexa skill, cloud infrastructure, or an on-device app. Instead, ACK managed services handle these components for you, as shown in the following diagram, Connecting to Alexa Using ACK. With these services, you can focus on building your smart device hardware, instead of building the systems that power it.
For example, if you want to connect to an Alexa service without using ACK, you might have to build an Alexa skill, cloud infrastructure, and an on-device app. Typically, these components aren't provided to you out-of-the-box, as shown in the following diagram, Connecting to Alexa Without ACK. In some scenarios, building your own services can offer more flexibility, but they typically require more resources to maintain.
Components of an ACK-based device
The following diagram shows the high-level components of an ACK-based smart device.
To learn about each of the components of an ACK-based device, click the following tabs.
The following list summarizes the hardware components of a product built with ACK:
- ACK module – An Amazon-managed hardware component that you integrate into your ACK-based devices. The ACK module runs Amazon-managed firmware that provides a connection to Alexa and the ACK managed services. It also communicates with the host microcontroller unit (HMCU) on your device over a universal asynchronous receiver-transmitter (UART). To get started, you can purchase the ACK module in a development kit and integrate it into your device. For more details about the ACK development kit, see Get the ACK Development Kit.
- Host microcontroller unit (HMCU) – A microcontroller that runs your application logic on your ACK-based device. The HMCU interfaces with the ACK Module through code that you write using the ACK Device SDK. To get started, use a HCMU that meets the ACK minimum requirements or select from pre-integrated HMCU kits.
- Alexa devices – ACK-based devices can be controlled by Alexa devices, such as an Amazon Echo Dot, to enable Alexa voice interaction and device control.
The following list summarizes the software components of a product built with ACK:
- Host microcontroller unit (HMCU) application – Software installed on your HMCU that runs your device-specific logic to govern device behavior. You create this application using the ACK Device SDK.
- ACK Device SDK – An embedded C SDK that's developed by Amazon. Contains tools, libraries, example apps and documentation for developers to build ACK Alexa-connected HMCU applications. For more details, see ACK Device SDK.
- ACK module firmware – Firmware that's developed and managed by Amazon. The firmware is preprogrammed on the ACK module and is responsible for network connections and general device operation. New releases of this firmware are released periodically in the ACK developer console.
- Alexa app – ACK-based devices use the Alexa app to enable Alexa voice interaction and device control.
The following list summarizes the services you use to manage a product built with ACK:
- ACK developer console – An Amazon-managed developer console to configure your ACK-based products and devices. For example, you can use the developer console to view registered devices, create and edit virtual products, view and edit the Alexa interfaces associated with your product, and download resources, such as the ACK Device SDK.
- ACK managed services – Provides product-specific functions, such as management of the device fleet, over-the-air updates, and support for device operational metrics. Also includes the ACK developer console where you can create and edit virtual products, view and edit the Alexa interfaces associated with your product, and download resources, such as the ACK Device SDK.
- Alexa services – Converts customer utterances into directives, register ACK-based devices with Alexa accounts, and provides access to other Alexa capabilities and features. These services aren't specific to ACK.
- Smart Home Skill API – ACK-based devices use the Smart Home Skill API to communicate to Alexa to control device behavior.
- Virtual product – When you create an ACK-based device, you first create a virtual product. A virtual product represents your physical product in the cloud and defines how users can interact with your device. When you create or edit a virtual product, you choose its Alexa capabilities and define aspects of the Alexa app experience. You associate the virtual product with your physical product in a process called module provisioning.
High-level steps to build an ACK-based device
The following high-level steps walk you through how to use the ACK components to build a device:
- Create a blueprint of your product by using the ACK developer console, otherwise known as a virtual product. In this step, you define the overall experience of your device, such as the type of device, it's capabilities, and how users can interact with your device using Alexa.
- Associate your virtual product with an ACK module on the device by using the ACK Module Utility. This process is called product provisioning. Provisioning allows Alexa to control your device using the interfaces that you defined in your virtual product.
- Build your HMCU application logic for your device using the ACK Device SDK. This process allows your device to receive and respond to Alexa commands, implement connected device lifecycle, and use other ACK features. Other features might include receiving over-the-air updates or reporting device metrics.
- Connect your device to a Wi-Fi network using Wi-Fi Simple Setup (WSS) and register your device with Alexa.
- Control your product using Alexa voice utterances or the Alexa app. Your device behavior matches what you defined in the ACK developer console.
- Launch your product. After you do so, you can manage your devices from the ACK developer console to gather analytics and update your product.
High-level interaction between ACK-based devices and users
The following diagram illustrates the high-level interaction between when a user speaks to Alexa using your ACK-based device. This diagram uses most of the ACK components listed in the previous sections.
This example interaction explains what happens if a user turns on a kitchen fan built with ACK.
- A user says "Alexa, turn on my kitchen fan."
- The Alexa services interpret the utterance and send a directive to the ACK managed services to turn on the kitchen fan. In this example, it sends an
- The ACK managed services communicate to your ACK-based device through Wi-Fi and route the message to the ACK module.
- The ACK module forwards the directive to the HMCU.
- The HMCU application receives the directive by using functionality provided by the ACK Device SDK.
- The HMCU application communicates with device hardware and turns on the kitchen fan motor.
- The kitchen fan turns on.
- The HMCU application tells the ACK Device SDK that it processed the directive and returns the status of the device.
- The HMCU application might use the ACK Device SDK to record any interactions with the device, such as operational metrics.
How ACK-based devices interact with Alexa
ACK-based devices interact with Alexa services by using a combination of the ACK Device SDK and the Alexa Smart Home Skill API.
ACK Device SDK
Use the ACK Device SDK APIs to build your HMCU application to respond and act on Alexa directives. For details about how to set up and use the SDK, see ACK Device SDK.
Smart Home APIs
ACK-based devices use the Alexa Smart Home Skill API capability interfaces to communicate to Alexa. With these capability interfaces, you can control different properties of your ACK-based device.
The following table provides some examples of the interfaces you can use with an ACK-based device.
Control the color of a device, such as a smart lamp.
Control the power state of a device.
Control settings on a device, represented by numbers within a minimum and maximum range.
How users interact with ACK-based devices
A user that uses an ACK-based device interacts with Alexa by speaking to Alexa or by using the Alexa app.
To interact with your device, users use predefined utterances made available through the Alexa Smart Home Skill API capability interfaces. When you build an ACK-based device, you don't have to define your own set of utterances or spend time creating a new voice interaction model. These configurations are available for you to use out-of-the box with the Alexa Smart Home Skill API.
The following table provides examples of how a user might interact with your ACK-based device. For ideas about how to combine different Alexa interfaces in your products, see Get Started with Device Templates.
|Example product||Example utterance||Description||Capability interface|
"Alexa, turn on the tea kettle."
Controls the power of the kettle.
"Alexa, change the bedroom light to white."
Changes the color of a smart lamp.
"Alexa, set the fan speed to high."
Sets the speed of the fan.
Users can also use the Alexa app to control how they interact with your product. You define your app experience in the ACK developer console when you create a virtual device.
Configure and manage your ACK-based devices
After you release your device, you can monitor and manage your devices using the ACK developer console.