📡 Module 0 🟡 Foundational ⏱ 45–60 min

Core Concepts &
Developer Toolkit

From RTOS and SDKs to the actual software you’ll install —the complete vocabulary and toolchain every embedded systems and IoT developer needs before writing a single line of firmware.

🎯 What You’ll Understand
What an RTOS, SDK, IDE, and Framework actually are
FreeRTOS vs Zephyr, and when to choose each
How OTA updates work end to end
Why PlatformIO replaced manufacturer-specific IDEs
The complete tool list: Git, ST-Link, Wireshark, WSL2
How every concept and tool connects to the others
1Part 1 — Core Concepts

Why These Concepts Matter

Before writing firmware for any real device, you’ll constantly run into a specific set of terms —RTOS, SDK, IDE, Framework, OTA —used almost interchangeably in tutorials, datasheets, and job postings, even though they mean very different things. Getting them straight in your head first makes everything that follows click much faster.

⚙️

RTOS

The operating system that schedules tasks on the microcontroller itself.

🧱

SDK

The full toolbox of compilers, libraries, and utilities for a target platform.

💻

IDE

The application you actually sit in front of to write, build, and debug.

🔌

Framework

Reusable code and APIs sitting between your app and the raw hardware.

This document is organized in two parts: Part 1 defines the foundational concepts in the abstract —what an RTOS, SDK, IDE, and Framework actually are, regardless of vendor. Part 2 then walks through the concrete, real-world tools you’ll install —VS Code, PlatformIO, ESP-IDF, STM32CubeIDE, and more —each one a specific instance of a concept from Part 1.

2Part 1 — Core Concepts

RTOS — Real-Time Operating System

An RTOS is an operating system designed to execute tasks within predictable timing constraints. Unlike a general-purpose OS, which optimizes for overall throughput, an RTOS focuses on meeting deadlines —making sure the most time-critical task always runs when it needs to.

Imagine a microcontroller that must simultaneously read a temperature sensor, control a motor, handle Wi-Fi communication, and update an LCD display.

✗ Without an RTOS — sequential, blocking Task 1 (sensor read) Task 2 (motor control) Task 3 (Wi-Fi) If Task 2 runs long, Task 3 must simply wait. ✓ With an RTOS — scheduled, predictable Scheduler Task A Task B Task C The scheduler decides which task runs, and when — guaranteeing deadlines are met.

Without scheduling, a slow task blocks everything behind it. An RTOS scheduler ensures critical tasks always get their turn.

Main Features

  • Task scheduling and multitasking
  • Task priorities
  • Timers, semaphores, and queues
  • Interrupt handling integrated with the scheduler

Where RTOS Shows Up

🏥

Medical Devices

Missed deadlines aren’t just bugs —they're safety incidents.

🏭

Industrial Automation

Coordinating sensors and actuators on a tight, predictable cycle.

🚗

Automotive Systems

Braking, airbags, and engine control all depend on guaranteed timing.

🦎

Drones & Robotics

Flight stability requires control loops that never miss a beat.

💡
One-Line Definition
An RTOS manages multiple tasks while ensuring critical tasks meet their timing requirements.
3Part 1 — Core Concepts

FreeRTOS

FreeRTOS is a lightweight, open-source RTOS purpose-built for microcontrollers. Originally developed by Richard Barry, it’s now maintained by Amazon Web Services (AWS) and remains one of the most widely deployed RTOS kernels in the world —largely because it uses very little memory and runs efficiently even on small, resource-constrained chips.

Task Scheduling

The core scheduler that decides which task runs when.

📧

Queues & Semaphores

Safe communication and synchronization between tasks.

Timers & Event Groups

Time-based triggers and multi-condition signaling.

🧾

Lightweight Kernel

Small enough to fit comfortably on tiny microcontrollers.

Commonly paired with ESP32, STM32, AVR, PIC, and ARM Cortex-M chips. Its advantages: a small memory footprint, an easy learning curve, fast execution, proven stability, and broad community support.

💡
One-Line Definition
FreeRTOS is a lightweight RTOS designed for resource-constrained embedded systems.
4Part 1 — Core Concepts

Zephyr RTOS

Zephyr RTOS is a modern, open-source RTOS maintained by the Linux Foundation. As IoT systems grew more sophisticated, developers needed an RTOS with built-in networking, security, and wireless protocol support baked in from the start —Zephyr was built to provide exactly that.

  • Bluetooth Low Energy (BLE) and Wi-Fi support
  • USB stack and file systems
  • Full networking stack and security features
  • Broad device driver ecosystem

Commonly paired with Nordic nRF boards, STM32, NXP, Intel, and RISC-V platforms.

FreeRTOS vs Zephyr RTOS

FeatureFreeRTOSZephyr RTOS
Maintained byAmazonLinux Foundation
SizeLightweightLarger
ComplexitySimpleAdvanced
NetworkingLimitedBuilt-in
BluetoothExternal supportBuilt-in
Best forSmall MCUsIoT devices
💡
One-Line Definition
Zephyr is a full-featured RTOS designed for modern embedded and IoT applications.
5Part 1 — Core Concepts

SDK — Software Development Kit

An SDK is a collection of software tools required to develop applications for a specific platform —think of it as a developer’s complete toolbox for one target.

⚙️

Compiler

Translates your source code into machine code for the target chip.

📚

Libraries & Headers

Pre-built code for common operations, ready to link against.

📝

Examples & Docs

Reference implementations and documentation for the platform.

🔌

Flash & Debug Tools

Utilities to get your binary onto the chip and step through it.

Common SDK Examples

SDKPlatform
ESP-IDFESP32
Android SDKAndroid
nRF Connect SDKNordic boards
Windows SDKWindows

Without an SDK, developers would need to build hardware drivers and supporting software entirely from scratch for every target platform.

💡
One-Line Definition
An SDK provides all the tools needed to develop software for a specific platform.
6Part 1 — Core Concepts

IDE — Integrated Development Environment

An IDE combines multiple development tools into a single application —so you can write code, build it, debug it, manage files, and run it, all without ever leaving one interface.

IDE Code Editor Compiler Debugger Terminal Build System Project Manager

Six tools, one window —that integration is exactly what makes an IDE an IDE.

Familiar examples include STM32CubeIDE, Arduino IDE, MPLAB X, and Keil μVision —each tailored to a specific manufacturer’s chips, but all sharing this same combined-tool structure.

💡
One-Line Definition
An IDE combines editing, compiling, debugging, and project management into one application.
7Part 1 — Core Concepts

Framework

A Framework is a collection of reusable code and APIs that provides structure for developing applications. Instead of writing everything from scratch, you build on top of what the framework already provides.

Without a framework, every developer would need to personally implement GPIO drivers, UART drivers, Wi-Fi drivers, Bluetooth drivers, timers, and memory management —a framework supplies all of this as a ready foundation.

Your Application
Framework APIs
Hardware Drivers
Microcontroller

Examples span far beyond embedded systems: Arduino Framework, ESP-IDF, Qt, Spring Boot, and .NET all follow this same pattern of providing reusable structure. Advantages: faster development, less code to write and maintain, better organization, and easier long-term maintenance.

💡
One-Line Definition
A framework provides reusable code and structure to simplify application development.
8Part 1 — Core Concepts

OTA — Over-The-Air Updates

OTA (Over-The-Air) is the process of updating a device’s firmware or software wirelessly, with no USB cable required.

Imagine 10,000 smart devices already deployed in customers’ homes, and a software bug is discovered. Without OTA, fixing it means visiting every single customer, connecting a USB cable, and updating manually —slow, expensive, and in practice often impossible. OTA solves this by allowing remote updates over the internet or a wireless network.

Developer Update Server new firmware live Device Checks "any update?" Downloads new firmware Verifies checksum/sig Installs & Restarts running new firmware

The complete OTA pipeline: from a developer’s build to a device running new firmware, with no cable ever connected.

Advantages

  • No physical connection required
  • Fast, easy bug fixes across an entire deployed fleet
  • New features can be added remotely, post-purchase
  • Security patches reach devices quickly
  • Dramatically lower maintenance cost at scale

Real-world examples: Android and iOS software updates, Tesla vehicle software updates, smart TVs, and ESP32 firmware updates all rely on OTA.

💡
One-Line Definition
OTA updates allow devices to receive firmware updates wirelessly without physical access.
9Part 1 — Core Concepts

nRF & NCS

nRF is a family of wireless microcontrollers developed by Nordic Semiconductor, widely used across Bluetooth Low Energy, Zigbee, Thread, Matter, and Cellular IoT products. Popular devices include the nRF52832, nRF52840, nRF5340, and nRF9160.

NCS (nRF Connect SDK) is the official Software Development Kit for nRF devices —and it’s built directly on top of Zephyr RTOS. It bundles Zephyr itself, Nordic-specific libraries, a Bluetooth stack, a networking stack, security libraries, device drivers, build tools, and sample projects.

Nordic Semiconductor
nRF Hardware
nRF Connect SDK (NCS)
Zephyr RTOS
Your Application
💡
One-Line Definitions
nRF is Nordic Semiconductor’s family of wireless microcontrollers. NCS is the official SDK used to develop software for Nordic nRF microcontrollers.
10Part 1 — Core Concepts

How It All Fits Together

Every concept covered so far is one layer in the same overall stack —hardware at the bottom, your running application near the top, OTA updates closing the loop afterward.

Hardware (ESP32 / STM32 / nRF52840) SDK / Framework Layer ESP-IDF · Arduino · NCS RTOS (Optional or Built-In) FreeRTOS · Zephyr RTOS IDE / Development Tools VS Code+PlatformIO · CubeIDE Build → Flash → Debug Running Device OTA Updates (Future Updates) loops back into the running device

Every layer you’ve just learned about, stacked in the order it actually runs —hardware at the base, OTA closing the loop at the top.

Part 1 Complete
You now understand every layer in this stack conceptually. Part 2 walks through the actual, concrete software you’ll install for each of these layers —starting with the editor you’ll spend the most time in.
🔧 Part 2 — The Developer Toolkit
11Part 2 — Developer Toolkit

VS Code

Visual Studio Code is a lightweight and powerful source code editor developed by Microsoft. On its own, it is not an IDE —it becomes one once you install the right extensions for your target platform.

Developers wanted an editor that was fast, lightweight, highly customizable, and able to support almost every programming language under one roof.

✏️

Code Editor + IntelliSense

Fast editing with smart auto-completion built in.

🐛

Debugging Support

Set breakpoints and step through code directly in the editor.

⌨️

Integrated Terminal

Run commands without ever switching windows.

📚

Extensions Marketplace

Git integration, language support, and entire toolchains added on demand.

💡
One-Line Definition
VS Code is a code editor that becomes a complete development environment using extensions.
12Part 2 — Developer Toolkit

PlatformIO

PlatformIO is an embedded development platform that runs inside VS Code —think of it as the “brain” behind embedded development in that editor.

✗ Before — one IDE per manufacturer Arduino IDE → Arduino only CubeIDE → STM32 only MPLAB → PIC only Nordic IDE → nRF only Different workflow to relearn every time ✓ After — one platform for everything PlatformIO ESP32 · STM32 · AVR nRF · RP2040 · more One workflow, every board, inside VS Code

PlatformIO replaced a fragmented landscape of manufacturer-specific IDEs with a single, consistent development workflow.

Features

  • Multi-board support and a built-in library manager
  • Integrated build system and upload tool
  • Debugging and dependency management
  • Git-friendly, professional project structure
Write Code
PlatformIO Builds
Compiles
Uploads
Runs on MCU

VS Code vs PlatformIO

VS Code
Code editor.
Writes code.
General purpose.
PlatformIO
Embedded development platform.
Builds and uploads code.
Embedded-specific.
💡
One-Line Definition
PlatformIO is a professional embedded development platform supporting multiple microcontroller families from one interface.
13Part 2 — Developer Toolkit

Arduino IDE

Arduino IDE is a beginner-friendly IDE for Arduino boards and simple embedded projects. Programming microcontrollers used to be genuinely difficult —Arduino simplified essentially every step of that process.

Advantages
Easy to learn
Beginner friendly
Huge library ecosystem
Quick setup
Limitations
Limited debugging
Poor project organization
Not ideal for large projects
Limited professional features
💡
One-Line Definition
Arduino IDE is designed for simplicity, while PlatformIO is designed for professional embedded development.
14Part 2 — Developer Toolkit

ESP-IDF

ESP-IDF (Espressif IoT Development Framework) is the official software framework for the ESP32. While Arduino hides many hardware details to keep things simple, ESP-IDF gives developers complete, low-level control.

  • FreeRTOS built in
  • Full Wi-Fi and Bluetooth stacks
  • OTA updates, secure boot, and flash encryption
  • Professional-grade debugging tools

Arduino Framework vs ESP-IDF

AspectArduinoESP-IDF
AudienceBeginnerProfessional
API styleSimpler APIsFull hardware control
Learning curveEasierMore powerful
💡
One-Line Definition
ESP-IDF is Espressif’s official framework for professional ESP32 development.
15Part 2 — Developer Toolkit

STM32CubeIDE & STM32CubeMX

STM32CubeIDE is the official IDE from STMicroelectronics for STM32 development, bundling an editor, compiler, debugger, and ST-Link support together. STM32 chips pack in a huge number of peripherals —CubeIDE exists to make configuring and debugging all of them manageable.

STM32CubeMX is a graphical configuration tool used to set up GPIO, UART, SPI, I2C, timers, ADC, PWM, and clock configuration —visually, instead of hand-writing initialization code. CubeMX is already bundled inside CubeIDE; no separate installation is required.

CubeIDE vs CubeMX

CubeIDE
Complete IDE.
Write code.
Debug.
CubeMX
Configuration tool.
Configure peripherals.
Generate initialization code.
💡
One-Line Definition
CubeMX configures hardware, CubeIDE develops software.
16Part 2 — Developer Toolkit

ST-Link

ST-Link is a hardware programmer and debugger for STM32 boards —the physical link between your computer and the chip.

📥

Flash Programs

Writes your compiled binary onto the STM32’s flash memory.

🐛

Debug Programs

Set breakpoints, step through code, and view variables live on the chip.

💡
One-Line Definition
ST-Link is the hardware used to upload and debug STM32 programs.
17Part 2 — Developer Toolkit

nRF Connect SDK — Installation Components

This is the same NCS introduced conceptually back in 9. —here’s exactly what you install and why it comes in pieces rather than a single download.

1
nRF Connect Desktop

The launcher application that opens all the other Nordic tools.

2
Toolchain Manager

Downloads and manages specific SDK versions.

3
nRF Connect SDK

The actual development framework —built on Zephyr RTOS.

4
VS Code Extension

Adds Nordic-specific development support directly into VS Code.

Desktop App
Toolchain Manager
SDK Installation
💡
One-Line Definition
Desktop launches tools; Toolchain Manager installs SDK versions.
18Part 2 — Developer Toolkit

Git & GitHub

Git is a version control system that tracks changes in your code over time. GitHub is a cloud platform for hosting Git repositories online. Without Git, you have no history, no rollback, and collaboration becomes genuinely difficult.

bash — Common Git commands
git init
git status
git add .
git commit -m "message"
git push
git pull
git clone
git log
git branch
git checkout

Git vs GitHub

Git
Local version control.
Tracks changes.
GitHub
Online hosting.
Stores repositories.
💡
One-Line Definition
Git tracks changes locally, GitHub stores repositories online.
19Part 2 — Developer Toolkit

Serial Terminals, Wireshark & PulseView

PuTTY / screen / picocom — Serial Terminals

These are serial terminal applications used to communicate with microcontrollers over UART —the simplest, most direct window into what your firmware is actually doing.

C — What you'd see in the terminal
printf("Hello");
Terminal Output
Hello
💡
One-Line Definition
Serial terminal software used to communicate with embedded devices over USB/UART.

Wireshark — Network Protocol Analyzer

Wireshark captures and inspects network traffic —Ethernet, TCP, UDP, HTTP, HTTPS, MQTT, and DNS —letting you see exactly what data is moving across a network connection.

PulseView — Logic Analyzer Software

PulseView captures and decodes digital signals on hardware communication buses —UART, SPI, I²C, CAN, RS-485, and Modbus RTU —letting you observe exactly what’s happening at the wire level.

PulseView vs Wireshark

PulseViewWireshark
Hardware busesComputer networks
UARTTCP/IP
SPIHTTP
I²CMQTT
CANEthernet
RS-485Wi-Fi
💡
One-Line Definitions
Wireshark captures and analyzes network packets. PulseView captures and decodes hardware communication buses.
20Part 2 — Developer Toolkit

WSL2

WSL2 (Windows Subsystem for Linux) runs an actual Linux environment inside Windows. Many embedded build tools —Yocto, Buildroot, assorted bash scripts and Linux utilities —simply require Linux to run at all.

WSL2 vs Virtual Machine

WSL2Virtual Machine
LightweightHeavy
FasterSlower
Shares Windows resourcesSeparate OS entirely
💡
One-Line Definition
WSL2 provides a Linux environment inside Windows for development.
📋 Part 3 — Review
21Part 3 — Review

Complete Comparison Tables

Core Concepts at a Glance

TermMeaningPurpose
OTAOver-The-Air UpdateWireless firmware updates
RTOSReal-Time Operating SystemManage tasks with timing guarantees
FreeRTOSLightweight RTOSSmall embedded systems
Zephyr RTOSFeature-rich RTOSAdvanced IoT systems
SDKSoftware Development KitDevelopment tools for a platform
IDEIntegrated Development EnvironmentWrite, build, and debug code
FrameworkReusable software structureSimplify application development
nRFNordic microcontroller familyWireless embedded hardware
NCSnRF Connect SDKOfficial SDK for nRF devices

Every Tool, One Table

SoftwarePurpose
VS CodeCode editor
PlatformIOEmbedded development platform
Arduino IDEBeginner IDE
ESP-IDFOfficial ESP32 framework
STM32CubeIDESTM32 IDE
CubeMXPeripheral configuration tool
ST-LinkFlashing & debugging hardware
nRF Connect DesktopNordic tool launcher
Toolchain ManagerInstall SDK versions
nRF Connect SDKNordic development framework
GitVersion control
GitHubRepository hosting
PuTTY / screen / picocomSerial terminal
WiresharkNetwork analyzer
PulseViewLogic analyzer
WSL2Linux environment
22Part 3 — Review

High-Probability Exam Questions

Q1
Why PlatformIO instead of Arduino IDE?
PlatformIO supports multiple microcontroller families, advanced debugging, Git integration, professional project management, and scalable development —everything Arduino IDE intentionally leaves out for the sake of beginner simplicity.
Q2
CubeIDE vs CubeMX?
CubeIDE is the complete IDE. CubeMX is the hardware configuration tool included inside CubeIDE —you never install it separately.
Q3
Why install both the Desktop App and the Toolchain Manager for nRF development?
The Desktop App launches Nordic’s tools. The Toolchain Manager downloads and manages the actual SDK versions —they're two distinct pieces of the same installation flow.
Q4
Why WSL2?
Because tools like Yocto and Buildroot require a genuine Linux environment to run, and WSL2 provides that inside Windows without the overhead of a full virtual machine.
Q5
PulseView vs Wireshark?
PulseView analyzes hardware communication buses (UART, SPI, I²C). Wireshark analyzes network communication (TCP/IP, HTTP, MQTT). Same idea —different layer entirely.
Q6
Git vs GitHub?
Git tracks code changes locally on your machine. GitHub stores Git repositories online, enabling sharing and collaboration.
Q7
VS Code vs PlatformIO?
VS Code is the editor. PlatformIO is the embedded development extension that runs inside it, adding the actual build/upload/debug capability for microcontrollers.
Q8
ESP-IDF vs Arduino Framework?
ESP-IDF provides full, low-level hardware control. The Arduino framework simplifies programming by hiding most of that complexity —a deliberate trade-off in each direction.
23Part 3 — Review

Revision & Memory Hooks

One-Line Revision

  • OTA → Wireless firmware update.
  • RTOS → Executes important tasks on time.
  • FreeRTOS → Lightweight RTOS for microcontrollers.
  • Zephyr RTOS → Advanced RTOS with networking and IoT support.
  • SDK → Toolkit for developing software on a platform.
  • IDE → All-in-one software development environment.
  • Framework → Reusable code and APIs for building applications.
  • nRF → Nordic Semiconductor’s wireless MCU family.
  • NCS → Official SDK for nRF devices, built on Zephyr RTOS.
  • VS Code → Code editor.
  • PlatformIO → Embedded development platform.
  • Arduino IDE → Beginner-friendly IDE.
  • ESP-IDF → Official ESP32 framework.
  • STM32CubeIDE → Official STM32 IDE.
  • STM32CubeMX → STM32 peripheral configuration tool.
  • ST-Link → STM32 programmer and debugger.
  • Git → Version control system.
  • GitHub → Online Git repository hosting.
  • PuTTY / screen → Serial communication terminal.
  • Wireshark → Network packet analyzer.
  • PulseView → Logic analyzer.
  • WSL2 → Linux environment inside Windows.

Memory Hooks

Concept / ToolRemember it as…
OTAUpdate Remotely
RTOSRun Tasks On Time
FreeRTOSSmall & Fast RTOS
ZephyrModern IoT RTOS
SDKDeveloper’s Toolbox
IDEDeveloper’s Workspace
FrameworkBuilding Blocks for Software
nRFNordic Hardware
NCSSoftware for Nordic Hardware
VS CodeWrite Code
PlatformIOBuild Embedded Projects
Arduino IDESimple Learning
ESP-IDFProfessional ESP32
CubeIDEProfessional STM32
CubeMXConfigure STM32 Hardware
ST-LinkFlash & Debug
GitTrack Changes
GitHubStore Code Online
PuTTYSerial Monitor
WiresharkNetwork Packets
PulseViewDigital Signals
WSL2Linux on Windows
Concept → Tool
RTOSFreeRTOS / Zephyr
SDKESP-IDF / NCS
IDEVS Code+PlatformIO

Every tool in Part 2 is a concrete example of a concept from Part 1

24Part 3 — Review

Final Summary

These concepts and tools together form the complete foundation of modern embedded systems and IoT development —everything covered here is something you’ll touch in essentially every real project.

RTOS, FreeRTOS & Zephyr
SDK, IDE & Framework
OTA Updates
nRF & NCS
VS Code & PlatformIO
Arduino IDE & ESP-IDF
STM32CubeIDE, CubeMX & ST-Link
Git & GitHub
Serial Terminals, Wireshark & PulseView
WSL2
✅ The Big Picture
  • OTA keeps deployed devices up to date, wirelessly, at scale.
  • RTOS ensures time-critical tasks execute predictably; FreeRTOS and Zephyr are the two most widely used options, optimized for different goals.
  • An SDK provides the tools to develop for a platform; an IDE is the environment where you actually write, build, and debug; a Framework gives you reusable components and APIs to build on top of.
  • nRF is Nordic’s hardware family, and NCS is the Zephyr-based software stack used to develop for it.
  • VS Code + PlatformIO replaced the old world of one IDE per manufacturer with a single, consistent workflow across boards.
  • Arduino IDE trades power for simplicity; ESP-IDF and STM32CubeIDE trade simplicity for full hardware control.
  • Git and GitHub give you history, rollback, and collaboration that’s otherwise impossible to maintain by hand.
  • Serial terminals, Wireshark, and PulseView are your three windows into what’s actually happening —over UART, over the network, and on the wire itself.
  • WSL2 brings the Linux environment that many embedded build tools simply require, directly into Windows.
🏆
If You Remember One Thing
Every tool in Part 2 exists to fulfill one of the roles defined in Part 1. If you can place any new tool you encounter into one of these categories —RTOS, SDK, IDE, or Framework —you already understand what it’s for, even before reading its documentation.

Embedded Systems Foundations — Core Concepts & Developer Toolkit