schilk happens



ETH Zürich Embedded Systems

ETH Zürich Embedded Systems



Overview

During the 2023 Fall Semester, I had the incredible opportunity to build from scratch the practical components of the Embedded Systems course taught annually for 250+ students at the ETH Zürich Department for Electrical Engineering and Information Science.

🚧 Note

While the course run successfully run for its first semester, we are still working on updating and improving many different aspects. We plan on publishing and open-sourcing all course materials once they are ready.

Hardware

My previous experience has shown me that most typical microcontroller development boards are hopelessly ineffective as a teaching tool. In general, manufacturer-provided boards fall into one of two categories:

Basic development boards (such as ST's Nucleo line) feature nothing but a microcontroller and programmer, intending for the user to connect different peripherals via some connectors. The lack of different buttons, potentiometers, LEDs, and other "fun" components makes it hard to design visual and engaging exercises. While it would be possible to attach such parts to the board, this does not really scale with 250 students in a room - There are already sufficient problems that require debugging!

Full-featured development boards, on the other hand, tend to be stuffed to the brim with top-of-the-line parts that a manufacturer is trying to sell. While a full-color LCD and 24-bit audio DAC may sound like great peripherals to have for course exercises, I have found them to be far too complex for a student that has just started working with microcontrollers to tackle. Even if they are not used, the complicated schematics and documentation tend to lead to much confusion.

Because of this, we opted to develop a custom hardware platform for our course. At first, we investigated a completed board with an integrated programmer, but quickly dropped the idea because the programmer firmware licenses of different manufacturers would make this either rather difficult or completely illegal.

Instead, we opted to develop a "shield" that is connected to an otherwise bare-bones NUCLEO-L476RG board. It features many rather simple peripherals, each of which provides both opportunities for learning and fun applications:

Labs


With our new hardware in hand, I developed a set of 10 labs, each with multiple practical and theoretical exercises, code handouts, slides, and hundreds of pages of documentation.

Some examples include:

Software



Last semester, I found that students had a hard time understanding what exactly was happening inside the microcontroller - especially when dealing with more complicated RTOS setups.

Unfortunately, I was not able to find an embedded system tracer that fulfilled all my requirements:

So I decided to build my own! You can read all about Tonbandgerät here. It will be used in the upcoming semester.