# [Embedded and Microcontrollers](https://learn.arm.com/learning-paths/embedded-and-microcontrollers/)

## Subjects
- CI-CD
- Containers and Virtualization
- Embedded Linux
- Libraries
- ML
- Performance and Architecture
- RTOS Fundamentals
- Security
- Virtual Hardware

## OS
- Android
- Baremetal
- Linux
- RTOS
- Windows
- macOS

## Skill Level
- Advanced
- Introductory

## Tools, Software, and Languages
- AI
- Arduino
- Arm Compiler
- Arm Compiler for Embedded
- Arm Compiler for Linux
- Arm Compute Library
- Arm Development Studio
- Arm Fast Models
- Arm Performance Studio
- Arm Streamline
- Arm Virtual Hardware
- Assembly
- AWS IoT Greengrass
- Azure
- balenaCloud
- BalenaOS
- Baremetal
- Bash
- BitBake
- C
- ChatGPT
- Clang
- CMSIS
- CMSIS-DSP
- CMSIS-Toolbox
- CNN
- Computer Vision
- ConnMan
- Containerd
- CPP
- DetectNet
- Docker
- DSTREAM
- Edge AI
- Edge Impulse
- ETDump
- ETRecord
- ExecuTorch
- FastAPI
- Fusion 360
- FVP
- Gazebo
- GCC
- Generative AI
- GitHub
- GitLab
- GStreamer
- Himax SDK
- Hugging Face
- IP Explorer
- Java
- Jupyter Notebook
- K3s
- Keil MDK
- Keil RTX RTOS
- Kubernetes
- LeRobot
- Linux kernel
- LLM
- Matter
- MCP
- MediaPipe
- Model Explorer
- MPS3
- MQTT
- MuJoCo
- MXNet
- Navigation2
- Neon
- NumPy
- Ollama
- ONNX
- ONNX Runtime
- OpenSSH
- Paddle
- Performance analysis
- picocom
- Porcupine
- Python
- PyTorch
- QEMU
- Raspberry Pi
- Reachy Mini
- Remote.It
- remoteproc-runtime
- rmw_zenoh
- ROS 2
- Runbook
- RViz
- SEGGER JLink
- SEGGER RTT
- SSH
- stlink
- STM32
- strands-agents
- systemd
- TensorFlow
- TensorRT
- tinyML
- Topo
- TorchAO
- TOSA
- Trusted Firmware
- TrustZone
- TVMC
- vcpkg
- VGF
- Visual Studio Code
- YAML
- Yocto
- Yocto Project
- Zephyr

## [New? Learn the basics of Embedded and Microcontrollers.](https://learn.arm.com/learning-paths/embedded-and-microcontrollers/intro/)

## Learning paths

- [Install tools on the command line using vcpkg](https://learn.arm.com/learning-paths/embedded-and-microcontrollers/vcpkg-tool-installation/)
- [Build a Privacy-First LLM Smart Home on Raspberry Pi 5](https://learn.arm.com/learning-paths/embedded-and-microcontrollers/raspberry-pi-smart-home/)
- [Introduction to TinyML on Arm using PyTorch and ExecuTorch](https://learn.arm.com/learning-paths/embedded-and-microcontrollers/introduction-to-tinyml-on-arm/)
- [Export and quantize SmolVLA for ONNX Runtime on Arm](https://learn.arm.com/learning-paths/cross-platform/smolvla-onnx-conversion/)
- [Deploy a Zephyr-based machine learning application on Arm Corstone-320 MPS4 with ExecuTorch](https://learn.arm.com/learning-paths/embedded-and-microcontrollers/zephyr_ml_cs320_mps4/)
- [Run MNIST on an Alif E8 Ensemble DevKit using ExecuTorch and Ethos-U85](https://learn.arm.com/learning-paths/embedded-and-microcontrollers/observing-ethos-u-on-alif/)
- [Port Zephyr RTOS and run applications on the Arm Corstone-320 MPS4 platform](https://learn.arm.com/learning-paths/embedded-and-microcontrollers/zephyr_cs320_mps4/)
- [Build embedded Linux applications on an Arm server](https://learn.arm.com/learning-paths/embedded-and-microcontrollers/rpi-mxnet/)
- [Convert uvprojx-based projects to csolution](https://learn.arm.com/learning-paths/embedded-and-microcontrollers/uvprojx-conversion/)
- [Get started with the Raspberry Pi 4](https://learn.arm.com/learning-paths/embedded-and-microcontrollers/rpi/)
- [Profile the Linux kernel with Arm Streamline](https://learn.arm.com/learning-paths/embedded-and-microcontrollers/streamline-kernel-module/)
- [Start debugging with µVision](https://learn.arm.com/learning-paths/embedded-and-microcontrollers/uv_debug/)
- [Build Zephyr projects with Workbench for Zephyr in VS Code](https://learn.arm.com/learning-paths/embedded-and-microcontrollers/zephyr_vsworkbench/)
- [Get started with Yocto Linux on Qemu](https://learn.arm.com/learning-paths/embedded-and-microcontrollers/yocto_qemu/)
- [Run Llama 3 on a Raspberry Pi 5 using ExecuTorch](https://learn.arm.com/learning-paths/embedded-and-microcontrollers/rpi-llama3/)
- [Run the Zephyr RTOS on Arm Corstone-300](https://learn.arm.com/learning-paths/embedded-and-microcontrollers/zephyr/)
- [Build a Universal Single Board Computer Rack Mount System](https://learn.arm.com/learning-paths/embedded-and-microcontrollers/universal-sbc-chassis/)
- [Build and run a letter recognition NN model on an STM32L4 Discovery board](https://learn.arm.com/learning-paths/embedded-and-microcontrollers/tflow_nn_stcube/)
- [Create an interactive shell for Zephyr RTOS on Arm Cortex-M](https://learn.arm.com/learning-paths/embedded-and-microcontrollers/zephyr_shell/)
- [Edge AI on Arm: PyTorch and ExecuTorch rock-paper-scissors](https://learn.arm.com/learning-paths/embedded-and-microcontrollers/training-inference-pytorch/)
- [Get started with Raspberry Pi Pico](https://learn.arm.com/learning-paths/embedded-and-microcontrollers/rpi_pico/)
- [Get started with Trusted Firmware-M](https://learn.arm.com/learning-paths/embedded-and-microcontrollers/tfm/)
- [Get started with TrustZone on NXP LPCXpresso55S69](https://learn.arm.com/learning-paths/embedded-and-microcontrollers/trustzone_nxp_lpc/)
- [Run a computer vision model on a Himax microcontroller](https://learn.arm.com/learning-paths/embedded-and-microcontrollers/yolo-on-himax/)
- [Visualize Ethos-U NPU performance with ExecuTorch on Arm FVPs](https://learn.arm.com/learning-paths/embedded-and-microcontrollers/visualizing-ethos-u-performance/)
- [Build and run an image classification NN model on an STM32L4 Discovery board](https://learn.arm.com/learning-paths/embedded-and-microcontrollers/img_nn_stcube/)
- [Build and run the Arm Machine Learning Evaluation Kit examples](https://learn.arm.com/learning-paths/embedded-and-microcontrollers/mlek/)
- [Migrating x86_64 workloads to aarch64](https://learn.arm.com/learning-paths/embedded-and-microcontrollers/migration/)
- [Deploy multi-network device meshes using Device Connect server and NATS](https://learn.arm.com/learning-paths/embedded-and-microcontrollers/device-connect-server/)
- [Debug Trusted Firmware-A and the Linux kernel on Arm FVP with Arm Development Studio](https://learn.arm.com/learning-paths/embedded-and-microcontrollers/linux-on-fvp/)
- [Get started with Keil Studio Cloud](https://learn.arm.com/learning-paths/embedded-and-microcontrollers/keilstudiocloud/)
- [Migrating CMSIS-Packs to CMSIS v6](https://learn.arm.com/learning-paths/embedded-and-microcontrollers/pack-migration-cmsis-v6/)
- [Migrating Projects to CMSIS v6](https://learn.arm.com/learning-paths/embedded-and-microcontrollers/project-migration-cmsis-v6/)
- [Prepare Docker image for Arm embedded development](https://learn.arm.com/learning-paths/embedded-and-microcontrollers/docker/)
- [Use Linux on the NXP FRDM i.MX 93 board](https://learn.arm.com/learning-paths/embedded-and-microcontrollers/linux-nxp-board/)
- [Add new debug targets to Arm Development Studio](https://learn.arm.com/learning-paths/embedded-and-microcontrollers/new_debug_targets_armds/)
- [Create a ChatGPT voice bot on a Raspberry Pi](https://learn.arm.com/learning-paths/embedded-and-microcontrollers/raspberry_pi_chatgpt_bot/)
- [Deploy ExecuTorch firmware on NXP FRDM i.MX 93 for Ethos-U65 acceleration](https://learn.arm.com/learning-paths/embedded-and-microcontrollers/observing-ethos-u-on-nxp/)
- [Get started with object detection using a Jetson Orin Nano](https://learn.arm.com/learning-paths/embedded-and-microcontrollers/jetson_object_detection/)
- [Implement post-quantum cryptography on Arm Cortex-M4](https://learn.arm.com/learning-paths/embedded-and-microcontrollers/pqc_pqm4/)
- [Learn how to run AI on Edge devices using Arduino Nano RP2040](https://learn.arm.com/learning-paths/embedded-and-microcontrollers/edge/)
- [Run a local LLM chatbot on a Raspberry Pi 5](https://learn.arm.com/learning-paths/embedded-and-microcontrollers/llama-python-cpu/)
- [Get started with Microcontrollers](https://learn.arm.com/learning-paths/embedded-and-microcontrollers/intro/)
- [Build NVIDIA JetPack Yocto images for Jetson Orin NX, Orin Nano, and Thor platforms](https://learn.arm.com/learning-paths/cross-platform/nvidia-jetpack-yocto-build/)
- [Build an embedded application with Rust and debug with Arm Development Studio](https://learn.arm.com/learning-paths/cross-platform/rust_armds/)
- [Deploy an MCP Server on Raspberry Pi 5 for AI agent interaction using OpenAI SDK](https://learn.arm.com/learning-paths/cross-platform/mcp-ai-agent/)
- [Memory latency for application software developers](https://learn.arm.com/learning-paths/cross-platform/memory-latency/)
- [Deploy containerized workloads to Arm-based Linux targets with Topo](https://learn.arm.com/learning-paths/cross-platform/deploy-containerized-workloads-with-topo/)
- [Access remote devices with Remote.It](https://learn.arm.com/learning-paths/cross-platform/remoteit/)
- [Run custom software for simulation with Arm IP Explorer](https://learn.arm.com/learning-paths/cross-platform/ipexplorer/)
- [Build a CI/CD pipeline using GitLab-hosted Arm runners](https://learn.arm.com/learning-paths/cross-platform/gitlab-managed-runners/)
- [Build a CI/CD pipeline with GitLab on Google Axion](https://learn.arm.com/learning-paths/cross-platform/gitlab/)
- [Deploy an AWS IoT Greengrass custom component to Arm devices and verify PAC/BTI support](https://learn.arm.com/learning-paths/cross-platform/aws-greengrass-pacbti-test/)
- [Inspect model artifacts and runtime profiles with Google Model Explorer and Arm extensions](https://learn.arm.com/learning-paths/cross-platform/explore-model-artifacts-with-model-explorer/)
- [Deploy a machine learning application to the Arm Ethos-U65 NPU on NXP FRDM i.MX 93 with Topo](https://learn.arm.com/learning-paths/embedded-and-microcontrollers/deploy-ml-model-to-npu-with-topo/)
- [Create and deploy a custom Topo Project](https://learn.arm.com/learning-paths/cross-platform/create-your-own-topo-project/)
- [Run a local AI agent with Ollama to visualize CPU orchestration on Arm](https://learn.arm.com/learning-paths/cross-platform/ai-agent-cpu-orchestration/)
- [Create an Armv8-A embedded application](https://learn.arm.com/learning-paths/embedded-and-microcontrollers/bare-metal/)
- [Deploy IoT applications with Balena Cloud and Arm Virtual Hardware](https://learn.arm.com/learning-paths/embedded-and-microcontrollers/avh_balena/)
- [Build an RTX5 RTOS application with Keil Studio (VS Code)](https://learn.arm.com/learning-paths/embedded-and-microcontrollers/cmsis_rtx_vs/)
- [Build an RTX5 RTOS application with Keil μVision](https://learn.arm.com/learning-paths/embedded-and-microcontrollers/cmsis_rtx/)
- [Deploy firmware on hybrid edge systems using containers](https://learn.arm.com/learning-paths/embedded-and-microcontrollers/cloud-native-deployment-on-hybrid-edge-systems/)
- [Deploy IoT applications with AWS IoT Greengrass and Arm Virtual Hardware](https://learn.arm.com/learning-paths/embedded-and-microcontrollers/avh_greengrass/)
- [Design an AXI-Lite peripheral to control GPIOs](https://learn.arm.com/learning-paths/embedded-and-microcontrollers/advanced_soc/)
- [Device-to-Device communication with Device Connect](https://learn.arm.com/learning-paths/embedded-and-microcontrollers/device-connect-d2d/)
- [Run image classification on an Alif Ensemble E8 DevKit using ExecuTorch and Ethos-U85](https://learn.arm.com/learning-paths/embedded-and-microcontrollers/alif-image-classification/)
- [Build IoT Solutions in Azure for Arm Devices](https://learn.arm.com/learning-paths/embedded-and-microcontrollers/azure-iot/)
- [Embedded programming with Arduino on the Raspberry Pi Pico](https://learn.arm.com/learning-paths/embedded-and-microcontrollers/arduino-pico/)
- [Get started with Arm Development Studio](https://learn.arm.com/learning-paths/embedded-and-microcontrollers/armds/)
- [Get started with Keil MDK Code Coverage](https://learn.arm.com/learning-paths/embedded-and-microcontrollers/coverage_mdk/)
- [Getting started with CMSIS-DSP using Python](https://learn.arm.com/learning-paths/embedded-and-microcontrollers/cmsisdsp-dev-with-python/)
- [Learn about context switching on Arm Cortex-M processors](https://learn.arm.com/learning-paths/embedded-and-microcontrollers/context-switch-cortex-m/)
- [Write Arm Assembler functions](https://learn.arm.com/learning-paths/embedded-and-microcontrollers/asm/)
- [Build an edge AI Reachy Mini app with Raspberry Pi, MediaPipe, and MuJoCo](https://learn.arm.com/learning-paths/cross-platform/build-a-reachy-robot-app-on-pi/)
- [Build multi-architecture container images with Docker Build Cloud](https://learn.arm.com/learning-paths/cross-platform/docker-build-cloud/)
- [Learn about function multiversioning](https://learn.arm.com/learning-paths/cross-platform/function-multiversioning/)
- [Learn how to use Docker](https://learn.arm.com/learning-paths/cross-platform/docker/)
- [Build multi-architecture container images with GitHub Arm-hosted runners](https://learn.arm.com/learning-paths/cross-platform/github-arm-runners/)
- [Write a Dynamic Memory Allocator](https://learn.arm.com/learning-paths/cross-platform/dynamic-memory-allocator/)
