General information
To achieve practical experience of the construction
of a real-time system, a compulsory laboratory assignment is included in the
course. The purpose of the assignment is to develop a distributed synthetic
chorus, with several individual tone generators (Part
1) that execute
under strict timing constraints while at the same time being mutually
synchronized other over a communication network (Part
2). The
software is programmed using the C programming language extended with the TinyTimber kernel.
As a preparation for Part 1 and Part 2 of the laboratory assignment, you
work on
Part 0 of the
laboratory assignment during study week 2.
During the course of the laboratory assignment you will see a
simple tone generator develop into a small synthesizer/sequencer
combo capable of performing the song "Brother John" ("Broder Jakob"
in Swedish). And not only that – the whole exercise will emanate into
a network-aware music application that may participate in coordinated
"Brother John" performances together with all other like-minded
boards it finds on the local network. So let the music play!

The expected time to do the entire assignment,
including Part 0, 1 and 2, is 6 weeks (study weeks 2 through 7).
Part 0 should take one session, Part 1 should take 1-2 sessions, and
Part 2 should take 3-4 sessions. Obviously you can finish sooner
whenever you are done with all parts. On the other hand, if you need
more time you can use the remaining week of the study period.
Since the laboratory assignment involves significant interaction with
laboratory assistants (demonstrating designs and solutions) as well as
other groups (designing a communication protocol)
each student is expected to attend at
least 3 laboratory sessions, out of which one must take place in study week 2
or 3.
As a final part of the laboratory assignment the
students should document their work in
a written report that should be electronically
submitted (see below for details).
The grade of the laboratory assignment, according to the scale Fail
(U) or Passed (grades 3, 4, 5), is based on the student's performance during
the laboratory sessions.
Note:
Before you start working on the assignment, you are urged to pay
attention to the Rules of Conduct.
Booking of laboratory sessions
The laboratory
sessions are done in project groups of two students, and take place
in the course laboratories of the Division of Computer Engineering
(room 4225, south part of the EDIT building).
Each project group will be guaranteed one laboratory
session time slot per week. When you register for a group you
will be assigned a time slot that will be on the same weekday and
time for all weeks in the study period.
Register
to a project group on Monday morning in study week 2 at the latest. Please note that you must be logged on to PingPong in order to be able to
access this service.
Registration for a project group is done
here.
The laboratory sessions start in study week 2, and the following time slots are
reserved for the available project groups:
|
RTS A xx |
|
Mon |
|
13.15 - 17.00 |
|
Room 4225 |
|
RTS B xx |
|
Tue |
|
08.00 - 11.45 |
|
Room 4225 |
|
RTS C xx |
|
Wed |
|
08.00 - 11.45 |
|
Room 4225 |
|
RTS D xx |
|
Wed |
|
17.15 - 21.00 |
|
Room 4225 |
Note: Please notify the lab
responsible in case you cannot
attend a laboratory session.
Project report
The written report should include the following:
-
A
separate front page which states your project group number and, for each
member of your group, the name and social security number
("personnummer").
-
The answers to
Problems 1.a, 1.b and 1.c in Part 2, Step 1 of the laboratory
assignment. That is, a description of your software design, focusing primarily on how the
"state-machine" software controlling the tone generator works. Use
access graphs (see slide 26
in
Lecture 3) to illustrate how objects and methods are organized and
refer to each other, and use timing diagrams (see slides 32 - 36
in
Lecture 3) to illustrate the method event chains.
-
The solution to Part 2,
Step 4 of the laboratory assignment. That is, a
description of the CAN message protocol that you developed in
cooperation with other project groups.
-
No source code listings need to be included.
Submission of your project report is done
here.
Submission deadlines:
|
1st submission deadline |
|
March 16 |
|
|
2nd (revision) deadline |
|
March 26 |
|
|
3rd (final approval) deadline |
|
April 2 |
|
Rules for submission of the laboratory report:
-
Deadlines are
hard. If you for some reason cannot
make the deadline, contact us
before the
laboratory report deadline,
and tell us what your reason is, together with a realistic
proposal of a new personal deadline for you. You may then
get an extension of the deadline.
-
You have a total number of
2 attempts to fix your
submission if necessary (so: 1st submission - feedback - 2nd
submission - feedback - and final submission).
So please
read feedback carefully!
Of course, you
are allowed to ask questions if issues are unclear.
-
Your last attempt has to be submitted before the
final
approval deadline. If you fail to do this, your submission will
be rejected.
-
If the laboratory report is
approved
the corresponding examination objective is marked
as 'Passed' in PingPong.