Zephyr RTOS on ESP32-S3 — west workflows, kernel objects, Devicetree, buses, motion, and networking labs.
Tagline: Zephyr RTOS on ESP32-S3 — west workflows, kernel objects, Devicetree, buses, motion, and networking labs.
| Field |
Value |
| Course code |
ZEP-RTOS-A |
| Duration |
24 weeks |
| Credits |
6 |
| Compliance |
NBA-aligned OBE |
| Publication |
published |
| Price |
INR 20000 |
| DB snapshot |
2026-10-08T15:04:31.260Z |
Course objective
Learn Zephyr RTOS on ESP32-S3: west workflows, kernel objects, Devicetree, buses, motion, and networking. Hardware-verified labs prepare you for modern RTOS product development beyond bare Arduino sketches. Prerequisite: strong C fundamentals (C-PROG-A); prior embedded experience (EMB-F401-A / ESP-IDF-A) helpful.
Course outcomes (CO1–CO6)
| CO |
Bloom |
Weight |
Statement |
| CO1 |
apply |
17% |
Bring up Zephyr 4.1 west on ESP32-S3-DevKitC-1 and use threads, sleep, semaphores, mutex/condvar, msgq, timers, and workqueues with UART0 proof (Units 1–8). |
| CO2 |
apply |
16% |
Use sys_heap/k_malloc, sys_hashmap, and Devicetree/Kconfig overlay literacy including a lab alias fragment (Units 9–11). |
| CO3 |
apply |
17% |
Drive kit GPIO/PWM, I2C WHOAMI, and NVS boot-count on the shared EMB pin roles with UART tokens (Units 12–15). |
| CO4 |
apply |
16% |
Use Zephyr logging modules, uart0 shell, and zbus channels as services distinct from printk and msgq (Units 16–18). |
| CO5 |
analyze |
17% |
Command A4988 STEP/DIR and TMC2209 UART motion on kit pins without stealing UART0 or powering VMOT from USB (Units 19–20). |
| CO6 |
evaluate |
17% |
Join a Zephyr Wi-Fi station, complete an authorized OTA download, then integrate three earlier proofs in the Unit 24 capstone (Units 21, 22, and 24). MQTT and BLE are outside this course. |
Activity totals (live from platform)
| Metric |
Count |
| Units / chapters |
23 |
| Topics |
211 |
| Topic quiz activities |
1288 |
| MCQ questions |
1288 |
| Practice / board labs |
10 |
| Evaluated firmware labs |
96 |
| Instructional content blocks |
1001 |
Certificates & earning criteria
| Certificate |
CO scope |
Evaluated lab quota |
CO attainment |
Gate |
| West & kernel objects |
CO1–CO1 |
≥ 75% |
≥ 75% |
Certificate 1 wrap — Console kernel (Unit 8) |
| Memory & Devicetree board |
CO1–CO3 |
≥ 75% |
≥ 75% |
Certificate 2 wrap — Memory and kit (Unit 15) |
| Services, station, OTA, capstone |
CO1–CO6 |
≥ 75% |
≥ 75% |
Certificate 3 — Product RTOS capstone (Unit 24) |
Unit syllabus (unit → topics → activities)
Unit 1 — Onboarding: Zephyr, this board, this desk
Unit totals: 9 topics · 54 MCQ questions · 1 practice · 0 evaluated labs
| # |
Topic |
MCQs |
Practice |
Evaluated |
Preview |
| 1 |
What is an RTOS — why Zephyr |
6 |
0 |
0 |
— |
| 2 |
Function walkthrough — west, board, READY desk |
6 |
0 |
0 |
— |
| 3 |
Zephyr’s parts — 4.1 in this book, newer upstream |
6 |
0 |
0 |
— |
| 4 |
What this book covers — and why each block matters |
6 |
0 |
0 |
— |
| 5 |
The ESP32-S3 SoC among Zephyr’s boards |
6 |
0 |
0 |
— |
| 6 |
DevKitC-1, USB-UART, and Device Bridge |
6 |
0 |
0 |
— |
| 7 |
C words you will see — not a lab yet |
6 |
0 |
0 |
— |
| 8 |
What you see after flash — ROM, then Zephyr, then your print |
6 |
0 |
0 |
— |
| 9 |
Prove the desk — flash READY as-is |
6 |
1 |
0 |
— |
Unit 2 — Hello World and boot
Unit totals: 7 topics · 42 MCQ questions · 1 practice · 1 evaluated labs
| # |
Topic |
MCQs |
Practice |
Evaluated |
Preview |
| 1 |
What is console output on an RTOS |
6 |
0 |
0 |
— |
| 2 |
Function walkthrough — printk and console wait |
6 |
0 |
0 |
— |
| 3 |
Boot banner versus your main |
6 |
0 |
0 |
— |
| 4 |
printk versus printf on UART0 |
6 |
0 |
0 |
— |
| 5 |
Wait for the console before you print |
6 |
0 |
0 |
— |
| 6 |
Hello World! — you write the line |
6 |
1 |
0 |
— |
| 7 |
Keep Hello World! every two seconds |
6 |
0 |
1 |
— |
Unit 3 — Threads
Unit totals: 8 topics · 48 MCQ questions · 2 practice · 1 evaluated labs
| # |
Topic |
MCQs |
Practice |
Evaluated |
Preview |
| 1 |
What is a thread — vs a process |
6 |
0 |
0 |
— |
| 2 |
Function walkthrough — threads and sleep |
6 |
0 |
0 |
— |
| 3 |
K_THREAD_DEFINE versus k_thread_create |
6 |
0 |
0 |
— |
| 4 |
k_sleep versus busy wait |
6 |
0 |
0 |
— |
| 5 |
Thread names in UART |
6 |
1 |
0 |
— |
| 6 |
Two threads practice — keep alpha, add beta |
6 |
1 |
0 |
— |
| 7 |
Two threads, two names, no sharing |
6 |
0 |
1 |
— |
| 8 |
Cooperative versus preempt — awareness |
6 |
0 |
0 |
— |
Unit 4 — Semaphores
Unit totals: 8 topics · 48 MCQ questions · 4 practice · 1 evaluated labs
| # |
Topic |
MCQs |
Practice |
Evaluated |
Preview |
| 1 |
What is a semaphore |
6 |
0 |
0 |
— |
| 2 |
Function walkthrough — semaphore give and take |
6 |
0 |
0 |
— |
| 3 |
k_sem give and take |
6 |
0 |
0 |
— |
| 4 |
Give unblocks take — SEM:GO / SEM:OK |
6 |
1 |
0 |
— |
| 5 |
Two threads taking turns |
6 |
1 |
0 |
— |
| 6 |
Kickstart empty semaphores |
6 |
1 |
0 |
— |
| 7 |
One permit semaphore |
6 |
1 |
0 |
— |
| 8 |
Synchronization sample contract |
6 |
0 |
1 |
— |
Unit 5 — Mutex and condition variables
Unit totals: 6 topics · 36 MCQ questions · 2 practice · 1 evaluated labs
| # |
Topic |
MCQs |
Practice |
Evaluated |
Preview |
| 1 |
What is mutual exclusion — mutex and waiters |
6 |
0 |
0 |
— |
| 2 |
Function walkthrough — mutex and condvar |
6 |
0 |
0 |
— |
| 3 |
Why mutex is not a semaphore |
6 |
0 |
0 |
— |
| 4 |
k_mutex critical section UART |
6 |
1 |
0 |
— |
| 5 |
k_condvar wait and signal |
6 |
1 |
0 |
— |
| 6 |
Worker pool everyone done |
6 |
0 |
1 |
— |
Unit 6 — Message queues
Unit totals: 9 topics · 54 MCQ questions · 0 practice · 6 evaluated labs
| # |
Topic |
MCQs |
Practice |
Evaluated |
Preview |
| 1 |
What is a message queue |
6 |
0 |
0 |
— |
| 2 |
Function walkthrough — message queue put and get |
6 |
0 |
0 |
— |
| 3 |
k_msgq put and get |
6 |
0 |
1 |
— |
| 4 |
Two payloads through one queue |
6 |
0 |
1 |
— |
| 5 |
Message queue then everyone done |
6 |
0 |
1 |
— |
| 6 |
ISR-safety awareness |
6 |
0 |
0 |
— |
| 7 |
Producer and consumer pair |
6 |
0 |
1 |
— |
| 8 |
Scenario: sample pipeline |
6 |
0 |
1 |
— |
| 9 |
Scenario: command and ack pipe |
6 |
0 |
1 |
— |
Unit 7 — Software timers
Unit totals: 7 topics · 42 MCQ questions · 0 practice · 4 evaluated labs
| # |
Topic |
MCQs |
Practice |
Evaluated |
Preview |
| 1 |
What is a software timer |
6 |
0 |
0 |
— |
| 2 |
Function walkthrough — software timers |
6 |
0 |
0 |
— |
| 3 |
k_timer versus k_sleep in a thread |
6 |
0 |
0 |
— |
| 4 |
Period versus one-shot |
6 |
0 |
1 |
— |
| 5 |
Print TICK=n from expiry |
6 |
0 |
1 |
— |
| 6 |
Timer feeds a message queue |
6 |
0 |
1 |
— |
| 7 |
Scenario: desk heartbeat |
6 |
0 |
1 |
— |
Unit 8 — Work queues
Unit totals: 10 topics · 60 MCQ questions · 0 practice · 5 evaluated labs
| # |
Topic |
MCQs |
Practice |
Evaluated |
Preview |
| 1 |
What is deferred work — work queues |
6 |
0 |
0 |
— |
| 2 |
Function walkthrough — work queues |
6 |
0 |
0 |
— |
| 3 |
Why not heavy work in a timer callback |
6 |
0 |
0 |
— |
| 4 |
System workqueue |
6 |
0 |
1 |
— |
| 5 |
Dedicated k_work_q awareness |
6 |
0 |
0 |
— |
| 6 |
WORK: line from the work queue |
6 |
0 |
1 |
— |
| 7 |
Scenario: desk offload |
6 |
0 |
1 |
— |
| 8 |
Message queue then work |
6 |
0 |
1 |
— |
| 9 |
Scenario: desk alarm |
6 |
0 |
1 |
— |
| 10 |
Certificate 1 wrap — Console kernel SUMM |
6 |
0 |
0 |
— |
Unit 9 — Heaps
Unit totals: 9 topics · 54 MCQ questions · 0 practice · 5 evaluated labs
| # |
Topic |
MCQs |
Practice |
Evaluated |
Preview |
| 1 |
What is a heap — dynamic memory |
6 |
0 |
0 |
— |
| 2 |
Function walkthrough — heap alloc and free |
6 |
0 |
0 |
— |
| 3 |
Three heap layers — sys_heap, k_heap, system heap |
6 |
0 |
0 |
— |
| 4 |
System heap — k_malloc and k_free |
6 |
0 |
1 |
— |
| 5 |
Private K_HEAP_DEFINE — alloc realloc free |
6 |
0 |
1 |
— |
| 6 |
Failure, timeout, free rules + PSRAM note |
6 |
0 |
0 |
— |
| 7 |
Scenario: sample pipe with a heap buffer |
6 |
0 |
1 |
— |
| 8 |
Scenario: ticker fills a growing scratch pad |
6 |
0 |
1 |
— |
| 9 |
Scenario: desk offload owns the buffer |
6 |
0 |
1 |
— |
Unit 10 — Hash maps
Unit totals: 7 topics · 42 MCQ questions · 0 practice · 4 evaluated labs
| # |
Topic |
MCQs |
Practice |
Evaluated |
Preview |
| 1 |
What is a hash map |
6 |
0 |
0 |
— |
| 2 |
Function walkthrough — sys_hashmap |
6 |
0 |
0 |
— |
| 3 |
SYS_HASHMAP_DEFINE — insert get remove replace |
6 |
0 |
0 |
— |
| 4 |
Insert and look up |
6 |
0 |
1 |
— |
| 5 |
Replace then remove |
6 |
0 |
1 |
— |
| 6 |
Message queue key then hashmap lookup |
6 |
0 |
1 |
— |
| 7 |
Scenario: desk device registry |
6 |
0 |
1 |
— |
Unit 11 — Devicetree and Kconfig
Unit totals: 10 topics · 60 MCQ questions · 0 practice · 5 evaluated labs
| # |
Topic |
MCQs |
Practice |
Evaluated |
Preview |
| 1 |
What is Devicetree on an RTOS |
6 |
0 |
0 |
— |
| 2 |
Function walkthrough — Devicetree aliases and Kconfig |
6 |
0 |
0 |
— |
| 3 |
chosen console is uart0 |
6 |
0 |
0 |
— |
| 4 |
Status okay versus disabled |
6 |
0 |
0 |
— |
| 5 |
prj.conf versus overlay versus board DTS |
6 |
0 |
0 |
— |
| 6 |
Alias ready prints DTS:OK |
6 |
0 |
1 |
— |
| 7 |
Alias ready, then the heap size |
6 |
0 |
1 |
— |
| 8 |
Message queue then DTS:OK |
6 |
0 |
1 |
— |
| 9 |
Hashmap then DTS:OK |
6 |
0 |
1 |
— |
| 10 |
Scenario: desk board passport |
6 |
0 |
1 |
— |
Unit 12 — GPIO
Unit totals: 8 topics · 48 MCQ questions · 0 practice · 5 evaluated labs
| # |
Topic |
MCQs |
Practice |
Evaluated |
Preview |
| 1 |
What is GPIO on an RTOS |
6 |
0 |
0 |
— |
| 2 |
Function walkthrough — GPIO DT specs |
6 |
0 |
0 |
— |
| 3 |
gpio_pin_configure_dt |
6 |
0 |
0 |
— |
| 4 |
DIG_OUT_A GPIO2 as a documented output |
6 |
0 |
1 |
— |
| 5 |
LED:OK and LED:OFF |
6 |
0 |
1 |
— |
| 6 |
Timer then DIG_OUT_A |
6 |
0 |
1 |
— |
| 7 |
Overlay alias then DIG_OUT_A |
6 |
0 |
1 |
— |
| 8 |
Scenario: desk DIG_OUT_A passport |
6 |
0 |
1 |
— |
Unit 13 — PWM
Unit totals: 8 topics · 48 MCQ questions · 0 practice · 5 evaluated labs
| # |
Topic |
MCQs |
Practice |
Evaluated |
Preview |
| 1 |
What is PWM on an RTOS |
6 |
0 |
0 |
— |
| 2 |
Function walkthrough — PWM DT specs |
6 |
0 |
0 |
— |
| 3 |
Same pin, PWM API not GPIO toggle |
6 |
0 |
0 |
— |
| 4 |
Practice PWM=50 |
6 |
0 |
1 |
— |
| 5 |
Duty 0 / 50 / 100 with PWM= |
6 |
0 |
1 |
— |
| 6 |
Timer then PWM |
6 |
0 |
1 |
— |
| 7 |
GPIO then PWM |
6 |
0 |
1 |
— |
| 8 |
Scenario: desk jingle |
6 |
0 |
1 |
— |
Unit 14 — I2C
Unit totals: 17 topics · 102 MCQ questions · 0 practice · 11 evaluated labs
| # |
Topic |
MCQs |
Practice |
Evaluated |
Preview |
| 1 |
What is I2C on an RTOS |
6 |
0 |
0 |
— |
| 2 |
Function walkthrough — I2C register transfers |
6 |
0 |
0 |
— |
| 3 |
One I2C bus and register transfers |
6 |
0 |
0 |
— |
| 4 |
Practice I2C:SCAN |
6 |
0 |
1 |
— |
| 5 |
Gyroscope registers on the MPU |
6 |
0 |
0 |
— |
| 6 |
Configure and calibrate the gyroscope |
6 |
0 |
1 |
— |
| 7 |
Read raw gyroscope counts |
6 |
0 |
1 |
— |
| 8 |
Scenario: show gyroscope in degrees per second |
6 |
0 |
1 |
— |
| 9 |
Accelerometer registers on the MPU |
6 |
0 |
0 |
— |
| 10 |
Configure and calibrate the accelerometer |
6 |
0 |
1 |
— |
| 11 |
Read raw accelerometer counts |
6 |
0 |
1 |
— |
| 12 |
Scenario: show accelerometer in milli-g |
6 |
0 |
1 |
— |
| 13 |
BMP180 registers (not a humidity BME) |
6 |
0 |
0 |
— |
| 14 |
Load BMP180 factory calibration |
6 |
0 |
1 |
— |
| 15 |
Trigger BMP180 and read raw UT/UP |
6 |
0 |
1 |
— |
| 16 |
Scenario: show BMP180 Celsius and hectopascals |
6 |
0 |
1 |
— |
| 17 |
Scenario: desk three-sensor story |
6 |
0 |
1 |
— |
Unit 15 — NVS / settings
Unit totals: 15 topics · 90 MCQ questions · 0 practice · 11 evaluated labs
| # |
Topic |
MCQs |
Practice |
Evaluated |
Preview |
| 1 |
What is NVS on an RTOS |
6 |
0 |
0 |
— |
| 2 |
Function walkthrough — NVS mount read write |
6 |
0 |
0 |
— |
| 3 |
Default flash map and storage_partition |
6 |
0 |
0 |
— |
| 4 |
Practice NVS:MOUNT |
6 |
0 |
1 |
— |
| 5 |
NVS= boot counter |
6 |
0 |
1 |
— |
| 6 |
Timer then NVS |
6 |
0 |
1 |
— |
| 7 |
GPIO then NVS |
6 |
0 |
1 |
— |
| 8 |
Scenario: desk NVS stamp |
6 |
0 |
1 |
— |
| 9 |
Scenario: desk poll NVS |
6 |
0 |
1 |
— |
| 10 |
Scenario: desk bring-up |
6 |
0 |
1 |
— |
| 11 |
Scenario: desk clear to one |
6 |
0 |
1 |
— |
| 12 |
NVS int and int array |
6 |
0 |
1 |
— |
| 13 |
NVS string and string array |
6 |
0 |
1 |
— |
| 14 |
NVS float/bool and arrays |
6 |
0 |
1 |
— |
| 15 |
Certificate 2 wrap — Memory and kit SUMM |
6 |
0 |
0 |
— |
Unit 16 — Logging
Unit totals: 12 topics · 72 MCQ questions · 0 practice · 8 evaluated labs
| # |
Topic |
MCQs |
Practice |
Evaluated |
Preview |
| 1 |
What is logging on an RTOS |
6 |
0 |
0 |
— |
| 2 |
Function walkthrough — LOG_MODULE and levels |
6 |
0 |
0 |
— |
| 3 |
LOG_MODULE_REGISTER and levels |
6 |
0 |
0 |
— |
| 4 |
Practice log:INF |
6 |
0 |
1 |
— |
| 5 |
LOG_ERR then LOG_INF |
6 |
0 |
1 |
— |
| 6 |
Timer then log |
6 |
0 |
1 |
— |
| 7 |
GPIO then log |
6 |
0 |
1 |
— |
| 8 |
Scenario: desk log stamp |
6 |
0 |
1 |
— |
| 9 |
Scenario: desk err then info |
6 |
0 |
1 |
— |
| 10 |
Scenario: desk bring-up log |
6 |
0 |
1 |
— |
| 11 |
Scenario: desk log seal |
6 |
0 |
1 |
— |
| 12 |
Wrap toward shell |
6 |
0 |
0 |
— |
Unit 17 — Shell
Unit totals: 8 topics · 48 MCQ questions · 0 practice · 4 evaluated labs
| # |
Topic |
MCQs |
Practice |
Evaluated |
Preview |
| 1 |
What is a shell on an RTOS |
6 |
0 |
0 |
— |
| 2 |
Function walkthrough — shell register |
6 |
0 |
0 |
— |
| 3 |
Shell on zephyr,shell-uart = uart0 |
6 |
0 |
0 |
— |
| 4 |
Practice shell:ok |
6 |
0 |
1 |
— |
| 5 |
Eval shell:ok |
6 |
0 |
1 |
— |
| 6 |
Timer then shell:ok |
6 |
0 |
1 |
— |
| 7 |
Log then shell:ok |
6 |
0 |
1 |
— |
| 8 |
Wrap toward zbus |
6 |
0 |
0 |
— |
Unit 18 — zbus
Unit totals: 13 topics · 78 MCQ questions · 0 practice · 9 evaluated labs
| # |
Topic |
MCQs |
Practice |
Evaluated |
Preview |
| 1 |
What is zbus — vs a message queue |
6 |
0 |
0 |
— |
| 2 |
Function walkthrough — zbus channels |
6 |
0 |
0 |
— |
| 3 |
Channel, listener, publish literacy |
6 |
0 |
0 |
— |
| 4 |
Practice soft publish — two listeners |
6 |
0 |
1 |
— |
| 5 |
Eval soft two listeners |
6 |
0 |
1 |
— |
| 6 |
MPU to zbus — WHOAMI then listeners |
6 |
0 |
1 |
— |
| 7 |
Timer then MPU to zbus |
6 |
0 |
1 |
— |
| 8 |
Log then zbus |
6 |
0 |
1 |
— |
| 9 |
Scenario: desk zbus stamp |
6 |
0 |
1 |
— |
| 10 |
Scenario: desk sensor passport |
6 |
0 |
1 |
— |
| 11 |
Scenario: desk zbus bring-up |
6 |
0 |
1 |
— |
| 12 |
Scenario: desk zbus seal |
6 |
0 |
1 |
— |
| 13 |
Wrap toward steppers |
6 |
0 |
0 |
— |
Unit 19 — A4988 + NEMA (gpio-stepper)
Unit totals: 8 topics · 48 MCQ questions · 0 practice · 2 evaluated labs
| # |
Topic |
MCQs |
Practice |
Evaluated |
Preview |
| 1 |
VMOT lives on the purchased driver, never USB-C |
6 |
0 |
0 |
— |
| 2 |
Function walkthrough — gpio-stepper |
6 |
0 |
0 |
— |
| 3 |
STEP GPIO16, DIR GPIO17 |
6 |
0 |
0 |
— |
| 4 |
Four coil wires versus STEP and DIR |
6 |
0 |
0 |
— |
| 5 |
EN stays on the module jumper |
6 |
0 |
0 |
— |
| 6 |
Set DIR and print DIR=1 |
6 |
0 |
1 |
— |
| 7 |
Pulse 200 steps, then STEP:OK |
6 |
0 |
1 |
— |
| 8 |
UART setup of a driver waits |
6 |
0 |
0 |
— |
Unit 20 — TMC2209 UART
Unit totals: 5 topics · 30 MCQ questions · 0 practice · 0 evaluated labs
| # |
Topic |
MCQs |
Practice |
Evaluated |
Preview |
| 1 |
Why UART config is not a STEP pulse |
6 |
0 |
0 |
— |
| 2 |
UART1 GPIO15/18; console stays UART0 43/44 |
6 |
0 |
0 |
— |
| 3 |
Zephyr adi,tmc2209 / TMC22xx |
6 |
0 |
0 |
— |
| 4 |
TMC:OK after a short move |
6 |
0 |
0 |
— |
| 5 |
AS5600 angle on I2C 8/9 — practice |
6 |
0 |
0 |
— |
Unit 21 — Wi-Fi STA + soft AP HTTP
Unit totals: 10 topics · 60 MCQ questions · 0 practice · 3 evaluated labs
| # |
Topic |
MCQs |
Practice |
Evaluated |
Preview |
| 1 |
STA versus AP — station is the graded join path |
6 |
0 |
0 |
— |
| 2 |
Zephyr net_if versus IDF esp_wifi |
6 |
0 |
0 |
— |
| 3 |
Function walkthrough — STA join and open soft-AP HTTP |
6 |
0 |
0 |
— |
| 4 |
Phone hotspot — set LAB_WIFI_* in the program |
6 |
0 |
0 |
— |
| 5 |
Thin connectivity facade versus a full Wi-Fi HAL |
6 |
0 |
0 |
— |
| 6 |
STA — NET:UP and IP= |
6 |
0 |
1 |
— |
| 7 |
Soft AP — start HTTP hello and print AP:UP |
6 |
0 |
1 |
— |
| 8 |
Human opens the AP page — UART AP:HIT |
6 |
0 |
1 |
— |
| 9 |
MCUboot slots versus this course simple-boot at 0x0 |
6 |
0 |
0 |
— |
| 10 |
Wrap toward OTA |
6 |
0 |
0 |
— |
Unit 22 — OTA update path
Unit totals: 12 topics · 94 MCQ questions · 0 practice · 5 evaluated labs
| # |
Topic |
MCQs |
Practice |
Evaluated |
Preview |
| 1 |
Why field devices update over the air |
8 |
0 |
0 |
— |
| 2 |
Function walkthrough — OTA update client |
6 |
0 |
0 |
— |
| 3 |
MCUboot slots versus this course simple-boot at 0x0 |
8 |
0 |
0 |
— |
| 4 |
Server grant — mint if pending, DELETE after download |
8 |
0 |
0 |
— |
| 5 |
DNS literacy — hostname resolve (information only) |
8 |
0 |
0 |
— |
| 6 |
Download image — OTA:GOT= |
8 |
0 |
1 |
— |
| 7 |
Verify download — OTA:OK |
8 |
0 |
1 |
— |
| 8 |
MCUboot swap literacy — course flash stays at 0x0 |
8 |
0 |
0 |
— |
| 9 |
Scenario: fail closed — OTA:FAIL |
8 |
0 |
1 |
— |
| 10 |
Scenario: DNS fail — OTA:FAIL dns |
8 |
0 |
1 |
— |
| 11 |
Scenario: grant replay fails closed |
8 |
0 |
1 |
— |
| 12 |
Wrap toward the capstone |
8 |
0 |
0 |
— |
Unit 24 — Capstone
Unit totals: 5 topics · 30 MCQ questions · 0 practice · 0 evaluated labs
| # |
Topic |
MCQs |
Practice |
Evaluated |
Preview |
| 1 |
Capstone constraints and forbidden radios |
6 |
0 |
0 |
— |
| 2 |
Choose three prior systems |
6 |
0 |
0 |
— |
| 3 |
Serial contract: READY plus three earlier lines |
6 |
0 |
0 |
— |
| 4 |
Integration bring-up order |
6 |
0 |
0 |
— |
| 5 |
Certificate 3 — Product RTOS capstone EOC |
6 |
0 |
0 |
— |
Counts are from the live course catalog. MCQs = questions in topic checkpoint quizzes. Practice = formative run-only or SQL practice lane. Evaluated = submit-graded labs that count toward progress and certificates.