Alif Ensemble

The Ensemble series of fusion processors from Alif Semiconductor utilize ARM's low power Cortex-M55 CPUs with dedicated Ethos-U55 microNPUs to run embedded ML workloads quickly and efficiently. The devices feature both 'High Power' cores designed for large model architectures, as well as 'High Efficiency' cores designed for low power continuous monitoring. The Development kit and AppKit are both fully supported by Edge Impulse. The Ensemble kits feature multiple core types, dual MEMS microphones, accelerometers, and a MIPI camera interface.

To get started with the Alif Ensemble and Edge Impulse you'll need the following hardware:

Installing dependencies

To set this device up in Edge Impulse, you will need to install the following software:

  1. The latest Alif Security Toolkit:

  • Navigate to the Alif Semiconductor Kit documentation page (you will need to register to create an account with Alif, or log in to your existing Alif account). and download the latest App Security Toolkit (tested with version 0.56.0) for windows or linux.

  • Extract the archive, and read through the included Security Toolkit Quick Start Guide to finalize the installation

  • IMPORTANT: Set an environmental variable called SETOOLS_ROOTto the Security Toolkit root path. This is used by Edge Impulse scripts when flashing the Alif development kits. Example instructions for Linux, Windows, MacOS.

  1. (Optional) Docker Desktop:

  • If you are using MacOS, we recommended installing Docker Desktop in order to use the Alif Security Toolkit for programming.

Connecting to Edge Impulse

Once you have installed it's time to connect the development board to Edge Impulse.

Configure your hardware

To interface the Alif Ensemble AppKit or Development Kit, you'll need to connect your device to the USB port label PRG USB

The Deployment Options for Alif Hardware on Edge Impulse

Ethos-U55-128 library (High End Embedded, Shared SRAM) A C++ library with inferencing for devices with an Ethos-U55-128 NPU, High End Embedded with shared SRAM. For example: Alif E7 RTSS-HE.

Ethos-U55-256 library (High End Embedded, Shared SRAM) A C++ library with inferencing for devices with an Ethos-U55-256 NPU, High End Embedded with shared SRAM. For example: Alif E7 RTSS-HP

Alif AI/ML Kit Gen2 HE core Binaries containing both the Edge Impulse data acquisition client and your full impulse.

Alif AI/ML Kit Gen2 HP core Binaries containing both the Edge Impulse data acquisition client and your full impulse.

Alif AI/ML Kit Gen2 HP core - tensor arena statically allocated to SRAM Binaries containing both the Edge Impulse data acquisition client and your full impulse. This option is best for NVIDIA TAO models because of their size.

Ethos-U55-128 Open CMSIS Pack A C++ library in Open CMSIS pack format with for devices with an Ethos-U55-128 NPU, High End Embedded with shared SRAM. For example: Alif E7 RTSS-HE.

Ethos-U55-256 Open CMSIS Pack A C++ library in Open CMSIS pack format with for devices with an Ethos-U55-256 NPU, High End Embedded with shared SRAM. For example: Alif E7 RTSS-HP.

Flash the default firmware to the device

You can program and use serial port of the device if you adjust jumper J15 to connect pins 1-3 and 2-4. There will be two serial ports enumerated. The first port is used for programming, the second for serial communication.

Inspect isp_config_data.cfg in the Security Toolkit directory to ensure the COM port is set correctly to the device attached to your computer. There will be two serial ports enumerated. The first port is used for programming, the second for serial communication.

After configuring the hardware, the next step is to flash the default Edge Impulse Firmware. This will allow us to collect data directly from your Ensemble device. To update the firmware:

  1. Open a terminal in the unzipped folder and run the following commands. Use the HE, HP, or HP_SRAM parameter that matches the deployment chosen from the Edge Impulse project. That is, if you Deployed for HP_SRAM please use the HP_SRAM parameters.

MACOS or LINUX

flash.sh <HE, HP, or HP_SRAM>

WINDOWS

flash_win.bat <HE, HP, or HP_SRAM>

Run the Edge Impulse CLI!

To use the serial port of the device adjust jumper J15 to connect pins 1-3 and 2-4

Now, the Ensemble device can connect to the Edge Impulse CLI installed earlier. To test the CLI for the first time, either:

Create a new project from the Edge Impulse project dashboard

OR

Clone an existing Edge Impulse public project, like this Face Detection Demo. Click the link and then press Clone at the top right of the public project.

Then, from a command prompt or terminal on your computer, run:

edge-impulse-daemon

Device choice

You may see two FTDI or CYPRESS serial ports enumerated for devices. If so, select the second entry in the list, which generally is the serial data connection to the Ensemble device. Ensure that the jumpers are correctly oriented for serial communication.

This will start a wizard which will ask you to log in and choose an Edge Impulse project. You should see your new or cloned project listed on the command line. Use the arrow keys and hit Enter to select your project.

Verifying that the device is connected

That's all! Your device is now connected to Edge Impulse. To verify this, go to

Next steps: building a machine learning model

With everything set up you can now build your first machine learning model with these tutorials. This will walk you through the process of collecting data and training a new ML model:

Alif Specific Example Projects Ready to Clone and Run!

Alternatively, you can test on-device inference with a demo model included in the base firmware binary. To do this, you may run the following command from your terminal:

edge-impulse-run-impulse --debug

Then, once you've tested out training and deployment with the Edge Impulse Firmware, learn how to integrate impulses with your own custom Ensemble based application:

Last updated