Main Page

From CS294-84: Interactive Device Design
Revision as of 00:01, 28 December 2012 by Bjoern Hartmann (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

CS294-84: Interactive Device Design

Fall 2012, UC Berkeley. CCN: 27345 (3 units)

This course is now over and the wiki has been closed for editing. Take a look at the Project Archive and the News Blog to get a sense of the type of projects students build in this course.

This course teaches concepts and skills required to design, prototype, and fabricate interactive devices -- that is, physical objects that intelligently respond to user input and enable new types of interactions. The first half of the semester will be dedicated to a survey of relevant techniques in 3D modeling and fabrication; electronics and circuit board design; sensing and actuation for interaction; embedded software development, wired and wireless communication with mobile devices, computers, and networks; and user interface programming. In the second half of the semester, students will propose and carry out a significant design project of their own choice in groups. We encourage students to work on projects in health technologies (a CITRIS focus area); PhD students can also explore projects related to their area of research after consultation with us.

Class sessions will alternate between concepts and experiential learning. All classes will be held in the new CITRIS Invention Lab, 141 Sutardja Dai Hall.

CITRIS Invention Lab


Because of the hands-on nature of this course, we have a strict capacity limit. Please join the waitlist and come to the first class meeting. We will describe how to petition to take the class during the first class. Once you are on the waitlist, fill out our entry survey.


  • Programming experience required: This is a computer science course. You will program embedded systems for this course. You should be able to pick up a new language and API (with some help from us). Knowing the equivalent of the CS61A-C series at Berkeley should be sufficient.
  • User Interface Design experience very useful: Your projects will have both software and hardware user interfaces. Some background in user interface design, e.g., INFO290 Tangible Interaction or CS160 User Interface Design is valuable.
  • 3D modeling skills very useful, but not required: You will model and fabricate parts on our FDM machine. If you want to get a head start, learn how to use SolidWorks, but we'll also have a tutorial.
  • Some electronics experience useful, but not required: You will build basic sensing and actuation circuits. The threshold for doing this has decreased rapidly in recent years, but you will be soldering your own electronics. If you have taken the equivalent of EE40 or have built projects Arduino boards before, you'll be fine.

If you have no programming background, you should not take this course. If you do not have experience in at least one of (UI design, 3D modeling, electronics) you should not take this course. You must be comfortable with learning a sizable set of new tools and processes, quickly.

Course Information

Instructors: Bjoern Hartmann and Paul Wright.

Lab Managers and Fab Gurus: Mark Oehlberg and Dan Chapman.

Piazza Group (for any course-related questions):

If you have a technical question about your homework or project, please ask the class first through this group. For individual, class-related issues, use the private messaging feature on Piazza.

Lab Fee: This course requires payment of a lab fee of $75 to use the CITRIS Invention Lab. Also expect additional out-of-pocket expenses for electronics and consumables for your class project.

Lab Hours: Are posted on our Lab calendar.

Class Meeting Times: MW 10:30am-12pm in 141 Sutardja Dai Hall

Textbook: There is no required textbook for this class. There will be readings assigned for many lectures. The readings will be available online through this wiki. You will have to submit reading responses for those lectures through links on this wiki.

Media: If you are not a student but want to keep up with the latest events in the class, take a look at the News Blog.


This is a new class - expect this schedule to change as we progress through the semester.

Week 1

M, Aug 27: Introduction

Assignment: Entry Survey / Course Petition due by 9am on Wednesday Aug 29
Assignment: Reading response due by 9am on Wednesday Aug 29
Assignment: Bring $75 check for lab fee to Wednesday's class, payable to UC Regents
Assignment: Read and sign Waiver of Liability, Assumption of Risk, and Indemnity Agreement and bring to Wednesday's class (Pdf: File:Waiver-ilab.pdf)

W, Aug 29: Electronics and Microcontrollers 101

Reading: Review Material from F. Mims III, Getting Started in Electronics, p. 8,9,14,18-19,20-21,28-31,32-35.
Reading: J. Borchers, Arduino in a Nutshell, p. 1-10.
Due: Entry Survey / Course Petition
Due: Reading response
Due: Bring $75 check for lab fee to class, payable to UC Regents
Due: Read and sign Waiver of Liability, Assumption of Risk, and Indemnity Agreement and bring to class (PDF: File:Waiver-ilab.pdf)
Assignment HW 1 - Microcontroller Kit due Wed, Sep 5

Lab: Soldering Lab Wed 12pm-1:30pm, 2:30-4pm; Fri 12pm-1:30pm, 2:30pm-4pm (Sign up for a time slot)

Week 2: Discrete Input

M, Sep 3: No class - academic holiday

W, Sep 5: Discrete Input and Text Entry Devices

Reading: Switches - Section 3.3 from P. Scherz, Practical Electronics for Inventors
Reading: Text Entry Techniques - Section 4.1 from MacKenzie and Soukoreff, 2002.
Due: Reading Response
Due: HW 1 - Microcontroller Kit
Assignment: HW 2 - Text Entry Device due Wed, Sep 12

Lab: Arduino Programming

Week 3: Sensors

M, Sep 10: Sensors 1 - Continuous Input

Reading: Selections from O'Sullivan and Igoe, Physical Computing
Due: Reading Response

W, Sep 12: Sensors 2 - Identity, Recognition Techniques

Reading: Nokia - Introduction to NFC (read Section 1-4; should take about 5 minutes)
Reading: Müller, Information Retrieval for Music and Motion - Ch.4 - Dynamic Time Warping (read the first section on "Classic" DTW)
Due: Reading Response
Due: HW 2 - Text Entry Device
Assignment: HW 3 - Gesture Recognition due Wed, Sep 19 by 9pm

'Lab: Laser Cutting

Week 4: CAD

M, Sep 17: CAD Studio 1 - Basics of Solidworks

Viewing Solidworks Video
Due: Viewing Response

W, Sep 19: CAD Studio 2 - Shelled parts with openings

Reading: Think like a machinist when creating solid models
Due: Reading response
Due: HW 3 - Gesture Recognition by 9pm
Assignment: HW 4 - 3D Model due Wed, Sep 26

Week 5: Output, Distributed

M, Sep 24: Output - Mechanisms and Actuation

Reading: Pages from Scherz, O'Sullivan and Igoe on LEDs and Motors
Due: Reading Response
Optional Mini-Assignment: Post Project Ideas, due THIS Wednesday

W, Sep 26: Connecting Embedded Hardware to the Web

Due: HW 4 - 3D Model
Due: Post Project Ideas
Reading: HTML5 Web Sockets
Reading: Getting Started with XBee Radios (Ch1, p.8-17; read 1-8 as well if you're totally new to networking)
No Reading Response Today
Assignment: Form Groups
Assignment: P 1 - Project Brainstorm, Due Wed Oct 3

Week 6: Switch to Project Work

M, Oct 1: Phone Accessories with the Android ADK

Reading: Become familiar with the Android application model and the IOIO board: Android Application Fundamentals, IOIOLib Basics, IOIO Hardware
Due: Reading Response
Assignment: HW 5 - Monitoring Sensor Data on Phones and in Browsers

W, Oct 3: Project Idea Presentations and Needfinding

Due: P 1 - Project Brainstorm
Due: No reading response, but have Two Slides ready on your idea.
Reading: Mike Kuniavsky, Smart Things Ch14: Observation and Ideation
Assignment: P 2 - Observation, Story Board

Week 7: RP Methods

M, Oct 8: No class - work on your homework assignment

W, Oct 10: Rapid Prototyping Methods

Reading: Solid Freeform Fabrication and Rapid Prototyping, Ch. 4 from Paul K. Wright, 21st Century Manufacturing
Due: Reading Response
Due: HW 5 - Monitoring Sensor Data on Phones and in Browsers

F, Oct 12: No class, but assignment due

Due: P 2 - Observation, Story Board

Week 8

M, Oct 15: Camera-based Interactions

Reading: Printed Optics: 3D Printing of Embedded Optical Elements for Interactive Devices Karl D.D. Willis et al., Proceedings of UIST 2012.
Assignment: P 3 - First Prototypes

W, Oct 17: PCB Design

Reading: Arduino on a Breadboard. Tom Igoe. (Skim to understand what parts are required to design your own Arduino-compatible PCB).
Video: CadSoft Eagle Tutorial Part 1, Part 2. (Takes ~ 1 hour for both parts)
Due: Install CADSoft Eagle on your personal laptop and bring it to class.
Due: Reading Response

Week 9

M, Oct 22: Business Plans

Reading: File:Solasure-businessplan.pdf. Read this sample business plan. Focus on the executive summary and budget sections; plan to spend up to 30 minutes (but no more) on this.
Due: Reading response

W, Oct 24: Prototype Presentation and Critique

Reading: File:Hartmann-prototypes-ch2.pdf Ch. 2 of Bjoern's Dissertation.
Due: P 3 - First Prototypes
Assignment: P 4 - Design Iteration, CAD and PCB files

Week 10

M, Oct 29: Power Considerations

Reading: ---

W, Oct 31: Surface-mount soldering

Reading: Sparkfun Surfacemount Soldering Tutorials
Due: Reading Response
Due: P 4 - Design Iteration, CAD and PCB files

Week 11

M, Nov 5: Guest Speaker - Steve Beck

W, Nov 7: Prototype to Product - Volume Manufacturing, Injection Molding

Assign: P 5 - Files for production, Work Plan

Week 12

M, Nov 12: No class - academic holiday

W, Nov 14: Guest Speaker: Christine Ho, Imprint Energy

Due: P 5 - Files for production, Work Plan (Fill out LPKF PCB Fabrication Request Form / ProJet 3D Print Request Form when you are done with your files)
Assignment: P 6 - Software and Hardware Demo, due 11/26
Assignment: HW 6 - MAS, due 11/28
Assignment: P 7 - Final Demo and Presentation Materials, due 12/3
Assignment: P 8 - Final Writeup - Business Plan, due 12/7

Week 13

M, Nov 19: Guest Speaker: Hayes Raffle, GoogleX/Topobo, plus Course Evaluations

W, Nov 21: Optional Project Work Time (day before Thanksgiving)

Week 14

M, Nov 26: Guest Speaker: Mike Kuniavsky, plus Project Software Demos

Due: P 6 - Software and Hardware Demo

W, Nov 28: Production Values: Photography, Poster production (Last regular class)

Due: HW 6 - MAS

Week 15

M, Dec 3: RRR Week - Final Project Presentations and Trade Show 3-6pm

Location: 141 SDH and 3rd floor atrium
Due: P 7 - Final Demo and Presentation Materials

Finals Week

M, Dec 10: Finals Week

Assignment: P 8 - Final Writeup - Business Plan



10% Reading Responses

10% Class Participation (attendance, in-class participation, lead class discussion)

40% Homework Assignments

40% Class Design Project

Late Policy:

Reading Responses:
Each student may opt to pass on three days of commentaries for any reason (personal or family matters, conflicting deadlines, etc.); there are no exemptions beyond this. Students should still submit the online form, but instead of a response, state that they wish to pass. To receive credit, you must submit the reading response by 9am on the day of class.

For assignments we will deduct 10% for each day (including weekends) the assignment is late.

No late submissions.


This couse is supported by CITRIS, the Berkeley Swarm Lab, a research gift from Google, and an equipment loan from Immersion.