Syllabus
Course Meeting Times
Lectures: 2 sessions / week, 2 hours / session - Tuesday, 17:00 - 19:00 - Thursday, 17:00 - 19:00
Prerequisites
- Programming: C/C++ proficiency; basic Git (clone/commit/branch); comfortable reading vendor SDK examples.
- Embedded fundamentals: microcontrollers, GPIO/timers, interrupts, basic serial debugging.
- Electronics: prototyping, pull-ups, safe power practices, basic sensor interfacing.
- Buses: I2C experience is assumed (we focus on RTOS-safe access patterns and verification, not I2C basics).
- Tools readiness: laptop with VS Code, ESP-IDF toolchain capability, USB data cable(s) known-good, and ability to run Wireshark.
Course Text
- ESP-IDF Programming Guide (ESP32-C6) and related API guides (Wi-Fi, MQTT examples, OTA, security, etc.).
- USB Serial/JTAG Console + JTAG Debugging (ESP32-C6).
- TWAI (CAN) driver documentation (ESP32-C6).
- ESP-NOW documentation (ESP32-C6).
- ESP Zigbee SDK (ESP32-C6).
- ESP-Matter (ESP32-C6) (Matter over Wi-Fi/Thread; commissioning via developer tooling).
Grading Policy
Grade Components:
| Component | What it covers | Deliverables/Evidence | Weight |
|---|---|---|---|
| Lab Log (Web) | All in-class practices, notes, and homework evidence across sessions | Public web log with dated entries, code snippets, photos/videos, and reflections | 40% |
| 3-DOF Manipulator Project | Mechanism, electronics, kinematics, trajectory generation, demo | Demo video, repo (code + URDF/solid models), brief report, checklist | 30% |
| Ackermann Mobile Robot Project | Perception, control, autonomy, trajectory tracking, demo | Demo video, repo (ROS2 pkg + CAD/PCB), brief report, checklist | 30% |
| Total | 100% |
Grading scale
| Raw | Reported grade |
|---|---|
| < 5.00 | 5.0 |
| 5.00–5.99 | 5.0 |
| 6.00–6.89 | 6.0 |
| 6.90–6.99 | 7.0 |
| 7.00–7.79 | 7.0 |
| 7.80–7.99 | 8.0 |
| 8.00–8.69 | 8.0 |
| 8.70–8.99 | 9.0 |
| 9.00–9.59 | 9.0 |
| 9.60–9.99 | 10.0 |
| 10.00 | 10.0 |
Late & makeup policy
| Item | Policy |
|---|---|
| Lab Log entries | −10% of that entry per 24 h late, up to −50%; after 5 days = 0. |
| Project milestones/demos | −10% of that milestone per 24 h late; after 7 days = 0 unless documented emergency. |
| Extensions | Must be requested ≥24 h before deadline (once per project, up to 72 h). |
| Regrade window | Submit written request within 7 days of grade release. |
Academic integrity & collaboration
| Item | Policy |
|---|---|
| Code/design reuse | Allowed with citation; uncredited reuse = 0 on item. |
| Collaboration | Discuss concepts; submit your own code/designs. Shared repos between teams prohibited. |
Communication & submissions
| Item | Policy |
|---|---|
| Platform | Microsoft Teams is the official channel for announcements, deadlines, and grades. |
| Content hosting | All artifacts live on your Lab Log website. |
| How to submit | In each Teams assignment, submit the URL to the specific Lab Log entry (not the home page). |
| Non-compliant submissions | “Files only” or missing/incorrect links = not submitted until corrected (late policy applies). |
Modules
| Module | Topics | Readings |
|---|---|---|
| M0 — Setup & Evidence Culture | ESP-IDF workflow, measurement habits, reproducible builds, debug hygiene | ESP-IDF Programming Guide (Espressif Systems) |
| M1 — RTOS & Thread-Safe Embedded Design | Tasks/queues, ISR-to-task patterns, shared resource protection, NVS config, low-power strategy | ESP-IDF Guide + relevant examples (Espressif Systems) |
| M2 — Wi-Fi Networking & Telemetry | Provisioning, SNTP, HTTPS REST, MQTT, WebSockets, fault injection + Wireshark evidence | ESP-IDF Guide (Wi-Fi + networking) (Espressif Systems) |
| M3 — BLE for Control & Sensing | GAP/advertising, GATT services, phone-based validation, basic security posture | ESP-IDF Guide (BLE sections) (Espressif Systems) |
| M4 — Industrial & Mesh | TWAI (CAN), ESP-NOW, Zigbee, Thread, Matter concepts + commissioning logs | TWAI (Espressif Systems); ESP-NOW (Espressif Systems); Zigbee SDK (Espressif Systems); ESP-Matter (Espressif Systems) |
| M5 — Production Readiness | USB Serial/JTAG debug workflow, security concepts, OTA, coexistence/integration, watchdogs + crash forensics | USB Serial/JTAG + JTAG Debugging (Espressif Systems); ESP-Matter (commissioning guidance) (Espressif Systems) |
Calendar Sessions
| S | Module | Date | Topic | Deliverable |
|---|---|---|---|---|
| 1 | M0 | 2026-01-20 | ESP32-C6 vs RP2040 + ESP-IDF workflow | Lab Log: build/flash/monitor proof + repo initialized |
| 2 | M1 | 2026-01-22 | FreeRTOS I: scheduler, priorities, timing evidence | Lab Log: 3-task demo + timing screenshots |
| 3 | M1 | 2026-01-27 | FreeRTOS II: thread-safe peripheral pattern (I2C gatekeeper) | Lab Log: gatekeeper API + collision-free evidence |
| 4 | M1 | 2026-01-29 | ISR→Queue→Task (UART console) | Lab Log: non-blocking console + 5 commands |
| 5 | M1 | 2026-02-03 | NVS for config + provisioning state | Lab Log: persistent keys + reboot proof |
| 6 | M1 | 2026-02-05 | Low-power architecture (measure + improve) | Lab Log: current measurement method + improvement summary |
| 7 | M2 | 2026-02-10 | Wi-Fi STA + provisioning (SoftAP base path) | Lab Log: provisioning flow + Wireshark DHCP/DNS |
| 8 | M2 | 2026-02-12 | SNTP time sync + scheduling | Lab Log: correct timestamps + drift notes |
| 9 | M2 | 2026-02-17 | HTTPS REST client: retries/timeouts + evidence | Lab Log: POST JSON + success/failure captures |
| 10 | M2 | 2026-02-19 | MQTT fundamentals (broker, topics, QoS) | Lab Log: pub/sub between nodes + topic design |
| 11 | M2 | 2026-02-24 | MQTT advanced: LWT + JSON control | Lab Log: LWT power-cut proof + cJSON parsing |
| 12 | M2 | 2026-02-26 | WebSockets vs MQTT streaming (latency/jitter) | Lab Log: 20 Hz stream + comparison table |
| 13 | M2 | 2026-03-03 | Midterm Sprint I: architecture + state machine | Lab Log: task diagram + failure modes list |
| 14 | M2 | 2026-03-05 | Midterm Sprint II: fault injection + recovery | Lab Log: router-unplug recovery evidence |
| 15 | M2 | 2026-03-10 | MIDTERM EVALUATION: Wireless Sensor Node demo | Demo + repo tag + checklist submission |
| 16 | M4 | 2026-03-12 | TWAI (CAN) I: frames + transceiver bring-up | Lab Log: send/receive frames + evidence |
| 17 | M4 | 2026-03-17 | TWAI (CAN) II: filters + error handling | Lab Log: bus-off/recovery notes + test |
| 18 | M4 | 2026-03-19 | ESP-NOW: low-latency swarm sync | Lab Log: ≥3 nodes + measured latency |
| 19 | M3 | 2026-03-24 | BLE GAP + advertising strategy | Lab Log: dynamic advertising proof (phone app) |
| 20 | M3 | 2026-03-26 | BLE GATT server for control/telemetry | Lab Log: custom service + characteristics proof |
| — | — | 2026-03-31 | NO CLASS — suspension/vacations | — (iberopuebla.mx) |
| — | — | 2026-04-02 | NO CLASS — suspension/vacations | — (iberopuebla.mx) |
| 21 | M4 | 2026-04-07 | Zigbee fundamentals: roles + network formation | Lab Log: join + messaging evidence |
| 22 | M4 | 2026-04-09 | Zigbee binding/clusters (applied control) | Lab Log: switch→light via binding proof |
| 23 | M4 | 2026-04-14 | Thread fundamentals: IPv6 + UDP across mesh | Lab Log: UDP messages + addressing proof |
| 24 | M4 | 2026-04-16 | Matter concepts + commissioning (developer tooling) | Lab Log: commissioning logs + interpretation |
| 25 | M4 | 2026-04-28 | Modbus TCP: industrial interoperability | Lab Log: register map + PC master proof |
| 26 | M5 | 2026-04-30 | USB Serial/JTAG workflow + JTAG debugging basics | Lab Log: flash/monitor via native USB evidence (Espressif Systems) |
| — | — | 2026-05-05 | NO CLASS — mandatory holiday | — (iberopuebla.mx) |
| 27 | M5 | 2026-05-07 | Security I: threat model + protected storage demo | Lab Log: security checklist + demo evidence |
| 28 | M5 | 2026-05-08 | Lab Clinic (mandatory): integration help + backlog burn-down | Updated Lab Log: resolved issues + test reruns |
| 29 | M5 | 2026-05-12 | Security II: certificates + mTLS (secure MQTT) | Lab Log: handshake success + failure case |
| 30 | M5 | 2026-05-14 | OTA updates + rollback strategy | Lab Log: OTA success + forced rollback proof |
| 31 | M5 | 2026-05-19 | Final sprint: coexistence + watchdogs + crash forensics | Lab Log: backtrace analysis + fix/mitigation |
| 32 | M5 | 2026-05-21 | FINAL EXPO: Multiprotocol Gateway / Industrial IoT demo | Live demo + final portfolio + repo tag |