Deploying ML Models on Edge Devices



A walk through the Hardware components

We will get to understand two different hardware platforms. The first is the OpenMV Cam H7 and the second is the TinyML kit.
We'll be using these two platforms but the process should be reproducible on any other device with an Arm Cortex.

1. OpenMV Cam H7

  • This is an embedded vision camera module featuring a powerful ARM microcontroller with a Cortex-M7 core running at 480 MHz.
  • This high clock speed enables efficient and speedy inferencing, making it ideal for real-time computer vision applications.
  • It also boasts a high-quality image sensor, built-in image processing capabilities, and versatile interfaces for seamless integration with other devices.

The Open MV Cam H7

2. TinyML kit:
  • Developed collaboratively by Arduino and Edge Impulse, the TinyML kit empowers developers to create and deploy machine learning models on microcontrollers.
  • The TinyML kit consists of the following components:
    • Arduino Nano 33 BLE Sense
    • OV7675 Camera Module
    • Tiny Machine Learning (TinyML) Shield


Arduino Nano 33 BLE Sense:
  • The Arduino Nano 33 BLE Sense is a compact microcontroller board that features the nRF52840 from Nordic Semiconductors, a 32-bit ARM® Cortex®-M4 CPU running at 64 MHz
  • Built-in Bluetooth Low-Energy (BLE) module.
  • It is equipped with various sensors, including an accelerometer, a gyroscope, a magnetometer, a temperature sensor, a humidity sensor, a pressure sensor, and a microphone.
    These sensors allow for a wide range of sensing capabilities and enable us to gather data for our machine-learning models.

Arduino Nano 33 BLE Sense

OV7675 Camera Module
  • The OV7675 camera module is a small, low-cost camera sensor that can capture images and video.
  • It has a resolution of 640x480 pixels and communicates with the Arduino Nano through the I2C interface.

OV7675 Camera Module

Tiny Machine Learning (TinyML) Shield
  • The TinyML shield is a specially designed PCB (Printed Circuit Board) that simplifies the hardware connections for our project.
  • It is specifically created for the Arduino Nano 33 BLE Sense and provides seamless integration with the OV7675 camera module.
  • The shield includes all the necessary circuitry to connect the camera module to the Arduino Nano, eliminating the need for manual wire connections.
    It also ensures the correct pinout, making it easier for us to set up and work with the hardware.

Tiny Machine Learning (TinyML) Shield

TinyML Kit Setup

To get started with the TinyML kit, follow these steps:

  • Ensure that the Arduino Nano 33 BLE Sense board is securely mounted onto the TinyML shield. Align the pins of the Arduino Nano with the corresponding headers on the shield and gently press them together until they are firmly connected.
  • Locate the OV7675 camera module. Connect it to the TinyML shield by plugging it into the camera header on the shield. The shield is designed to provide the necessary connections, so you won't need to worry about manually wiring the camera module.
  • Connect any other peripherals required for your project, such as USB cables for programming and power supply.
  • Optionally, if you need to power the system independently, you can connect an external power source to the power input pins on the TinyML shield. Ensure that the power source meets the voltage requirements of the Arduino Nano and the camera module.

The Assembled Tiny Machine Learning Kit