Getting Started

Welcome to the exciting world of embedded machine learning and TinyML! In this hands-on lab series, you’ll explore various projects demonstrating the power of running machine learning models on resource-constrained devices. Before diving into the projects, ensure you have the necessary hardware and software.

Hardware Requirements

To follow along with the hands-on labs, you’ll need the following hardware:

  1. Arduino Nicla Vision board

    • The Arduino Nicla Vision is a powerful, compact board designed for professional-grade computer vision and audio applications. It features a high-quality camera module, a digital microphone, and an IMU, making it suitable for demanding projects in industries such as robotics, automation, and surveillance.
    • Arduino Nicla Vision specifications
    • Arduino Nicla Vision pinout diagram
  2. XIAO ESP32S3 Sense board

    • The Seeed Studio XIAO ESP32S3 Sense is a tiny, feature-packed board designed for makers, hobbyists, and students interested in exploring edge AI applications. It comes with a camera, microphone, and IMU, making it easy to get started with projects like image classification, keyword spotting, and motion detection.
    • XIAO ESP32S3 Sense specifications
    • XIAO ESP32S3 Sense pinout diagram
  3. Raspberry Pi - Single Computer board

  • The Raspberry Pi is a powerful and versatile single-board computer that has become an essential tool for engineers across various disciplines. Developed by the Raspberry Pi Foundation, these compact devices offer a unique combination of affordability, computational power, and extensive GPIO (General Purpose Input/Output) capabilities, making them ideal for prototyping, embedded systems development, and advanced engineering projects.
  • Raspberry Pi Hardware Documentation
  • Camera Documentation
  1. Additional accessories
    • USB-C cable for programming and powering the XIAO
    • Micro-USB cable for programming and powering the Nicla
    • Power Supply for the Raspberries
    • Breadboard and jumper wires (optional, for connecting additional sensors)

The Arduino Nicla Vision is tailored for professional-grade applications, offering advanced features and performance suitable for demanding industrial projects. On the other hand, the Seeed Studio XIAO ESP32S3 Sense is geared toward makers, hobbyists, and students who want to explore edge AI applications in a more accessible and beginner-friendly format. Both boards have their strengths and target audiences, allowing users to choose the best fit for their needs and skill level. The Raspberry Pi is aimed at more advanced engineering and machine learning projects.

Software Requirements

To program the boards and develop embedded machine learning projects, you’ll need the following software:

  1. Arduino IDE

  2. OpenMV IDE (optional)

  3. Edge Impulse Studio

  4. Raspberry Pi OS

Network Connectivity

Some projects may require internet connectivity for data collection or model deployment. Ensure your development environment connection is stable through Wi-Fi or Ethernet. For the Raspberry Pi, having a Wi-Fi or Ethernet connection is necessary for remote operation without the necessity to plug in a monitor, keyboard, and mouse.

  • For the Arduino Nicla Vision, you can use the onboard Wi-Fi module to connect to a wireless network.

  • For the XIAO ESP32S3 Sense, you can use the onboard Wi-Fi module or connect an external Wi-Fi or Ethernet module using the available pins.

  • For the Raspberry Pi, you can use the onboard Wi-Fi module to connect an external Wi-Fi or Ethernet module using the available connector.

Conclusion

With your hardware and software set up, you’re ready to embark on your embedded machine learning journey. The hands-on labs will guide you through various projects, covering topics like image classification, object detection, keyword spotting, and motion classification.

If you encounter any issues or have questions, don’t hesitate to consult the troubleshooting guides or forums or seek support from the community.

Let’s dive in and unlock the potential of ML on real (tiny) systems!