
PLEASE NOTE, BYPASSING IMAGE VERIFICATION IS A SECURITY HOLE AND IT IS THE RESPONSIBILITY OF THE PRODUCT MAKER TO REMOVE THE VIOLATION.
Technical content and expertise to help jump start your design and get you to production faster.
Start your designDownload our latest development and embedded software solutions.
Expedite time-to-market with our extensive lineup of development kits.
Jump-start your design with proven hardware and software solutions.
Get the latest specifications in our technical documentation library.
Further your technical expertise with online and in-person instruction.
Get comprehensive paid support to fast-track your product development.
Design ideas, demo videos, quality answers. Connect with NXP professionals and other knowledgeable designers ready to help.
Software, documentation, evaluation tools. The resources to build comprehensive solutions and accelerate your time to market.
Access our design resource libraryWe're always looking for passionate and talented people to work with us.
Join our teamThe SLN-ALEXA-IOT Kit arrives in a box as shown below. Inside the box, in addition to the kit, you will find a Quick Start Card, “Let’s Get Started!,” and a USB Type-C to dual Type-A cable,The kit is pre-programmed with an audio playback control demo that is ready to run, as soon as it is powered via the USB cable.
The owners of the SLN-ALEXA-IOT development kit may have a “Let’s Get Started card” in the box. This is no longer needed so please disregard.
Plug the USB Type-C connector into the SLN-ALEXA-IOT Development kit and the dual Type-A connectors into your PC.
When you power on the kit for the first time, the LED will turn from blinking orange to permanent orange to indicate it’s ready to onboard.
The SLN-ALEXA-IOT Development kit starts in Wi-Fi access point mode which will be displayed on any device that has Wi-Fi client available. The SSID will be “MCU_Voice_” followed by the SLN-ALEXA-IOT Development kit’s serial number.
The password of this Access Point is the serial number of the device.
Use the phone Wi-Fi network to connect to the device using these settings:
To start onboarding, search and install the “NXP Voice Companion Application” in the iOS or Android store.
After downloading the application, you are ready to start communicating with the SLN-ALEXA-IOT development kit. Connect to the Wi-FI Access point on the mobile phone.
Once connected, open the NXP Voice Companion App and select “WIFI PROVISION”. If the device is not connected to the SLN-ALEXA-IOT Development Kits Wi-Fi, a prompt is shown.
When the SLN-ALEXA-IOT Development kit is discovered, it will list the available Wi-Fi access points the SLN-ALEXA-IOT Development kit can join.
Select one of the available Wi-Fi networks from the list and provide the password associated with the Wi-Fi SSID. Once the password is correctly entered, press the “SEND” button to transmit the Wi-Fi credentials to the SLN-ALEXA-IOT Development kit or select “CANCEL” button to make another selection.
Once the credentials have been sent, the application will inform the user to join the mobile device to same Wi-Fi network that was sent to the SLN-ALEXA-IOT Development kit. Having both devices using the same Wi-Fi network is mandatory for the onboarding process.
Within the prompt, select the “GO TO SETTINGS” button, which will open the Wi-Fi settings page. Connect to the Wi-Fi network which was sent to the SLN-ALEXA-IOT Development kit.
When returning to the application, it will verify the Wi-Fi network that was joined on the mobile device is the same as the one sent to the SLN-ALEXA-IOT Development kit.
If the Wi-Fi network is not the same the application will ask to join the correct network.
If the Wi-Fi network is the same, the application will redirect to the “Discover” listing screen.
The device should be in the discovery mode state showing a blue LED (D2). When the "Discover" screen is shown (either automatically or by being selected on the main screen), it will discover all SLN-ALEXA-IOT Development kits and display the serial number in the list.
If no SLN-ALEXA-IOT Development kits are found on the same network, a “No Devices Found” message will appear in the NXP Voice Companion App.
To start the onboarding of the SLN-ALEXA-IOT Development kit to your Amazon Alexa account, select the device you wish to onboard. This will start the Login with Amazon (LWA) process.
NOTE: In the case that you already have the Amazon Shopping application, it will flash with LWA page and automatically associate with the account logged into the Amazon Shopping application.
Once the credentials have been entered and a successful logged in, the NXP Voice Companion App will continue to communicate with the SLN-ALEXA-IOT Development kit and display a completion percentage.
When the Access Token from LWA has been received, the SLN-ALEXA-IOT Developent kit will begin to connect to the cloud and register with the “AVS on MCU” service, which will turn the LED (D2) orange while this is happening.
If the device fails to register, the NXP Voice Companion App will display an “failed to register” error underneath the serial number in the list.
Once the device has completed the LWA process, the NXP Voice Companion App will update the percentage. The device will start blinking green every 500ms until the device has successfully connected to AWS IoT Core.
Once the device has successfully connected to AWS IoT Core, it will commence the registration and connection to AVS via AWS IoT which results in the device blinking green every 250ms.
Once the device has completed, the serial number in the NXP Voice Companion App will change to yellow with the text being shown as “complete” while the SLN-ALEXA-IOT Development kit turns the LED (D2) off and plays a chime.
The SLN-ALEXA-IOT Development kit is now connected to your Amazon Alexa account. If you go into the Amazon Alexa application, the kit should be listed in your devices and called “NXP-Voice-Solution”.
The first indication that the device is listening is when the Alexa wake word is uttered. When the SLN-ALEXA-IOT Development kit detects the wake word, a cyan light will be shown, it will start to listen and send microphone data to AVS via AWS IoT.
After the device has finished sending microphone data to AVS via AWS IoT, the device will stop listening and go into thinking state. This state indicates that the AVS is processing the request and is trying to give the best response. While in this state, the devices LED (D2) will blink cyan and blue every 200ms.
After the device has finished thinking, it will start to respond. Before the speaker outputs audio, the LED (D2) will go into the “speaking” state which is shown by blinking cyan and blue every 500ms.
While the LED (D2) is blinking, the response from Alexa will start playing out of the speaker. The response should indicate the weather conditions based on the location of your Alexa consumer account. Once this has completed, the LED (D2) will stop blinking and turn off to indicate it is now in an idle state waiting for the “Alexa” wake word.
The MCUXpresso SDK is complimentary and includes full source code under a permissive open-source license for all hardware abstraction and peripheral driver software.
Click below to download a pre-configured SDK release for the SLN-ALEXA-IOT Development Kit
NXP offers a complimentary toolchain called MCUXpresso IDE.
Many of the example applications output data over the MCU UART so you'll want to make sure that the driver for the board's virtual COM port is installed. Before you run the driver installer, you MUST have the board plugged into your PC.
With the serial port driver installed, run your favorite terminal application to view the serial output from the MCU's UART. Configure the terminal to 115200 baud rate, 8 data bits, no parity and 1 stop bit. To determine the port number of the MIMXRT1060-EVK virtual COM port, open the device manager and look under the "Ports" group.
Want to use a different toolchain?
Tera Term is a very popular open source terminal emulation application. This program can be used to display information sent from your NXP development platform's virtual serial port.
PuTTY is a popular terminal emulation application. This program can be used to display information sent from your NXP development platform's virtual serial port.
The MCUXpresso SDK comes with a long list of example application code. To see what's available, browse to the SDK boards folder of your SDK installation and select your board, the SLN-ALEXA-IOT (/boards/sln-alexa-iot).
To learn more about specific example code, open the readme.txt file in an example’s directory.
If one or more of the demo applications or driver examples sounds interesting, you're probably wanting to know how you can build and debug yourself. The Getting Started with MCUXpresso SDK guide provides easy, step-by-step instructions on how to configure, build and debug demos for all toolchains supported by the SDK.
Use the guide below to learn how to open, build and debug an example application using MCUXpresso IDE.
Before building the SLN-ALEXA-IOT SDK example projects, the target SDK need to be imported into MCUXpresso IDE by drag and dropping the target SDK archive into the “Installed SDKs” window from MCUXpresso IDE.
Once the package has been imported, it will be displayed in the list of installed SDKs ready to be used.
The MCU Alexa Voice IoT SDK allows you to import existing application examples as a development starting point. Some applications are intended to handle most of the voice aspects of the functionality allowing developers to focus on the product innovation.
The following steps show how to import MCU Alexa Voice IoT projects into MCUXpresso IDE:
From the Quickstart Panel, select Import SDK examples(s)
A list of all the installed SDKs with importable example projects will be shown. Select the “sln_alexa_iot” image and then proceed with selecting the next button.
The import wizard will then display all the applications that are available to import. Ensure the SDK Debug Console isn’t changed from its default position.
Once the projects have successfully been imported, they will be listed in the project explorer ready to build and run. This document is going to focus on the ais_demo and bootloader and bootstrap for building and debugging.
Within the MCUXpresso bootstrap project, right click on the root project and navigate to Properties -> C/C++ Build -> Settings -> Preprocessors.
Inside the Preprocessor section, change the MACRO “DISABLE_IMAGE_VERIFICATION” to equal “1”.
After that change, from the Quickstart Panel, select the option Build to start the compilation and linking of the application.
To turn off the image verification within the bootstrap, the following code modifications are required.
Within the MCUXpresso bootloader project, right click on the root project and navigate to Properties -> C/C++ Build -> Settings -> Preprocessors.
Inside the Preprocessor section, change the MACRO “DISABLE_IMAGE_VERIFICATION” to equal “1”.
After that change, from the Quickstart Panel, select the option Build to start the compilation and linking of the application.
The bootstrap project is the first application that is booted. Further information on the architecture is described below, to summarize, the bootstrap is a minimal FreeRTOS application that is responsible for image verification. Moreover, if i.MX RT HAB (High Assurance Boot) is enabled on the chip, Bootstrap is the signed trusted firmware. It also manages the eXIP (Encrypted Execution in Place) context. This firmware is designed to avoid any update as a corruption of this image will result in an unbootable image and bricked device.
The bootloader project is a second stage bootloader that manages jumping into the “ais_demo” application. This is provided in multiple forms depending on what hardware configuration you have. Support for Cypress 4343W, 43438 and Ethernet is available. This application can be used for any additional bootloader functionality needed for the product. This bootloader is also responsible for Mass Storage Device drag and drop and OTA Image updating. The bootloader is also responsible for validating OTA images via signature verification and creating additional crypto context in the case of eXIP being enabled.
The “ais_demo” is an application that is fully responsible for onboarding, AWS IoT connection and Alexa interaction. This is the main application that runs the full Alexa application. This is provided in multiple forms depending on what hardware configuration you have. Support for Cypress 4343W, 43438 and Ethernet is available.
From the Quickstart Panel, select the option Build to start the compilation and linking of the application for, sln_alexa_iot_boostrap, sln_alexa_iot_bootloader <network support> and sln_alexa_iot_ais_demo<network support></network>
Wait for the console to finish the build process which will take a very short time due to the small size.
With the bootstrap, bootloader and ais_demo all compiled, it’s now time to program them into the flash. This section assumes that you have either turned off image verification or the firmware has already been signed as described in the image signing section.
The following steps are to be done for: the bootstrap, bootloader and ais_demo. Select the Debug option and ensure the debug probe is attached. This will start the process of loading the binary into the flash.
Select the J-Link probe that is connected to the board and press OK
This will launch the flashing tool and proceed to load the image into the flash. When this is complete, you can proceed to the debug section.
The MSD feature allows the device to be updated without the Segger tool and instead, via USB. Only the “ais_demo” can be updated while the bootloader and bootstrap remain the same. If the bootstrap and bootloader need updating, this will have to be done via Segger or the Factory Programming flow.
The MSD feature by default bypasses signature verification to allow an easier development flow as signing images can be a process not suitable for quick debugging and validation.
PLEASE NOTE, BYPASSING IMAGE VERIFICATION IS A SECURITY HOLE AND IT IS THE RESPONSIBILITY OF THE PRODUCT MAKER TO REMOVE THE VIOLATION.
To put the device into MSD mode, hold down switch 2 (SW2) and power cycle the board until the purple LED (D1) blinks on and off in three second cycles.
After observing the LED behavior, navigate to “My Computer” and confirm that the SLN-ALEXA-IOT kit has mounted as a Mass Storage Device
Take the compiled “ais_demo” binary and drag the file into the MSD. This will start the download process and write the binary to flash.
After the image has been programmed into flash, the image that has been loaded will begin to execute. Validate this by checking the version of the image compiled, matches the version in the console by typing “version”.
If the image is compiled to run in the wrong application bank, an error will occur. The developer will be required to recompile the application to the bank the device is not running from.
PLEASE NOTE, THIS REQUIRES AN AIS_DEMO BINARY THAT HAS BEEN COMPILED TO RUN IN THE OPPOSITE BANK THE CURRENT APPLICATION IS RUNNING IN
Connect a serial terminal application to the USB serial device interface that enumerates (115200-8-N-1). Is a snapshot of serial terminal setup.
Press Enter on the keyboard and you will see the SHELL>> prompt. Type help to show the available commands. Shows the available commands, with a description of each.
To obtain the logs of the SLN-ALEXA-IOT kit, type “logs” in the serial console.
To connect to a Wi-Fi Access Point, type “setup <SSID> <Password>” and press enter. In the case of unusual characters, wrap the values in quotes (“”).
Some situations require access to the serial number for onboarding or other scenarios. To obtain this, in the serial console, type “serial_number” which will output the serial number of the SLN-ALEXA-IOT kit.
The SLN-ALEXA-IOT kit by default connects to an NXP Semiconductor AWS Server by default to show how consumers would use out of the box. To migrate it to a developers account, navigate to the SLN-ALEXA-IOT-MG guide which details the process.