Skip to content

A4sa/Embedded-Atlas

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

18 Commits
Β 
Β 

Repository files navigation

πŸ—ΊοΈ Embedded Atlas

A structured roadmap and resource guide for engineers entering embedded systems. From first principles to industry-level expertise β€” hardware, MCU, Linux BSP, and automotive.


License: MIT Contributions Welcome Stars Last Commit


πŸ“– Docs Website Β Β·Β  πŸš€ Start Here Β Β·Β  πŸ—‚οΈ Domains Β Β·Β  🀝 Contribute


Why Embedded Atlas?

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.


πŸ—‚οΈ The Four Domains

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             β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸš€ Start Here

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

πŸ“š Domains

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

πŸ—ΊοΈ Learning Paths

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

πŸ“Š Content Progress

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


πŸ—οΈ Repository Structure

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

🀝 Contributing

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 main

See CONTRIBUTING.md for content style, structure, and the review process.


πŸ‘€ Author

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.

GitHub LinkedIn Medium Dev.to


πŸ“„ License

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.

About

🎯 Embedded System Engineer Roadmap

Topics

Resources

Stars

8 stars

Watchers

1 watching

Forks

Contributors