The Syntiant TinyML Board is a tiny development board with a microphone and accelerometer, USB host microcontroller and an always-on Neural Decision Processor™, featuring ultra low-power consumption, a fully connected neural network architecture, and fully supported by Edge Impulse. You'll be able to sample raw data, build models, and deploy trained embedded machine learning models directly from the Edge Impulse studio to create the next generation of low-power, high-performance audio interfaces.
The Edge Impulse firmware for this development board is open source and hosted on GitHub.
To set this device up in Edge Impulse, you will need to install the following software:
Download the firmware and double-click on the script for your OS. The script will flash the Arduino firmware and a default model on the NDP101 chip to recognize Go and Stop commands.
0x000000: read 0x04 != expected 0x01
Some flashing issues can occur on the Serial Flash. In this case, open a Serial Terminal on the TinyML board and send the command: :F. This will erase the Serial Flash and should fix the flashing issue.
Connect the Syntiant TinyML Board directly to your computer's USB port. Linux, Mac OS, and Windows 10 platforms are supported.
Check that the Syntiant TinyML enumerated as "TinyML" or "Arduino MKRZero". For example, in Mac OS you'll find it under System Preferences/Sound:
and in Windows under Device Manager you'll find it under Audio inputs and outputs:
With everything set up you can now build your first machine learning model and evaluate it using the Syntiant TinyML Board with this tutorial:
- How to use Arduino-CLI with macOS M1 chip? You will need to install Rosetta2 to run the Arduino-CLI. See details on Apple website.
- Board is detected as MKRZero and not TinyML: when compiling using the Arduino IDE, the board name will change from TinyML to MKRZero as it automatically retrieves the name from the board type. This doesn't affect the execution of the firmware.
- How to label my classes? The NDP101 chip expects one and only negative class and it should be the last in the list. For instance, if your original dataset looks like:
yes, no, unknown, noiseand you only want to detect the keyword 'yes' and 'no', merge the 'unknown' and 'noise' labels in a single class such as
z_openset(we prefix it with 'z' in order to get this class last in the list).
Updated 4 months ago