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

TypeLengthFrequencyPeriod
Lecture2 hoursWeeklyAll semester
Lab3 hoursWeeklyAll semester
Tutorial1 hourFortnightlyAll semester
Workshop2 hoursFortnightlySecond term

Assessment Schedule

TypeDescriptionWeighting
DeliverableLaboratory exercises (10 × 2%)20.00%
QuizOnline concept quizzes (5 × 2%)10.00%
AssignmentFirmware design assignment15.00%
TestPractical programming and debugging test15.00%
CapstoneIntegrated embedded systems project20.00%
ExamFinal examination20.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.