Wireless and Communication in the Internet of Things

Home | Syllabus | Agenda | Labs |


M3 sensor on a finger
Luxapose image processing pipeline
Signpost platform deployed outside
TotTag ranging platform
Opo interaction tracker clipped to a tie
Powerblade power meter on a plug

CSE190(C00) / CSE291(C00) - Fall 2022

This course is a "mezzanine" class, i.e. it is open to both undergraduate and graduate students, but you must register for 190 or 291 as-appropriate.

Meets M/W/F from 13:00 to 13:50. Lectures are in 2154 CSE. Labs are in 3219 CSE.

Pat Pannuto is the instructor, and their office is CSE 3202 (right in the corner). Office hours are Wednesdays, 15:00-15:50.

Nishant Bhaskar is the TA. Office hours, location TBA.

Click here for the UCSD Embedded Seminar (Thr 12:30-1:30) – All are welcome!


Overview

Internet of Things (IoT) devices are often battery-powered, or sometimes even energy-harvesting and battery-free. For most applications, 80% or more of power goes to communication, i.e. sending data between the IoT device and the internet at large. These two realities mean that many IoT devices use custom communication technologies, or common ones in different ways (e.g. why does my old Fitbit scale make my home WiFi go literally 100x slower when it's on?).

This class will focus on how an IoT system designer should choose and use the wide array of wireless technologies. Specifically, we will look at WiFi, Classic Bluetooth, Bluetooth Low Energy, IEEE 802.15.4, 2g/3g/4g/5g cellular, LTE-M, NB-IoT, LoRa, SigFox, and some time with more esoteric choices, such as Visible Light Communication (VLC), Infrared Communication (IR), Ultrasonic, and boutique RF such as wake-up radios and backscatter. Persons finishing this course should be well-suited for work in real-world IoT systems upon completion.

Target Audience

The intended audience of this course is technically-oriented makers. People who want to build (non-wall-powered) interesting stuff that will eventually need to talk to the world. This class looks at the (low-power) options and tries to give some basic experience in each of them.

This is an advanced course. Labs will have instructions of what you are supposed to do, but not step-by-step instructions of how you are supposed to do things. You are expected to use resources (Google, Stack Overflow, course staff, classmates, etc.) to figure out how to get things done.

Learning Goals of this Course

At the end of this class, students should be able to:

https://www.celt.iastate.edu/instructional-strategies/effective-teaching-practices/revised-blooms-taxonomy/

K1: Factual K2: Conceptual K3: Procedural K4: Metacognitive
B1: Remember List Recognize Recall Identify
B2: Understand Summarize Classify Clarify Predict
B3: Apply Respond Provide Carry Out Use
B4: Analyze Select Differentiate Integrate Deconstruct
B5: Evaluate Check Determine Judge Reflect
B6: Create Generate Assemble Design Create

  1. B4: K2,K4 Analyze a new wireless technology or protocol to extract key technical features and limitations.
    • Specifically: infrastructure requirements, energy use, processing and timing demands, latency, throughput, goodput, and how network scale and density affects each of these factors.
  2. B4-5: K1,K2 Assess how physical-world constraints of an application scenario map to the capabilities of communication technologies.
    • Specifically: deployment area, device density, energy availability, spectrum access, and form factor.
  3. B2: K1 Explain the basic operating principles and performance of most-used technologies in mobile computing:
    • Bluetooth Low Energy
    • 802.15.4 and Thread
    • WiFi
    • LoRa
    • Basic Cellular Data
  4. B2-3: K1 Explain what "{B,P,L,W,R}AN", "star", "mesh", and "cell" mean in wireless networking, and how topology influences system design and performance.
  5. B3? 'unseen'?: K3 Demonstrate basic self-sufficiency in the compilation, loading, and testing of previously-unseen software on previously-unseen hardware platforms.
  6. B6: K3 Design a system architecture and estimate its performance given an application scenario.

Creative Commons License

This work is licensed under a Creative Commons Attribution 4.0 International License. Copyright Pat Pannuto, 2022.