ACK Device SDK
The Alexa Connect Kit (ACK) Device SDK for Embedded C contains a library, samples, and documentation for developers to build Alexa-connected host microcontroller unit (HMCU) applications for ACK.
The ACK Device SDK has two main components:
-
Sample applications for an HMCU – The sample applications represent different types of products with unique Alexa capabilities and functions, such as a smart light bulb or a ceiling fan. You can modify the sample applications to build your own Alexa-connected products. Otherwise, you can use the code as-is to connect the Development Kit to Alexa and control your device with the Alexa app or an Alexa-enabled product, such as an Amazon Echo Dot.
-
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 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.
Download the ACK Device SDK on the Resources page of the ACK developer console.
ACK Device SDK 4
The ACK Device SDK 4 introduces support for the following smart home interfaces in addition to the interfaces already supported previously:
Use the following information to determine whether to use SDK 3 or SDK 4.
ACK Scenario | Amazon Recommendation |
---|---|
You are starting a new ACK product, and you purchased an Espressif development kit. | Your kit is already compatible with SDK 4 and only SDK 4 appears on the Resources page of the ACK developer console. |
You are starting a new ACK product, and you purchased a USI development kit. | Upgrade to SDK 4 before you begin development. Download the ACK Device SDK 4 on the Resources page of the ACK developer console. |
You are 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 are 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. | Upgrade your product to SDK 4. First create a new virtual product on the Products page of the ACK developer console. 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. |
You are 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 are 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 SDK 4, 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 SDK 3 types and capabilities with 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 |
---|---|---|
v3avs_capabilities_V3Alexa_Cause_CauseType |
ack_alexa_change_report_cause_type |
generated/ack_generated_alexa.h |
v3avs_capabilities_V3Alexa_ErrorResponse_ErrorType |
ack_alexa_error_type |
generated/ack_generated_alexa.h |
v3avs_capabilities_V3Alexa_NotSupportedInCurrentMode_DeviceMode |
ack_alexa_device_mode |
generated/ack_generated_alexa.h |
v3avs_capabilities_V3AlexaCooking_ErrorResponse_ErrorType |
ack_alexa_cooking_error_type |
generated/ack_generated_alexa_cooking.h |
v3avs_types_V3CookingMode_Value |
ack_cooking_mode |
generated/ack_generated_cooking_mode.h |
v3avs_types_V3Count_Size |
ack_count_unit |
#include generated/ack_generated_count.h |
v3avs_types_V3EnumeratedPowerLevel_Value |
ack_enumerated_power_level |
generated/ack_generated_enumerated_power_level.h |
v3avs_types_V3Temperature_Scale |
ack_temperature_scale |
generated/ack_generated_temperature.h |
v3avs_types_V3Volume_Unit |
ack_volume_unit |
#include generated/ack_generated_volume.h |
v3avs_types_V3Weight_Unit |
ack_weight_unit |
#include generated/ack_generated_weight.h |