EECS194 – Internet of Everyday Things
Spring 2008
Experimental Undergrad EECS Design Studio
Prof. David E. Culler
Everyday we deal with a myriad of sophisticated devices that have sensors, controllable actions, and intelligence that transforms inputs and intention into action. These devices are the appliances in the kitchen, the gadgets in living room, the lighting, heating, cooling, watering, draining facilities in the building, the array of thermometers, scales, and health meters, the many forms of recreational equipment, and so on. They are stand-alone and fixed function. The intelligence is sometimes digital, often analog, and almost inevitably human.
In this design studio, we are going to literally tear everyday appliances apart and put communication and programmability into their core - allowing them to become software controlled, interact with other devices, integrated with powerful servers, and able to draw from or provide information to the web. Then we will see what interesting and unusual things we can do with these integrated, scriptable, networked devices.The course will involve elements of hardware design, embedded systems software, networking, server integration, web services, and use-case and business analysis. The early part of the term will utilize the most recent networked embedded “mote” platform, EPIC, and TinyOS 2.0 to develop our skill set, toolbox, and design ideas. We will build concept prototypes by reverse-engineering appliances, networking them and web-enabling the result. These prototypes will provide the basis for use-case studies and engineering analysis. We will then build highly tailored hardware (PCBs), embedded system software and web applications to create a family of programmable, networked Everyday Things.
The studio is oriented to juniors and seniors with digital design and systems experience (CS150 and CS162). Enrollment will be limited and interview-based to form half dozen teams of about four people each with complementary skills and interests. Course meetings will be once a week in a 4-hour lab format. Teams will work closely with experienced graduate student staff in all aspects of design, analysis and implementation.
| Week | Topic | Student Presentation | Lecture | Tutorial | Activity | Homework |
| 1 | no
meeting, monday holiday |
|||||
| 2 | Internetworking Embedded Devices using
TCP/IP/6LowPAN |
none | Course Overview. Protocols, APIs, and Services |
Getting started with TinyOS, NC | embedded network analysis, download, deploy, sniff | Build tools, Groups run connectivity experiments |
| 3 | Embedded Applications | connectivity | MCU=>OS: interrupt, scheduler, GPIO, timer | PCB design flow | binary app on rich kernel - exer pace, motion, lead to class app | SC,Layout, App |
| 4 | Sensing on Microcontrollers |
Schematic, PCB, binary app | ADCs, sampling, precision, reference, signal conditioning | Getting info out of appliances | PCB package, embedded app, example appliance | Sensor driver, fab |
| 5 | Networking | drivers | IP, Web service basics | soldering, mm, scopes, debugging | Bring up board, maybe net | socket programming, webs |
| 6 | Fab, Actuation | network app, own board, own drivers | Appliance control points, DACs, PWM, H-bridge | pulse gen | Smartening an appliance | more |
| class app | ||||||
| 7 | physical web services, class app | smart appliance | app engines, DB, … | open the bike, start physical mashup | ||
| 8 | wireless | tbd | epic - radios, spi, … | serial interfaces | digital sensor | Project thinking |
| 9 | Platform design | Class App | network embedded platform | ditto | proto platform | Project Proposal |
| project | ||||||
| 10 | Project Design | Proposals | none | none | critique | |
| 11 | carrier board, BOM | |||||
| 12 | emb sw | |||||
| 13 | apps | |||||
| 14 | ui | |||||
| 15 | ||||||
| 16 | Final presentation | |||||