Machine Learning

on Raspberry Pi Pico

& other RP2040 Boards

Everything you need to know about running neural networks on Pico (Cortex M0+) or other RP2040 boards.

machine learning on pico and rp2040 boards

RP2040 Dev Boards

Your ML journey with RPi Pico starts with choosing the right RP2040 board and its accompanying peripherals, choosing the right hardware can sometimes save you quite some hassle. If you don’t know which board to begin with, what you’d like to achieve, Arducam Pico4ML is guaranteed the best choice.

pico

Raspberry Pi Pico

Official RP2040 board from the RPi foundation.

pico4ml arducam

Arducam Pico4ML

An RP2040 board w/ built-in screen, camera & mic.

arducam pico4ml for tinyml developement

Arducam Pico4ML-BLE

The Bluetooth version, with lots of new features.

woocommerce-placeholder

Adafruit ItsyBitsy RP2040

woocommerce-placeholder

Arduino Nano RP2040 Connect

woocommerce-placeholder

Tiny 2040

woocommerce-placeholder

Thing Plus – RP2040

How to deploy a trained model to your Raspberry Pi Pico

These models are pre-trained with large, public datasets, you can use them to get quick results with decent accuracy out of any of the RP2040 boards. Simply choose a model you’d like to use, compile it to a .uf2 file, wire the peripherals, put the file into your Pico boards, and enjoy! All of them can also be fine-tuned to your own needs.

person detection 1

Person Detection

A model that can detect whether a person is present in a still image or video input.

Read the tutorial >

magic wand 1

Magic Wand

A model that can be trained to recognize any physical gestures.

Read the tutorial >

Micro speech 1

Micro Speech

This is the micro_speech model, it can be trained to recognize any keywords (yes/no/etc.) from the speech data captured by a microphone.

Read the tutorial >

Raspberry Pi Pico TensorFlow Lite Micro Pre-Trained Examples

Person Detection

Magic Wand

Wake Word Detection

How to train your own TFLite Micro Model for Raspberry Pi Pico

You can either train a model locally on your PC/Mac or use online platforms like Edge Impulse, Google Colab, AWS SegeMaker, Azure IoT Edge, etc. And by following the steps and the instructions below, you can create a fully customized machine learning model that can be used on all the RP2040 boards.

Data Preparation

Get the data source ready for your model. Collect your own data, or get them from these free public ML databases.

Choose A Model

Select the proper model for your training data.

Train the Model

Use the datasets to improve your model’s ability to make more accurate predictions.

Evaluation & Tuning

Final things to do before deployment: test the trained model with other unused datasets and polish it up to further refine the model’s inference performance.

Read our Edge Impulse tutorial >

Edge Impule training models

tinyML Books, Courses & Certificates

tinyML book

TinyML: Machine Learning with TensorFlow Lite on Arduino and Ultra-Low-Power Microcontrollers

practical deep learning for cloud mobile edge

Practical Deep Learning for Cloud, Mobile, and Edge: Real-World AI & Computer-Vision Projects Using Python, Keras & TensorFlow

embedded deep learning

Embedded Deep Learning

hardvard tinyml course

Fundamentals of TinyML

edx tinyml course

Professional Certificate in Tiny Machine Learning

tensorflow official guide

Official TensorFlow Lite Guide

coursera tinyml course

Device-based Models with TensorFlow Lite

Camera Modules for Pico & RP2040 Boards

Whether you already own the official Pico board or happen to have bought a third-party one, there will always be a problem: certain machine learning models, like person detection, need to interface with external camera modules. The Arducam Pico camera series are built for these boards.

020

Arducam HM01B0 – QVGA

Arducam HM01B0 for pico

Arducam HM0360 – VGA

woocommerce-placeholder

Arducam Mini – 2MP

woocommerce-placeholder

Arducam OV5642 – 5MP

Machine Learning Projects w/ RPi Pico & RP2040 Boards

raspberry pi pico machine learning tensorflow lite micro person detection arducam blog thumbnail

Machine Learning on Raspberry Pi Pico with Tensorflow Lite Micro and Arducam (Featuring Person Detection)

number recognition

Number recognition with MNIST on Raspberry Pi Pico + TensorFlow Lite for Microcontrollers

raspberry pi pico machine learning tensorflow lite micro person detection arducam blog thumbnail

Motion Recognition Using Raspberry Pi Pico

raspberry pi pico machine learning tensorflow lite micro person detection arducam blog thumbnail

Bidirectional Encoder Representations from Transformers (BERT) on RP2040 Boards

Machine Learning Projects w/ Arduino

machine learning robot with arduino

An Arduino Neural Network Robot (from start to finish)

magic wand on Arduino Nano 33 BLE Sense

Magic Wand on Arduino Nano 33 BLE Sense using TensorFlow Lite

Plant health detector

Determining a Plant’s Health with TinyML

splitting WXMWaBUcjF

TinyML Keyword Detection for Controlling RGB Lights

water detector with tiny machine learning

TinyML Water Sensor – Based on Edge Impulse & Arduino Sense

arduino based touch free solutions

TinyML Arduino & IoT Based Touch-Free Solutions

page counter with machine learning

Calculating Reading Time with TinyML and Arduino Nano 33 BLE TinyML

cough detection

Cough Detection with TinyML on Arduino