Skip to content

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