Skip to content

Commit 0e8b8dc

Browse files
Update documentation for clarity and consistency in titles, image descriptions, and instructional notes
1 parent 534b7e6 commit 0e8b8dc

5 files changed

Lines changed: 51 additions & 43 deletions

File tree

content/learning-paths/embedded-and-microcontrollers/edge/_index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
title: Learn how to run AI on edge devices using Arduino Nano RP2040
2+
title: Learn how to run AI on Edge devices using Arduino Nano RP2040
33

44
minutes_to_complete: 90
55

content/learning-paths/embedded-and-microcontrollers/edge/connect-and-set-up-arduino.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,9 @@ To visualize the output of the voice command model, you will use a simple LED ci
3232
- **Anode (long leg) of the LED** → Connect to **GPIO pin D2** via the 220Ω resistor
3333
- **Cathode (short leg)** → Connect to **GND**
3434

35-
![example image alt-text#center](images/led_connection.png "Figure 14. Circuit Connection")
35+
![example image alt-text#center](images/led_connection.png "Circuit Connection")
3636

37-
![example image alt-text#center](images/led_connection_schematic.png "Figure 15. Circuit Schematic Connection")
37+
![example image alt-text#center](images/led_connection_schematic.png "Circuit Schematic Connection")
3838

3939
### Step 2: Set Up the Arduino IDEs
4040

@@ -48,7 +48,7 @@ This guide will walk you through:
4848
- Adding the board support package for the Nano RP2040
4949

5050
{{% notice Note %}}
51-
**Note:** Follow every instruction in the guide **except** `How do I set up the Raspberry Pi Pico W?`, as it is not needed for this project.
51+
Follow every instruction in the guide *except* `How do I set up the Raspberry Pi Pico W?`, as it is not needed for this project.
5252
{{% /notice %}}
5353

5454
### Step 3: Select Your Board and Port in the Arduino IDE

content/learning-paths/embedded-and-microcontrollers/edge/overview.md

Lines changed: 23 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,14 @@ layout: learningpathall
77
---
88

99
{{< notice Note >}}
10-
This section introduces the key concepts that form the foundation of this Learning Path. Review it before starting the step-by-step tutorial.
10+
This section introduces the key concepts that form the foundation of this Learning Path. Review it before starting this Learning Path.
1111
{{< /notice >}}
1212

1313
# Edge AI
1414

1515
Edge AI refers to artificial intelligence models that run directly on edge devices, processing data locally rather than relying on cloud computing. These models are optimized for real-time decision-making on resource-constrained devices such as microcontrollers, embedded systems, and IoT sensors.
1616

17-
**TinyML (tiny machine learning)** is a subset of Edge AI that focuses on deploying machine learning models on ultra-low-power microcontrollers. These devices typically have less than 1 MB of flash memory and a few hundred kilobytes of RAM, and they are designed to run for extended periods on minimal power, which is often for years on a single coin-cell battery.
17+
TinyML (Tiny Machine Learning) is a subset of Edge AI that focuses on deploying machine learning models on ultra-low-power microcontrollers. These devices typically have less than 1 MB of flash memory and a few hundred kilobytes of RAM, and they are designed to run for extended periods on minimal power, which is often for years on a single coin-cell battery.
1818

1919
Despite these constraints, TinyML enables on-device inference, allowing edge devices to make intelligent decisions in real time without sending data to the cloud. This makes smart functionality possible in low-cost, battery-powered devices used in applications such as environmental monitoring, wearables, smart homes, and industrial sensors.
2020

@@ -24,28 +24,35 @@ Key features of Edge AI and TinyML include:
2424

2525
- **Low power consumption**: designed to run on batteries or harvested energy for months or years
2626
- **Small model size**: models are optimized (for example, quantized or pruned) to fit into a few kilobytes or megabytes
27-
- **Limited compute and memory**: typically operates with under 1 MB of RAM and very limited storage
28-
- **Real-time inference**: enables immediate local decision-making (for example, wake-word detection)
27+
- **Limited compute and memory**: typically operate with under 1 MB of RAM and very limited storage
28+
- **Real-time inference**: immediate local decision-making (for example, wake-word detection)
2929
- **Low latency**: no reliance on cloud; inference is performed on-device
3030
- **Applications**: often used in audio classification, gesture detection, and anomaly detection
31-
- **Example devices**: Arduino Nano 33 BLE Sense, STM32 MCUs, Raspberry Pi Pico, Arduino Nano RP2040 Connect, and more
3231

33-
## Running AI Models on Resource-Constrained Devices
32+
Example devices include Arduino Nano 33 BLE Sense, STM32 MCUs, Raspberry Pi Pico, and Arduino Nano RP2040 Connect.
3433

35-
Running AI on edge devices presents challenges. These devices often lack high-performance CPUs or GPUs, making compute power and memory usage key concerns. Additionally, because many edge devices run on batteries, energy efficiency is critical.
34+
## Run AI models on resource-constrained devices
3635

37-
To address these constraints, models are optimized through techniques such as quantization, pruning, and knowledge distillation. These reduce model size and resource requirements while maintaining acceptable accuracy.
36+
Running AI on edge devices presents challenges. These devices often lack high-performance CPUs or GPUs, making compute power and memory usage key concerns. Since many edge devices run on batteries, energy efficiency is also critical.
3837

39-
## Edge AI implementation workflow
38+
To overcome these constraints, models are optimized using techniques such as *quantization*, *pruning*, and *knowledge distillation*. These methods reduce model size and resource requirements while maintaining acceptable accuracy.
4039

41-
Implementing Edge AI typically follows this workflow:
40+
## Edge AI workflow
4241

43-
- Data collection using sensors such as microphones, motion detectors, or cameras
44-
- Model training on high-performance systems such as cloud servers or local workstations
45-
- Model optimization to reduce size and computation overhead for deployment
46-
- Deployment to microcontrollers or Arm-based processors
47-
- On-device inference, where the model makes real-time decisions based on local data
42+
[1] Data collection
43+
→ Sensors capture data (such as audio, motion, and vision)
4844

45+
[2] Model training
46+
→ Use cloud or local compute for training
47+
48+
[3] Model optimization
49+
→ Apply quantization, pruning, or distillation
50+
51+
[4] Deployment
52+
→ Flash model onto Arm-based edge device
53+
54+
[5] On-device inference
55+
→ Device makes real-time predictions locally
4956

5057
## Applications of Edge AI
5158

@@ -60,7 +67,7 @@ Edge AI is used in a wide range of real-world applications:
6067

6168
## The BLERP framework
6269

63-
To remember the benefits of Edge AI, the **BLERP** mnemonic highlights five critical aspects:
70+
To recall the benefits of Edge AI, the **BLERP** mnemonic highlights five critical aspects:
6471

6572
| Area | Description |
6673
|------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------|

content/learning-paths/embedded-and-microcontrollers/edge/program-and-deployment.md

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -327,6 +327,5 @@ Your Serial Monitor should look like the image below.
327327
328328
![example image alt-text#center](images/serial_monitor.png "Figure 16. Circuit Connection")
329329
330-
{{% notice Congratulations %}}
331-
You’ve successfully programmed your first TinyML microcontroller! You've also built a functional, smart system to control an LED with your voice.
332-
{{% /notice %}}
330+
Congratulations, you’ve successfully programmed your first TinyML microcontroller! You've also built a functional, smart system to control an LED with your voice.
331+

content/learning-paths/embedded-and-microcontrollers/edge/software-edge-impulse.md

Lines changed: 22 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ weight: 3
66
layout: learningpathall
77
---
88

9-
# Using Edge Impulse to Train TinyML models
9+
## Using Edge Impulse
1010

1111
Now that you've learned the foundational concepts of Edge AI and TinyML, it's time to move from theory to practice.
1212

@@ -22,17 +22,19 @@ Edge Impulse is a development platform that simplifies building, training, and d
2222

2323
| Feature | Description |
2424
|-----------------------|-----------------------------------------------------------------------------------------------------|
25-
| **Data collection** | Collects data from sensors, such as accelerometers, microphones, and cameras in real time. |
26-
| **Preprocessing** | Provides tools for signal processing and feature extraction tailored for embedded systems. |
27-
| **Model training** | Supports built-in ML algorithms and integrates with frameworks like TensorFlow. |
28-
| **Edge optimization** | Automatically optimizes models to run efficiently on low-power edge hardware. |
29-
| **Deployment** | Enables seamless deployment to microcontrollers, RTOS-based boards, and Linux devices. |
30-
| **Web-based platform**| Fully browser-based interface for managing projects and workflows without needing local setup. |
25+
| **Data collection** | collects data from sensors, such as accelerometers, microphones, and cameras in real time |
26+
| **Preprocessing** | provides tools for signal processing and feature extraction tailored for embedded systems |
27+
| **Model training** | supports built-in ML algorithms and integrates with frameworks like TensorFlow |
28+
| **Edge optimization** | automatically optimizes models to run efficiently on low-power edge hardware |
29+
| **Deployment** | enables seamless deployment to microcontrollers, RTOS-based boards, and Linux devices |
30+
| **Web-based platform**| fully browser-based interface for managing projects and workflows without needing local setup |
3131

3232
---
3333

3434
## Why it's important in Edge AI and TinyML
3535

36+
Edge Impulse offers the following benefits:
37+
3638
- Bridges the gap between machine learning and embedded development
3739
- Accelerates prototyping and deployment of AI features directly on hardware
3840
- Supports TinyML applications that run on devices with very limited memory and compute power
@@ -46,7 +48,7 @@ In the following sections, you'll walk through each key page on the Edge Impulse
4648

4749

4850

49-
![Screenshot of the Edge Impulse home page showing the main navigation and project dashboard alt-text#center](images/1.png "Figure 1. Home page of Edge Impulse")
51+
![Screenshot of the Edge Impulse home page showing the main navigation and project dashboard alt-text#center](images/1.png "Home page of Edge Impulse website")
5052

5153

5254
### Create a new project
@@ -57,7 +59,7 @@ For example, if you're building a keyword spotting model, you might name it `Wak
5759

5860
You'll also need to select the appropriate **project type** and **project settings**, as shown in the snapshot below.
5961

60-
![Screenshot showing the new project creation page in Edge Impulse, with fields for project name, type, and target device alt-text#center](images/3.png "Figure 2. New project setup")
62+
![Screenshot showing the new project creation page in Edge Impulse, with fields for project name, type, and target device alt-text#center](images/3.png "New project setup")
6163

6264
### Configure the target device
6365

@@ -67,7 +69,7 @@ You can find the full specifications for the Arduino Nano RP2040 Connect on [Ard
6769

6870
Follow the settings shown in the screenshot to complete the configuration.
6971

70-
![Screenshot showing the Edge Impulse device configuration page with Arduino Nano RP2040 Connect selected alt-text#center](images/4.png "Figure 3. Configure Arduino Nano RP2040")
72+
![Screenshot showing the Edge Impulse device configuration page with Arduino Nano RP2040 Connect selected alt-text#center](images/4.png "Configure Arduino Nano RP2040")
7173

7274

7375
### Add the dataset
@@ -82,14 +84,14 @@ git clone https://github.com/e-dudzi/Learning-Path.git
8284

8385
The repository contains a `Dataset.zip` file with the dataset used in this project. Extract the contents to your local machine. For convenience, the dataset is already split into **training** and **testing** sets.
8486

85-
![Screenshot showing the Edge Impulse interface with the Add existing data panel open, used to upload pre-recorded datasets alt-text#center](images/6.png "Figure 4. Add existing data")
87+
![Screenshot showing the Edge Impulse interface with the Add existing data panel open, used to upload pre-recorded datasets alt-text#center](images/6.png "Adding existing data")
8688

8789

8890
{{% notice Note %}}
8991
Do not check the green highlighted area during upload. The dataset already includes metadata. Enabling that option may result in much slower upload times and is unnecessary for this project.
9092
{{% /notice %}}
9193

92-
![Screenshot showing the Data acquisition tab in Edge Impulse with uploaded samples organized by label alt-text#center](images/7.png "Figure 5. Dataset overview")
94+
![Screenshot showing the Data acquisition tab in Edge Impulse with uploaded samples organized by label alt-text#center](images/7.png "Dataset overview")
9395

9496
### Dataset uploaded successfully
9597

@@ -104,7 +106,7 @@ This dataset is made up of four labels:
104106
- unknown
105107
{{% /notice %}}
106108

107-
![Screenshot showing the Impulse design interface in Edge Impulse with input, processing, and learning blocks configured alt-text#center](images/8.png "Figure 6. Dataset overview")
109+
![Screenshot showing the Impulse design interface in Edge Impulse with input, processing, and learning blocks configured alt-text#center](images/8.png "Dataset overview")
108110

109111
### Create the impulse
110112

@@ -115,7 +117,7 @@ Click **Create impulse** in the menu and configure it as shown in the screenshot
115117
After configuring the impulse, make sure to **save your changes**.
116118

117119

118-
![example image alt-text#center](images/9.png "Figure 7. Create Impulse")
120+
![example image alt-text#center](images/9.png "Create Impulse")
119121

120122
### Configure the MFCC block
121123

@@ -127,7 +129,7 @@ Set the parameters exactly as shown in the screenshot. These settings determine
127129

128130
These defaults are chosen for this Learning Path, but you can experiment with different values once you're more familiar with Edge Impulse.
129131

130-
![Screenshot showing the MFCC configuration page in Edge Impulse with time and frequency parameters set for feature extraction alt-text#center](images/10.png "Figure 8. MFCC block configuration")
132+
![Screenshot showing the MFCC configuration page in Edge Impulse with time and frequency parameters set for feature extraction alt-text#center](images/10.png "MFCC block configuration")
131133

132134
{{< notice Note >}}
133135
The green-highlighted section on the MFCC configuration page provides an estimate of how the model will perform on the target device. This includes memory usage (RAM and flash) and latency, helping ensure the model fits within hardware constraints.
@@ -139,7 +141,7 @@ After saving the MFCC parameters, the next step is to generate features from you
139141

140142
When complete, you'll see a **2D feature plot** that shows how the data is distributed across the four labels: `on`, `off`, `noise`, and `unknown`. This helps visually confirm whether the classes are distinct and learnable.
141143

142-
![Screenshot showing the feature explorer in Edge Impulse with a 2D visualization of four labeled audio classes alt-text#center](images/12.png "Figure 9. Feature explorer")
144+
![Screenshot showing the feature explorer in Edge Impulse with a 2D visualization of four labeled audio classes alt-text#center](images/12.png "Feature explorer")
143145

144146
### Set up the classifier
145147

@@ -151,13 +153,13 @@ For this Learning Path, use a learning rate of `0.002` even though the screensho
151153

152154
Once all parameters are set, click **Save and train** to begin training your model.
153155

154-
![Screenshot showing the classifier configuration in Edge Impulse with neural network settings alt-text#center](images/13.png "Figure 10. Classifier settings")
156+
![Screenshot showing the classifier configuration in Edge Impulse with neural network settings alt-text#center](images/13.png "Classifier settings")
155157

156158
### Review model performance
157159

158160
After training is complete, Edge Impulse will show the model’s performance metrics: **accuracy**, **loss**, and a **confusion matrix**.
159161

160-
![Screenshot showing the model performance results in Edge Impulse including accuracy, loss, and confusion matrix alt-text#center](images/14.png "Figure 11. Model performance")
162+
![Screenshot showing the model performance results in Edge Impulse including accuracy, loss, and confusion matrix alt-text#center](images/14.png "Model performance")
161163

162164
- **Accuracy**: how often the model correctly predicts labels
163165
- **Loss**: how far off predictions are — lower values indicate better performance
@@ -173,7 +175,7 @@ Review these results to see how well the model learned. If needed, adjust settin
173175
| Peak RAM usage | 12.5 KB |
174176
| Flash usage | 49.7 KB |
175177

176-
![Screenshot showing performance metrics for the trained model on the target device alt-text#center](images/15.png "Figure 12. Model performance")
178+
![Screenshot showing performance metrics for the trained model on the target device alt-text#center](images/15.png "Model performance")
177179

178180
You can also use the pre-trained model found in `ei-edge-ai-tutorials-arduino-1.0.1.zip` from the example repository.
179181

@@ -187,7 +189,7 @@ To run the trained model on your Arduino Nano RP2040 Connect, export it as an Ar
187189

188190
The model will be downloaded as a `.zip` file you can import into the Arduino IDE.
189191

190-
![Screenshot showing the deployment options in Edge Impulse with Arduino library export selected alt-text#center](images/16.png "Figure 13. Model deployment")
192+
![Screenshot showing the deployment options in Edge Impulse with Arduino library export selected alt-text#center](images/16.png "Model deployment")
191193

192194
## Next steps
193195

0 commit comments

Comments
 (0)