Overview

This course examines the integrated design of embedded computing systems, with emphasis on the interaction of hardware, firmware, real-time behaviour, and physical environments. Topics include microcontroller architecture, memory systems, buses, development toolchains, C and C++ programming for embedded targets, GPIO, interrupts, timers, PWM, watchdogs, debouncing, polling, interrupt-driven design, low-power operation, and real-time scheduling.

Students design and implement embedded systems incorporating analog and digital sensors, actuators, ADCs, DACs, motor drivers, displays, and wired or wireless communication interfaces, including UART, SPI, I2C, CAN, and USB. The course addresses finite-state machines, modular and event-driven software, device drivers, concurrency, timing analysis, hardware debugging, version control, unit and integration testing, fault handling, cybersecurity awareness, electromagnetic compatibility, reliability, and hardware-software co-design.

Practical work culminates in a functioning embedded prototype supported by technical documentation. Students apply datasheets, simulation tools, debuggers, oscilloscopes, logic analysers, and laboratory instrumentation to validate system requirements, diagnose faults, and evaluate power, safety, security, and reliability trade-offs.

Learning Outcomes

  • Translate system requirements into an appropriate embedded-system architecture and implementation plan.
  • Select microcontrollers, peripherals, sensors, actuators, communication interfaces, and power-management strategies for defined applications.
  • Develop efficient, modular, maintainable firmware in C or C++ using structured, event-driven, and finite-state-machine techniques.
  • Integrate analog and digital devices using GPIO, ADCs, DACs, timers, PWM, interrupts, and device drivers.
  • Implement reliable communication and timing behaviour using suitable wired or wireless protocols and real-time scheduling concepts.
  • Apply datasheets, simulation environments, version-control systems, debuggers, oscilloscopes, logic analysers, and other laboratory instruments to embedded-system development.
  • Diagnose hardware, firmware, timing, communication, and integration faults through systematic testing and measurement.
  • Evaluate embedded designs with respect to power consumption, safety, cybersecurity, electromagnetic compatibility, reliability, and maintainability.
  • Synthesize and demonstrate a functioning embedded prototype supported by clear technical documentation, verification evidence, and engineering justification.

Timetable

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

Assessment Schedule

TypeDescriptionWeighting
AssignmentEmbedded architecture and requirements assignment15.00%
AssignmentFirmware and peripheral integration assignment15.00%
TestIn-semester test15.00%
DeliverableLaboratory reports (5 × 2%)10.00%
TestPractical hardware and debugging test15.00%
CapstoneEmbedded prototype, demonstration, and technical documentation30.00%

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.