Syllabus for ME/EE 477 and MME577
Embedded Computing in Electromechanical Systems

Spring 2018

Course description

This course is an introduction to microprocessor-based measurement and control of electrical, mechanical, and electromechanical systems. Topics include microprocessor architecture, computer memory, C programming, hardware and software interfaces, and communications. Emphasis is placed on hardware and software interface design for real-time measurement, control, and user interface.

The course is designed for the Embedded Computing Laboratory, which is described in Appendix A of Embedded Computing. Note that this course was developed in collaboration with Professor Joseph L. Garbini, who has designed a similar course at the University of Washington.

General information

Office Hours (CH 103C)
Tu 12–2 and Th 1–2
Office Hours (CSS)
W 3–4
Office Hours (Pan 107)
W 4–5
CH 105
W 2:00–4:50
477/577 Website
477/577 Moodle


(KR) Any introduction to the C programming language. For example, Kernighan, B. W. and Ritchie, D. M., The C Programming Language. Prentice Hall, 2nd Ed. 1988.

(PH) Patterson, David A. and Hennessy, John L. Computer Organization and Design: The Hardware Software Interface ARM Edition. Morgan Kaufmann Publishers, 2016.

(RW) Derek Rowell and David N. Wormley. System Dynamics: An Introduction. Prentice Hall, 1997.

(Ni) Norman S. Nise. Control Systems Engineering. Seventh Edition. Wiley, 2015.


Partial notes will be posted on the Embedded Computing (EC) and (later in the term) the Control (CN) pages. They are being constantly updated, but I will let everyone know via Slack when each lecture is ready to be printed. Please print each lecture before class and bring it. There are fill-ins and such.


The following schedule is tentative.

week topics introduced resources/reading report/homework due
introduction EC Appendix A, myRIO user guide and specifications
number systems, arithmetic, boolean algebra, combinational logic, memory, memory organization, memory types EC Appendix A, myRIO user guide and specifications Laboratory 00
NI myRIO-1900 introduction, Xilinx Zynq-7010 and ARM Cortex-A9 Architecture ARM architecture, reference manual Laboratory 01, Assignment #1
C programming, variables, expressions, control, CDT, debugging C programming language text
C programming, variables, expressions, control, CDT, debugging C programming language text Laboratory 02
LCD and keypad hardware, data i/o interrupts, serial and parallel interfaces, low-level drivers myRIO Shipping Personality Reference: DIO, myRIO User Guide: UART Laboratory 03
instruction timing, parallel i/o, pulse modulation techniques Cortex-A9 Technical Reference Manual Appendix B
instruction timing, parallel i/o, pulse modulation techniques Cortex-A9 Technical Reference Manual Appendix B Laboratory 04
interrupt driven i/o, internal and external sources, POSIX threads myRIO Shipping Personality Reference: IRQ Digital Input Interrupt
programmable clocks and timing, D/A and A/D conversion, digital signal theory myRIO Shipping Personality Reference: Timer Interrupt Laboratory 05
programmable clocks and timing, D/A and A/D conversion, digital signal theory myRIO Shipping Personality Reference: Timer Interrupt
serial i/o, synchronous and asynchronous Laboratory 06
interface devices, TTL circuits, high-power switches, stepping motors
interface devices, TTL circuits, high-power switches, stepping motors Laboratory 07
encoders and other sensors
finals week Laboratory 08

Laboratory exercises and reports

For each laboratory exercise listed in the schedule, perform the following tasks.


Assignment #1


Class resources will be posted here throughout the semester.

Video lectures

Most lectures will be available online on my YouTube channel. I recommend subscribing and familiarizing yourself with the playlist for this course.


Everyone is required to join the messaging service called “Slack.” We’ll use it to communicate with each other during the semester. The Slack team you need to join is called drrico. That’s a signup link.

Graduate student responsibilities

Graduate students have three additional responsibilities: (1) perform a literature search to understand an aspect of each laboratory exercise in greater depth; (2) as part of the introduction to each laboratory report (should be about a page in the standard format), summarize your research, citing least three academic sources; and (3) at the end of the semester, present an implemented functionality of the electromechanical system with its embedded controller beyond the scope of the laboratory procedures.

Laboratory policies

A laboratory report will be due on Friday of the week it is due. These reports will be submitted via Moodle and must be in accordance with the requirements provided here.

Laboratory procedures should be performed in individually, although collaboration is encouraged. That is, discussions of how to accomplish aspects of the lab are great, but everyone should write their own code.

Laboratory reports should also be prepared individually.

Homework, quiz, & exam policies

Homework & homework quiz policies

When assigned, homework will be due on Fridays.

Working in groups on homework is strongly encouraged, but work turned-in must be one’s own.

Exam policies

A midterm and a final exam may be given, but are not planned. If you require any specific accommodations, please contact me.

If applicable, calculators will be allowed. Only ones own notes and the notes provided by the instructor will be allowed. No communication-devices will be allowed.

No exam may be taken early. Makeup exams require a doctor’s note excusing the absence during the exam.

Grading policies

Total grades in the course may be curved, but individual assignments will not be. They will be available on Moodle throughout the semester.

Assuming no exams are given, the grading breakdown is simple.

Reports, code, assignments

For graduate students, 15% of their grade will depend on their final presentation.

Academic integrity policy

Cheating or plagiarism of any kind is not tolerated and will result in a failing grade (“F”) in the course. I take this very seriously. Engineering is an academic and professional discipline that requires integrity. I expect students to consider their integrity of conduct to be their highest consideration with regard to the course material.

Correlation of course & program outcomes

In keeping with the standards of the Department of Mechanical Engineering, each course is evaluated in terms of its desired outcomes and how these support the desired program outcomes. The following sections document the evaluation of this course.

Desired course outcomes

Upon completion of the course, the following course outcomes are desired:

  1. students will have a clear and thorough understanding of concepts, principles, and methods of embedded computing in electromechanical systems;
  2. students will understand basic computer architecture;
  3. students will understand basic C programming;
  4. students will be able to program an embedded computer;
  5. students will be able to design a basic feedback control system; and
  6. students will be able to write a clear and thorough report of a laboratory exercise.

Desired program outcomes

The desired program outcomes are that mechanical engineering graduates have:

  1. an ability to apply knowledge of mathematics, science, and engineering;
  2. an ability to design and conduct experiments, as well as to analyze and interpret data;
  3. an ability to design a system, component, or process to meet desired needs;
  4. an ability to function on multi-disciplinary teams;
  5. an ability to identify, formulate, and solve engineering problems;
  6. an understanding of professional and ethical responsibility;
  7. an ability to communicate effectively;
  8. the broad education necessary to understanding the impact of engineering solutions in a global and social context;
  9. a recognition of the need for, and an ability to engage in life-long learning;
  10. a knowledge of contemporary issues; and
  11. an ability to use the techniques, skills, and modern engineering tools necessary for engineering practice

Correlation of outcomes

The following table correlates the desired course outcomes with the desired program outcomes they support.

desired program outcomes
desired course outcomes 1