explaingit

nhivp/awesome-embedded

8,541Audience · developerComplexity · 1/5Setup · easy

TLDR

A curated reference list of tutorials, tools, and learning resources for embedded systems programming, covering microcontrollers, RTOS, Linux kernel, and more, no code, just links.

Mindmap

mindmap
  root((awesome-embedded))
    Topics
      Microcontrollers
      RTOS
      Linux kernel
      Assembly
    Platforms
      STM32
      Raspberry Pi
      ESP8266
      BeagleBone
    Resource types
      Tutorials
      Course materials
      Interview prep
    Audience
      Beginners
      Embedded engineers
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Find structured tutorials and guides when learning embedded C programming for microcontrollers like STM32 or ESP8266.

USE CASE 2

Prepare for embedded systems engineering job interviews using the curated interview prep section.

USE CASE 3

Discover resources for writing Linux kernel device drivers or bootloaders for embedded hardware platforms.

Tech stack

CAssemblySTM32ESP8266Raspberry PiLinux

Getting it running

Difficulty · easy Time to first run · 5min

In plain English

Awesome-Embedded is a curated reference list for people learning or working in embedded systems programming. Embedded systems are the small computers built into devices like microcontrollers, automotive control units, routers, and industrial equipment. Programming them is a specialized discipline that differs considerably from typical application or web development, and this list collects learning resources, tutorials, tools, and example projects across the field. The list is organized into sections covering a wide range of topics. These include interview preparation for embedded engineering jobs, general C programming concepts specific to hardware-constrained environments, programming guides for specific microcontroller families like STM32, ESP8266, MSP430, and TM4C123, single-board computers like Raspberry Pi and BeagleBone, real-time operating systems, Linux kernel and device driver development, bootloaders, compiler toolchains, assembly language, and more. There are also sections for automotive standards, embedded graphical interfaces, and machine learning on microcontrollers. Each entry links to an external resource: documentation pages, GitHub repositories, university course materials, blog posts, or PDFs. The goal is to give someone entering embedded development a structured map of what exists, rather than having to discover everything by searching independently. The repository does not contain runnable code itself. It is a README-based list with no programming language of its own. Contributions are accepted via pull requests for anyone who wants to add a resource that fits the scope. The full README is longer than what was shown.

Copy-paste prompts

Prompt 1
I'm starting embedded systems programming with STM32. Using the nhivp/awesome-embedded list as a guide, build me a 4-week learning plan with the most important resource for each week.
Prompt 2
Based on the awesome-embedded list, what are the best resources for learning real-time operating systems on microcontrollers, and what order should I follow them?
Prompt 3
Using the awesome-embedded reference list, create a study plan for someone preparing for embedded Linux kernel driver development interviews.
Open on GitHub → Explain another repo

← nhivp on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.