CSCE 436/836: Embedded Systems
Dr. Carrick Detweiler
109 Schorr Center
Department of Computer Science and Engineering
University of Nebraska-Lincoln
Lincoln, NE 68508
carrick _at_ cse.unl.edu
Tues and Thurs 11:00am-12:15 in room Business Administration 31, Labs in Schorr Center 117A
Office/Lab hours: Tues, Wed, Thurs 1:00-2:00 and by appointment
Embedded Systems are everywhere. Every time you look at your watch,
answer the phone, take a picture, or turn on the TV you are
interacting with an embedded system. Embedded systems are also found
in cars, airplanes, and robots. They far outnumber traditional
computers (which also contain embedded processors) and it is estimated
that there will be thousands of embedded devices per person by 2015
(Lisa Su, CTO Freescale Semiconductor, 2008). Learning to design and
program embedded systems is a critical skill that is necessary for
many industry and scientific jobs.
In this course you will build an omni-directional hovercraft robot and
develop the low-level controllers and sensor interfaces on the
embedded system that control the robot. In this course you will learn
the theory and practice of interfacing, configuring, and programming
embedded systems through the creation of this robot platform.
At a low-level, you will learn about embedded system design, using
digital and analog interfaces, controlling motors, communicating over
various protocols, and interfacing with sensors. At a higher-level you
will learn about implementing, optimizing, and debugging embedded
algorithms to control the covercraft's actions. In addition, you will
learn about networking, embedded operating systems, and power
The hovercraft platform can control a variety of motors, transport
reasonable payloads, and has numerous sensors including gyros and
magnetometers. For the final project, you will extend the robot with
new sensors and develop algorithms that take advantage of these
enhanced capabilities, and by the end of the course you will have a deep
understanding of the design, programming, and interfacing of embedded
systems. This will prepare you for cutting edge careers in industry
Course Website and email
The website for the course is: http://cse.unl.edu/~carrick/courses/2011/436/
You will find the most up-to-date version of the syllabus at that
location, as well as information on readings, assignments, and
projects. Please make sure to check it regularly.
In addition to posting information and assignments on the course
website, I will send information over email to the address you gave me
at the start of the course. I expect that you will check your email
on a daily basis. Please make proper arrangements if you will not be
able to check your email or if your email address changes.
Prerequisites and Requirements
CSCE310, senior or graduate standing, or instructor permission.
This course will be supported primarily by readings from the first two
textbooks. The third is listed here for reference. In addition,
there will be a number of datasheets and online sources that will be
used throughout the course.
Wayne Wolf, Computers as Components, Second Edition: Principles of Embedded Computing System Design, 2nd ed. Morgan Kaufmann, 2008.
Available in the book store.
David Russell, Introduction to Embedded Systems, 2010.
Available for free download when on the UNL campus:
Good reference for embedded C programming. Do not print out this
book, it is less expensive to order a printed copy than to print it
Edward Lee and Sanjit Seshia, Introduction to Embedded Systems, A Cyber-Physical Systems Approach, 2011.
Available as a free download online:
http://leeseshia.org/ Do not print out this book, it is less expensive to order a printed copy than to print it yourself. There are no specific readings from this book, but it is a good reference for those interested in exploring some subjects further.
Topics covered will include basic circuit and schematic reading
skills, datasheet reading skills, embedded C programming, embedded
system design, embedded software design, register and memory access,
digital I/O, bus communication, serial communication interfaces, PWM,
analog to digital converters, interrupts, debugging embedded systems,
designing embedded algorithms, sensors, sensor fusion, program
optimization, networking, process scheduling, multitasking, operating
system design and organization, power management, and more!
See the course website for a detailed course schedule.
Assignments and Grading
All assignments are due via email to carrick _at_ cse.unl.edu.
Please include CSCE 436 or CSCE 836 at the beginning of the subject
line. I will respond to you to acknowledge that I received the
assignment. If you do not receive a response from me within 24 hours,
assume I did not receive your assignment and try to contact me again.
Unless otherwise noted, all assignments are due before the beginning
of class on the day they are due. Assignment due dates are announced
Your final grade will be composed of a number of components. These
|Percentage ||Assignment |
|15% ||Class and Lab Participation |
|15% ||Homework |
|40% ||Labs |
|30% ||Final Project |
There will be at least two homeworks over the course of the semester.
These are individual assignments. It is ok to discuss concepts
behind the problems in the homeworks with classmates, however, you
cannot do them together. If you do discuss problems with classmates
or other people, you must acknowledge this on the assignment (this
will not lead to any grade reduction). As a metric for what level of
discussion is allowed, it is ok to meet and talk over coffee about the
assignment. It is not ok to show someone your solution or to work on
the details of the problems together. In general any discussions
should be limited to discussion and you should not be taking
significant notes on the problems. If in doubt, ask me questions
Homeworks are due via email before the start of class on the day that
they are due. Note that late homeworks are not accepted.
There will be four labs, each worth 10% of your final grade, during
the semester. Each lab group only needs to submit one lab report.
The lab report should be well written with complete sentences and
paragraphs and be readable on its own. It must contain an
introduction, discussion, conclusion, as well as the answers to
specific questions asked. Supporting materials such as pictures, code
examples, etc. are encouraged.
Each lab group will appoint a group member at the start of each lab
that will be primarily responsible for collecting and organizing the
lab report. Each person must do this for at least one lab during the
semester. Everyone in the group must still contribute fully to doing
and writing the lab, the person in charge of the lab just has the
added responsibility of organizing and submitting the lab writeup.
Labs are due via email before the start of class on the day that they
are due. Late labs will receive a 10 point deduction for each 24
hours they are late. That means that if you turn it in after class,
instead of before, your group will start with a 90% as the highest
Lab groups will be assigned at the start of the semester and will
remain the same throughout the semester for the labs and final
project. If you are experiencing any problems with the dynamics of
your group, please let me know early so that we can address them
quickly before they get out of hand.
The final group project will consist of picking, interfacing, and
designing algorithms to utilize a new sensor on the hovercraft. Some
potential ideas are:
Overall the final project is worth 30% of your grade. The breakdown
of the grading for the project is roughly:
|Sensor/Actuator ||Algorithm Ideas |
|accelerometer ||compensate for bumps, learn thruster configurations |
|range finders ||wall following, obstacle avoidance |
|bump sensors ||obstacle avoidance, roomba-like behavior |
|gripper ||transport objects |
|camera ||follow objects |
|IR Comms/range finder ||multi vehicle communication/ranging/localization |
The proposal is a short paper (2-4 pages) describing the sensor you
plan to interface to the hovercraft and the algorithms sensor enables
that you plan to implement. The project report is a final report
describing your project and outcome. The presentation will show your
system, sensor, and algorithms in action to the class and the broader
UNL community. A short pre-presentation before the final presentation
will also be given to ensure system functionality before the final
presentation. Further details on the final project will be given in
|Percentage ||Component |
|5% ||Proposal |
|5% ||Pre-Presentation |
|10% ||Presentation |
|10% ||Project report |
Class and Lab Participation
Participation and lab is critical in this class and counts for 15% of your
grade. You are expected to be prepared for class and lab, do assigned
readings, and ask questions during class and lab. Simply coming to
class and lab is not sufficient for obtaining full marks for
participation; you should actively participate in discussions.
It is acceptable to use computers to read papers and take notes.
However, I expect that their use will not be a distraction. Texting,
tweeting, facebooking, etc. can wait until after class. Do not use
your cell phone during class. It is obvious and is a distraction not
only for you, but for me and your classmates as well.
Students are allowed two absences during the semester. Any absences
beyond this will lead to a reduction in your class participation
grade. There is no exception to this, so it is best to save these
days for times when you are sick and cannot come to class. You do not
need to notify me if you will be absent, although it is appreciated.
Not showing up for class is not an excuse for not turning in an
The exception to the "free" absences is if you are scheduled
to present or give a demonstration. If you do not give your
presentation on your scheduled day you will receive a zero for the
presentation. An absence for your presentation may be excused in the
case of an illness or family emergency if acceptable written evidence
is given and you notify me as soon as possible. Even if you are sick
or leaving town on short notice you should be able to have a friend
notify me that you will be missing your presentation. Please do so as
soon as possible so that I can plan accordingly so you do not waste
the time of the other students in the class.
University Writing Center
The University of Nebraska-Lincoln Writing Center can provide you with
meaningful support as you write for this class as well as for every
course in which you enroll. Trained peer consultants are available to
talk with you as you plan, draft, and revise your writing. Please
check the Writing Center website (http://www.unl.edu/writing/) for
locations, hours, and information about scheduling appointments.
CSE and UNL Policies
You must abide by the Computer Science and Engineering academic
In particular, for this course, do not plagiarize (writing or code)
and make sure to properly cite any sources you use. Any cheating or
plagiarism will be reported to the Chair of your department and your
Dean, and will result in an F for the course.
Students with disabilities are encouraged to contact the instructor
for a confidential discussion of their individual needs for academic
accommodation. It is the policy of the University of Nebraska-Lincoln
to provide flexible and individualized accommodation to students with
documented disabilities that may affect their ability to fully
participate in course activities or to meet course requirements. To
receive accommodation services, students must be registered with the
Services for Students with Disabilities (SSD) office, 132 Canfield
Administration, 472-3787 voice or TTY.
File translated from