ACK Device SDK
The Alexa Connect Kit (ACK) Device SDK is contains embedded C libraries, samples, and documentation for developers to build Alexa-connected host microcontroller unit (HMCU) applications for ACK.
Download the SDK
Download the ACK Device SDK on the Resources page of the ACK developer console.
Full SDK documentation
SDK versions
There are two major versions of the ACK Device SDK – ACK Device SDK version 3.x and ACK Device SDK 4.x. Each major version also has a series of minor releases, such as the ACK Device SDK 3.2 and ACK Device SDK 3.4. The following table lists the SDK release dates and the compatible ACK development kits.
SDK Version | Release date | ACK development kit compatibility |
---|---|---|
ACK Device SDK 4.1 |
Apr 30, 2021 |
Espressif |
ACK Device SDK 3.4 |
Apr 30, 2021 |
Espressif and USI |
ACK Device SDK 3.2 |
Feb 01, 2021 |
Espressif and USI |
ACK Device SDK 3.1 |
Feb 01, 2021 |
Espressif and USI |
ACK Device SDK 4
The ACK Device SDK 4 is only supported on the Espressif development board. It introduces support for the following smart home interfaces in addition to the interfaces already supported in SDK 3:
The full ACK Device SDK 4 documentation is bundled with the SDK download in a pdf file.
ACK Device SDK 3
The ACK Device SDK 3 is supported on both the USI and Espressif development board. For more details about the supported smart home interfaces, see Smart home Capability Interfaces.
The full ACK SDK 3 documentation is bundled with the SDK download in a pdf file.
SDK components
The ACK Device SDK has two main components, the SDK sample apps and the HMCU implementation core.
SDK Sample apps
The ACK Device SDK contains four sample apps that you can upload to your ACK development kit. You can use the sample apps out-of-the-box or use them as a template to build your own Alexa products. The four sample apps included with both the ACK Device SDK 3 and 4 are:
- Hello Word – Models basic the functionality of a smart plug, such as powering it on and toggling through ACK lifecycle states.
- Dash Replenishment – Models the basic functionality of the Dash Replenishment Service, such as tracking if a printer is low on paper or ink.
- Smart Light – Models the basic functionality of a smart light, such as powering it on, controlling the brightness, and toggling through presets.
- Microwave – Models the basic functionality of a microwave, such as powering it on and emulating a keypad.
HMCU Implementation Core
The implementation core communicates between your HMCU application and the ACK module. The implementation core handles device registration, life cycle management, connection to Alexa, device state changes, and processes Alexa directives and events. The HMCU runs your device's application, which handles device-specific logic for your device. The ACK Device SDK provides the C source code that you use in your device's HMCU application. The ACK Device SDK provides the link between your device's HMCU and the ACK Module.
For more information about how the different components of ACK communicate with each other, see How Alexa Connect Kit Works.
Choosing the correct SDK version
Use the following information to determine whether to use the ACK Device SDK 3 or ACK Device SDK 4.
ACK scenario | Recommendation |
---|---|
You're starting a new ACK product, and you purchased an Espressif development kit. |
Your kit is already compatible with the ACK Device SDK 4. Only the ACK Device SDK 4 appears on the Resources page of the ACK developer console. |
You're starting a new ACK product, and you purchased a USI development kit. |
Upgrade to ACK Device SDK 4 before you begin development. Download the ACK Device SDK 4 on the Resources page of the ACK developer console. |
You're currently prototyping a device by using SDK 3, but you haven't created a virtual product yet. |
Upgrade to SDK 4 before you create a virtual product. Download the ACK Device SDK 4 on the Resources page of the ACK developer console. |
You're currently prototyping a device by using SDK 3, you have already created a virtual product, and you want to take advantage of the new smart home interfaces available in SDK 4. After you create a new virtual product, download the ACK Device SDK 4 on the Resources page. Copy the code from your existing HMCU application to your new product and update it as explained in upgrade your HMCU application from SDK 3 to SDK 4. |
Upgrade your product to SDK 4. First create a new virtual product on the Products page of the ACK developer console. |
You're currently prototyping a device by using SDK 3, you have already created a virtual product, and you don't need the new smart home interfaces. |
You can keep using SDK 3. The ACK Device SDK 3 is still supported for the SDK 3 smart home interfaces. |
Your ACK product is certified. |
Don't upgrade the SDK version of your product. |
You're manufacturing your ACK device. |
Don't upgrade the SDK version of your product. |
You already launched your ACK device |
Don't upgrade the SDK version of your product. |
Upgrade your HMCU application from SDK 3 to SDK 4
If you have an existing product in development, and you want to upgrade to ACK Device SDK 4, you must update the code for your existing HMCU application.
First remove all includes that look like the following:
#include v3avs_capabilities/...
#include v3avs_types/...
Then update your code by replacing ACK Device SDK 3 types and capabilities with ACK Device SDK 4 types and capabilities by using the information in the following table. Include the headers for the types and capabilities that you replace.
SDK 3 Entity | SDK 4 Replacement | SDK 4 Header |
---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Related topics
Last updated: Nov 27, 2023