A structured roadmap and resource guide for engineers entering embedded systems. From first principles to industry-level expertise — hardware, MCU, Linux BSP, and automotive.
Most resources for embedded engineering are scattered — a YouTube video here, a datasheet there, a Reddit thread someone bookmarked. There is no single place that maps the full territory, explains how domains relate, and tells you what to learn in which order.
Embedded Atlas is that place.
It is not a tutorial. It is a map — structured, opinionated, and built from real engineering experience across hardware bring-up, Linux BSP, automotive electronics, and Edge AI. Whether you are a CS graduate entering the field, a hobbyist moving into professional work, or an experienced engineer switching domains — this atlas helps you navigate.
Built by a Lead ARAS Engineer who has worked across BSP, AAOS, OpenCV, and automotive embedded systems at the founding level. The content comes from the field, not from textbooks.
Embedded systems engineering is not one discipline — it is four overlapping domains, each with its own depth and career path.
┌──────────────────────────────────────────────────────────────────────┐
│ EMBEDDED SYSTEMS │
│ │
│ ┌────────────┐ ┌─────────────┐ ┌───────────┐ ┌──────────┐ │
│ │ Hardware │ │ MCU / │ │ Linux │ │ Auto- │ │
│ │Electronics │ │ Firmware │ │ BSP │ │ motive │ │
│ │ │ │ │ │ │ │ │ │
│ │ Schematics │ │ Bare metal │ │ Drivers │ │ CAN bus │ │
│ │ PCB layout │ │ RTOS │ │ Yocto │ │ AUTOSAR │ │
│ │ Bring-up │ │ Peripherals │ │ DTS/DTSI │ │ ISO26262 │ │
│ └────────────┘ └─────────────┘ └───────────┘ └──────────┘ │
│ │
│ ── All domains share these foundations ── │
│ C Programming · Toolchain · Git · Electronics │
└──────────────────────────────────────────────────────────────────────┘
New to embedded systems? Start with foundations. Do not jump into a domain until the fundamentals are solid.
Already have experience? Pick your domain directly and use the roadmap to identify gaps.
| Your situation | Where to go |
|---|---|
| New to embedded, never written firmware | 00 · Foundations |
| Know C, want to work on hardware | 03 · Hardware |
| Know C, want to write firmware | 01 · Microcontroller |
| Know Linux, want to write drivers | 02 · Linux BSP |
| Working in or targeting automotive | 04 · Automotive |
| Want cross-domain depth | 05 · Cross-Domain |
| Looking for project ideas | Projects |
| Preparing for interviews | Interviews |
Before picking a domain — skills every embedded engineer must have
| Topic | Status | What you learn |
|---|---|---|
| Electronics Basics | 🚧 In Progress | Ohm's law → digital logic → signal fundamentals |
| C for Embedded | 🚧 In Progress | Pointers, memory layout, bitwise ops, volatile, const |
| Toolchain | 📋 Planned | GCC, Make, GDB, objdump, linker scripts |
| Version Control | 📋 Planned | Git for hardware + software teams |
Embedded software without an OS — the foundation of all embedded work
| Topic | Status | What you learn |
|---|---|---|
| Roadmap | 🚧 In Progress | Structured path from beginner to advanced |
| Bare Metal | 📋 Planned | Register access, startup code, linker scripts |
| RTOS | 📋 Planned | FreeRTOS, Zephyr — tasks, queues, semaphores |
| Peripherals | 📋 Planned | UART, SPI, I2C, CAN, USB, ADC/DAC |
| Debugging | 📋 Planned | JTAG, SWD, OpenOCD, GDB, logic analyzer |
| Resources | 📋 Planned | Books, courses, recommended dev boards |
Board Support Package — bringing Linux to custom hardware
| Topic | Status | What you learn |
|---|---|---|
| Roadmap | 🚧 In Progress | Structured path from beginner to advanced |
| Kernel Basics | 📋 Planned | Architecture, compilation, Kconfig, menuconfig |
| Device Drivers | 📋 Planned | Character, platform, I2C, SPI, interrupt drivers |
| Device Tree | 📋 Planned | DTS/DTSI from scratch, bindings, overlays |
| Yocto | 📋 Planned | Custom Linux distro for your board |
| Debugging | 📋 Planned | kgdb, ftrace, perf, dmesg, serial console |
| Resources | 📋 Planned | Books, kernel.org docs, community |
PCB design, board bring-up, and test equipment
| Topic | Status | What you learn |
|---|---|---|
| Roadmap | 📋 Planned | Structured path from beginner to advanced |
| Schematic Design | 📋 Planned | Reading and drawing schematics with KiCad |
| PCB Design | 📋 Planned | Layout rules, stackup, design for manufacturing |
| Signal Integrity | 📋 Planned | High-speed design, impedance, EMC basics |
| Board Bring-Up | 📋 Planned | Power sequencing, first boot, systematic debugging |
| Test Equipment | 📋 Planned | Oscilloscope, logic analyzer, DMM, JTAG probe |
| Resources | 📋 Planned | Books, courses, simulators, reference designs |
CAN bus, AUTOSAR, functional safety, Android Automotive
| Topic | Status | What you learn |
|---|---|---|
| Roadmap | 🚧 In Progress | Structured path from beginner to advanced |
| CAN Bus | 🚧 In Progress | CAN, CAN-FD, LIN, FlexRay — protocol to implementation |
| AUTOSAR | 📋 Planned | Classic and Adaptive AUTOSAR architecture |
| Functional Safety | 📋 Planned | ISO 26262, ASIL levels, safety lifecycle |
| AAOS | 📋 Planned | Android Automotive OS — HAL, VHAL, integration |
| ADAS | 📋 Planned | Sensors, perception, safety-critical RTOS |
| Resources | 📋 Planned | Standards, tools, simulators, community |
Depth that every embedded engineer needs regardless of specialization
| Topic | Status | What you learn |
|---|---|---|
| Communication Protocols | 📋 Planned | UART, SPI, I2C, USB, Ethernet — the full picture |
| Power Management | 📋 Planned | Low-power design, sleep modes, power rail sequencing |
| OTA Updates | 📋 Planned | Firmware update strategies, rollback, A/B partitions |
| Embedded Security | 📋 Planned | Secure boot, TrustZone, HSM, code signing |
| Testing | 📋 Planned | Unit testing, HIL, static analysis, CI for embedded |
Three common journeys through the atlas — pick the one closest to your situation.
Path A — Complete Beginner → BSP Engineer
Foundations (2–3 months) → Electronics, C, toolchain, git
Microcontroller (2–3 months) → Bare metal, RTOS, peripherals
Linux fundamentals (1–2 months) → File system, processes, shell
Linux BSP (6–12 months) → Drivers, DTS, Yocto, debugging
Automotive (optional)(ongoing) → CAN, AAOS, functional safety
Path B — Software Engineer → Embedded Systems
Electronics basics (1 month) → Circuits, signals, power
C for embedded (1 month) → Memory, pointers, bitops
MCU + RTOS (2–3 months) → Bare metal, FreeRTOS
Domain choice (6–12 months) → BSP or Automotive
Path C — Hardware Engineer → Full-Stack Embedded
C programming (1–2 months) → Embedded C patterns
Bare metal firmware (2 months) → Register-level programming
Linux BSP (6 months) → Drivers, device tree, Yocto
Cross-domain skills (ongoing) → Security, OTA, testing
Actively being built — content added weekly.
| Domain | Topics | Progress |
|---|---|---|
| 00 · Foundations | 4 | 🟩🟩⬜⬜⬜⬜⬜⬜⬜⬜ 25% |
| 01 · Microcontroller | 6 | 🟩⬜⬜⬜⬜⬜⬜⬜⬜⬜ 10% |
| 02 · Linux BSP | 6 | 🟩⬜⬜⬜⬜⬜⬜⬜⬜⬜ 15% |
| 03 · Hardware | 6 | ⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜ 0% |
| 04 · Automotive | 6 | 🟩🟩⬜⬜⬜⬜⬜⬜⬜⬜ 20% |
| 05 · Cross-Domain | 5 | ⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜ 0% |
| Projects | 3 levels | ⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜ 0% |
| Interviews | 4 domains | ⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜ 0% |
Status legend: ✅ Complete 🚧 In Progress 📋 Planned
Embedded-Atlas/
│
├── 00_foundations/ ← start here
│ ├── electronics_basics.md
│ ├── c_programming.md
│ ├── toolchain.md
│ └── version_control.md
│
├── 01_microcontroller/
│ ├── roadmap.md
│ ├── bare_metal.md
│ ├── rtos.md
│ ├── peripherals.md
│ ├── debugging.md
│ └── resources.md
│
├── 02_linux_bsp/
│ ├── roadmap.md
│ ├── kernel_basics.md
│ ├── device_drivers.md
│ ├── device_tree.md
│ ├── yocto.md
│ ├── debugging.md
│ └── resources.md
│
├── 03_hardware/
│ ├── roadmap.md
│ ├── schematic.md
│ ├── pcb_design.md
│ ├── signal_integrity.md
│ ├── bring_up.md
│ ├── test_equipment.md
│ └── resources.md
│
├── 04_automotive/
│ ├── roadmap.md
│ ├── can_bus.md
│ ├── autosar.md
│ ├── functional_safety.md
│ ├── aaos.md
│ ├── adas.md
│ └── resources.md
│
├── 05_cross_domain/
│ ├── protocols.md
│ ├── power_management.md
│ ├── ota_updates.md
│ ├── security.md
│ └── testing.md
│
├── projects/
│ ├── beginner.md
│ ├── intermediate.md
│ └── advanced.md
│
├── interviews/
│ ├── hardware.md
│ ├── mcu.md
│ ├── bsp.md
│ └── automotive.md
│
├── assets/ ← diagrams, banner, screenshots
├── CONTRIBUTING.md
├── LICENSE
└── README.md
Domain knowledge from the field beats anything written from documentation alone. If you have experience, a better resource, a missing topic, or a correction — open a PR.
The one rule: every entry needs a WHY. A link without context is not documentation. Explain what it teaches and why it belongs here.
# Fork → clone → branch
git checkout -b content/your-topic
# Add content, then open a PR against mainSee CONTRIBUTING.md for content style, structure, and the review process.
Abdul Sattar — Lead ARAS Engineer Founding engineer building India's first Advanced Rider Assistance System for 2-wheelers. Working across Linux BSP · AAOS · OpenCV · Automotive Embedded Systems.
MIT — see LICENSE for details. Free to use, share, and build upon. If this helped you, a ⭐ or a contribution back is appreciated.
Embedded systems is one of the most technically demanding and rewarding fields in engineering.
This atlas exists to make the path clearer.