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 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 quality of the submitted written report as well as 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 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: Please notify the lab responsible in case you cannot attend a laboratory session.

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 answers to Problems 1.a, 1.b and 1.c in Step 1, Part 2 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.

  2. The solution to Step 4, Part 2 of the laboratory assignment. That is, a description of the CAN message protocol that you developed in cooperation with other project groups.

  3. No source code listings need to be included.

Submission of your project report is done here.

Submission deadlines:
  •  
Draft submission deadline     May 18    
  •  
Full report deadline     June 5    
Final approval deadline   June 12