AVNet RASynBoard Starter Kit

Table of contents

RoadTest: Enroll to Review the Avnet RASynBoard EVK

Author: amgalbu

Creation date:

Evaluation Type: Evaluation Boards

Did you receive all parts the manufacturer stated would be included in the package?: True

What other parts do you consider comparable to this product?: Arduino Nicla Voice

What were the biggest problems encountered?: No relevant problems

Detailed Review:

RASynBoard is a low-cost evaluation kit that includes the RASynBoard core module with an I/O board for prototyping and development.

RASynBoard is a tiny (25mm x 30mm), ultra-low power, edge AI/ML board, based on a Syntiant NDP120 Neural Decision Processor, a Renesas RA6M4 host MCU plus a power-efficient DA16600 Wi-Fi/BT combo module. The NDP120 subsystem with onboard digital microphone, IMU motion sensor and SPI Flash memory, achieves highly efficient processing of acoustic- and motion events. Battery and USB-C device connectors facilitate stand-alone use, while a compact under-board connector enables integration with custom OEM boards and additional sensors.

In this roadtest, I will go through al the steps required to build a simple gesture-recognition application from start to finish

1. Unboxing

The evaluation kit is shipped in a simple cardboard box, inside an antistatic bag. The two boards that make up the evaluation kit (aka the RASynBoard core board and the RASynBoard Starter kit) are already assembled

{gallery}Unboxing

image

RASynBoard box

image

The RASynBoard core board and RASynBoard NDP120 Evaluation Kit assembled

image

The RASynBoard core board and RASynBoard NDP120 Evaluation Kit

image

The back of the RASynBoard core board, with the 2x28 connector

image

The back of the RASynBoard NDP120 Evaluation Kit board, with the SD card

image


2. Hardware description

The evaluation kit is made of two parts: the RASynBoard core board and the RASynBoard starter kit.

The RASyn core board RASynBoard Core Board is a tiny (25mm x 30mm), ultra-low power, edge AI/ML board, based on Syntiant NDP120 Neural Decision Processor, a Renesas RA6M4 host MCU plus a power-efficient DA16600 Wi-Fi/BT combo module. The NDP120 subsystem with on-board digital microphone, IMU motion sensor and SPI Flash memory, achieves highly efficient processing of acoustic- and motion events. Battery and USB-C device connectors facilitate stand-alone use, while a compact under-board connector enables integration with custom OEM boards and additional sensors. 

Here are some pictures of the board

{gallery}RASynBoard Starter kit

image

image

image

And this is the block diagram of the RASyn core board

image

The relevant feature is this block diagram is the NDP120 manufactured by Syntiant. 

A neural decision processor (NDP) is a type of artificial intelligence (AI) hardware that is specifically designed to run deep learning models. NDPs are typically very energy-efficient and can be used to run AI applications on devices with limited power budgets, such as smartphones, wearables, and IoT devices. NDPs are typically based on a custom architecture that is optimized for running deep learning models. This architecture may include specialized hardware accelerators, such as tensor processing units (TPUs), that can perform the computations required for deep learning models very efficiently. Additionally, NDPs may also include software optimizations that help to further improve the energy efficiency of the processor.

One of the key benefits of NDPs is their ability to run AI applications on-device. This means that the AI processing is done directly on the device, rather than being offloaded to a cloud server. This can provide several benefits, such as improved privacy, reduced latency, and reduced reliance on cloud connectivity. 

NDPs are a relatively new technology, but they have already been used in a number of commercial products. For example, Syntiant's NDP100 processor is used in Amazon's Echo Dot smart speaker, and Google's Pixel Buds wireless earbuds use a custom NDP from Google AI.

Some of the key features of NDPs are:

    • Ultra-low power consumption: NDPs are designed to consume very little power, making them ideal for use in battery-powered devices.
    • High performance: NDPs can provide high performance for running deep learning models, even on devices with limited processing power.
    • Small size: NDPs are typically very small and can be easily integrated into existing devices
    • Low cost: NDPs are becoming increasingly cost-effective as the technology matures.

RASynBoard is equipped with the NDP120, which is one of the most powerful processor in the Syntiant portfolio

image

The RASynBoard Starter Kit adds an IO Board (50mm x 30mm), for a versatile, compact, two-board evaluation kit assembly. This pins-out a subset of the NDP120 and RA6M4 I/Os to popular Pmod, Click header and expansion header footprints, enabling connection with additional external microphones and sensor options. An onboard debugger MCU (SWD and UART interfaces), button switches, RGB LED and removable MicroSD storage, further maximize the prototyping versatility and utility.

image

This board adds multiple connectors to add external peripherals, namely

  • up to two external microphones
  • access to main MCU's GPIOs
  • access to NDP120's serial port and SPI interface
  • SD card to store NDP120 configuration files and records from IMU and microphones for later processing on the Edge Impluse platform
  • multicolor LED
  • USB debugger
  • main MCU's serial terminal

imageimage

3. Software installation

RASynBoard is programmed from the E^2Studio, an Eclipse-based IDE that is available for download from this link

https://www.renesas.com/us/en/software-tool/e-studio

The installation is straightforward. I added an image gallery with the steps just for reference

{gallery}E^2Studio setup

image

image

image

image

image

image

image
image
image
image
image
image
image
image
image

4. Build the project

A fully-functional project for the RASynBoard is available on github

https://github.com/Avnet/RASynBoard-Out-of-Box-Demo/tree/rasynboard_v2_tiny

4.1 Clone the project

The first step, is to clone the project

git clone https://github.com/Avnet/RASynBoard-Out-of-Box-Demo.git

This command will clone the repository in a folder named RASynBoard-Out-of-Box-Demo.

4.2 Configure the project

We can now open and configure the project in E^2Studio. Steps to go trough this task are explained in gallery below

{gallery}Configure the project

image

Select workspace and click "Launch"

image

Select "Import existing projects" option

image

Use the "Browse..." button to browse the file system, select the cloned project directory. Leave all the option at the default state, then click  the "Finish" button

image

Double click on "configuration.xml" to open the FSP (Flexible Software Package) explorer

image

Click "Generate project content"

4.3 Build the project

Click "Project" -> "Build all" to build the project

image

The project builds and generates output files in the Debug Directory. Two files we're interested in are:

  • rasynboard_ew_demo.elf This is the file we'll load with the debugger
  • reaynboard_ew_demo.srec This is the file we can distribute and side-load onto RASynBoard hardware using the Renesas Flash Programmer application

 

5. Setup the hardware

{gallery}Hardware setup

image

Verify that jumper J5 on the Core board is not present

image

Remove the jumper on J3 pins 1-2 on the IO board, if present

image

Connect serial terminal and USB-C cable

6. Copy NDP files to SD card

The microSD card on the IO Board is used to store the NDP120 images and a config.ini file that we can use to change the behavior of the OOB Demo application

  • Copy all the files from the project directory <Project dir>\ndp120\synpkg_files directory to the root directory of your microSD card

image

  • Insert the microSD card into the RASynBoard IO Board microSD cage on the bottom of the board

7. Debug the project

{gallery}Debug the project

image

Click the arrow on the left of the green bug, select "Debug As" --> "Debug Configuration . . ."

image

Select the "Renesas GDB Hardware Debugging", then select the "Debugger" Tab, then change the "Target Device" to "R7FA6M4AF", then "Apply", then close

image

Start the debugger by clicking on the green bug icon in the toolbar

image

Click "Switch" to switch to the Debug perspective

image

After application has been transferred to the board, execution stops at the call to "SystemInit()". Press the F8 key to resume execution

image

Application execution stops at the first line in the main() function. Press the F8 key to resume execution.

Now the application starts up and outputs debug showing the device loading the NDP120 images from the microSD card

8. Tinkering with the board

The OOB demo application is quite complete and shows many (if not all) the relevant features of this board. Now I want to go deeper into how things works. In particular, I want to train NDP to recognize specific gestures. I supposed the steps to nail are

  • collect IMU data
  • transfer collected data to Edge Impulse cloud platform and train the model
  • install the model on the RASynBoard
  • test the model

According to the documentation, there two ways to collect data either from IMU or from microphone. Data can be stored on the SD card or can be transferred via serial terminal to a PC. Let's see both solutions

8.1 Create a Edge Impulse account

First things first: before proceeding, we need to create an account on Edge Impulse. The procedure is extremely easy, so I will not include details here.

8.2 Collect IMU data on SD card

To collect IMU data on SD card, we need first to change config.ini stored on SD card. The "Write_to_file" option needs to be set to 1

image

This will instruct the application to store IMU data for the number of seconds configured in the "Recording_Period" option after the user button is pressed.

 image

Insert the SD card, connect the USB-C cable, download the application from E2Studio and, when ready, press the user button. Now the gesture can be simulated. After the configured amount of time the collected data is streamed to the SD card. The procedure can be repeat as many time as one want to collect a certain number of samples.

Now disconnect the USB-C cable to power off the board, remove the SD card and insert the SD card itself in the PC. A certain number of files are present 

image

8.3 Collect IMU data through Edge Impulse Forwarder

There is actually another way to collect data: by means of a tool called "Edge Impulse Forwarder". This is a NodeJS application that reads IMU data from RASyn board through the serial port and immediately forward to the Edge Impulse portal. I tried this approach but, despite it looks a convenient way to train a model, actually it does not allow you to "pre-filter" your data and eliminate, for example, wrong gestures or pauses between samples. This spurious data may interfere with the model training, so I preferred to follow the approach based on the SD card.

8.4 Train the model

To train the model, we need to upload data collected on the Edge Impulse portal. The following gallery shows the relevant steps to accomplish this task

{gallery}Edge Impulse Training

image

The original data files collected on SD card

image

Rename files to match the label they refer to (in my case, I want to distinguish between two gestures: left and right)

image

Add data on Edge Impulse portal. Here we are creating a template that will be applied to all subsequent data

image

Choose the file to upload. The label is taken from filename

image

Upload file

image

Data preview

image

Data is a time-series; each row contains a full set of data

image

Select columns to import

image

Data import wizard is complete

image

Upload all collected data files that should be recognized as "left"

image

Select files and upload

image

Upload is completed

image

Repeat the same steps for the data that should be recognize as "right". At the end, you are ready to create you model. In the left menu, click "Impulse design" -> "Create  Impulse"

image

Click "Generate features" to process uploaded data

image

"Features explorer" shows how labels (left/right) are related to automatically detected features

image

Whey you are happy with the Impulse design, you can generate the Syntiant model. Click "Start training"

image

Result of the training

image

Let's generate the file for the NDP. In the left menu, click "Deployment"

image

I selected, as deployment target, NDP library TDK v14.1. Click "Build" to create the deployment file

image

I don't have a calibration dataset, so i left the default selection ("FAR optimized")

image

Build in progress...

image

Build completed. The download of synpkg file starts automatically at the end of the build process

8.5 Deploy the model

The synpkg file can now be copied to the SD card. I simply changed the config.ini file to use the new synpkg file and everything worked smoothly: LED0 was switched on when "left" was detected and LED1 was switched on when "right" was detected. Very nice!

9. Comparison with Arduino Nicla Voice

There is actually a board in the Arduino family that features the same neural processor installed on this board: the Arduino Nicla Voice. Let's compare the two alternatives

Arduino Nicla Voice RasynBoard
Neural processor Syntiant® NDP120 Neural Decision ProcessorTm (NDP):
  • 1x Syntiant Core 2Tm ultra-low-power deep neural network inference engine
  • 1x HiFi 3 Audio DSP
  • 1x Arm® Cortex® M0 core up to 48 MHz
Syntiant® NDP120 Neural Decision ProcessorTm (NDP):
  • 1x Syntiant Core 2Tm ultra-low-power deep neural network inference engine
  • 1x HiFi 3 Audio DSP
  • 1x Arm® Cortex® M0 core up to 48 MHz
Main processor Nordic Semiconductor nRF52832:
  • 64 MHz Arm® Cortex M4
Renesas RA6M4 processor:
  • 200 MHz Arm® Cortex M4
Sensors
  • High performance microphone (IM69D130)
  • 6-Axis IMU (BMI270)
  • 3-axis magnetometer (BMM150)
  • IMU 6-axis motion sensor (ICM42670)
  • PDM digital microphone (MMICT5838)
I/O Castellated pins with the following features:
  • 1x I2C bus (with ESLOV connector)
  • 1x serial port
  • 1x SPI
  • 2x ADC
  • Programmable I/O voltage from 1.8-3.3V

On the core board

  • 2x28 pin board-to-board connector ,

On the Starter kit

  • 2x28 pin board-to-board connector
  • 2x8 pin MikroE Click shuttle box header
  • 2x6 pin Pmod type-6A (I2C) socket
  • 2x7 pin MCU expansion header
  • 2x3 pin DMIC expansion headers (two)
  • 3.3V level-translation of expansion interfaces
  • Micro SD card cage for removable storage
Interface
  • External microphone connector (ZIF)
  • USB interface with debug functionality

On the core board

  • USB 2.0 device interface

On the Starter kit

  • Renesas E2 OB debugger MCU (USB-C to SWD and VCOM serial interface)
  • 3.3V buck regulator for debugger circuits
Memory
  • 512KB Flash / 64KB SRAM 
  • 16MB SPI Flash for storage
  • 48KB SRAM dedicated for NDP120
  • 1 MB flash memory
  • 16 MBit SPI NOR Flash
  • 256 KB SRAM
Power
  • High speed USB (500mbps)
  • Pin Header
  • 3.7V Li-po battery with Integrated battery charger and fuel gauge (BQ25120AYFPR)
  • USB port
  • LiPo battery management and connector
Connectivity
  • Bluetooth® Low Energy (ANNA-B112)
  • 802.11bgn 1x1 2.4 GHz Wi-Fi
  • BT 5.1
Price 69 Euros

Starter kit 125.57 euros

Core board 70 euros? 

The RASynBoard is better than Nicla board in almost all aspects (the Arduino Nicla Voice features a magnetometer, but all other hardware components are better on the RASynBoard -memory, CPU frequency, etcetera). In my opinion, where the RASynBoard really shine is connectivity: BT and Wifi on such a small board is definitely a plus.

9. Conclusions

To summarize this roadtest, I am going to make a list with three things I like and three things I didn't like

9.1 What I liked

  • The integration in the Edge Impulse platform: once you have created your model, create a synpkg file ready to be deployed is just a matter of a few clicks
  • The out-of-the-box experience. According to my experience, it's not so common to get an evaluation board and be provided with a example application that shows all the relevant features of the platform. The demo project available on github lets you easily and quickly test the capabilities of the NDP processor. You can tinker with the board by simply editing files on SD card, and this is another thing I appreciated
  • The NDP library: interacting with the NDP120 hardware is as easy as calling two functions: all the boilerplate is there and ready to be reused in your next project

9.2 What I didn't like

  • Why do  need two cables? To develop on this board, you need to connect two USB cables: one to power and debug, the other one to get console output from the application. Today, as far as I can see, a single USB connection can provide both the endpoints (debugger and serial monitor) 
  • The 2x28 connector. The RASynBoard core board has a 2x28 header connector to bring signals to an auxiliary board. As a maker, I think this is bad (or at least, not so good) for two reasons
    • The 2x28 connector as a very small step, so it is a little bit difficult to solder
    • If you need, for your project, just a single GPIO, you need to create an external board. This, in some ways, nullifies the advantages of the small form factor of the RASynBoard core board
  • github repository with the demo project and a lot of other useful documentation was not so easy to find. I would appreciate if a direct link to the github page were present on the product page on the Avnet site  

The overall experience is absolute positive: from the hardware to the software (both E^2 Studio and Edge Impulse integration), I didn't encounter any major problem and I was enable to go through all my tests with no hassle. 

Useful links

Anonymous
  • Nice review! It actually looks like a really nice board.

    I don't understand why almost all the Avnet boards have bizarre and unimaginative names (Arduino and others are guilty too).

    I would not have guessed that RaSyn was supposed to be a combination of parts of the names of two processors. I wish they would come up with a decent naming convention so people can quickly tell broadly what performance and functionality to expect from it.