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 available time to do the entire assignment,
including Part 0, 1 and 2, is the period from study week 2 to study
week 7.
Experience from previous years gives the nominal times spent on each
part: 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.
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 4 laboratory sessions, out of which one must take place in study week 2.
In the beginning of the course the students should write a topic
essay, on a subject relating to the laboratory assignment (see
below
for details). The topic essay is examined jointly
with English (LSP580).
As a final part of the laboratory assignment the
students should document their work in
a project report that should be electronically
submitted (see below for details). The students should also do a
project presentation in study week 8. The project report and
presentation are examined jointly with English (LSP580). Note: if you
have already done a project presentation you need to provide a
certificate from the responsible teacher.
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 take place in the
course laboratories Bryggan and Gnistan, floor 2, Jupiter building,
campus Lindholmen.
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. Each project group belongs
to either a morning session (groups named "RTS M xx") or an
evening session (groups named "RTS E xx").
Register
to a project group on Monday 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 M xx |
|
Wed |
|
08.15 - 12.00 |
|
|
|
RTS E xx |
|
Wed |
|
17.15 - 21.00 |
|
|
Note: Both members of the
project group must be present at each laboratory session the group
attends. It is therefore important that you notify the examiner in
advance whenever this is not possible.
Grading of laboratory assignment
The grade of the laboratory assignment, according to the scale Fail
(U) or Passed (grades 3, 4, 5), is based on the quality of the
submitted project report as well as the student's performance during
the laboratory sessions. The project report will be awarded a grade
using the criteria defined in English (LSP580).
The laboratory performance will be awarded a grade using the set of
four criteria as defined
here.
The grading of the laboratory performance
includes assessing the quality of the software code (the
"paradigm" criterion).
You should therefore submit the relevant part of your software
(typically, the application.c file) when Part 2, Step 2 has been
approved.
Submission of your software code is done
here.
Note: you do not have to submit any of the source files relating to
the TinyTimber run-time system.
Topic essay
The essay should be written according to the
gudelines given by English (LSP580).
Topic-wise, the essay should contain your reflections on The
Ethics of using Free Software in Safety-Critical Applications.
-
To get
started, you should get acquainted with the lecture notes, and articles
listed as recommended reading, for
Lecture #1.
-
Apart from the
references given above you should provide at least one additional
reference in your essay.
-
Questions that may help you in your
reflections: Are there codes of ethics for your engineering discipline?
Are there risks that can be acceptable for a software product? Is there
a limit of how much testing and verification should be done for a
software product?
Submission of your
essay is done here.
Submission deadlines:
|
Essay submission deadline |
|
April 23 |
|
Project report
The written project report should include the standard
sections presented in
English (LSP580).
In addition, the report should describe your project with a particular
focus on the following:
-
The solution to Part 2,
Step 1 of the laboratory assignment: An overall
description of your software design, focusing primarily on how the
"state-machine" software controlling the tone generator works; that is,
how tones are started and stopped according to the melody being played
(and the key and tempo chosen). 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: A description of your CAN message
protocol, focusing on what commands your protocol contains to allow the
leader board to control the melody being played on the slave boards.
Describe the functionality of each command and illustrate how the
command is encoded in the CAN message identifier and data field.
-
No source code listings need to be included in
the report. Instead you submit your code when Part 2, Step 2 is
done (see above).
Submission of your project report is done
here.
Submission deadlines:
|
Draft submission deadline |
|
May 18 |
|
|
Full report deadline |
|
June 4 |
|
|
Final approval deadline |
|
June 11 |
|