Course Overview

This is the homepage for the embedded systems lab course. You can find most course information here.

This course is part of the CESE masters programme. This course is a continuation of the curriculum of Software Fundamentals and Software Systems.

DEADLINE 14TH OF APRIL (CODE + REPORT)

For students who did not follow Software Fundamentals or Software Systems

Software Fundamentals and Software Systems are marked as a prerequisite for this course. In this course we will apply a lot of the things you learned in those courses. We will also be working with Rust, a language that we taught during these two prerequisite courses.

This highly multi-disciplinary course comes with a lab project where teams of 4 students each will have to develop an embedded control unit for a tethered electrical model quad rotor aerial vehicle (the Quadrupel drone), in order to provide stabilization such that it can hover and (ideally!) fly, with only limited user control (one joystick). The control algorithm (which is given) must be mapped onto a home-brew PCB holding a modern nRF SoC interfacing a sensor module and the motor controllers.

The students will be exposed to simple physics, signal processing, sensors (gyros, accelerometers), actuators (motors, servos), basic control principles, and, of course, embedded software (in Rust!) which is the programming language to be used in order to develop the control system.

The course was developed by Arjan van Gemund, a former member of the Embedded and Networked Systems group.

Signup procedure

To take part in this course, sign up was required. You can sign up here: https://forms.office.com/e/kLP9hp0ivh

Course Format

The course is offered during the 3rd quarter of the academic year (feb-apr), and is centered around a lab. Students are split into teams (approximately 3-4 students per team). Each team is responsible for the entire design and implementation trajectory leading up to a working flight demonstrator. The course is compulsory for CESE, and a few seats are available for CS, EE, and other students. The teams will be formed based on skills, type of masters, and organizational issues (black-out dates). The quality of the end result (flight demonstrator plus written report) and the student's personal involvement and contribution determines the course grade.

This course is compulsory for CESE students. Students of other MSc programs may join barring availability; the number of seats for this course is limited by the few quadcopters that we have.

Lab facilities are available under the supervision of two Teaching Assistants throughout the entire course period during the 4-hour labs. The teams are scheduled in such a way that each team has weekly access to the lab facilities during one of three slots. In total each team has 8 labs (i.e., 32 hours) over the entire course period.

Of course, much of the team work, such as meetings, background study, programming, all of which do not require lab equipment (i.e., supervision) (must) be performed outside lab hours. As the project work will most definitively exceed the 32 (supervised) lab hours (more like some 120 hours!), this unsupervised mode of team work has been shown to be a crucial success factor within the project.

Next to the lab, we have two lectures per week. Lectures include QR mechanics, actuators, servos, sensors, elementary control theory, and embedded programming. The purpose of the lectures is to provide the information necessary to successfully perform your lab project.