Download the SDK
Download the ACK Device SDK on the Resources page of the ACK developer console.Full SDK documentation
SDK versions
The ACK Device SDK has two major versions of – 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.2 | March 08, 2022 | Espressif |
| 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 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 the Espressif development board. The USI development kit is deprecated. 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.
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 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/...
| 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 |

