To make the Raspberry Pi Pico more robust for TensorFlow Lite Micro, the Arducam team took the Raspberry Silicon (also known as the RP2040 chip) and created the open-source Pico4ML, a microcontroller development board made exclusively for running and training machine learning examples!
This compact RP2040-based board packs an inertial measurement unit (IMU), camera module, 0.96" OLED and microphone! The Pico4ML also comes with its own micro-USB cable.
User manual available here and a dedicated GitHub repo can be found here. More documentation is available in the resources section further down the page.
QVGA Camera Module
A QVGA camera module with ultra-low power consumption, configurable 1-bit video data serial interface with video frame and line sync, and the monochrome sensor make image processing an easy part for most machine vision applications.
The small TFT display at the back of Pico4ML is a 160×80 LCD, it’s connected to the board through the SPI interface, you can do a live preview of the camera, or display the results of any of your ML models in real-time.
Onboard Microphone & IMU
The audio chip on the Pico4ML is capable of directly outputting PDM (Pulse-density modulation) signals, this integration allows the RP2040 to receive audio input, and it’s great for all the speech/voice recognition models. Motion tracking is also a built-in feature, the 2.5 mW low-power 9-axis IMU we used is just another ideal match for the RP2040 chip.
Arducam Pico4ML is completely open-source, all its codes, design files, and schematics will be made available for anyone to use, rebuild or modify.
- Microcontroller: Raspberry Pi RP2040
- IMU: ICM-20948 (low power)
- Mono channel microphone w/ direct PCM output
- Buttons: Reset & Boot
- Camera Module: HiMax HM01B0, Up to QVGA (320 x 240)
- Screen: 0.96 inch LCD SPI Display (160 x 80, ST7735)
- Operating Voltage: 3.3V
- Current Draw (standby): 40mA
- Current Draw (running ML models): 60mA
- Input Voltage: VBUS: 5V +/- 10%. VSYS Max: 5.5V
- Length: 51 mm
- Width: 21 mm
Three Pre-trained TF Lite Models from The Official TinyML Book
Arducam have included three pre-trained TensorFlow Lite micro examples, including Person Detection, Magic Wand, and Wake-Word Detection. You can also build, train and deploy your models on it.
Demo 1: Wake-Word Detection
“Hey, Google” “Alexa.” Use a pre-trained speech detection model to provide always-on wake-word detection using a tiny microcontroller.
Demo 2: Magic Wand (Gesture Detection)
Wave it to cast several types of spells in one of the following three gestures: “Wing”, “Ring” and “Slope”.
Demo 3: Person Detection
Classify Images captured by a camera to recognize if a person is in the camera input or not
- 1 x Arducam Pico4ML Dev Board
- 1 x Micro USB Cable
- User Manual
- Pico4ML Enclosure STEP File
- Getting Started with MicroPython on RPi Pico
- C/C++ Development w/ Pico and RP2040-based Boards
- Raspberry Pi Pico Datasheet
- RP2040 Datasheet
- RPi Pico C/C++ SDK
- RPi Pico Python SDK
- API references
- Burn firmware
- Dual-core Arm Cortex-M0+ processor, flexible clock running up to 133 MHz.
- 264KB on-chip SRAM.
- 2MB on-board QSPI Flash.
- 26 multifunction GPIO pins, including 3 analogue inputs.
- 2 × UART, 2 × SPI controllers, 2 × I2C controllers, 16 × PWM channels.
- 1 × USB 1.1 controller and PHY, with host and device support.
- 8 × Programmable I/O (PIO) state machines for custom peripheral support.
- Supported input power 1.8–5.5V DC.
- Operating temperature -20°C to +85°C.
- Castellated module allows soldering direct to carrier boards.
- Drag-and-drop programming using mass storage over USB.
- Low-power sleep and dormant modes.
- Accurate on-chip clock.
- Temperature sensor.
- Accelerated integer and floating-point libraries on-chip.