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