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.
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.
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 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.
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.
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
| Feature | FreeRTOS | Zephyr RTOS |
|---|---|---|
| Maintained by | Amazon | Linux Foundation |
| Size | Lightweight | Larger |
| Complexity | Simple | Advanced |
| Networking | Limited | Built-in |
| Bluetooth | External support | Built-in |
| Best for | Small MCUs | IoT devices |
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
| SDK | Platform |
|---|---|
| ESP-IDF | ESP32 |
| Android SDK | Android |
| nRF Connect SDK | Nordic boards |
| Windows SDK | Windows |
Without an SDK, developers would need to build hardware drivers and supporting software entirely from scratch for every target platform.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
PlatformIO
PlatformIO is an embedded development platform that runs inside VS Code —think of it as the “brain” behind embedded development in that editor.
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
VS Code vs PlatformIO
Writes code.
General purpose.
Builds and uploads code.
Embedded-specific.
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.
Beginner friendly
Huge library ecosystem
Quick setup
Poor project organization
Not ideal for large projects
Limited professional features
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
| Aspect | Arduino | ESP-IDF |
|---|---|---|
| Audience | Beginner | Professional |
| API style | Simpler APIs | Full hardware control |
| Learning curve | Easier | More powerful |
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
Write code.
Debug.
Configure peripherals.
Generate initialization code.
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.
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.
nRF Connect Desktop
The launcher application that opens all the other Nordic tools.
Toolchain Manager
Downloads and manages specific SDK versions.
nRF Connect SDK
The actual development framework —built on Zephyr RTOS.
VS Code Extension
Adds Nordic-specific development support directly into VS Code.
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.
git init
git status
git add .
git commit -m "message"
git push
git pull
git clone
git log
git branch
git checkoutGit vs GitHub
Tracks changes.
Stores repositories.
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.
printf("Hello");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
| PulseView | Wireshark |
|---|---|
| Hardware buses | Computer networks |
| UART | TCP/IP |
| SPI | HTTP |
| I²C | MQTT |
| CAN | Ethernet |
| RS-485 | Wi-Fi |
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
| WSL2 | Virtual Machine |
|---|---|
| Lightweight | Heavy |
| Faster | Slower |
| Shares Windows resources | Separate OS entirely |
Complete Comparison Tables
Core Concepts at a Glance
| Term | Meaning | Purpose |
|---|---|---|
| OTA | Over-The-Air Update | Wireless firmware updates |
| RTOS | Real-Time Operating System | Manage tasks with timing guarantees |
| FreeRTOS | Lightweight RTOS | Small embedded systems |
| Zephyr RTOS | Feature-rich RTOS | Advanced IoT systems |
| SDK | Software Development Kit | Development tools for a platform |
| IDE | Integrated Development Environment | Write, build, and debug code |
| Framework | Reusable software structure | Simplify application development |
| nRF | Nordic microcontroller family | Wireless embedded hardware |
| NCS | nRF Connect SDK | Official SDK for nRF devices |
Every Tool, One Table
| Software | Purpose |
|---|---|
| VS Code | Code editor |
| PlatformIO | Embedded development platform |
| Arduino IDE | Beginner IDE |
| ESP-IDF | Official ESP32 framework |
| STM32CubeIDE | STM32 IDE |
| CubeMX | Peripheral configuration tool |
| ST-Link | Flashing & debugging hardware |
| nRF Connect Desktop | Nordic tool launcher |
| Toolchain Manager | Install SDK versions |
| nRF Connect SDK | Nordic development framework |
| Git | Version control |
| GitHub | Repository hosting |
| PuTTY / screen / picocom | Serial terminal |
| Wireshark | Network analyzer |
| PulseView | Logic analyzer |
| WSL2 | Linux environment |
High-Probability Exam Questions
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 / Tool | Remember it as… |
|---|---|
| OTA | Update Remotely |
| RTOS | Run Tasks On Time |
| FreeRTOS | Small & Fast RTOS |
| Zephyr | Modern IoT RTOS |
| SDK | Developer’s Toolbox |
| IDE | Developer’s Workspace |
| Framework | Building Blocks for Software |
| nRF | Nordic Hardware |
| NCS | Software for Nordic Hardware |
| VS Code | Write Code |
| PlatformIO | Build Embedded Projects |
| Arduino IDE | Simple Learning |
| ESP-IDF | Professional ESP32 |
| CubeIDE | Professional STM32 |
| CubeMX | Configure STM32 Hardware |
| ST-Link | Flash & Debug |
| Git | Track Changes |
| GitHub | Store Code Online |
| PuTTY | Serial Monitor |
| Wireshark | Network Packets |
| PulseView | Digital Signals |
| WSL2 | Linux on Windows |
Every tool in Part 2 is a concrete example of a concept from Part 1
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.
- 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.
Embedded Systems Foundations — Core Concepts & Developer Toolkit