Michele Magno: Catalogue data in Spring Semester 2022 |
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 | |
---|---|---|---|---|---|
173-0002-00L | Embedded Systems and Computer Programming Only for MAS in Advanced Fundamentals of Mechatronics Engineering | 5 credits | 11G | M. Magno | |
Abstract | An embedded system is some 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 | - Learning and improving the key bases of C programming for Embedded Systems. - Understanding specific requirements and problems arising in embedded system applications. - Understanding embedded systems architectures and components, hardware-software interfaces, embedded operating systems, real-time scheduling theory, as well as low-power and low-energy design. - Using the formal models and methods in embedded system design in practical applications using the programming language C, the operating system FreeRTOS, a commercial embedded system platform and the associated design environment. | ||||
Content | Embedded Systems are today present in the form of a wide range of electronics devices for several application scenarios. Having a deep understanding of Embedded Systems will give the students the skills to design and manufacture different kinds of embedded system devices, including the Internet of Things and smart sensors. This course focuses on learning the bases of embedded systems and the design of embedded systems using formal models and methods from a software point of view. Specifically, the following topics will be covered in the course: basics of C programming for embedded systems, embedded system architectures and components, hardware-software interfaces, embedded operating systems, real-time scheduling, low-power and low-energy design. Besides, this course includes exercise and hand-on laboratory sessions where students learn how to solve theoretical problems and how to program a commercial embedded system platform (i.e., Texas Instruments MSP430 with an ARM cortex-M4F core) with the programming language C and real-time operating system RTOS. | ||||
Lecture notes | Course material including lecture notes, exercise sheets, and laboratory documentation will be available on canvas. | ||||
Literature | - P. Marwedel: Embedded System Design, Springer, ISBN 978- 3-319-85812-8/978- 3-030-60909-2, 2018/2021. - G.C. Buttazzo: Hard Real- Time Computing Systems. Springer Verlag, ISBN 978- 1-4614-0676-1, 2011. - Edward A. Lee and Sanjit A. Seshia: Introduction to Embedded Systems, A Cyber- Physical Systems Approach, Second Edition, MIT Press, ISBN 978- 0-262-53381-2, 2017. - Avelino J. Gonzalez: Computer Programming in C for Beginners, Springer, ISBN 978-3-030-50752-7, 2020. | ||||
Prerequisites / Notice | Basic knowledge in computer architectures and programming, circuits and electronics, and digital systems | ||||
227-0085-04L | Projects & Seminars: Microcontrollers for Sensors and Internet of Things Only for Electrical Engineering and Information Technology BSc. 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 | Ultra Low Power Microcontroller (MCU) – Firmware Programming and Sensors Interfacing using an Arm Cortex-M (STM32) Microcontroller Microprocessors are used to execute big and generic applications, while microcontrollers are low cost and low power embedded chips with program memory and data memory built onto the system which are used to execute simple tasks within one specific application (i.e. sensor devices, wearable systems, and IoT devices). Microcontrollers demand very precise and resource-saving programming, therefore it is necessary to know the processor core, and particular importance has the investigation of the microcontroller's hardware components (ADC, clocks, serial communication, timers, interrupts, etc.). The STM32 from STMicroelectronics has gained in popularity in recent years due to its low power and ease of use. The goal of this course is the development of understanding the internal processes in the microcontroller chip from TI. This will enable you to conduct high-level-firmware-programming of microcontrollers, to learn about the STM32 MCU features, benefits, and programming and how they can be connected with sensors, acquire the data, processing them and send the information to other devices. The course will also include an introductive lecture on machine learning and artificial intelligence on the embedded system and in particular microcontrollers. The C language will be used to program the microcontroller. The course will be taught in English. | ||||
227-0085-05L | Projects & Seminars: FPGA in Quantum Computing with Superconducting Qubits Only for Electrical Engineering and Information Technology BSc. 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 | Projects & Seminars: iCEBreaker FPGA For IoT Sensing Systems Only for Electrical Engineering and Information Technology BSc. 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-39L | Projects & Seminars: Python for Science & Machine Learning Only for Electrical Engineering and Information Technology BSc. Course can only be registered for once. A repeatedly registration in a later semester is not chargeable. | 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 | This 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-46L | Projects & Seminars: Embedded Systems With Drones Only for Electrical Engineering and Information Technology BSc. Course can only be registered for once. A repeatedly registration in a later semester is not chargeable. | 4 credits | 4P | M. Magno, T. Polonelli | |
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 | Microcontrollers - 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 Center for Project-Based Learning. | ||||
227-0085-48L | Projects & Seminars: Introduction to Program Nao Robots for Robocup Competition Only for Electrical Engineering and Information Technology BSc. Course can only be registered for once. A repeatedly registration in a later semester is not chargeable. | 4 credits | 3P | M. Magno, S. Heo | |
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-49L | Projects & Seminars: Smart Patch Projects Only for Electrical Engineering and Information Technology BSc. Course can only be registered for once. A repeatedly registration in a later semester is not chargeable. | 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 | Wearable 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 course will be done in coollaboartion with DZ Center at D-ITET. The projects will be done under the Smart Patches: a flagship project for D-ITET students. (pbl.ee.ethz.ch) | ||||
227-0155-00L | Machine Learning on Microcontrollers Number of participants limited to 45. Registration in this class requires the permission of the instructors. | 6 credits | 3G | 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 extracts useful near-sensor information in end-nodes of the “internet-of-things”, using low-power microcontrollers (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 detail how Machine Learning algorithms can be adapted to the performance constraints and limited resources of low-power microcontrollers becoming Tiny Machine learning algorithms. | ||||
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 ( Decision Trees, Random, Support Vector Machines, Artificial Neural Networks, Deep Learning, and Convolutional Networks) - 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: Good experience in C language programming. Microprocessors and computer architecture. Basics of Digital Signal Processing. Some exposure to machine learning concepts is also desirable. |