Awesome-Embedded
A curated list of awesome embedded programming.
This page lists names, links and short descriptions. The original list on GitHub is the source and belongs to its authors.
Interview
Coding Interview University
A complete computer science study plan to become a software engineer.
Embedded Software Skill
Common
Modern Embedded Systems Programming Course
Learn from the basics to modern embedded programming practice.
MCU programming >General
McuOnEclipse
Everything about Eclipse, microcontrollers, software and tools.
MCU programming >Bare-metal programming (Don't need MCU)
Simplest bare metal program for ARM
(table of content)
Bare metal programming guide
a detailed guide for beginners
Real-Time C++
companion bare-metal code to Real-Time C++ book.
hypervisor
ARM64 Type-1 bare-metal hypervisor in no_std Rust, runs at EL2 on QEMU virt, boots Linux with FF-A v1.1 SPMC.
MCU programming >MSP430
CS4101: Introduction to Embedded Systems
The course is designed around labs, using TI MSP430 LaunchPad and Arduino Uno to discuss concepts such as basic I/O, timing and clocking, interrupt handling, serial communication, embedded operating systems, synchronization, etc.
msp430-template
A template for MSP430 firmware.
MCU programming >TM4C123
FreeRTOS-GCC-tm4c123glx
A port of FreeRTOS to the Texas Instruments Tiva TM4C123GLX Launchpad.
Stellaris_TM4C123G_GCC_Template
Texas Instruments template project for the TM4C123 series using GNU toolchain.
tm4c-gcc
TM4C123 GCC project template.
tivaapps
Example hello-world apps for Texas Instruments TI-RTOS for Tiva C using a Linux host
Drivers and examples
Drivers for internal peripherals and external modules for Tiva C, examples of FreeRTOS features under development/FreeRTOS
MCU programming >MSP432
Real-Time Bluetooth Networks - UTAustinX
Learn the design fundamentals of a real-time operating system (RTOS) and how to build a Bluetooth network in this hands-on project-based course.
MCU programming >STM32
Lightweight USB device Stack for STM32 microcontrollers
Lightweight USB device Stack for STM32 microcontrollers.
Standalone TCP/IP stack for STM32, bare metal or RTOS
is a networking library for C/C++. It implements event-driven non-blocking APIs for TCP, UDP, HTTP, WebSocket, MQTT. It is designed for connecting devices and bringing them online.
stm32-hid-bootloader
Driverless USB HID bootloader and flashing tool for STM32F10X devices
stm32l1xx-template
A template for building firmware for the STM32L1xx.
stm32f103
Bare metal programming on a generic STM32F103c8 board
stm32f4xx with Rust at the HAL
A series of tutorials for building STM32F4xx applications with Rust.
stm32-rf-scanner
STM32 and nRF24L01+ based 2.4GHz RF scanner
stm32-dc-dc
STM32 based DC-DC converter
rustlink
small set of Rust tools to program STM32 devices
stm32-async-1wire
Non-blocking, register-level 1-Wire master for STM32 (DS18B20 temperature driver on top). Hardware-timed (TIM1+DMA, DMAMUX on G0), interrupt-free, RTOS-agnostic; header-only backends for STM32F1/F0/G0; hardware-validated on Blue Pill (F103) and STM32G031; strong-pull-up parasite powering; released…
SD Card OVID Player
STM32F103 SD card frame-video player for SSD1306/SH1106 OLED, with FatFs file browsing and a Windows media converter.
MCU programming >STM32F7
MCU programming >STM8
stm8-bare-min
Tiny peripheral library for STM8S
stm8-bootloader
Serial bootloader for STM8S microcontrollers
stm8-multi-tasker
STM8-Multi-Tasker - Preemptive/Cooperative Round Robin Scheduler for STM8
STM8S001J3_tiny_board
A tiny dev board for STM8S001J3 MCU designed in KiCad.
MCU programming >ESP8266
Sming - ESP8266/ESP32 IoT Framework
Sming is an asynchronous C/C++ framework with superb performance and multiple network features. Sming is open source and is tailored towards embedded devices.
Raspberry
Raspberry Pi Bare Metal
& related link
Bare metal Raspberry Pi 3 tutorials
Bare metal Raspberry Pi 3 tutorials
Baking Pi – Operating Systems Development
by University of Cambridge
elinux: Raspberry Pi Programming
or elinux: RPi Hub
Learning operating system development using Linux kernel and Raspberry Pi
Learning operating system development using Linux kernel and Raspberry Pi
64-bit Tiano Core UEFI for the Raspberry Pi 3
DEPRECATED - DO NOT USE | Go here instead ->
ARM-episodes
& ARM exploitation for IoT
PiSpot-Show
A Raspberry Pi captive portal that creates a WiFi hotspot displaying a customizable web page to connected users using hostapd, dnsmasq, and nginx.
Beaglebone
BBB-BareMetal
Works on the beaglebone black (bare metal)
Bare Metal on the BeagleBone (Black and Green)
& link1 + Link2
bbb-asm-demo
Extremely tiny baremetal application for BeagleBone Black
Linux kernel and device driver development
Linux inside
A little bit about a linux kernel
eBook: Linux Drivers
or Slides: Linux Drivers
c-periphery
A C library for peripheral I/O (GPIO, SPI, I2C, MMIO, Serial) in Linux.
Linux Kernel Exploitation
A bunch of links related to Linux kernel exploitation
Minimal Linux Live
a tiny educational Linux distribution
Yocto Project
Create custom Linux-based systems regardless of the hardware architecture.
Buildroot
Simple, efficient and easy-to-use tool to generate embedded Linux systems through cross-compilation.
Assembly
RTOS
List of open source real-time operating systems
A list of open source Real Time Operating Systems (RTOS). Licence: CC BY-SA 3.0.
ROS
The Robot Operating System (ROS) is a flexible framework for writing robot software. It is a collection of tools, libraries, and conventions that aim to simplify the task of creating complex and robust robot behavior across a wide variety of robotic platforms.
FreeRTOS
is an open source, real-time operating system for microcontrollers that makes small, low-power edge devices easy to program, deploy, secure, connect, and manage.
FreeRTOS - Explanation
overiview.
mini-arm-os & qemu with a stm32
or here - Build a minimal multi-tasking OS kernel for ARM Cortex-M series from scratch
Writing a simple operating system from scratch
by Nick Blundell
High performance motor control
The aim is to make it possible to use inexpensive brushless motors in high performance robotics projects.
MINIX3: Open source RTOS
Minix® is a POSIX®-compliant Unix-like computer operating system based on a microkernel architecture. In 2017 it was learned that Intel™ used a version of MINIX on many of its x86-series processors, perhaps making it the most popular Unix-like operating system .
30 Days make OS
> YOS @Yannik
object-oriented C++ RTOS for microcontrollers
Object-oriented C++ RTOS for microcontrollers.
RT-Thread is an open source IoT operating system from China.
RT-Thread was born in 2006, it is an open source, neutral, and community-based real-time operating system (RTOS). RT-Thread has Standard version and Nano version. For resource-constrained microcontroller (MCU) systems, the NANO kernel version that requires only 3KB Flash and 1.2KB RAM memory…
How to create an OS from scratch
How to create an OS from scratch
AliOS-Things
AliOS Things released by Alibaba is an open-source implementation of operating system (OS) for Internet of Things (IoT).
CoRTOS
& CoRTOS Simple Cooperative RTOS - An open source minimalist RTOS.
TNKernel
a compact and very fast real-time kernel for the embedded 32/16/8 bits microprocessors.
Femto OS
a very concise portable real time - preemptive operating system (RTOS) for embedded microcontrollers with minimal ram and flash, say 2KB .. 16KB flash and 128 .. 1024 bytes ram.
Real-Time Kernel '0'
A lean, highly deterministic, low-latency real-time kernel for ARMv6/7M.
Automotive
automotive software(OSEK & AUTOSAR)
Because I am not powerful so I decided to develop tiny but smart part of automotive software based on open source, and create a general AUTOSAR & Automotive Software study environment.
BlackFlag ECU
Automotive CAN bus security testing and analysis tool for ECU research, fuzzing, and reverse engineering of vehicle communication protocols.
OS
ucLinux
The Embedded Linux/Microcontroller project is a port of Linux to systems without a Memory Management Unit (MMU).
The little book about OS development
by Erik Helin and Adam Renberg
Writing a simple operating system from scratch
by Nick Blundell
JamesM's kernel development tutorials
by James Molloy
Bare Bones
a simple kernel for 32-bit x86 and boot it.
Operating System Development Series
OS from the ground up in C
A simple OS kernel for research, teaching, and fun
A simple OS kernel for research, teaching, and fun
WindowCE
Compiler
Bootloader
OpenBLT
an open source and portable bootloader for microcontrollers.
Writing a Bootloader Part 1
by Alex Parker
can-bootloader
The bootloader used to flash our CAN-connected boards
Makefile
Peripheral >Memory Protection Unit
Peripheral >USB
tinyusb
An open source USB stack for a variety of Embedded Systems.
Others
Embedded System programming
Diving into Syllabus for investigation.
ARM Edition
Sparky ARM Edition is a Sparky version created for a single board mini computer RaspberryPi.
The gem5 Simulator
is a well-known sophisticated simulator used for computer system research at both architecture and micro-architecture levels. Main page is here.
Advanced fault backtrace library for ARM Cortex-M series MCU
Advanced fault backtrace library for ARM Cortex-M series MCU | ARM Cortex-M 系列 MCU 错误追踪库
mcu-starter-projects
Simple starter projects for bare-metal MCU development.
DirtyJTAG
JTAG adapter firmware for STM32F1
Generic_MCU_Software_Infrastructure
Provide necessary software infrastructure, service, macros to support some high level abstract concept or paradigm, such as OOPC, FSM, delegate (event-driven) and etc.
A C++ template library for embedded applications
Embedded Template Library where the user can declare the size, or maximum size of any object upfront.
Embedded rework of C++ STL
basic_string, basic_ostream etc. leaned way down. Cross platform (including AVR).
RAMEN 🍜
flow-based programming implemented in a simple single-header unopinionated library.
Embedded GUI Development
Embedded Wizard
Sophisticated GUI for Your Embedded Platform
lvgl
Graphics library to create an embedded GUI with easy-to-use graphical elements, beautiful visual effects and low memory footprint. It offers anti-aliasing, opacity, and animations using only one frame buffer.
Machine Learning & AI on MCU
nnom
A higher-level Neural Network library for microcontrollers.
Embedded Learning Library (ELL)
Microsoft's library to deploy intelligent machine-learned models onto resource constrained platforms and small single-board computers.
Qualcomm Neural Processing SDK for AI
Libraries to developers run NN models on Snapdragon mobile platforms taking advantage of the CPU, GPU and/or DSP.
CMSIS NN
A collection of efficient neural network kernels developed to maximize the performance and minimize the memory footprint of neural networks on Cortex-M processor cores.
ARM Compute Library
Set of optimized functions for image processing, computer vision, and machine learning.
uTensor
AI inference library based on mbed (an RTOS for ARM chipsets) and TensorFlow.
EmbededAI
A library that provides elements of AI to C++ applications.
m2cgen
A CLI tool which allows to transpile trained classic ML models into a native code of various programming languages with zero dependencies including C.
nn2
Tiny zero-dependency neural network inference engine in pure C with hand-written SIMD kernels (AVX-512 / AVX2 / NEON). Runs the FaceX face recognition stack on Apple Silicon, ARM SBCs and ESP32-P4. Apache 2.0.
edge-agents (ForestHub)
Open-source (AGPL-3.0) 30 MB AI agent runtime for edge devices. Offline by default; GPIO/UART/MQTT as first-class nodes; local SLMs alongside cloud LLMs. Runs on Raspberry Pi 5, Jetson Orin Nano, STM32MP25, ctrlX CORE.
TiGrIS
Ahead-of-time compiler that tiles ONNX models to fit microcontrollers with fixed RAM and flash budgets, executed by a dependency-free C runtime.
voicute
Lightweight keyword spotting and wake word detection engine for ESP32 with INT8 quantization (~74KB per keyword), multi-language support including Chinese, and cross-platform ONNX Runtime inference.
Utilities
Jumpstarter
Open source hardware-in-the-loop testing framework for automated testing on real and virtual embedded hardware with CI/CD integration.
flashgate
Hardware-in-the-loop verification gate for AI coding agents: build, flash over ST-Link, then assert the board's boot banner, SWD RAM signature and console-probe register readbacks before "done" is accepted. Ships as a Claude Code plugin (Stop hook + MCP server).
EmbedEval
Benchmark that measures how well LLMs write embedded firmware. 233 cases across Zephyr, ESP-IDF, STM32 HAL, FreeRTOS, Linux drivers and Yocto, verified through static checks, SDK compilation, runtime execution and mutation testing.
mspdebug
Debugging tool for MSP430 MCUs
pycs
Python Based ARM CoreSight Debug and Trace Tools
NaiveSystems Analyze
Static Analysis Tool for Code Security and Compliance
CRA Kit SBOM
Zero-dependency CI script that reads Zephyr, Yocto, Buildroot, PlatformIO, ESP-IDF and STM32Cube build manifests and emits CycloneDX SBOMs.
Serial Studio
Visualize, analyze and stream over the internet data generated by your MCU project
Scrutiny Debugger
An open source debugging, visualization and testing tool for C/C++ embedded applications that works through instrumentation.
MemBrowse
Memory footprint tracking for ELF binaries with CLI and CI integration to monitor flash/RAM usage across commits.
aem-modbus-simulator
Open-source Python Modbus RTU/TCP slave simulator emulating an industrial DC voltage monitor (147 holding registers, 6 baudrates). Lets SCADA/PLC firmware engineers test Modbus integration in CI pipelines without physical hardware on the bench.
memprobe.dev
ELF firmware analysis as a web app, CLI, and GitHub Action. Break down flash and RAM usage by section, file, library, and symbol, compare builds, track project history and memory growth over time, and set CI size budgets.
SiliconRig
Cloud-hosted embedded boards (ESP32-S3, STM32, RP2350) for remote flashing, serial console, and hardware-in-the-loop testing in CI. Open-source CLI, Python SDK, and GitHub Action.
Velxio
Fully local, open source Arduino simulator with real AVR8, RP2040 and ESP32 emulation, a visual circuit canvas and an in-browser code editor. Runs in the browser or self-hosted via Docker.
BARR-C Enforcement Kit
Drop-in clang-format and clang-tidy configurations, compiler warning gates, a one-command conformance check and ready-made CI enforcing BARR-C, Barr Group's Embedded C Coding Standard for firmware.
Tips & tricks
Tech blogs
What Every Programmer Should Know About Memory
by Ulrich Drepper [pdf]
Embedsys weekly newsletter
. A weekly selection of embedded software and hardware articles.
EdgeLog
Embedded and edge AI engineering notes, with measurements from running LLMs and agents against real hardware.
FAQ_Embedded
Looking for more lists like this?
awesome-c
A curated list of awesome C frameworks, libraries and software.
Curated list of project-based tutorials
Programming tutorials to build an application from scratch.
Curated list of awesome lists
A list of SaaS, PaaS and IaaS offerings that have free tiers of interest to devops and infradev
A curated list of awesome Raspberry Pi tools, projects, images and resources
by @thibmaek – Raspberry Pi tools, projects, images and resources
awesome-embedded-systems
Awesome list of embedded programming resources.
awesome-embedded-rust
Curated list of resources for Embedded and Low-level development in the Rust programming language.
BOOKs
Embedded Software with Rust
A practical introduction to building firmware that is fast, efficient, and far safer than traditional embedded software written in C or C++.
Related lists in Platforms
See categoryAwesome Mac
jaywcjlove/awesome-mac
This project is dedicated to collecting high-quality macOS software and organizing them systematically by different categories for easy search and use.
Open Source Mac Os Apps
serhii-londar/open-source-mac-os-apps
🚀 Awesome list of open source applications for macOS. https://t.me/s/opensourcemacosapps
Awesome-Kubernetes
ramitsurana/awesome-kubernetes
A curated list for awesome kubernetes sources :ship::tada:
Awesome Nodejs
sindresorhus/awesome-nodejs
:zap: Delightful Node.js packages and resources [BECAUSE OF TOO MUCH SPAM AND LOW-QUALITY SUBMISSIONS, SUBMISSIONS ARE PAUSED TEMPORARILY]
Awesome Home Assistant
frenck/awesome-home-assistant
A curated list of amazingly awesome Home Assistant resources.
Awesome Ios
vsouza/awesome-ios
A curated list of awesome iOS ecosystem, including Objective-C and Swift Projects