EECS194 – Internet of Everyday Things

Spring 2008

Experimental Undergrad EECS Design Studio

Prof. David E. Culler

*** Interested students - please come to the first class on Monday 1/28 11 am in 111 Cory even if you have conflicts for other parts of the meeting time.  We will make adjustments in the studio schedule to minimize conflicts.  ***



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

10 Project Design Proposals none none critique
carrier board, BOM

emb sw




16 Final presentation