Rahul Mangharam UPenn Mangharam
Courses    |    Project Videos    |    Senior Design Projects



Embedded Systems are everywhere - in mobile phones, automobiles, aircrafts, medical devices and your mp3 player. In fact, Intel/AMD only produce 1% of microprocessors (mainly for use in PCs) while 99% of the microprocessors used today are in embedded computers. Embedded systems are computers dedicated to a specific set of tasks (such as your car’s air-bag deployment system) and must execute them in a timely and safe manner. This course introduces you to the world of embedded systems and microcontrollers – where hardware meets software. This course is a great way to prepare for the Senior Design Project and serves as a launching pad for great ideas that combine electrical, mechanical and software-powered systems.

The primary objectives of this course are to:

  • Understand how real-world embedded devices integrate hardware and software,
  • Experience designing and developing a real operational microcontroller-based sensor/controller /actuator systems
  • Have fun building networked embedded systems!


Spring 2012 ESE 350 Introduction to Embedded Systems and Microcontroller Laboratory
Spring 2011 ESE 350 Introduction to Embedded Systems and Microcontroller Laboratory
Spring 2010

ESE 350 Introduction to Embedded Systems and Microcontroller Laboratory

ESE350 provides an in-depth and hands-on introduction to interfacing real-world sensors and actuators to embedded computing systems. The course is split in two phases:

Phase I covers basic microcontroller concepts and you will learn to program and control the microcontroller at the ‘bare metal’. This phase covers the concepts needed for building electronic systems for real-time operation and user interaction, such as digital input/outputs, interrupt service routines, serial communications, and analog-to-digital conversion.

In Phase II you use an embedded operating system to build larger and more sophisticated projects. Phase II will introduce the entire hardware-software-networking architecture of an embedded computer and will enable you understand how an embedded computer is built from ground-up and how hardware, software and networking interface to build large inter-connected systems. The course will conclude with a month-long student-designed final project demonstration and presentation.


The primary objectives of the Graduate Real-Time and Embedded Systems course are to:

  • obtain a broad understanding of the technologies and applications for the emerging and exciting domain of real-time systems and embedded wireless networks,
  • get in-depth hands-on experience in designing and developing a real operational embedded network system, and
  • design and develop foundational systems software, sensor-actuator-controller algorithms and network protocols.


Fall 2012 ESE 519 Real-Time and Embedded Systems
Fall 2011 ESE 519 Real-Time and Embedded Systems
Fall 2010 ESE 519 Real-Time and Embedded Systems
Spring 2009

ESE 680 Wireless Embedded Network Systems

This course covers the concepts, theory, and tools necessary to understand, design, and build embedded software systems. As such it complements the existing courses on software technology and computer systems. This course does not individually focus on classical software technology, computer architecture, and systems design; instead it build a bridge between these areas, builds upon their concepts, and revisits them with special focus on non-functional properties such as timing and resource consumption.