Laboratory Assignment

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.

  1. To get started, you should get acquainted with the lecture notes, and articles listed as recommended reading, for Lecture #1.

  2. Apart from the references given above you should provide at least one additional reference in your essay.

  3. 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:

  1. 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.

  2. 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.

  3. 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