Course Information for CS194/CS294-126:
Software Defined Printed Circuit Boards

Fall 2016


Catalog Description: Software Defined Printed Circuit Boards

This class introduces the design and fabrication of PCBs and explores software compilation of high level descriptions of embedded systems into circuit boards and software ready to be milled on desktop mills. This software defined hardware technique dramatically raises the level of description making easy things easy and hard things much more possible, and most importantly makes board-level embedded systems design more accessible those with a more computer science background. Topics include: circuit basics, microcontrollers, embedded programming, milling, assembly and soldering of PCBs. The class is half lecture/labs and half instructor advised student projects.

Work

4 units. Three hours of lecture + One hour of section + Three hours of lab homework per week.

Prerequisites:

Strong programming skills with CS61ABC and some EE16AB bonus.

Cost:

Access to, and training on how to operate, circuit board fabrication and assembly (soldering) equipment is necessary. A Jacobs Makerpass ($75/semester) provides access to all the necessary equipment, but is not required if students have access to the equipment elsewhere (for example, open makerspaces or personally owned equipment). Students are additionally responsible for the cost of parts and materials in the labs and projects, which can run into the hundreds of dollars. Note that Makerpass holders will have access the Jacobs materials store, which stocks useful components that can be ordered and picked up immediately. Students who choose not to get a Makerpass will be responsible for their own purchasing, as well as making sure parts arrive in time to make course deadlines. Note that a Makerpass is not required to enter Jacobs classrooms during regular hours.

Class Schedule/Rooms:

Lectures: Tuesday and Thursday, 10-11:30AM, 220 Jacobs Institute

Section Schedule/Rooms:

Section: Monday, 4-5p 210 Jacobs Institute

Lab Space:

Jacobs Institute.

Instructor:

Jonathan Bachrach, Adjunct Assistant Professor, CS Division, EECS Department
Email: jrb at eecs
Office Hours: TBD, 579 Soda Hall

Teaching Assistants:

Richard Lin

Newsgroup:

The course has a Piazza site that we will use for online class discussions and to answer questions.

Course Grading

5%Class Discussion
35%Labs
60%Project

See also Departmental Grading Guidelines for Graduate Courses and Departmental Grading Guidelines for Undergraduate Courses.

Labs

A series of labs will be offered throughout the semester to introduce required techniques and technologies and to assist students in the development of their projects. The labs will provide hands-on experience with the software defined printed circuit boards. They will be assigned at end of class on thursdays and will be due before class on following thursday. The labs primarily cover circuit design, CNC fabrication, and JITPCB. We will cover bread boarding, PCB milling, circuit design, embedded programming and debugging, and functional and object-oriented programming. Students work on labs in groups of two. Five late days are available to use at student's discretion.

Late Labs Policy

Each student gets a total of five late days they can spend to extend the lab deadlines for any reason. No other extensions will be given, unless for serious documented emergencies.

Collaboration Policy

Students must complete lab zero themselves and team up with a partner on the remaining labs. Students are encouraged to discuss solutions to the lab assignments with other students.

Project

A single six week project will guide student's contributions to the course. In this project, students will create a software generated circuit board that demonstrates the power of software defined hardware. The project overall will be developed in collaboration with technicians at Jacob's design workshop facilities. Students will work on projects in groups of two or three. Projects should include a formal specification and design rationale.