# Tools {.appendix}

This is a non-exhaustive list of tools and frameworks that are available for embedded AI development.

## Hardware Kits

### **Microcontrollers and Development Boards**

| No | Hardware                  | Processor                      | Features                                                | TinyML Compatibility                            |
|----|------------------------------|--------------------------------|---------------------------------------------------------|-------------------------------------------------|
| 1  | Arduino Nano 33 BLE Sense   | ARM Cortex-M4                  | Onboard sensors, Bluetooth connectivity                | TensorFlow Lite Micro                           |
| 2  | Raspberry Pi Pico            | Dual-core Arm Cortex-M0+       | Low-cost, large community support                      | TensorFlow Lite Micro                           |
| 3  | SparkFun Edge                | Ambiq Apollo3 Blue             | Ultra-low power consumption, onboard microphone       | TensorFlow Lite Micro                           |
| 4  | Adafruit EdgeBadge           | ATSAMD51 32-bit Cortex M4      | Compact size, integrated display and microphone       | TensorFlow Lite Micro                           |
| 5  | Google Coral Development Board | NXP i.MX 8M SOC (quad Cortex-A53, Cortex-M4F) | Edge TPU, Wi-Fi, Bluetooth | TensorFlow Lite for Coral                       |
| 6  | STM32 Discovery Kits        | Various (e.g., STM32F7, STM32H7) | Different configurations, Cube.AI software support   | STM32Cube.AI                                    |
| 7  | Arduino Nicla Vision         | STM32H747AII6 Dual Arm Cortex M7/M4 | Integrated camera, low power, compact design          | TensorFlow Lite Micro      |
| 8  | Arduino Nicla Sense ME       | 64 MHz Arm Cortex M4 (nRF52832) | Multi-sensor platform, environment sensing, BLE, Wi-Fi| TensorFlow Lite Micro|

## Software Tools

### **Machine Learning Frameworks**

| No | Machine Learning Framework | Description                                                                    | Use Cases                                |
|----|---------------------------|--------------------------------------------------------------------------------|------------------------------------------|
| 1  | TensorFlow Lite           | Lightweight library for running machine learning models on constrained devices | Image recognition, voice commands, anomaly detection |
| 2  | Edge Impulse             | A platform providing tools for creating machine learning models optimized for edge devices | Data collection, model training, deployment on tiny devices |
| 3  | ONNX Runtime             | A performance-optimized engine for running ONNX models, fine-tuned for edge devices | Cross-platform deployment of machine learning models |

### **Libraries and APIs**

| No | Library/API | Description                                                                                          | Use Cases                                |
|----|-------------|------------------------------------------------------------------------------------------------------|------------------------------------------|
| 1  | CMSIS-NN    | A collection of efficient neural network kernels optimized for Cortex-M processors                   | Embedded vision and AI applications     |
| 2  | ARM NN      | An inference engine for CPUs, GPUs, and NPUs, enabling the translation of neural network frameworks  | Accelerating machine learning model inference on ARM-based devices |

## IDEs and Development Environments

| No | IDE/Development Environment  | Description                                                                        | Features                                           |
|----|------------------------------|------------------------------------------------------------------------------------|----------------------------------------------------|
| 1  | PlatformIO                   | An open-source ecosystem for IoT development catering to various boards & platforms | Cross-platform build system, continuous testing, firmware updates |
| 2  | Eclipse Embedded CDT         | A plugin for Eclipse facilitating embedded systems development                      | Supports various compilers and debuggers, integrates with popular build tools |
| 3  | Arduino IDE                  | Official development environment for Arduino supporting various boards & languages | User-friendly interface, large community support, extensive library collection |
| 4  | Mbed Studio                  | ARM's IDE for developing robust embedded software with Mbed OS                     | Integrated debugger, Mbed OS integration, version control support |
| 5  | Segger Embedded Studio      | A powerful IDE for ARM microcontrollers supporting a wide range of development boards | Advanced code editor, project management, debugging capabilities |
