Skip to content

Commit b3c5c1a

Browse files
Merge branch 'ArmDeveloperEcosystem:main' into SME_Jul
2 parents fd7704f + 7917fa5 commit b3c5c1a

File tree

8 files changed

+154
-40
lines changed

8 files changed

+154
-40
lines changed

content/learning-paths/automotive/openadkit2_safetyisolation/4_multiinstance_executing.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
---
2-
title: Executing the Multi-Instance with DDS-Based Communication
2+
title: Executing OpenAD Kit in a Distributed ROS 2 Instances
3+
34
weight: 5
45

56
### FIXED, DO NOT MODIFY

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

Lines changed: 12 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -7,52 +7,48 @@ cascade:
77

88
minutes_to_complete: 90
99

10-
who_is_this_for: This learning path is for beginners in Edge AI and TinyML, including developers, engineers, hobbyists, AI/ML enthusiasts, and researchers working with embedded AI and IoT.
10+
who_is_this_for: This learning path is for beginners in Edge AI and TinyML, including developers, engineers, hobbyists, AI/ML enthusiasts, and researchers working with embedded AI and IoT.
1111

1212
learning_objectives:
13-
- Understand Edge AI and TinyML basics.
14-
- Collect and preprocess audio data using Edge Impulse.
15-
- Train and deploy an audio classification model on Arduino Nano RP2040
16-
- Interface with LEDs to switch them on and off .
13+
- Understand Edge AI and TinyML basics.
14+
- Collect and preprocess audio data using Edge Impulse.
15+
- Train and deploy an audio classification model on Arduino Nano RP2040.
16+
- Interface with LEDs to switch them on and off.
1717

1818
prerequisites:
1919
- Explore this [learning path](https://learn.arm.com/learning-paths/embedded-and-microcontrollers/arduino-pico/) if you are an absolute beginner.
20-
- An [Edge Impulse](https://edgeimpulse.com/) Studio account.
21-
- The [Arduino IDE with the RP2040 board support package](https://learn.arm.com/install-guides/arduino-pico/) installed on your computer
22-
- An Arduino Nano RP2040 Connect [board](https://store.arduino.cc/products/arduino-nano-rp2040-connect-with-headers?_gl=1*9t4cti*_up*MQ..*_ga*NTA1NTQwNzgxLjE3NDYwMjIyODk.*_ga_NEXN8H46L5*MTc0NjAyMjI4Ny4xLjEuMTc0NjAyMjMxOC4wLjAuMjA3MjA2NTUzMA..).
20+
- An [Edge Impulse](https://edgeimpulse.com/) Studio account.
21+
- The [Arduino IDE with the RP2040 board support package](https://learn.arm.com/install-guides/arduino-pico/) installed on your computer
22+
- An Arduino Nano RP2040 Connect [board](https://store.arduino.cc/products/arduino-nano-rp2040-connect-with-headers?_gl=1*9t4cti*_up*MQ..*_ga*NTA1NTQwNzgxLjE3NDYwMjIyODk.*_ga_NEXN8H46L5*MTc0NjAyMjI4Ny4xLjEuMTc0NjAyMjMxOC4wLjAuMjA3MjA2NTUzMA..).
2323

2424
author: Bright Edudzi Gershon Kordorwu
2525
### Tags
2626
skilllevels: Introductory
2727
subjects: ML
2828
armips:
2929
- Cortex-M
30-
3130
tools_software_languages:
3231
- Edge Impulse
3332
- tinyML
3433
- Edge AI
3534
- Arduino
3635
operatingsystems:
3736
- Baremetal
38-
39-
4037

4138

4239
further_reading:
43-
4440
- resource:
45-
title: TinyML Brings AI to Smallest Arm Devices
41+
title: TinyML Brings AI to Smallest Arm Devices
4642
link: https://newsroom.arm.com/blog/tinyml
4743
type: blog
4844
- resource:
49-
title: What is edge AI?
45+
title: What is edge AI?
5046
link: https://docs.edgeimpulse.com/nordic/concepts/edge-ai/what-is-edge-ai
5147
type: blog
5248
- resource:
53-
title: Edge Impulse for Beginners
49+
title: Edge Impulse for Beginners
5450
link: https://docs.edgeimpulse.com/docs/readme/for-beginners
55-
type: doc
51+
type: doc
5652

5753

5854

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

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,17 +8,17 @@ layout: learningpathall
88

99
### Arduino Nano RP2040
1010

11-
To get started with your first **TinyML project**, a great option is the **Arduino Nano RP2040 Connect**. Built by Arduino, it uses the powerful **RP2040 microcontroller** and is fully supported by the Arduino core package. The board comes with built-in Wi-Fi, Bluetooth, and an onboard IMU—features that make it ideal for deploying machine learning models at the edge.
11+
To get started with your first **TinyML project**, the **Arduino Nano RP2040 Connect** is a good option. Built by Arduino, it uses the **RP2040 microcontroller** and is fully supported by the Arduino core package. The board comes with built-in Wi-Fi, Bluetooth, and an onboard IMU—features that is useful for deploying machine learning models at the edge.
1212

1313
![example image alt-text#center](images/nano.png "Arduino Nano RP2040")
1414

15-
Its compatibility with popular tools like Edge Impulse and the Arduino IDE makes it a beginner-friendly yet powerful choice for TinyML applications. You can learn more about the Arduino Nano RP2040 Connect on the [official Arduino website](https://store.arduino.cc/products/arduino-nano-rp2040-connect-with-headers?_gl=1*1laabar*_up*MQ..*_ga*MTk1Nzk5OTUwMS4xNzQ2NTc2NTI4*_ga_NEXN8H46L5*czE3NDY1NzY1MjUkbzEkZzEkdDE3NDY1NzY5NTkkajAkbDAkaDE1MDk0MDg0ODc.).
15+
Its compatibility with popular tools like Edge Impulse and the Arduino IDE makes it a suitable choice for TinyML applications. You can learn more about the Arduino Nano RP2040 Connect on the [official Arduino website](https://store.arduino.cc/products/arduino-nano-rp2040-connect-with-headers?_gl=1*1laabar*_up*MQ..*_ga*MTk1Nzk5OTUwMS4xNzQ2NTc2NTI4*_ga_NEXN8H46L5*czE3NDY1NzY1MjUkbzEkZzEkdDE3NDY1NzY5NTkkajAkbDAkaDE1MDk0MDg0ODc.).
1616

1717
## Put everything together
1818

1919
### Step 1: Connect the LED to the Arduino Nano RP2040
2020

21-
To visualize the output of the voice command model, we will use a simple LED circuit.
21+
To visualize the output of the voice command model, you will use a simple LED circuit.
2222

2323
### Components Needed
2424

@@ -40,9 +40,7 @@ To visualize the output of the voice command model, we will use a simple LED cir
4040

4141
To program and deploy your trained model to the Arduino Nano RP2040, you first need to configure your development environment.
4242

43-
Follow the detailed setup instructions provided in the following learning path:
44-
45-
[Arduino Nano RP2040 Setup Guide](https://learn.arm.com/install-guides/arduino-pico/)
43+
Follow the detailed setup instructions provided in the [Arduino Nano RP2040 Install Guide](https://learn.arm.com/install-guides/arduino-pico/)
4644

4745
This guide will walk you through:
4846

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

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
---
2-
title: Overview
2+
title: Overview
33
weight: 2
44

55
### FIXED, DO NOT MODIFY
66
layout: learningpathall
77
---
88

9+
This section introduces the related topics that make out the basis for this learning path. Review it before proceeding to the step-by-step tutorial.
10+
911
# Edge AI
1012
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.
1113

@@ -45,9 +47,9 @@ Wearable devices also benefit from Edge AI. Smartwatches monitor health by detec
4547

4648
In industrial settings, predictive maintenance applications rely on IoT sensors to monitor vibrations and temperatures, helping prevent machinery failures. Smart agriculture systems use soil condition sensors to optimize irrigation and fertilization, while autonomous vehicles process sensor data for real-time navigation and obstacle detection.
4749

48-
## Importance of Edge AI
50+
## The BLERP mnemonic
4951

50-
To understand the benefits of **Edge AI**, just **BLERP**, BLERP highlights the critical aspects of deploying machine learning models on edge devices, focusing on **Bandwidth, Latency, Economics, Reliability, and Privacy**. These components are key to understanding the advantages of processing data on-device rather than relying on the cloud. The table below provides an overview of each component and its importance in Edge AI applications "Situnayake, 2023"
52+
To help remember the benefits of **Edge AI**, **BLERP** highlights the critical aspects of deploying machine learning models on edge devices. First used by Situnayake in 2023, the abbreviation expands to **Bandwidth, Latency, Economics, Reliability, and Privacy**. These components are key to understanding the advantages of processing data on-device rather than relying on the cloud. The table below provides an overview of each component and its importance in Edge AI applications.
5153

5254
| Area | Description |
5355
|------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------|
@@ -65,5 +67,5 @@ Edge AI is transforming multiple industries. In healthcare, AI-powered medical d
6567

6668
To build effective TinyML and Edge AI projects, one needs more than just data—**both software and hardware** play a critical role in the development process. While data forms the foundation for training machine learning models, the **software** enables data processing, model development, and deployment, and the **hardware** provides the physical platform for running these models at the edge.
6769

68-
In this learning path, we will build a model that recognize specific voice commands, which will be used to **control LEDs on the Arduino Nano RP2040 Connect**. In the following steps, both software and hardware components will be discussed in detail.
70+
In this learning path, you will build a model that recognize specific voice commands, which will be used to **control LEDs on the Arduino Nano RP2040 Connect**. In the following steps, both software and hardware components will be discussed in detail.
6971

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

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ layout: learningpathall
88

99
# Programming your first tinyML device
1010

11-
This Learning Path provides a complete sketch that you can upload onto your Arduino Nano RP2040. Follow the steps below to get started.
11+
This section helps you create a complete sketch that you can upload onto your Arduino Nano RP2040.
1212

1313
## Step 1: Create a New Sketch
1414

@@ -20,7 +20,7 @@ This Learning Path provides a complete sketch that you can upload onto your Ardu
2020
## Step 2: Upload the Arduino Library from Edge Impulse
2121

2222
1. After creating and saving your sketch, go to **Sketch** > **Include Library** > **Add .ZIP Library**.
23-
2. In the file dialog that opens, navigate to the location of the **ZIP file** you exported from Edge Impulse in [Set up your environment](http://localhost:1313/learning-paths/embedded-and-microcontrollers/egde/software_edge_impulse/)
23+
2. In the file dialog that opens, navigate to the location of the **ZIP file** you exported from Edge Impulse in [Set up your environment](/learning-paths/embedded-and-microcontrollers/edge/software-edge-impulse/)
2424
3. Select the **ZIP file** and click **Open**.
2525

2626
## Step 3: Include the Library in Your Sketch
@@ -33,9 +33,9 @@ The libray should be of the form `Name_of_your_library_inferencing.h`
3333

3434
# Code walk-through
3535

36-
Before running the code, it’s important to understand what each part does.
36+
In the example repository, you will find a code snippet `Code_Sample.ino`, which is used as a sketch for the project. Before running the code, it’s important to understand what each part does.
3737

38-
Take a few minutes to read through the comments and logic in the sketch before uploading it to your board. The code can be downloaded [here](jkhkjhjk).
38+
Take a few minutes to read through the comments and logic in the sketch before uploading it to your board. The code is available in the example repository, and below is a walk-through of the steps.
3939

4040
## Include Necessary Libraries and Define Data Structure for Inference
4141

@@ -277,12 +277,12 @@ void print_inference_result(ei_impulse_result_t result) {
277277
```
278278
279279
{{% notice Note %}}
280-
The `ei_printf` command is a custom logging function from the Edge Impulse SDK, used for printing debug or inference-related information to the serial monitor, optimized for embedded systems. It works similarly to `printf` but is tailored for the Edge Impulse environment. You can download the complete [Code_Sample.ino](https://github.com/e-dudzi/Learning-Path.git) and try it out yourself.
280+
The `ei_printf` command is a custom logging function from the Edge Impulse SDK, used for printing debug or inference-related information to the serial monitor, optimized for embedded systems. It works similarly to `printf` but is tailored for the Edge Impulse environment. You can find the complete `Code_Sample.ino` in the example repository and try it out yourself.
281281
{{% /notice %}}
282282
283283
# Run Your Code
284284
285-
Now that you have a good understanding of the code, you should run it on your device. With your **Arduino Nano RP2040** plugged into your computer, and the correct [board and port](http://localhost:1313/learning-paths/embedded-and-microcontrollers/egde/connect-and-set-up-arduino/) selected in the Arduino IDE, follow these steps:
285+
Now that you have a good understanding of the code, you should run it on your device. With your **Arduino Nano RP2040** plugged into your computer, and the correct [board and port](/learning-paths/embedded-and-microcontrollers/egde/connect-and-set-up-arduino/) selected in the Arduino IDE, follow these steps:
286286
287287
#### If you're using the **Upload Button**
288288

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

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ layout: learningpathall
77
---
88
# Using Edge Impulse to Train TinyML Models
99

10-
Now that the foundational concepts of TinyML and Edge AI are clear, it's time to move from theory to practice. One of the most accessible and easy to use platforms for training TinyML models is **Edge Impulse**. It provides an intuitive, end-to-end pipeline for collecting data, designing features, training models, and deploying them to edge devices. In this section, we will explore how Edge Impulse is used to train models specifically for ultra-low-power microcontrollers, bridging the gap between machine learning and real-world embedded applications.
10+
Now that the foundational concepts of TinyML and Edge AI are clear, it's time to move from theory to practice. **Edge Impulse** is an easy to use platform for training TinyML models. It provides an end-to-end pipeline for collecting data, designing features, training models, and deploying them to edge devices. In this section, you will explore how Edge Impulse is used to train models specifically for ultra-low-power microcontrollers, bridging the gap between machine learning and real-world embedded applications.
1111

1212
## What is Edge Impulse?
1313

@@ -47,7 +47,7 @@ Once you’ve created your account and logged in, the first step is to **create
4747

4848
### Step 2: Configure the Target Device
4949

50-
After creating your project, the next step is to **configure the target device**. Since we are using the **Arduino Nano RP2040 Connect**, click the highlighted button to begin device configuration, as shown in the snapshot below. This ensures that the data collection, model training, and deployment steps are optimized for your specific hardware.
50+
After creating your project, the next step is to **configure the target device**. Since you are using the **Arduino Nano RP2040 Connect**, click the highlighted button to begin device configuration, as shown in the snapshot below. This ensures that the data collection, model training, and deployment steps are optimized for your specific hardware.
5151

5252
The specifications of the Arduino Nano RP2040 Connect board can be found on [Arduino’s official page](https://store.arduino.cc/products/arduino-nano-rp2040-connect).
5353

@@ -59,7 +59,13 @@ Follow the exact settings in the attached snapshot to complete the configuration
5959

6060
With your device configured, the next step is to **add your dataset** to the project. Click on the **"Add existing data"** button and follow the configuration settings shown in the attached snapshot. This allows you to upload pre-recorded data instead of collecting it live, which can save time during the development phase.
6161

62-
The dataset for this project can be downloaded from the following link: [Download Dataset](https://github.com/e-dudzi/Learning-Path.git). The Dataset has already been split into **training** and **testing**.
62+
An **example repository** has been set up with some assets to be used throughout this Learning Path. You can clone it with the following command:
63+
64+
```bash
65+
git clone https://github.com/e-dudzi/Learning-Path.git
66+
```
67+
68+
The repository contains a `Dataset.zip` file containing the dataset used in the project. Extract it on your local machine. For convenience, the dataset has already been split into **training** and **testing**.
6369

6470
![example image alt-text#center](images/6.png "Figure 4. Add Existing Data")
6571

@@ -141,7 +147,7 @@ Review these metrics to determine if the model is learning effectively. If neede
141147

142148
![example image alt-text#center](images/15.png "Figure 12. Model Performance")
143149

144-
You can also [download](https://github.com/e-dudzi/Learning-Path.git) a pre-trained model and continue from here.
150+
You can also use the pre-trained model in the `ei-edge-ai-tutorials-arduino-1.0.1.zip` archive, from the example repository.
145151

146152
### Final Step: Deploying the Model
147153

@@ -150,13 +156,13 @@ To use the trained model on your Arduino Nano RP2040, follow the steps below to
150156
1. Click on the **Deployment** tab from the menu.
151157
2. In the **search bar**, type **"Arduino"** to filter the export options.
152158
3. Select **Arduino library** from the list.
153-
4. The export process will start automatically, and the model will be downloaded as a `.zip` file.
159+
4. If the export process does not start automatically, click **Build**. The model will be downloaded as a `.zip` file.
154160

155161
![example image alt-text#center](images/16.png "Figure 13. Model Deployment")
156162

157163
## Next Steps
158164

159-
In the following steps, you will move from model training to real-world deployment. Specifically, we will:
165+
In the following steps, you will move from model training to real-world deployment. Specifically, you will:
160166

161167
- Connect an **LED** to the **Arduino Nano RP2040** board.
162168
- Set up the **Arduino IDE** for development.

data/stats_current_test_info.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
summary:
2-
content_total: 380
2+
content_total: 382
33
content_with_all_tests_passing: 0
44
content_with_tests_enabled: 61
55
sw_categories:

data/stats_weekly_data.yml

Lines changed: 111 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6557,3 +6557,114 @@
65576557
avg_close_time_hrs: 0
65586558
num_issues: 17
65596559
percent_closed_vs_total: 0.0
6560+
- a_date: '2025-07-07'
6561+
content:
6562+
automotive: 2
6563+
cross-platform: 32
6564+
embedded-and-microcontrollers: 42
6565+
install-guides: 102
6566+
iot: 6
6567+
laptops-and-desktops: 38
6568+
mobile-graphics-and-gaming: 34
6569+
servers-and-cloud-computing: 126
6570+
total: 382
6571+
contributions:
6572+
external: 97
6573+
internal: 509
6574+
github_engagement:
6575+
num_forks: 30
6576+
num_prs: 10
6577+
individual_authors:
6578+
adnan-alsinan: 2
6579+
alaaeddine-chakroun: 2
6580+
albin-bernhardsson: 1
6581+
alex-su: 1
6582+
alexandros-lamprineas: 1
6583+
andrew-choi: 2
6584+
andrew-kilroy: 1
6585+
annie-tallund: 4
6586+
arm: 3
6587+
arnaud-de-grandmaison: 4
6588+
aude-vuilliomenet: 1
6589+
avin-zarlez: 1
6590+
barbara-corriero: 1
6591+
basma-el-gaabouri: 1
6592+
ben-clark: 1
6593+
bolt-liu: 2
6594+
brenda-strech: 1
6595+
chaodong-gong: 1
6596+
chen-zhang: 1
6597+
christophe-favergeon: 1
6598+
christopher-seidl: 7
6599+
cyril-rohr: 1
6600+
daniel-gubay: 1
6601+
daniel-nguyen: 2
6602+
david-spickett: 2
6603+
dawid-borycki: 33
6604+
diego-russo: 2
6605+
dominica-abena-o.-amanfo: 1
6606+
elham-harirpoush: 2
6607+
florent-lebeau: 5
6608+
"fr\xE9d\xE9ric--lefred--descamps": 2
6609+
gabriel-peterson: 5
6610+
gayathri-narayana-yegna-narayanan: 1
6611+
georgios-mermigkis: 1
6612+
geremy-cohen: 3
6613+
gian-marco-iodice: 1
6614+
graham-woodward: 1
6615+
han-yin: 1
6616+
iago-calvo-lista: 1
6617+
james-whitaker: 1
6618+
jason-andrews: 103
6619+
joana-cruz: 1
6620+
joe-stech: 6
6621+
johanna-skinnider: 2
6622+
jonathan-davies: 2
6623+
jose-emilio-munoz-lopez: 1
6624+
julie-gaskin: 5
6625+
julio-suarez: 6
6626+
jun-he: 1
6627+
kasper-mecklenburg: 1
6628+
kieran-hejmadi: 12
6629+
koki-mitsunami: 2
6630+
konstantinos-margaritis: 8
6631+
kristof-beyls: 1
6632+
leandro-nunes: 1
6633+
liliya-wu: 1
6634+
mark-thurman: 1
6635+
masoud-koleini: 1
6636+
mathias-brossard: 1
6637+
michael-hall: 5
6638+
na-li: 1
6639+
nader-zouaoui: 2
6640+
nikhil-gupta: 1
6641+
nina-drozd: 1
6642+
nobel-chowdary-mandepudi: 6
6643+
odin-shen: 7
6644+
owen-wu: 2
6645+
pareena-verma: 46
6646+
paul-howard: 3
6647+
peter-harris: 1
6648+
pranay-bakre: 5
6649+
preema-merlin-dsouza: 1
6650+
przemyslaw-wirkus: 2
6651+
qixiang-xu: 1
6652+
rin-dobrescu: 1
6653+
roberto-lopez-mendez: 2
6654+
ronan-synnott: 45
6655+
shuheng-deng: 1
6656+
thirdai: 1
6657+
tianyu-li: 2
6658+
tom-pilar: 1
6659+
uma-ramalingam: 1
6660+
varun-chari: 2
6661+
visualsilicon: 1
6662+
willen-yang: 1
6663+
ying-yu: 2
6664+
yiyang-fan: 1
6665+
zach-lasiuk: 2
6666+
zhengjun-xing: 2
6667+
issues:
6668+
avg_close_time_hrs: 0
6669+
num_issues: 19
6670+
percent_closed_vs_total: 0.0

0 commit comments

Comments
 (0)