IoT Node Architecture

General information

This subject will cover several topics regarding embedded system programmings. Specifically, we will learn to develop IoT projects using ESP-IDF, a framework built onto FreeRTOS. Some specific goals if this subject are:

Subject program and evaluation methodology

Program and evaluation

Professors

Jose Ignacio Gomez (jigomez@ucm.es) and Katzalin Olcoz (katzalin@ucm.es )

Work groups (for regular lab assignments)

Here you can find the current work groups

Personal paper project assignment

Here you can find description about this individual assignment

Final programming project (teams of 2 people)

Here you can find description about this assignment

Quizzes

All quizzes will be done in this link. The name of the room is IOTUCM. You MUST enter your email to answer the quizzes (the email address where you received mails from me).

Schedule

Day Topic Lab instructions Deliverable
20/10 Introduction: boards, SoC C Exercises
21/10 ESP-IDF environment Online DEMO
27/10 ESP-IDF 1. Starting ESP-IDF
28/10 ESP32 Memory map 1. Starting ESP-IDF
03/11 ESP-IDF Tasks Scheduler 2. Tasks: matrix multiply  
04/11 ESP-IDF Tasks Scheduler 2. Tasks: matrix multiply
10/11 Events and task notifications 2. Tasks: matrix multiply
11/11 Input/Output - Polling/Interrupts - GPIO 3. Chronometer
17/11 Timers 3. Chronometer
18/11 Event based programming 3. Chronometer Lab 2 deadline
24/11 Event based programming. NAND/NOR Flash 3. Chronometer 
25/11 File system. System Log 4. Log in flash
01/12 Watchdog 4. Log in flash Lab 3 deadline
02/12 Sensors. 4. Log in flash
08/12 NO LECTURE (non working day) Spain National Holiday
09/12 Serial buses: I2C, SPI, UART 4. Log in flash
15/12 QUIZ. ESP-IDF I2C API 5. Built-in sensors. HTS221 Datasheet Lab4 deadline
16/12 I2C 5. Built-in sensors . HTS221 Datasheet
22/12 Energy consumption. Powering the system 5. Built-in sensors
23/12 QUIZ. ESP32 power modes 6. Low power modes Labs 5 deadline
12/01 Final Programming project (groups of 2) 7. Final Project  Paper project deadline
13/01 QUIZ. Final Programming project 7. Final Project  Lab 6 deadline

The final programming project, will be due before 24th Jan. 2022