Plug It In
Welcome to the SLN-VIZN-IOT Getting Started Guide! In this document, we will discuss how to get up and
running with your kit, how to grab a hold of the hardware and software files to begin
developing with the kit yourself, and resources where you can learn more about the topics covered in
The SLN-VIZN-IOT kit arrives in a box as shown below. Inside the box, you will find the SLN-VIZN-IOT kit
alongside a printed Quick Start Guide and a USB-C Cable.
Please check your kit for damage or marks, and, if seen, please contact your NXP representative.
1.2 Power On
To get started, take the USB-C cable provided inside the kit and plug the USB-A end into a USB port on
your computer and the USB-C end into your kit.
Once connected, the RGB LED’s (D13) on the front of the kit will blink rapidly for a moment and a green
LED (D1) will be lit up to indicate the kit is powered on.
1.3 Access the Camera
With the kit powered on and connected to your computer, the SLN-VIZN-IOT kit will automatically
enumerate as both a serial device and USB camera device. To access the kit’s camera, open up
Camera if using Windows, or Cheese, if using Ubuntu. In this guide,
we’ll be using Windows and the Windows camera app.
Camera enumeration is currently supported on Windows and Ubuntu.
After opening the camera app, video will be shown in the camera app directly from the kit:
Note: If you have multiple cameras connected to your computer, you may need switch the camera being
shown. In Windows, use the “Switch Camera” button located in the top right-hand corner of
1.4 Register a Face
The kit will automatically detect faces. An unregistered face will be indicated by a red LED on the kit,
and a red bounding box around the user’s face.
If powering on for the first time, there will be no registered faces in the internal database.
To begin registering a new face, press the Manual Registration button on the kit
Once pressed, a message indicating registration is taking place will pop up at the top of the screen.
To register your face, stare straight-on at the camera and wait for the box around your face to turn
from red to green. When registering a face via the buttons on the kit, a generic username
will be assigned to the newly registered face.
Your face is now registered into the system. Follow the same procedure to add additional faces into the
1.5 Connect to Serial Interface
To connect to the serial interface of the kit, identify the COM port associated with
the kit and connect using the [115200, 8, 1, N, XON/XOFF] serial settings
After connecting, you will encounter a blank terminal screen. Type the “help” command,
which will give a list of all the available commands.
We will discuss a few of these commands in the upcoming section.
1.6 Save Registered Face
By default, faces that are registered will not persist through resets. A terminal application like
will be needed to communicate with the kit and save the registered face into flash.
The save command is used to persist all/individual face “embeddings” into flash depending on whether an
entry id is provided. Issue a “save” command to persist every face
registered since power up.
Upon successful completion of the command, you will receive an output message in the terminal indicating
that the command was successful.
Power cycle the device and confirm that the registered face is still recognized.
1.7 Enable Emotion Detection
Once connected to the kit via serial, use the command “emotion 4.”
This command will enable the features shown in the table below.
When a user’s emotion is recognized, the kit will display a message which will indicate the detected
emotion. If a user smiles, the text “Happy” will be shown in the upper right-hand corner of
the bounding box.
The more emotions that are being actively recognized, the lower the emotion accuracy. For this
reason, we recommend using two or four emotions.
Please note the “Neutral” emotion is a standard state and is not displayed.
1.8 Enable Verbose Mode
The SLN-VIZN-IOT kit supports verbose debug message logging which provides important inference
performance information, for example, the time it took to detect a user. Serial debug messages
are disabled by default, but can be enabled using a serial command.
To enable debug output on the SLN-VIZN-IOT, type the command “verbose 3.”
Using this command will show information from each type of debug message shown in the following table.
The figure below shows an example of a debug message from a face detection and recognition.
The below table describes the different messages and the associated descriptions.
||Time taken to detect face
||Time taken to recognize face
||Predictive accuracy/confidence value of face rec
||Internal face database identifier
In addition to the contents included in the kit, owners of the SLN-VIZN-IOT kit will also be given
access to hardware collateral including assembly files, 3D files, ODB files, and more, as
well as a software package containing the SLN-VIZN-IOT MCUXpresso SDK, precompiled release binaries, and
manufacturing tools for automated and secured flashing of the kit.
The following section details how to download these files for yourself using the coupon code found
included with your kit.
2.1 Downloading the Release Package
To access these materials, simply head over to www.nxp.com/activation and login using your username and
password. If you don’t have
an account on www.nxp.com, you will be required to
create one before continuing.
After logging in, you will be sent to the activation page. Enter the activation code that came with your
kit into the indicated field.
With the coupon code activated, select the account you want to associate the product with.
After associating the product with an account, click the View Products button.
The View Products page will show you every NXP-related product you have associated with
your account. Click on SLN-VIZN-IOT.
The folders SLN-VIZN-IOT Hardware Collateral and SLN-VIZN-IOT Software
Collateral contain all the relevant hardware and software materials available for the
If returning to the page later, use the following steps to access your collateral packages again.
Click on My NXP, found in the top-right corner of the screen and then click on
Software Licensing and support. These steps are shown in the figure below.
On the following screen click on View Accounts.
Click on SLN-VIZN-IOT to view the hardware and software collateral associated with the
2.2 Release Package Contents
The Software Collateral zip folder downloaded in the previous step contains content
similar to the following:
2.3 Installing Your Toolchain
Please Note: Currently the only toolchain supported is MCUXpresso IDE.
MCUXpresso IDE brings developers an easy-to-use Eclipse-based development environment for NXP’s
microcontrollers based on Arm ® Cortex ®-M cores. It offers advanced
editing, compiling and debugging features with the addition of MCU-specific debugging views, code trace
and profiling, multicore debugging, and integrated configuration tools. Its debug
connections support every NXP evaluation board with industry-leading open-source and commercial debug
probes from ARM®, P&E Micro® and SEGGER ®
If you do not already have one, you will be asked to sign-in/up with a free NXP user-account.
When MCUXpresso installer download completes, double click on the executable, follow the
install instructions and keep the default options.
Launch MCUXpresso IDE and define the Workspace location where you will copy and store your projects
(default C:\MCUXpresso.Workspace) and press OK.
3.1 Installing the SDK
MCUXpresso SDK is a comprehensive software enablement package designed to simplify and accelerate
application development with NXPs microcontrollers based on Arm®
Cortex®-M cores. The MCUXpresso SDK includes production-grade software with integrated RTOS
(optional), integrated stacks and middleware, reference software, and more. It is
available in custom downloads based on user selections of MCU, evaluation board, and optional software
components. Before building the SLN-VIZN-IOT SDK example projects, the
target SDK needs to be imported into MCUXpresso IDE.
The MCUXpresso SDK for the SLN-VIZN-IOT can be found in the SLN-VIZN-IOT
Software Collateral zip folder
downloaded in the previous step. Extract the contents of this zip folder.
To import the SDK into MCUXpresso IDE, drag the SLN-VIZN-IOT.zip from the
SDK subfolder into the Installed SDKs window in MCUXpresso IDE.
For each package, a confirmation window will pop-up. Select OK to validate
Once the package has been imported, it will be displayed in the Installed SDKs window in
3.2 Import a SLN-VIZN-IOT Project
The SLN-VIZN-IOT SDK allows you to import existing application examples as a development starting point.
The following steps will show you how to import one of these example projects into
From the Quickstart Panel, select Import SDK examples(s)
For each SDK you have installed into MCUXpresso, a corresponding image will be shown. Select the
sln_vizn_iot image and then proceed by selecting the Next button.
The import wizard will then display all the example applications that are available to import. For this
guide we will be focused primarily on the
sln_vizn_iot_userid_oobe application. This is the application that comes flashed by
default on your SLN-VIZN-IOT kit.
If your kit’s flash has been completely erased, you will also need the
sln_vizn_iot_bootloader and sln_vizn_iot_bootstrap projects found
under sln_boot_apps as well in order for the
sln_vizn_iot_userid_oobe application to work.
Once the projects have successfully been imported, they will be listed in the project explorer ready to
be built and run.
3.3 Build a SLN-VIZN-IOT Project
The bootstrap project is the first application that is booted. The bootstrap is a
minimal FreeRTOS application that is responsible for image verification.
The bootloader project is a second stage bootloader that manages jumping into the
application. This application can be used for any additional bootloader functionality needed for the
product. The bootloader is also responsible for Mass Storage Device drag-and-drop firmware
updates via USB.
The UserID OoBE is the out-of-box application used to demonstrate the capabilities of
the Oasis Lite machine learning engine for facial recognition and emotion detection. This
is the application (in addition to the bootloader and bootstrap) that is flashed on your SLN-VIZN-IOT
kit by default.
From the Quickstart Panel, select the option Build to start the compilation and linking
of the application currently highlighted in the Project Explorer pane.
This will need to be done for the sln_vizn_iot_userid_oobe as well as the
sln_vizn_iot_bootloader and sln_vizn_iot_bootstrap if you intend to
flash those projects.
Wait for MCUXpresso to finish the build process. This should take a relatively short time due to the
small size of the application.
If you received a message like the one shown above, your SLN-VIZN-IOT has been successfully built.
Additionally, if you have use for a binary or hex file instead of the
.axf generated by default, simply right-click on the .axf you wish to
convert and go to Binary Utilities -> Create binary.
.axf files generated by MCUXpresso are found under your project’s
Shown below is an example of how you can create a binary using a .axf
3.4 Flash and Debug SLN-VIZN-IOT Project
With the userid_oobe project compiled, it is now time to program its associated binary
Flashing and debugging the SLN-VIZN-IOT kit WILL REQUIRE a Segger
J-Link with a 9-pin Cortex-M Adapter and V6.62a or newer
of the J-Link Software and Documentation Pack
found on the Segger website at
Note: MCUXpresso IDE 11.1 currently comes with Segger J-Link V6.5x installed, however this WILL NOT
work with the SLN-VIZN-IOT and must be upgraded to at least V6.62a. If you are unsure
about which version of J-Link software you have, it is recommended to upgrade to the latest version
just in case.
Next, select the Debug option found under the QuickStart panel in
MCUXpresso to start the process of loading the binary into the flash and begin debugging.
Similar to the Build option, Debug will only flash and debug the
project currently highlighted in the Project Explorer panel.
Select the J-Link probe that is connected to your kit and press OK.
This will launch the flashing tool and proceed to flash the binary associated with the currently
Once flashed, the program should automatically halt at main, indicated by the first instruction in main
being highlighted and pointed to.
Finally, press the Run button found in the toolbar to begin running the application.
To learn more about debugging in MCUXpresso, check out the MCUXpresso User Guide found here:
4.1 Push Button Table
The push buttons on the SLN-VIZN-IOT kit have many useful functions to make interacting with the kit
more user-friendly. Learn more about these functions by checking out the table below.
||Toggle Display Mode
Switches between Live/Camera view and Info Only view
Triggers the deletion of the next registered face encountered by the kit
||Toggle Enrollment Mode
Switches between Manual and Automatic registration mode
Triggers the registration of the next face encountered by the kit
4.2 Serial Command Table.
The SLN-VIZN-IOT kit gives users access to many features out-of-the-box which can be activated and
configured via serial. To learn more about these features and the commands to configure them,
check out the serial command table below.
Display a list of all available serial commands along with a brief description of their
||Exit program; closes serial terminal until reset
||List all registered users
List current registration mode when supplied no arguments; Change registration mode to
mode specified by arguments
||Add new user with specified username
||Stops attempting to add a new user
||Deletes specified user
||Deletes all registered users
||Renames face associated with old name to new name
||< 0 | 1 | 2 | 3 >
||Configures verbose mode debug logging with the specified verbosity
||< on | off >
||Enables or disables the camera’s IR filter (Foxlink camera only)
||<0 – 100>
||Configures the camera adapter’s IR LEDs to use the specified intensity (Dual Camera
||<0 – 100>
||Configures the camera adapter’s white LEDs to use the specified intensity (Dual Camera
||Displays version information regarding the inference engine in use
||Saves face database in flash memory
||Reboots the board and sets up OTW firmware update mode
||Reset the MCU
||<0 | 2 | 4 | 7>
||Configures emotion recognition to use the specified mode (0, 2, 4, or 7 emotion
||<on | off>
||Enables or disables liveness detection (Dual camera adapter only)
||<qvga | vga>
||Configures the detection resolution to use the resolution specified and resets the board
||<rgb | ir>
||Configures whether output from the rgb camera or the ir camera is shown (Dual Camera
||<usb | riverdi>
||Configures the display output device to use either video over USB or the Riverdi
display. (Requires Riverdi display)
||<loopback | infobar >
||Configures whether the info bar/GUI is displayed or not
For a more in-depth look at the SLN-VIZN-IOT kit, including anti-spoofing, development tools, and more,
check out the SLN-VIZN-IOT User Guide found in the root of your software collateral
4.4 RT106F Block Diagrams.
i.MX RT106F Face Recognition Hardware
For information about the power consumption of the SLN-VIZN-IOT kit, check out the
SLN-VIZN-IOT Power Consumption
4.6 i.MX and MCUXpresso Communities
Connect with other engineers and get expert advice on designing with i.MX processors and MCUXpresso
Software and Tools. Join the community discussion in one of our two dedicated communities:
i.MX Community or
MCUXpresso Software and Tools