Michele Magno: Catalogue data in Autumn Semester 2023 |
Name | PD Dr. Michele Magno |
Field | Embedded 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 |
michele.magno@pbl.ee.ethz.ch | |
Department | Information Technology and Electrical Engineering |
Relationship | Privatdozent |
Number | Title | ECTS | Hours | Lecturers | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
227-0085-04L | P&S: Microcontrollers for Sensors and the Internet of Things ![]() The course unit can only be taken once. Repeated enrollment in a later semester is not creditable. | 4 credits | 4P | P. Mayer, M. Magno | ||||||||
Abstract | The 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 objective | Ultra 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-05L | P&S: FPGA in Quantum Computing with Superconducting Qubits ![]() The course unit can only be taken once. Repeated enrollment in a later semester is not creditable. | 3 credits | 3P | M. Magno, K. Akin | ||||||||
Abstract | The 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 objective | FPGAs 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-28L | P&S: iCEBreaker FPGA For IoT Sensing Systems ![]() The course unit can only be taken once. Repeated enrollment in a later semester is not creditable. | 3 credits | 3P | M. Magno, C. Vogt | ||||||||
Abstract | The 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 objective | Ultra 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-29L | P&S: Embedded Deep Learning with Huawei Atlas 200 AI Dev Kit ![]() The course unit can only be taken once. Repeated enrollment in a later semester is not creditable. | 3 credits | 3P | M. Magno | ||||||||
Abstract | The 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 objective | Deep 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-48L | P&S: Introduction to Program Nao Robots for Robocup Competition ![]() Course can only be registered for once. A repeatedly registration in a later semester is not chargeable. | 3 credits | 3P | M. Magno, L. Pascarella | ||||||||
Abstract | The 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 objective | Programming 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-58L | P&S: Autonomous Cars and Robots ![]() The course unit can only be taken once. Repeated enrollment in a later semester is not creditable. | 4 credits | 4P | M. Magno | ||||||||
Abstract | The 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 objective | Autonomous 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-63L | P&S: Enabling Smart and Low Power IoT Sensor Nodes ![]() Course can only be registered for once. A repeatedly registration in a later semester is not chargeable. | 4 credits | 4P | T. Polonelli, M. Magno | ||||||||
Abstract | The 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 objective | Enabling 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-00L | Embedded Systems ![]() ![]() | 6 credits | 4G | M. Magno, L. Thiele | ||||||||
Abstract | An embedded system is a combination of computer hardware and software, either fixed in capability or programmable, that is designed for a specific function or for specific functions within a larger system. The course covers theoretical and practical aspects of embedded system design and includes a series of lab sessions. | |||||||||||
Learning objective | Understanding specific requirements and problems arising in embedded system applications. Understanding architectures and components, their hardware-software interfaces, the memory architecture, communication between components, embedded operating systems, real-time scheduling theory, shared resources, low-power and low-energy design as well as hardware architecture synthesis. Using the formal models and methods in embedded system design in practical applications using the programming language C, the operating system ThreadX, a commercial embedded system platform, and the associated design environment. | |||||||||||
Content | An embedded system is a combination of computer hardware and software, either fixed in capability or programmable, that is designed for a specific function or for specific functions within a larger system. For example, they are part of industrial machines, agricultural and process industry devices, automobiles, medical equipment, cameras, household appliances, airplanes, sensor networks, internet-of-things, as well as mobile devices. The focus of this lecture is on the design of embedded systems using formal models and methods as well as computer-based synthesis methods. Besides the theoretical lecture, the course is complemented by laboratory sessions where students learn to program an embedded system platform including sensors using C, to base their design on the embedded operating system ThreadX, and to edit/debug via an integrated development environment. Specifically, the following topics will be covered in the course: Embedded system architectures and components, hardware-software interfaces and memory architecture, software design methodology, communication, embedded operating systems, real-time scheduling, shared resources, low-power and low-energy design, and hardware architecture synthesis. | |||||||||||
Lecture notes | Lecture material, publications, exercise sheets, and laboratory documentation will be available on the course's Moodle page. | |||||||||||
Literature | Yifeng 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 / Notice | Prerequisites: Basic knowledge in computer architectures and programming. | |||||||||||
Competencies![]() |
| |||||||||||
227-0155-00L | Machine Learning on Microcontrollers ![]() Registration in this class requires the permission of the instructors. Preference is given to students in the MSc EEIT. | 6 credits | 4G | M. Magno, L. Benini | ||||||||
Abstract | Machine 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 objective | Learn 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. | |||||||||||
Content | The 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 notes | Script and exercise sheets. Books will be suggested during the course. | |||||||||||
Prerequisites / Notice | Prerequisites: C language programming. Basics of Digital Signal Processing. Basics of processor and computer architecture. Some exposure to machine learning concepts is also desirable |