Michele Magno: Catalogue data in Autumn Semester 2024

Name PD Dr. Michele Magno
FieldEmbedded Systems and Tiny Machine Learning
Address
Zentr. f. projektbasiertes Lernen
ETH Zürich, ETF F 109
Sternwartstrasse 7
8092 Zürich
SWITZERLAND
Telephone+41 44 632 66 86
E-mailmichele.magno@pbl.ee.ethz.ch
DepartmentInformation Technology and Electrical Engineering
RelationshipPrivatdozent

NumberTitleECTSHoursLecturers
227-0085-04LP&S: Microcontrollers for Sensors and the Internet of Things Restricted registration - show details
The course unit can only be taken once. Repeated enrollment in a later semester is not creditable.
4 credits4PP. Mayer, M. Magno
AbstractThe category of "Laboratory Courses, Projects, Seminars" includes courses and laboratories in various formats designed to impart practical knowledge and skills. Moreover, these classes encourage independent experimentation and design, allow for explorative learning and teach the methodology of project work.
Learning objectiveUltra Low Power Microcontroller (MCU) – Firmware Programming and Sensors Interfacing using Arm Cortex-M (STM32) Microcontrollers

Microprocessors are used to execute extensive and generic applications.
In contrast to that, microcontrollers (MCUs) are low-cost and low-power embedded chips with program memory and data memory built into the device. They are widely used to execute simple tasks within one specific application domain (i.e., sensor devices, wearable systems, and IoT devices). Microcontrollers demand precise and resource-saving programming. Therefore, it is necessary to know the processor architecture, relevant hardware peripherals (clocks, timers, interrupts, ADC, serial interfaces, etc.), and their implementation in the targeted device.

The STM32 family from STMicroelectronics has gained popularity in the industry due to its large product portfolio, solid documentation, and ease of use. This course aims to develop a basic understanding of hard and software concepts for embedded systems and their application in real-world problems. A combination of theory (20%) and practical implementation (80%) should enable students to conduct high-level firmware programming for microcontrollers. Besides programming the MCU, this includes the interaction with analog and digital sensors, data management, on-device processing, and wireless data exchange. More advanced topics, such as hardware-accelerated digital signal processing (DSP), machine learning, and real-time operating systems, will be discussed as part of individual projects if needed. The main programming language will be C.

The course will be taught in English.
227-0085-05LP&S: FPGA in Quantum Computing with Superconducting Qubits Restricted registration - show details
The course unit can only be taken once. Repeated enrollment in a later semester is not creditable.
3 credits3PM. Magno, K. Akin
AbstractThe category of "Laboratory Courses, Projects, Seminars" includes courses and laboratories in various formats designed to impart practical knowledge and skills. Moreover, these classes encourage independent experimentation and design, allow for explorative learning and teach the methodology of project work.
Learning objectiveFPGAs are used in wide range of applications including video processing, machine learning, cryptography and radar signal processing, thanks to their flexibility and massive parallel processing power. Recently FPGAs have become important in quantum signal processing where high amount of data should be analyzed in a short time to use quantum setups most efficiently. In addition, FPGAs are used for quantum state detection and feedback generation, which have to be performed in the scale of hundreds of nanoseconds. The goal of this course is to understand the FPGA based signal processing for superconducting circuits based quantum experiments. The course participants will learn the implementation techniques of the modules for fast quantum signal acquisition and processing, the electronics supporting quantum experiments, and FPGA programming. You will implement quantum signal processing and quantum state detection modules using Xilinx FPGA, Verilog HDL, and high speed ADC. The course will be taught in English. No prior knowledge in quantum physics or FPGA is required, still a good knowledge in any coding language (for example C or Java) is required.
227-0085-06LP&S: Neural Network on Low Power FPGA: A Practical Approach Restricted registration - show details
Does not take place this semester.
The course unit can only be taken once. Repeated enrollment in a later semester is not creditable.
2 credits2PM. Magno
AbstractThe category of "Laboratory Courses, Projects, Seminars" includes courses and laboratories in various formats designed to impart practical knowledge and skills. Moreover, these classes encourage independent experimentation and design, allow for explorative learning and teach the methodology of project work.
Learning objectiveArtifical Intelligence and in particular neural networks are inspired by biological systems, such as the human brain. Through the combination of powerful computing resources and novel architectures for neurons, neural networks have achieved state-of-the-art results in many domains such as computer vision. FPGAs are one of the most powerful platform to implement neural networks as they can handle different algorithms in computing, logic, and memory resources in the same device. Faster performance comparing to competitive implementations as the user can hardcore operations into the hardware. This course will give to the student the basis of Machine Learning to understand how they work and how they can be trained and giving hand-on experiences with the training tools such as Keras. Moreover the course will focus in deploy algorithms in low power FPGA such as the Lattice sensAI platform to have energy efficient running algorithms. The course will provide to the students the tools and know-how to implement neural netwok on an FPGA, and the student will challenge theirself in a 5 weeks piratical project that they will present at the end of the course. Experience in FPGA programming is desirable but not mandatory.

The course will be taught in English.
227-0085-08LP&S: Bluetooth Low Energy Programming for IoT Sensing System Restricted registration - show details
Does not take place this semester.
The course unit can only be taken once. Repeated enrollment in a later semester is not creditable.
3 credits3PM. Magno
AbstractThe category of "Laboratory Courses, Projects, Seminars" includes courses and laboratories in various formats designed to impart practical knowledge and skills. Moreover, these classes encourage independent experimentation and design, allow for explorative learning and teach the methodology of project work.
Learning objectiveBluetooth Low Energy System on Chip – Firmware Programming and sensors Interfacing using an Arm Cortex-M (Nordic nrf52838) Microcontroller

With the introduction of the BLE 5.0 standard, Bluetooth has achieved high data bandwidth with low power consumption. This makes the technology an ideal match for many applications, i.e., IoT sensor application or audio streaming, by addressing two of the greatest bottlenecks of these devices. This course offers the chance for participants to do hands-on programming of microcontrollers. In particular, the focus will be laid on interfacing with sensors, acquisition of data, on-board event-driven data processing with ARM-Cortex-M4 processors and BLE or other wireless transmissions. The programming will be performed in C. Today’s microcontrollers offer a low power, efficient and cost-effective solution of tackling a nearly infinite number of task-specific applications. Ranging from IoT devices, wearable systems, sensor (mesh) devices, all the way to be integrated as submodules for the most complex system such as cars, planes, and rockets. Microcontrollers derive their advantages from the efficient use of resources and as such require very efficient and resource-saving programming. Therefore, it is mandatory to understand hardware components such as processor cores, ADC, clocks, serial communication, wireless communication, timers, interrupts, etc. The P&S includes five weeks project where the student will setup an IoT sensor node to monitor electric power transmission and distribution system.

The course will be taught in English by the ITET center for project based learning.
227-0085-26LP&S: Biosignal Acquisition and Processing for IoT Wearable Devices Restricted registration - show details
Does not take place this semester.
The course unit can only be taken once. Repeated enrollment in a later semester is not creditable.
3 credits3PM. Magno
AbstractThe category of "Laboratory Courses, Projects, Seminars" includes courses and laboratories in various formats designed to impart practical knowledge and skills. Moreover, these classes encourage independent experimentation and design, allow for explorative learning and teach the methodology of project work.
Learning objectiveBiosignal acquisition and processing – Wearable sensor node design and analysis for bio-impedance sensor using an Arm Cortex-M (Nordic nrf52838) Microcontroller
Wearable smart sensor electronics has the potential to revolutionize the medical field. Various body conformal flexible sensors have been used to monitor motion and physiological electrical signals such as electrocardiography (ECG), electroencephalography (EEG) and body composition analysis via body bio-impedance measurements. Smart sensor nodes not only provide accurate and continuous data in time but also automate the process of maintaining medical records, thereby lowering the workload oft he health worker or clinician. This course offers an avenue for the students to understand the interdisciplinary principles that make it possible to interpret human physiology by utilizing discreet electronic components. Most importantly, participants will get a chance to do hands-on system design specific to electronically tracking a particular physiological phenomenon. In particular, the focus will be laid on programming of micro controllers, interfacing with sensors, acquisition of data and utilizing discreet analog elements for bio-signal processing. The programming will be performed in C.


The course will be taught in English and by the ITET center for project based learning.
227-0085-27LP&S: Android Application Development (AAD) Restricted registration - show details
Does not take place this semester.
The course unit can only be taken once. Repeated enrollment in a later semester is not creditable.
4 credits3PM. Magno
AbstractThe category of "Laboratory Courses, Projects, Seminars" includes courses and laboratories in various formats designed to impart practical knowledge and skills. Moreover, these classes encourage independent experimentation and design, allow for explorative learning and teach the methodology of project work.
Learning objectiveAndroid Applications – Programming and development of Application - Android Studio – Smart Phone Sensors – GPS and Google Maps.

Although the App-Industry is dominated by the giant Apps right now, it is still crucial that one knows how those Apps function and how those Apps are communicating with their hardware. This course offers the opportunity for the participants to understand the development of application using Android Studio. Most importantly, participants will get a chance to do hands-on software design specific to Android smartphone and the data acquisition from sensors, GPS, google maps and other internal devices. The main goal of the course if providing the students with the basic principle and software programming for build up every android application. The course include 4-5 weeks project were the students alone or in group will build up a working demo of a target application. The course will conclude with the presentation of the students work. Previous experience in C/Java or other languages is preferable but not mandatory. The students will program their own Android Smartphone.

The course will be taught in English by the new Project-based learning centre.
227-0085-28LP&S: iCEBreaker FPGA For IoT Sensing Systems Restricted registration - show details
The course unit can only be taken once. Repeated enrollment in a later semester is not creditable.
3 credits3PM. Magno, C. Vogt
AbstractThe category of "Laboratory Courses, Projects, Seminars" includes courses and laboratories in various formats designed to impart practical knowledge and skills. Moreover, these classes encourage independent experimentation and design, allow for explorative learning and teach the methodology of project work.
Learning objectiveUltra Low Lattice FPGA – High Level Programming – Peripehrals Interfacing using an Lattice FPGA

Field-programmable gate array (FPGA) is an integrated circuit designed to be configured by a customer or a designer after manufacturing , so they are also "field-programmable". The FPGA configuration is generally specified using a hardware description language (HDL), similar to that used for an application-specific integrated circuit (ASIC). However more and more nowdays producers and open source community are providing higher level toolls to program them similary than processors. On the other side still it is important know the hardware architectures. This course will give to the students the opportunity to program FPGA in a high level way and use them to connect with external peripherals such as display, sensors, etc. In particular, the course will use the iCEBreaker FPGA boards that is specifically designed for students and engineers . They work out of the box with the latest open source FPGA development tools and next-generation open CPU architectures. The course will also iCEBreaker can be expandable through its Pmod connectors, so the students can make use of a large selection of third-party modules. The course will include a project where the students will learn how to build a full working system for the next generation of Internet of Things intelligent smart sensing.

The course will be taught in English by the new D-ITET center for Project-based learning.
227-0085-29LP&S: Embedded Deep Learning with Huawei Atlas 200 AI Dev Kit Restricted registration - show details
The course unit can only be taken once. Repeated enrollment in a later semester is not creditable.
3 credits3PM. Magno
AbstractThe category of "Laboratory Courses, Projects, Seminars" includes courses and laboratories in various formats designed to impart practical knowledge and skills. Moreover, these classes encourage independent experimentation and design, allow for explorative learning and teach the methodology of project work.
Learning objectiveDeep Learning Intro - Python - Accelerated Embedded Computing

Deep neural networks (DNNs) have become the leading method for a wide range of data analytics tasks, after a series of major victories at the ImageNet Large Scale Visual Recognition Challenge (ILSVRC). For ILSVRC, the task was to classify images into 1000 different classes, many of which are difficult to distinguish (e.g. many classes are different breeds of dogs). All that was given were 1.2 million labelled images. Meanwhile, this recipe for success has taken over many more areas, from image-based tasks like segmenting objects in images, detecting objects, enhancing images using super-resolution and compression artifact reduction, to robotics and reinforcement learning, and a wide range of industrial applications.
DNNs and their subtype convolutional neural networks (CNNs) have not been new in the 2013 when the wave of success has started, but they got this huge boost through the new availability of large-scale dataset and—at least as importantly—the availability of the necessary compute resources by using GPUs to perform the computations required during training.
While GPUs were then also used to stem the high computation effort of DNNs during inference (e.g. classifying images directly using a trained DNN rather than training the DNN itself). The high demand, the need for cost efficiency, and the goal of deploying DNNs not just in data centers but pervasively in everyday devices, wearables, and low-latency industrial or interactive applications, has triggered the development of various application-specific processors which are much faster, vastly more energy efficient, and cheaper at the same time—such as the Google TPU, Graphcore, …, and Huawei’s Ascend/Atlas platforms.

In this course, you will learn:
1) the basics of deep neural networks, how they work, and what challenges there are for inference,
2) how platforms with specialized hardware accelerators, specifically the Huawei Atlas 200, can be used for running DNN inference and getting a practical application running, and
3) work on your own project using DNNs and hardware accelerators based on your own ideas or on some of our proposals.

The course will be taught in English by the new D-ITET center for Project-Based Learning and a special guest lecturer from Huawei. Individual interactions/help can also be in (Swiss) German.
Most sessions will be around 1 hour of lecture and 2 hours of practical computer exercises. We will start an introduction and then you will have ca. 8 weeks to work on your project, which will concluded with a final presentation of your results.
227-0085-39LP&S: Python for Science & Machine Learning Restricted registration - show details
Does not take place this semester.
Course can only be registered for once. A repeatedly registration in a later semester is not chargeable.
3 credits3PM. Magno
AbstractThe category of "Laboratory Courses, Projects, Seminars" includes courses and laboratories in various formats designed to impart practical knowledge and skills. Moreover, these classes encourage independent experimentation and design, allow for explorative learning and teach the methodology of project work.
Learning objectiveThis beginner course to programming with Python - with a focus on applications in science and technology - is an ideal starting point for later courses. We will start with an introduction to the dev environment and tools for effective development to get you started. Then we will learn the basics of Python with exercises, and discover popular modules for data processing and visualisation that will be useful for your later studies and career. We conclude with an introduction to popular machine learning techniques and some time for you to implement your own small free-style projects.

By the end of the semester, you will
- be familiar with your PC’s command-line interface and know how to use available dev environments effectively.
- have learned the basics of Python and be able to write basic programs that do what you want (most of the time) with the help of modules.
- be able to process, visualize and analyze numerical data, e.g. lab measurements, images, etc.
- have first experience with machine learning techniques
- maintain your first git repository and know how to collaborate with others on coding projects.

Language: English / German (if necessary)
227-0085-45LP&S: Robotic Maze Solving with a TI-RSLK Robot (RMaze) Restricted registration - show details
Does not take place this semester.
Course can only be registered for once. A repeatedly registration in a later semester is not chargeable.
3 credits3PM. Magno
AbstractThe category of "Laboratory Courses, Projects, Seminars" includes courses and laboratories in various formats designed to impart practical knowledge and skills. Moreover, these classes encourage independent experimentation and design, allow for explorative learning and teach the methodology of project work.
Learning objectiveMicrocontroller programming (C) – Peripherals Interfacing using a MSP433 MCU – Control of a Robot in a maze

The course will focus on teaching how to build and program a Texas Instrument robotic system learning kit (TI-RSLK). It is a robot kit, which includes a 2 wheeled robot, a line sensor to determine lines on the floor as well as sensors to recognize walls. The robot is driven by a MSP432 state of the art ARM Cortex M4 processor.

This course will give the students the opportunity to learn how to program the microcontroller of this robot to navigate in a small maze. For this, the students will learn how to control the motors and, consequently the movement of the robot with the peripherals of the microcontroller. Next to the movement, also the control and readout of the attached sensors will be part of the P&S course.

Once the students are able to read sensor values and control the motors of the robot, this course will conclude with a 4-week project. Within this project the students will design their own algorithm, such that the robot can navigate autonomously within a maze. A small competition at the end of the P&S will find the fastest robot of the group.

The course will be taught in English by the new D-ITET center for Project-based learning, the programming toolchain will be installed on the student’s own laptop. Experience with microcontroller programming (C) is an advantage, however not required. A short introduction will be given during the course.

This course will be taught in English or in German if necessary.
227-0085-46LP&S: Embedded Systems With Drones Restricted registration - show details
Does not take place this semester.
Course can only be registered for once. A repeatedly registration in a later semester is not chargeable.
4 credits4PM. Magno
AbstractThe category of "Laboratory Courses, Projects, Seminars" includes courses and laboratories in various formats designed to impart practical knowledge and skills. Moreover, these classes encourage independent experimentation and design, allow for explorative learning and teach the methodology of project work.
Learning objectiveMicrocontrollers - Programming in C – Drones – Autonomous Drones – Embedded System – Sensors.


Drones can be fun to use but understanding the hardware and software and building and programming them to be intelligent and autonomous is even better. This course gives the basis of the embedded systems having the drones as the primary target. The course will introduce embedded systems and, in particular, the microcontroller ARM Cortex-M, focusing on all the crucial blocks such as Interrupts, GPIO, ADC's, Timers, and Serial communication protocols. Apart from the core topics, real-time and power-efficient algorithms for attitude and motor control are also discussed, making the drone efficient. Finally, exciting drone exercises are supported in the course to experiment with the development kit. The course will end with a 4-5 weeks project where the students will make the drone fly with some specific goal. It is not required any previous knowledge except C language.
The course will be taught in English and organized by the new Project-Based Learning center.
227-0085-47LP&S: Machine Learning on Smart Phone Restricted registration - show details
Does not take place this semester.
Course can only be registered for once. A repeatedly registration in a later semester is not chargeable.
3 credits3PM. Magno
AbstractThe category of "Laboratory Courses, Projects, Seminars" includes courses and laboratories in various formats designed to impart practical knowledge and skills. Moreover, these classes encourage independent experimentation and design, allow for explorative learning and teach the methodology of project work.
Learning objectiveMachine Learning with Smart Phone Sensors –Programming Android Phones – Neural Networks – Keras/Tensor Flow- Projects and App on smartphones

Smartphones have several sensors that can acquire much useful information, for instance where we are, what we are doing, with whom we are together, what is our constitution, what are our needs. Based on this information our 'smartphone' offers us the appropriate computational power to process them in loco without sending the sensor data to the cloud. This course focus on giving the bases of machine learning and embedded systems. The student will learn the tools to implement a machine learning algorithm, such as Tensor Flow and others in their android phones to have an advanced smartphone. The course will end with 4 weeks project where the students can target a specific application scenario. It is not required any previous experience In machine learning. Phyton is a plus but the basis of phyton will be given in the course to be able to complete the project.
The course will be taught in English and organized by the new Project-based Learning center.
227-0085-48LP&S: Introduction to Program Nao Robots for Robocup Competition Restricted registration - show details
Does not take place this semester.
Course can only be registered for once. A repeatedly registration in a later semester is not chargeable.
3 credits3PM. Magno
AbstractThe category of "Laboratory Courses, Projects, Seminars" includes courses and laboratories in various formats designed to impart practical knowledge and skills. Moreover, these classes encourage independent experimentation and design, allow for explorative learning and teach the methodology of project work.
Learning objectiveProgramming Robots – Sensors- Humanoid Robot.

NAO robots from Softbank are the leading humanoid robot being used in research and education worldwide. Robotics is the fastest growing and most advanced technology used in education and research. The main goal of this course is to introduce and allowing the students to learn how to program an NAO humanoid robot to make him walk, talking, watching objects understanding the human, and reacting to external input. The Nao Robots used in this course are equipped with many sensors: Tactile Sensors, Ultrasonic sensors, A Gyro, An Accelerometer, Force Sensors, Infrared sensors, 2 HD Cameras, 4 Microphones, and high accuracy digital encoders on each joint. It has two processors on board: an Intel Atom 1.6Ghz (The main computer includes SSD drive, WiFi, Bluetooth, and wired network) and an additional ARM-9 processor in its chest.
The course will introduce the software package and the full SDK and API. The students will learn how to program ( mainly in C and Phyton) the robot to access the full functionality. To improve the hands-on skills of students the course will end with a 5 weeks project where the students in the group will compete in a small soccer game where the robots will play the game following and kicking a red ball. It is not requested any previous knowledge but programming skills are a plus.
The course will be taught in English and organized by the new Project-based Learning center.
227-0085-49LP&S: Smart Patch Projects Restricted registration - show details
Does not take place this semester.
Course can only be registered for once. A repeatedly registration in a later semester is not chargeable.
4 credits4PM. Magno
AbstractThe category of "Laboratory Courses, Projects, Seminars" includes courses and laboratories in various formats designed to impart practical knowledge and skills. Moreover, these classes encourage independent experimentation and design, allow for explorative learning and teach the methodology of project work.
Learning objectiveWearable devices, PCB Design, Firmware developing, multi-sensors, Communication.

The Smart Patch project will design autonomous, low power and mesh enabled multi-sensor wearable smart patches. They will be based on the always-on smart sensing paradigm to continuously acquire process and stream physiological data in real-time. They can be trained to autonomously detect illness symptoms or other physical conditions, such as stress. The students will work in a team to design a sub-block of the smart patch. According to the students' background, they will be associated swith designing the hardware or the firmware. Together in a team, they will learn how to structure problems and identify solutions, system analysis, and simulation, as well as presentation and documentation techniques. They will get access to D-ITET labs and state-of-the-art engineering tools (Matlab, Simulink, Firmware development IDE, PCB Design, etc.)

The projects will be done under the Smart Patches: a flagship project for D-ITET students. (pbl.ee.ethz.ch)
227-0085-58LP&S: Autonomous Cars and Robots Restricted registration - show details
The course unit can only be taken once. Repeated enrollment in a later semester is not creditable.
4 credits4PM. Magno
AbstractThe category of "Laboratory Courses, Projects, Seminars" includes courses and laboratories in various formats designed to impart practical knowledge and skills. Moreover, these classes encourage independent experimentation and design, allow for explorative learning and teach the methodology of project work.
Learning objectiveAutonomous mobile robotics is a promising field that spans from food delivery robots to the Perseverance Mars rover. In this P&S you will be introduced to the fundamental building blocks of robotics, by hands on experience in the context of the F1TENTH autonomous racing and the Robot Operating System (ROS)!

Autonomous racing pushes the boundaries in algorithmic design and implementation in the
fields of perception, planning and control. Thus it serves researchers as a limits test for
autonomous driving and is an important building step in the field of general self driving and
AI. F1TENTH is an open-source autonomous racing competition involving a racing car in the
scale of 1:10.

This P&S allows you to apply hands-on robotics and is the right fit for you if you want to further delve into this fascinating field of embedded systems, perception, planning and control. Lastly, you will get experience in the widely used ROS framework.
Prerequisites / Notice- Can use the Linux-Terminal (e.g. navigating folder structure and ssh)
- Python (e.g. basic loops, OOP)
- Interest in autonomous driving
- 20GB of free space on your laptop
227-0085-63LP&S: Enabling Smart and Low Power IoT Sensor Nodes Restricted registration - show details
Course can only be registered for once. A repeatedly registration in a later semester is not chargeable.
4 credits4PT. Polonelli, M. Magno
AbstractThe category of "Laboratory Courses, Projects, Seminars" includes courses and laboratories in various formats designed to impart practical knowledge and skills. Moreover, these classes encourage independent experimentation and design, allow for explorative learning and teach the methodology of project work.
Learning objectiveEnabling smart and low-power IoT sensor nodes – Firmware programming, sensor acquisition and signal processing, digital interfaces, wireless connectivity (Bluetooth and WiFi) combined with an onboard Neural Network (NN) classifier.

Microprocessors (MCU) are everywhere today, from ultra-low power wearable devices to robots and embedded systems for the industry. In general, combining an MCU with sensors, a wireless interface, and onboard signal processing is the foundation for most electronic devices.
In this practical course, the students will have the opportunity to improve their C programming skills on an actual device, with several sensors (microphones, accelerometers, vibrometers, temperature, humidity), a dual Bluetooth-WiFi wireless interface, and an AI accelerator for onboard data analysis and processing.
The kit used in this course is directly provided by STMicroelectronics and can be found here: https://www.st.com/en/evaluation-tools/steval-stwinkt1.html. Combining theory (20%) and practical implementation (80%) should enable students to conduct high-level firmware programming for microcontrollers.
After seven practical exercises and hands-on lessons, students will have the opportunity to propose and implement their own idea making use of the previously acquired knowledge and the supervisor's support.

The primary programming language will be C. A basic knowledge of Python is suggested but optional.
The course will be taught in English.
227-0124-00LEmbedded Systems Information Restricted registration - show details 6 credits4GM. Magno
AbstractAn embedded system is a combination of hardware and software, either fixed in function or programmable, that is designed for a specific application scenario or for a specific task within a larger system. They are part of industrial machines such as agricultural and manufacturing equipment, automotive systems, medical equipment, household appliances, sensor networks, and the Internet of Things.
Learning objectiveUnderstanding the specific requirements and problems that arise in embedded system applications.

Understanding the hardware structure of a microcontroller and an embedded system; memory architecture and memory map, internal and external peripherals, low-power and low-energy design as well as instruction sets and computational accelerators.

Understanding the firmware structure of a microcontroller and an embedded system; low-level instruction set, hardware-software interfaces, communication between components, embedded real-time operating systems, real-time scheduling, shared resources, low-power and low-energy programming as well as computational accelerators.

Using formal models and methods for designing and optimizing embedded systems.

Gaining experience with practical applications of the C programming language, embedded real-time operating systems, and debug functionalities of the associated design environment to design, implement, and verify embedded firmware.

Through project-based activities, students will gain substantial experience in applying the C programming language in the context of embedded systems. Projects will involve developing and implementing firmware, utilizing embedded real-time operating systems, and exploring the debugging functionalities within design environments. This hands-on approach aims to bridge the gap between theoretical knowledge and practical application, allowing students to experience the full lifecycle of embedded system development from design to implementation and verification.
ContentThis lecture focuses on the design of embedded systems using formal models and methods.

Besides the theoretical lecture, the course contains laboratory sessions where students transfer the learned theoretical aspects into praxis by programming a microcontroller and interfacing it with sensors and actuators.
Students will be exposed to a commercial microcontroller, and the development board extend with a custom-designed embedded systems educational platform.

Specifically, the following topics will be covered in the course: hardware and software structures of embedded systems, low-level instruction set, memory architecture and memory map, peripherals, hardware-software interfaces, communication between components, firmware design methodologies, firmware design using the C programming language, embedded real-time operating systems, real-time scheduling, shared resources, low-power, and low-energy designs well as computational accelerators.
Lecture notesLecture material, publications, exercise sheets, and laboratory documentation will be available on the course's Moodle page.
LiteratureYifeng Zhu: Embedded Systems with Arm Cortex-M Microcontrollers in Assembly Language and C - Fourth Edition, E-Man Press LLC, ISBN: 978-0982692677, 2023

Giorgio C. Butazzo: Hard Real-Time Computing Systems. Predictable Scheduling Algorithms and Applications, Springer, ISBN 978-1-4614-3019-3, 2011
Prerequisites / NoticePrerequisites: C programming, circuit theory, digital logic, binary number representations.

Recommended: basic knowledge of assembly programming and computer architecture.
CompetenciesCompetencies
Subject-specific CompetenciesConcepts and Theoriesassessed
Techniques and Technologiesassessed
227-0155-00LMachine Learning on Microcontrollers Restricted registration - show details
Registration in this class requires the permission of the instructors.
Preference is given to students in the MSc EEIT.
6 credits4GM. Magno
AbstractMachine Learning (ML) and artificial intelligence are pervading the digital society. Today, even low power embedded systems are incorporating ML, becoming increasingly “smart”. This lecture gives an overview of ML methods and algorithms to process and extract useful near-sensor information in end-nodes of the “internet-of-things”, using low-power microcontrollers/ processors (ARM-Cortex-M; RISC-V)
Learning objectiveLearn how to Process data from sensors and how to extract useful information with low power microprocessors using ML techniques. We will analyze data coming from real low-power sensors (accelerometers, microphones, ExG bio-signals, cameras…). The main objective is to study in details how Machine Learning algorithms can be adapted to the performance constraints and limited resources of low-power microcontrollers.
ContentThe final goal of the course is a deep understanding of machine learning and its practical implementation on single- and multi-core microcontrollers, coupled with performance and energy efficiency analysis and optimization. The main topics of the course include:

- Sensors and sensor data acquisition with low power embedded systems

- Machine Learning: Overview of supervised and unsupervised learning and in particular supervised learning (Bayes Decision Theory, Decision Trees, Random Forests, kNN-Methods, Support Vector Machines, Convolutional Networks and Deep Learning)

- Low-power embedded systems and their architecture. Low Power microcontrollers (ARM-Cortex M) and RISC-V-based Parallel Ultra Low Power (PULP) systems-on-chip.

- Low power smart sensor system design: hardware-software tradeoffs, analysis, and optimization. Implementation and performance evaluation of ML in battery-operated embedded systems.

The laboratory exercised will show how to address concrete design problems, like motion, gesture recognition, emotion detection, image and sound classification, using real sensors data and real MCU boards.

Presentations from Ph.D. students and the visit to the Digital Circuits and Systems Group will introduce current research topics and international research projects.
Lecture notesScript and exercise sheets. Books will be suggested during the course.
Prerequisites / NoticePrerequisites: C language programming. Basics of Digital Signal Processing. Basics of processor and computer architecture. Some exposure to machine learning concepts is also desirable