Overview
This course examines the design and implementation of reliable firmware for resource-constrained embedded and cyber-physical systems. Topics include microcontroller architecture, memory maps, registers, digital input and output, timers, counters, pulse-width modulation, analog and digital conversion, sensors, actuators, serial communication, interrupts, watchdog timers, boot processes, cross-compilation, and introductory real-time operating systems.
Students develop modular and defensive C or C++ firmware while managing memory, timing, concurrency, scheduling, power consumption, and real-time constraints. Laboratory work integrates microcontrollers with sensors and outputs, supports communication over UART, SPI, I2C, and CAN, and requires reliable responses to asynchronous events. Students also read datasheets and schematics, separate hardware-dependent code from application logic, and apply unit, integration, timing, fault-injection, and hardware-in-the-loop testing methods.
Learning Outcomes
- Explain microcontroller architecture, memory organization, peripheral registers, boot processes, and hardware abstraction principles.
- Configure and program digital, timing, analog, communication, and watchdog peripherals using modular and defensive C or C++ firmware.
- Implement interrupt-driven, polling, and event-driven designs that manage debouncing, concurrency, scheduling, and asynchronous events.
- Select and integrate appropriate sensors, actuators, and communication interfaces using datasheets, schematics, and system requirements.
- Measure and evaluate firmware timing, memory use, power consumption, communication performance, and real-time behavior.
- Diagnose hardware-software interaction faults using structured debugging, instrumentation, fault injection, and hardware-in-the-loop techniques.
- Design and document a maintainable embedded system that separates application logic from hardware-dependent implementation.
- Assess introductory real-time operating system concepts and determine their suitability for embedded application requirements.
Timetable
| Type | Length | Frequency | Period |
|---|---|---|---|
| Lecture | 2 hours | Weekly | All semester |
| Lab | 3 hours | Weekly | All semester |
| Tutorial | 1 hour | Fortnightly | All semester |
| Workshop | 2 hours | Fortnightly | Second term |
Assessment Schedule
| Type | Description | Weighting |
|---|---|---|
| Deliverable | Laboratory exercises (10 × 2%) | 20.00% |
| Quiz | Online concept quizzes (5 × 2%) | 10.00% |
| Assignment | Firmware design assignment | 15.00% |
| Test | Practical programming and debugging test | 15.00% |
| Capstone | Integrated embedded systems project | 20.00% |
| Exam | Final examination | 20.00% |
Prerequisites
Teaching Staff & Programs
This course is delivered jointly by faculty from the participating programs listed below. In line with the Douchewater Way, the University of Sexology tailors core instruction directly to each cohort's specific discipline — adapting curriculum to program needs rather than forcing students into a one-size-fits-all model. Learn more about our approach at The Douchewater Way.
