ECEN 5613 is a 3 credit hour course and is the first course in CU's Professional Certificate in Embedded Systems. It is one of the Embedded Systems Engineering program core courses and provides an excellent foundation for students who want to specialize in either hardware or firmware.

ECEN 5613 will be offered through the ECEE department via Zoom with lab work being done in the CU Boulder Engineering Center.


Logistics Fall 2024

  • 3 credit hours, takes about 10-18 hours/week including lectures, depending on student familiarity with the prerequisite material.
  • Lectures: Monday evenings, 6:00-8:30 PM, remote lectures supported, with in-person on-campus lab assignments. Students may gather for lecture in the CU classroom or may attend lectures remotely via Zoom (with camera). Lectures will also be recorded and posted for students enrolled in the course. Lab signoffs are done in person in the CU Boulder Campus laboratory.
  • Projects: Course includes four lab assignments and a final project. Parts for the four lab assignments are included in a parts kit that the students purchase. Students are responsible for sourcing any parts required for their final projects.
  • Prerequisites:  Knowledge of and skills in microprocessor architecture and assembly language, microprocessor peripherals, digital design, and the C programming language is a prerequisite for this course. Although not listed as formal rerequisites, circuits/electronics and computer organization are highly recommended. An understanding of compilers, assemblers, linkers, operating systems, analog design, diodes, transistors, debugging, and electromagnetic fields and waves will be useful. Refer to the course FAQ for more information.
  • Course Materials:  Course materials include lecture slides + recordings, and other online materials. No textbook required. Requires purchase of a parts kit to complete the course lab assignments. In addition, a tool kit and dev kit for the course may be signed out for the semester for free.

Fundamental Course Topics

In this class, the fundamentals of embedded system hardware and firmware design will be explored, including:

  • Processor selection
  • Power delivery, decoupling
  • Clocks and resets
  • Assembly programming
  • Embedded C programming
  • Incremental development (HW, SW)
  • Test equipment / instrumentation 
    (oscopes, multimeters, logic analyzers)

  • Debugging techniques
  • Data sheets
  • Bus cycles, transaction types, timing 
    diagrams, timing analysis
  • Memory maps, chip select logic
  • Serial interfaces (RS-232, I2C, SPI)
  • I/O port pin driver circuits
  • In-circuit programming

  • Device drivers and firmware
  • Interrupts and ISR's
  • Memory mapped I/O
  • Data conversion (DAC's, ADC's)
  • Passive components
  • Design reviews
  • Design trade-offs
  • Entrepreneurship

Each student in the course will develop their own embedded system hardware and firmware and learn important system integration and debugging skills. This course provides students with skills and experience necessary to pursue any type of embedded systems career.


Processor Information

The focus of ECEN 5613 Embedded System design is on learning the fundamentals of hardware and firmware development, and not on learning any particular processor. Students in Embedded System Design will be using multiple processors, such as the Microchip (Atmel) AT89C51RC2, Silicon Labs EFM8 Busy Bee family, and STMicroelectronics STM32 family (ARM Cortex-M4F).