Hardware Kits
Hands-on Embedded ML Labs for Real Devices
What This Is
The Hardware Kits teach you how to deploy ML models to real embedded devices. You will face actual hardware constraints: limited memory, power budgets, and latency requirements that do not exist in cloud environments.
This is where AI systems meet the physical world.
What You Will Learn
| Concept | What You Do |
|---|---|
| Image Classification | Deploy CNN models to classify images in real-time on microcontrollers |
| Object Detection | Run YOLO-style detection on camera-equipped boards |
| Keyword Spotting | Build always-on wake word detection with audio DSP |
| Motion Classification | Use IMU sensors for gesture and activity recognition |
| Model Optimization | Quantize and compress models to fit in KB of RAM |
| Power Management | Balance accuracy vs battery life for edge deployment |
Hardware Platforms
| Platform | Description | Best For |
|---|---|---|
| Arduino Nicla Vision | Compact AI camera board with STM32H7 | Vision projects, ultra-low power |
| Seeed XIAO ESP32S3 | Tiny ESP32-S3 with camera support | WiFi-connected vision |
| Grove Vision AI V2 | No-code AI vision module | Rapid prototyping |
| Raspberry Pi | Full Linux SBC for edge AI | Complex pipelines, prototyping |
Quick Start
For Learners
- Pick a platform from the labs
- Follow the setup guide for your hardware
- Complete the labs in order: Setup → Image Classification → Object Detection → Keyword Spotting
For Contributors
cd kits
# Build HTML site
ln -sf config/_quarto-html.yml _quarto.yml
quarto render
# Build PDF
ln -sf config/_quarto-pdf.yml _quarto.yml
quarto render --to titlepage-pdf
# Preview with live reload
quarto preview
Labs Overview
Each platform includes progressive labs:
| Lab | What You Build | Skills |
|---|---|---|
| Setup | Hardware setup and environment configuration | Toolchain, flashing, debugging |
| Image Classification | CNN-based image recognition | Model deployment, inference |
| Object Detection | Real-time object detection | YOLO, bounding boxes |
| Keyword Spotting | Audio wake word detection | DSP, MFCC features |
| Motion Classification | IMU-based gesture recognition | Sensor fusion, time series |
Directory Structure
kits/
├── contents/ # Lab content
│ ├── arduino/ # Arduino Nicla Vision labs
│ ├── seeed/ # Seeed XIAO & Grove Vision labs
│ ├── raspi/ # Raspberry Pi labs
│ └── shared/ # Shared resources (DSP, features)
├── assets/ # Images, styles, scripts
├── config/ # Quarto configurations
│ ├── _quarto-html.yml # Website config
│ └── _quarto-pdf.yml # PDF config
├── tex/ # LaTeX includes for PDF
├── filters/ # Lua filters
└── index.qmd # Landing page
Documentation
| Audience | Resources |
|---|---|
| Learners | Online Labs ・ PDF |
| Contributors | See build instructions above |
Contributing
We welcome contributions to the hardware labs! To contribute:
- Fork and clone the repository
- Add or improve lab content in
contents/ - Test your changes with
quarto preview - Submit a PR with a clear description
Related
| Component | Description |
|---|---|
| Main README | Project overview and ecosystem |
| Textbook | ML Systems concepts and theory |
| TinyTorch | Build ML frameworks from scratch |
| Website | Read labs online |
Contributors
Thanks to these wonderful people who helped improve the hardware kits!
Legend: 🪲 Bug Hunter · ⚡ Code Warrior · 📚 Documentation Hero · 🎨 Design Artist · 🧠 Idea Generator · 🔎 Code Reviewer · 🧪 Test Engineer · 🛠️ Tool Builder
Vijay Janapa Reddi 🪲 🧑💻 🎨 ✍️ 🧪 🛠️ |
Marcelo Rovai ✍️ 🧑💻 🎨 tutorial |
Salman Chishti 🧑💻 |
Recognize a contributor: Comment on any issue or PR:
@all-contributors please add @username for tool, test, video, or doc
License
Content is licensed under Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0).
See LICENSE.md for details.