Note: “codebook” entries below are verbatim pasting of all of the code we used in class. It’s possible they may not compile (i.e. may have errors) if we left things unresolved, or were writing pseudocode, etc.

Monday, August 26th: Intro

  • Welcome to class!
  • Quick introductions: students in random pairs each answer a few questions about each other:
    1. Their name and pronouns
    2. What they’re studying and what year they’re in
    3. What brings them to this class
    4. Something fun/interesting/exciting/great/awful they did over winter break
  • Review course Canvas site briefly
  • Review main course site (the one you’re reading this on) briefly, going over the various sections listed in the navigation bar on the left
  • Review Gantt chart of major course flow across the semester
  • Quick IDeATe walking tour
  • Phys Comp Lab tour
  • Please use the “Name Coach” feature on Canvas today or tomorrow
  • Strong recommendation: sign up for the university fire extinguisher training which is the hardest part of the process to gain access to IDeATe’s laser cutters. Link to relevant Bioraft (training system) page.
    • Publicly listed upcoming sessions, sign up for these via Bioraft:
      • Wednesday, August 28, 10:30am, Facilities Management Services Building 3rd floor - EHS Conference Room 307
      • Friday, August 30, 9:00am, Facilities Management Services Building 3rd floor - EHS Conference Room 307
    • Special IDeATe-only sessions in the library, sign up for these via this form:
      • Friday, September 6, 11am–12:30pm, HL 106B (Studio A)
      • Friday, September 6, 2–3:30pm, HL 106B (Studio A)
  • Homework 1 assigned, due Wednesday 8/28
  • Homework 2 assigned, due Wednesday 9/4
  • Today’s music, for those who are interested: from the group “Selva de Mar,” downloaded (legally) from the Free Music Archive
  • Handing out beginning of course kit—each student gets:
    • 1 Arduino
    • 1 breadboard
    • 3 LEDs
    • 3 270Ω resistors
    • 10 male–male jumper wires, including at least two red and two black ones
    • 1 10kΩ potentiometer (1kΩ potentiometer is a fine substitute for our purposes)

Wednesday, Aug. 28th: Systems thinking

  • Room policy things I forgot to mention last time:
    • Food and nonwater drink must be consumed in the Zone of Shame and are not allowed at tables
    • Please use all resources within reason!
  • Very brief asynch homework review
  • Reminder to sign up for a fire extinguisher use training if you haven’t already
  • Brief review of syllabus—most students read it so we didn’t need to linger too long. Thank you for that!
  • Previous-semester projects review (this was part of Homework 1)
  • Weekly feedback #1 is posted; due tomorrow (Thursday 8/29) at noon
  • Introducing the ioRef cards and associated resources
    • Lesson on using ioRef cards to diagram data flow through a system
    • Drawing the equivalent diagram using the customized diagrams.net interface, accessible at https://draw.ioref.org
    • Teams discuss and draw assigned devices: microwave, projector, radio-controlled toy car, refrigerator, old-school (wired) telephone
  • Students collect additional materials as needed to continue working on the asynchronous learning sequence (Homework 2 is due one week from today)
    • (1) 6-quart plastic tub w/label to store things
    • (1) 5.6kΩ resistor
    • (2) 10kΩ resistors
    • (2) tactile pushbuttons
    • (1) HC-SR04 ultrasonic ranger
    • (1) hobby servo motor
    • (1) CdS (cadmium sulfide) photoresistor
  • Project 1 to be assigned next Wednesday; until then it’s time to cram in lots of technical learning! Pace yourself.

Wednesday, Sep. 4th: Project 1 introduction

  • Asynch homework review. You should be (blissfully) done with that sequence now!
  • Quick tech lesson: how to read resistor color codes
  • Drawing schematics using draw.ioref.org
  • Zach will be out next week for a conference in the UK (International Symposium on Academic Makerspaces, if you’re interested), so Ella will be running the show. Also guest star Prof. Garth Zeglin, fellow IDeATe faculty, will be giving feedback on your Project 1 ideation in person on Monday.
  • Project 1 introduction and discussion (class time given for students to start ideation)
    • Ideation due date is Monday, Sep. 9th
    • Project due date is Wednesday, Sep. 18th

Monday, Sep. 9th: Project 1 ideation recap

  • Teams meet with Ella and Garth to go over their project 1 ideation
  • Tiny bit of work time at the end

Wednesday, Sep 11th: Work time

Monday, Sep. 16th: Project 1 work time

Scheduling events to happen when you want them to without using delay(): “event loop” model

" event loop programming "
if (it has been long enough) {
  do something;
  update our timer;
}

millis();  // this is the Arduino's built-in timer
// it tells you how many milliseconds have passed since the Arduino turned on


unsigned long HALFSECONDWAIT = 500;  // 500 milliseconds is half a second
unsigned long nexttimetorun = 0;

void setup() {
  nexttimetorun = millis() + HALFSECONDWAIT;
}

void loop() {

  if (millis() >= nexttimetorun) {
    do something;
    nexttimetorun = millis() + HALFSECONDWAIT;
  }
}
  • Data types in C:
  • bool: true or false
  • int: whole number in range –32,768 to 32,767
  • unsigned int: the same number of values as int, but starting at 0, so: range is 0 to 65,535
  • long: whole number in range approximately –2.1 billion to 2.1 billion
  • unsigned long: the same number of values as long, but starting at 0, so: range is 0 to about 4.3 billion
  • float: “floating point” number, meaning something with a decimal in it like 1.543 or –10493.25, but with limits (a float has 6 or 7 digits of precision, so it wouldn’t store 9872.19886757275 without truncating it). Range is about –3.4 × 1038 to 3.4 × 1038
  • char: short for “character,” things like a, Q, ?, or even 8 (as a character, not the value 8)
  • String: a “string” of characters put together, like "Abracadabra!" she yelled., or q (yes, a String can be just one character long, confusingly), or 735—though it looks like a number, it’s a String so it has no numerical value
  • Read lots more details at this section of the main Arduino reference page

Wednesday, Sep. 18th: Project 1 presentations

  • Each student presents their Project 1 work at the front of the class for a few minutes, demoing it, and doing a quick Q&A
  • If you are not presenting for credit today, sign up for a slot on Friday to show me your project for grading on this page
  • Project 2 assigned, including ideation homework which will be due Monday 9/23

Monday, Sep. 23rd: Project 2 ideation discussions

  • Reviewing that these aspects of your project will be time consuming to iterate on, in likely-descending order:
    • physical/mechanical fabrication
    • electronics
    • software

      Keep this in mind as you’re working on the project and give yourself plenty of time to make mistakes!

  • Each student meets with Zach and Ella to talk about their Project 2 ideation and try to narrow down to one idea

Wednesday, Sep. 25th: Project 2 development time

  • Clarification of prototype expectations for 10/2 due date
  • Many students have a sad moment soon before the project is due where they attempt to cram their electronics into a too-small container. This often results in broken or inconsistent connections, which will often bring a project to its knees. Give yourself plenty of room for wires! A slightly-too-large container is better than a slightly-too-small one.
  • Fusion software tutorial assigned as homework for Monday so that everyone can come in and lasercut some parts on Monday in class (when we’ll show you how to use our IDeATe lasercutters). This is about 1 hour of video lecture that you’re expected to work along with, and you’ll need to turn in a link to your design as well as your DXFs as the work product for this homework. You will also read the IDeATe lasercutter guide and complete a short quiz on that material before class (the quiz is linked from the Canvas homework assignment).
    • If you do not want to learn Fusion because you’re already proficient in other CAD software, that’s fine; you should make your drawings in that other software and submit to the same assignment, because we’ll still be lasercutting your piece in class.
  • Advice-sharing session in class for students to give each other project 2 ideation feedback in small groups
  • Just as in Project 1, this project will want process images for the final documentation, so take pictures as you go!

Monday, Sep. 30th: Lasercutter lesson day

  • Each student lasercuts their own DXF on IDeATe’s machines
  • Work time for each student when they’re not busy doing lasercutting
  • Remember to take pictures as you go!

Wednesday, Oct. 2nd: Project 2 prototypes

  • Each student comes to the front of their room and shows their prototype for a couple of minutes
  • Brief verbal feedback at that time, and written feedback via the “Project 2 quick prototype feedback” document that’s in our class’s shared drive
  • If you need an order placed, tell Zach today!
  • Please disassemble your Project 1 boards and return all usable materials to their homes (throw out broken things in the e-waste as needed)
  • Project 2 final critique preview:
    • We will have the class divided into halves for the crit
    • You will present for a few minutes, then your classmates and invited critiquers will give feedback for a few more minutes
    • The point of the crit is not to make you feel bad but rather to get a variety of perspectives on your work!
  • Remainder of class is work time
  • Take pictures as you go!

Monday, Oct. 7th: Project 2 work day

  • Take pictures as you go!

Wednesday, Oct. 9th: Project 2 crit day

  • Approx. 11 minutes per student, presenting in two halves of the room
  • After presentations, final show-off time as people mill around and see each others’ stuff
  • Documentation due after break

Monday, Oct. 21st: Final project intro day

  • Remarkably, grades are still owed, hence cookies. Midterm grades are due Wednesday and I’ll have more done for that deadline!
  • Final project scoping: review of a few projects from semesters past, including cautionary tales:
    • Augmentative and Alternative Communication Device (fall 2023) was overall quite successful. It was useful for the client, complete, well-built, functional, and featured a thoughtfully designed enclosure.
    • Portable Single-Player Chess (fall 2023) was a good idea, but the team tried to build most of it the night before the project was due. As a consequence, it was sloppy in its final execution, though a few simple fixes could’ve made big improvements: reconsider the clear enclosure; solder all connections; replace the power cable dangling out of the speaker holes with a properly panel-mounted part; slow down the rotation so it takes a few seconds.
    • Explosive Schedule Reminder (spring 2023) had a simple job which it did well, featuring some customization touches that the client (Keith) requested, including the color red and word “EXPLOSIVE” on the outside of the box.
    • Portable Schedule Playback Device (spring 2023) was a nice idea (and similar to the project above) but the team waited far too long to try to cram all of their electronics into the final device. They couldn’t fit and it didn’t work at the demo!
    • You can browse through every past submission via the Previous semesters page
  • Project schedule overview from assignment page
  • First task of the project: conducting an interview, which we discuss in class
  • Guest speakers: Alissa Freese, Grant and Development Associate, and Rebekah (Bekah) Nesbitt, Assistive Technology Coordinator at Community Living and Support Services (CLASS), the organization we are working with for the final project.
  • Wednesday 10/23 the whole class period will be a field trip to CLASS’s main facility
    • Their address is 1400 South Braddock Avenue, Pittsburgh, PA 15218
    • To travel with the class: we’ll take the 61B; meet at 12:00 noon at the Forbes and Morewood bus stop (the one closest to the People Walking Into the Sky statue, bus traveling up towards Squirell Hill). We’ll get on the first 61B that comes after 11:59am.
    • You can also use your own transportation if you prefer
    • We will take a quick tour of their facility and you’ll have time and space to interview the clients we’ll have for our final project
    • We intend to leave there in time for you to get back to campus for your following commitments by 2pm
  • Final project teams are posted to Canvas; your homework is to talk with your teammates and prepare for the interview you’re conducting on Wednesday with your client!

Wednesday, Oct 23rd: CLASS field trip

  • Meeting at 61B bus stop in front of campus at noon
  • Class session is at CLASS:
    • Brief tour of Day Program downstairs
    • Interview slots for teams with their clients
  • Bus ride back to campus!

Monday, Oct. 28th: Interview review

  • General class discussion of how the interviews on Wednesday went
  • Review of the goals for the prototype critique on Monday 11/11
    • Most prominently: the prototypes are meant to be experiments designed to answer specific questions, rather than (necessarily) version 1.0’s of the final projects
  • Individual team discussions addressing ideation coming out of the interviews

Wednesday, Oct. 30th: Prototype work time

  • Interview documentation due at the top of class
  • Announcement: TOM is an international organization that serves to develop open-source assistive devices for people with various needs. We have a chapter here on campus called TOM Tartans, and we’ll be hosting an adaptive toy build session this Saturday 11/2 here in Hunt Library, 11am–3pm, lunch included. We will be modifying toys to make them easier for kids with body differences to use. Here’s the flyer. Join us if you’re interested!
  • Team consultations
  • Remember to take pictures as you go for process documentation!

Monday, Nov. 4th: Prototype work time

  • Reminder about documentation grades: you are welcome to adjust and resubmit things if you got grades you weren’t happy with; you typically just need to do that within a one-week window after you get your grade back. I’m extending the Project 1 documentation grade resubmission window through this coming Sunday 11/10 night at 5pm because I’m seeing lots of headroom for grade improvement there and nobody has yet taken advantage! To get regraded, make whatever adjustments you want to your documentation and then resubmit it via Canvas (even though it’s the same link again) and then I will see you have made a resubmission and take another look.
  • Project 2 documentation grading is underway but not yet done—I’ll hopefully finish by the end of this week. When I return those grades to everyone, you will have one week to make any adjustments you care to before resubmitting within one week of getting your original grade.
  • Prototype process: each team shares, out loud with the class, the questions they’re aiming to answer with their prototype(s) next week.
  • Any orders that still need placing? Tell me today in class!
  • Remember to take pictures as you go for process documentation!

Wednesday, Nov. 6th: Prototype work time

  • Upcoming event of interest: “Everyday Ableism” keynote talk by disability scholar and CMU alum Dr. Amanda Kraus of the University of Arizona, November 13th, 5–6:15pm, register here. Show up and sign in with me to get 15 extra homework points!
  • Quick room check in on prototype progress
  • Prototype slide deck for Monday 11/11 (we pick the order of presentation today in class)
  • Instructor and TA feedback rounds
  • Remember to take pictures as you go!

Monday, Nov. 11th: Prototype critique

  • Teams present for 8 minutes
  • Teams have ~1 hour of consultation time with their clients

Wednesday, Nov. 13th: Prototype debrief

  • Overall debrief and review of final project progress
  • Reminder: extra credit available for attending talk tonight: “Everyday Ableism” keynote talk by disability scholar and CMU alum Dr. Amanda Kraus of the University of Arizona, November 13th, 5–6:15pm, register here. Show up and sign in with me at the entrance to the room to get 15 extra homework points!
  • Review of some final fabrication practical considerations, per the Practical considerations page
  • Review of expectations for final work plan
  • Orders should come in to Zach as soon as you know what you want/need so you have plenty of time to work with materials you’ll need
  • Rotating feedback and work time
  • Remember to take pictures as you go!

Wednesday, Nov. 13th: Pivot to final project planning

  • Introduction to Gantt chart planning technique for final project
  • Assignment of Final project work plan for Monday, incorporating Gantt chart as well as draw.ioref.org chart
  • Rotating instructor help with teams
  • Take pictures as you go!

Monday, Nov. 18th: Final project work time

  • Two and a half weeks until the final project presentation!
  • Get any orders in immediately!
  • Minor wiring notes:
    • if you’re using an Uno in your final project, you can use a ScrewShield (e.g. this Gikfun one) or solder wires right onto some header and insert that into the Arduino to make more reliable connections (both options shown in class)
    • you can also organize your wires using heatshrink and zip ties, as well as sticky surface-mounting points for zip ties
    • generally speaking, things shouldn’t be loose inside your enclosure—they should be affixed to some surface or attachment point
    • reminder that stranded wires are probably the right choice because they’re more flexible
  • Work time and rotating team consultations, reviewing final work plans
  • Take pictures as you go!