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.
This is an in-person, hands-on course. You must be able to attend all the labs for this course, and you will need to spend time physically in the lab during open lab hours to complete some of the pre-lab and post-lab assignments.
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
- **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.
- **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.
- **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
- **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.
- **B3? 'unseen'?: K3** Demonstrate basic self-sufficiency in the compilation, loading, and testing of previously-unseen software on previously-unseen hardware platforms.
- **B6: K3** Design a system architecture and estimate its performance given an application scenario.
This work is licensed under a Creative Commons Attribution 4.0 International License. Copyright Pat Pannuto, 2025.