Getting Started with the NXP EdgeReady MCU-Based Solution for 3D Face Recognition

This page will help guide you through the process of learning about your NXP EdgeReady MCU-Based Solution for 3D Face Recognition.

Get Software

In addition to the contents included in the kit, the SLN-VIZN3D-IOT also comes with access to both hardware collateral and software collateral. The hardware collateral includes:

  • Assembly files
  • 3D files
  • ODB Files

While the software collateral includes:

  • A SDK compatible with MCUXpresso IDE
    • Contains example projects, drivers and source code for the Smart Lock application
  • An example Android APK + source code for performing remote registration

The following section details how to download these files for yourself through the NXP website for the SLN-VIZN3D-IOT.

2.1 Download the Hardware Package

Schematics including assembly files, 3D files, ODB files, and more can be found on the main website for the SLN-VIZN3D-IOT near the top of the page.

Hardware Package Download Location

Or under Design Resources in the Quick Reference bar to the left.

2.2 Install Your Toolchain

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 preconfigured SDK release for the SLN-VIZN3D-IOT Development Kit.

To build the SDK for your preferred setup, perform the following steps:

  1. Select your preferred OS (Windows, Mac, Linux)
  2. Configure the SDK to be compatible your preferred toolchain (MCUXpresso IDE, ARMGCC)
  3. Use the `Select All` button to ensure that all necessary SDK components are included in the SDK package
  4. Click the `Download SDK` button

2.3 Jump Start Your Design with the MCUXpresso SDK

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 a variety of open-source and commercial debug probes from Arm®, P&E Micro® and SEGGER®.

The MCUXpresso SDK for the SLN-VIZN3D-IOT also includes support for the command-line GCC.

2.4 Download the Android Application

For applications where a companion smartphone/tablet application might be useful, the example Smart Lock Manager APK project provides convenient source code to be used as a boilerplate/reference for developers looking to create their own companion app. The APK and its full source code can be found under the Software and Tools section on the main page for the SLN-VIZN3D-IOT.

Android APK Install Location

Build, Run

3.1 Install the SDK

MCUXpresso SDK is a comprehensive software enablement package designed to simplify and accelerate application development with NXP's 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-VIZN3D-IOT SDK example projects, the target SDK needs to be imported into MCUXpresso IDE.

Using the SDK we downloaded in the previous step, import the SDK into MCUXpresso IDE by dragging the SDK zip folder into the Installed SDKs window in MCUXpresso IDE.

Drag and Drop

After dragging and dropping the SDK package, a confirmation window will pop up. Select OK to validate.

Import SDK Examples

Once the package has been imported, it will be displayed in the Installed SDKs window in MCUXpresso.

3.2 Import SLN-VIZN3D-IOT Projects

The SLN-VIZN3D-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 MCUXpresso IDE.

From the Quickstart Panel, select Import SDK example(s).

For each SDK you have installed into MCUXpresso, a corresponding image will be shown. Select the SLN-VIZN3D-IOT image and 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_vizn3d_iot_smart_lock application. This is the application that comes flashed by default on your SLN-VIZN3D-IOT kit.

Select Examples

Note If your kit’s flash has been completely erased, you will need the “sln_vizn3d_iot_bootloader” project found under sln_boot_apps as well in order for the sln_vizn3d_iot_smart_lock application to work.

Once the project has successfully been imported, it will be listed in the Project Explorer window, ready to be built and run.

Project Explorer

3.3 Build a SLN-VIZN3D-IOT Project

The bootloader project is a first-stage bootloader that manages jumping into the Smart Lock 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 Smart Lock project is the out-of-box application used to demonstrate the capabilities of the Oasis Lite machine learning engine for secure face recognition. This application (in addition to the bootloader) is flashed on your SLN-VIZN3D-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.


Wait for MCUXpresso to finish the build process. This should take a relatively short time due to the small size of the application.

Build Successful

If you received a message like the one shown above, your SLN-VIZN3D-IOT project has successfully been built.

3.4 Flash and Debug SLN-VIZN3D-IOT Project

With the Smart Lock project compiled, it is now time to program its associated binary into flash.

Flashing and debugging the SLN-VIZN3D-IOT kit will require a Segger J-Link with a 9-pin Cortex-M Adapter and V7.52a or newer of the J-Link Software and Documentation Pack found on the Segger website.

Jlink 9 pin

To begin the process of flashing the kit, attach your J-Link debug probe into the header shown below.


Next, select the Debug option found under the Quickstart Panel in MCUXpresso to start the process of loading the binary into 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.

Jlink Select

This will launch the flashing tool and proceed to flash the binary associated with the currently selected project.


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. You will also find buttons to Terminate, Step In, Step Out, and Step Over in this same toolbar.

Debug Tools

To learn more about debugging in MCUXpresso, check out the MCUXpresso User Guide.