Design Like a Physicist


Physics 398DLP, Spring 2020

Loomis 276, Friday afternoons, 1 pm - 5 pm

3 credit hours


Required stuff

There are no required texts for Physics 398DLP.

You must come to each class (including the first) with material I've already distributed and a Windows or Mac OS laptop. Linux will work too, in spite of certain wrinkles that you'll encounter during the term. You'll need to have a couple of gigabytes of available disk space for the first-day installations of software that we'll be using. Please be sure to bring your power adapter too.

I will distribute most of the tools and hardware that you'll need for the device you'll design and build. You must bring all of this to each class meeting.

Syllabus


Spring 2020 course packet (4.5 MB pdf).


Week 1, in class


⚛ Form up into research groups of three or four people and begin discussing which project you'll pursue. Decide which sensors and other devices you'll use.
⚛ Schedule a time for the team's weekly meeting with GG and TAs.
⚛ Sign out the tools and hardware needed to build your devices.
⚛ Install the Arduino programming IDE.
⚛ Install the latest version of Anaconda Python
⚛ Plug the Arduino into a USB port on your laptop, download the blinking LED sample program described in GG's p398dlp_code_primer.pdf file. (See the course's Code & design resources repository web page.) Confirm that the LED really does blink. (You'll want to create a sensibly named folder to hold your Arduino programs.)
⚛ Lecture/tutorial: we'll go through GG's "C++ and Python Primer/Refresher." Follow along on your laptop.
⚛ Modify the blinking LED program to flash your first and last initials in Morse code.
⚛ Get a soldering lesson from Todd Moore, an electrical engineer who is staffing the undergraduate physics program. Solder (male) pin headers onto the bottom of a BME680 temperature sensor. Also solder a 16-pin (male) header onto the bottom of an LCD.
⚛ Install the power terminals and plastic feet onto your breadboard and duct-tape your Arduino to the surface of your breadboard, but not on top of any of the interconnect holes.
⚛ Install a BME680 on your breadboard, following the instructions on the Adafruit site, and download the demonstration software to communicate with it. Make it report what it sees in a serial monitor window. (Hands-on demo by GG if desired.)
⚛ Install the LCD onto your breadboard, find some demonstration software, and display some text on the LCD. (Note that you'll need to install a 10k potentiometer too.)
⚛ Create a new Arduino program that will read information from the BME680 and display it on the LCD.
⚛ Select/assign groups for the following reports:
      ◊ How an electret microphone works;
      ◊ How a BME680 measures atmospheric pressure.

Post-class assignment (try to finish all of this before you meet with us next week)


⚛ Formulate a plan of action with the members of your team. I want all of you to be involved with all flavors of activity: writing Arduino code, generating schematics to represent your devices, and so forth. But it is fine for one person to take the lead on, say, managing the code that interrogates the GPS package. Discuss with your group members your tentative plans for executing your project: who will focus on what; which sensors you will need; who you might need to contact for permission to enter their space for your measurements.
⚛ Finish any unfinished tasks on the week's "in-class" list.
⚛ Read the entire (printed) "Introduction and Syllabus" and other Physics 398DLP documents I've given out in class.
⚛ Install a keypad on your breadboard, find some demo software that recognizes (and responds to) keypad activity.
⚛ Modify your BME680 + LCD program so that you can use the keypad to select whether to display only the the temperature, only the pressure, or only the humidity on the LCD.
⚛ Discuss with your group members your tentative plans for executing your project: who will focus on what; which sensors you will need; who you might need to contact for permission to enter their space for your measurements.

Week 2, conference with the professor + TAs


⚛ Discuss your project plan, including who you might contact for permission to, for example, install atmospheric methane detectors in the UIUC barns.
⚛ Show us what your breadboard circuits can do.
⚛ Describe sharing of project responsibilities among group members.

Week 2, in class


⚛ Spread over the class period, hear groups' reports on those two topics.
⚛ If you didn't do this last week, get a soldering lesson from Todd Moore. Solder pin headers as necessary onto the remaining breakout boards you will need for your breadboard circuit.
⚛ Install everything you'll be using for your measurements onto the breadboard, but do not yet install any of the wiring required for any of the new breakout boards. Place a 0.1mF capacitor between +5V and ground close to each breakout board's power pins. Also solder a 16-pin (male) header onto the bottom of an LCD.
⚛ One breakout board at a time, attach power and ground wires, and any other connections that are necessary to drive the board. (Note that you can "daisy chain" the I2C connections from board to board.) Find some demo software and make the Arduino talk to the board you've just wired. After it works, go on to the next breakout board. You'll probably need to step outside when it's time to test your GPS board.
⚛ Select/assign groups for the following reports:
      ◊ What's inside an LSM9DS1 9-axis accelerometer, and how the device works;
      ◊ An introduction to the Arduino Mega 2560.

Post-class assignment


⚛ Finish as many unfinished tasks on the week's "in-class" list as possible. (You should try to finish loading and wiring your breadboard, and talking to the individual sensors.)
⚛ Register an account with Autodesk.
⚛ Log in to TinkerCad and make sure it recognizes your Autodesk account. Find a simple design for something amusing on the TinkerCad site and export it to an STL file after you place your initials on the object.
⚛ Download Cura 3.6. Have Cura generate a gcode file from your STL file.

Week 3, conference with the professor + TAs


⚛ Keep me apprised of your progress, and how you have decided to share the responsibilities for the various tasks needed to advance your project.
⚛ Milestone 1: "Reasonably detailed set of measurements and run plan are defined."

Week 3, in class


⚛ Five-minute (PowerPoint) progress reports from each group: describe your project to the class, and tell us your thoughts on how you’ll approach it.
⚛ Spread over the class period, hear groups' reports on those two topics.
⚛ Finish Milestone 2 by the end of class: "Breadboard fully loaded, all sensors can communicate with the Arduino (using demo software you've found or written)."
⚛ Tentative class visitor: Ms. Celia Elliott (Physics). Communicating clearly.
⚛ Do further DAQ code development, and start on offline Python work.
⚛ Hands-on TinkerCad demo by GG. You will take notes as you follow along.
⚛ Select volunteers for the following reports:
      ◊ How a successive approximation ADC works;
      ◊ How a BME680 measures temperature.

Post-class assignment


⚛ Finish as many unfinished tasks on the week's "in-class" list as possible.
⚛ Log into your Autodesk account, then install the EAGLE schematic capture/PCB IDE.
⚛ Download and open the schematic for my version of the data logger, and delete everything except the components you will be using.
⚛ Work on your DAQ code, and make sure it can write to the microSD card memory.

Week 4, conference with the professor + TAs


⚛ Keep me apprised of your progress. The first version of your DAQ should be fairly far along by the time we meet.

Week 4, in class


⚛ Spread over the class period, hear groups' reports on those two topics.
⚛ Select/assign groups for the following reports:
      ◊ I2C communication protocols;
      ◊ SPI communication protocol.
⚛ Finish Milestone 3 by the end of class: "Rudimentary DAQ (data acquisition software) can interrogate all sensors and write files to microSD memory."
⚛ Solder headers, capacitors, resistors, etc. onto your PCB.
⚛ Last ten minutes: whole class group discussion. How is it going? What's too hard/too easy? What are your thoughts about the field work you'll be doing in a few weeks? What kind of technical support might I provide to make your work go more smoothly? Have you made contact yet with anyone to learn the rules concerning entering into their environment to make measurements?

Post-class assignment


⚛ Finish as many unfinished tasks on the week's "in-class" list as possible.
⚛ I will have a few soldering irons in my lab (458 Loomis). Stop by to do more soldering on your PCB as your time permits.
⚛ Log into TinkerCad, find my sample case for the spring 2019 data logger, and copy it to your own account, then modify it to suit your tastes and preferences.
⚛ Try to finish your DAQ.

Week 5, conference with the professor + TAs


⚛ Progress reports from you, including how far you got with TinkerCad.
⚛ Show us that your breadboard works, and show us how far along you've gotten your PCB.

Week 5, in class


⚛ Spread over the class period, hear groups' reports on those two topics.
⚛ Select/assign groups for the following reports:
      ◊ How the MCP4725 DAC works;
      ◊ Interrupts.
⚛ Finish PCB soldering and checking/debugging the board. It should be electrically equivalent to your breadboard.
⚛ Finish your DAQ.
⚛ Tentative class visitor: Sustainability.

Post-class assignment


⚛ Run a quick field test. For example, if you plan to study Amtrak trains, ride an MTD bus for a half hour.
⚛ Generate plots of your test data; discuss possible modifications to your run plan based on what you see.
⚛ Finish your TinkerCad work so I can generate a case for you, if we don't have the MakerLab facility reserved.

Week 6, conference with the professor + TAs


⚛ Progress reports from you, especially what you found in your field tests.
⚛ Show us that your PCB works, and show us your case design.
⚛ Milestone 4: "Test run performed, and has generated valid data, using all of a group's breadboards."

Week 6, in class


⚛ Five-minute (PowerPoint) progress reports from each group: describe your field tests.
⚛ Spread over the class period, hear groups' reports on those two topics.
⚛ Select/assign groups for the following reports:
      ◊ Adafruit's "Ultimate GPS" breakout board and its PPS signal
      ◊ How a BME680 measures atmospheric volatile organic compound concentration;
⚛ Finish Milestone 5: "PCB version of data logger finished and debugged."
⚛ Finish your DAQ and offline analysis code.

Post-class assignment


⚛ Do a much more extensive field test, this time using your PCB, installed in its case if it is ready (and using your breadboards if your project requires more than one sensor package per person).
⚛ Generate analysis plots from your test run data.

Week 7, conference with the professor + TAs


⚛ Progress reports from you, especially what you found in your field tests.
⚛ Show us your offline analysis results and discuss possible conclusions to be drawn.
⚛ Discuss your plans to determine calibrations for your sensors.

Week 7, in class


⚛ Spread over the class period, hear groups' reports on those two topics.
⚛ Finish Milestone 6: "Off line analysis generates meaningful plots of test run data."
⚛ Finish Milestone 7: "3D printed case design finished and fabricated."
⚛ Select/assign groups for the following reports:
      ◊ Atmel 2560 microcontroller timer modules;
      ◊ PWM (pulse width modulation) and the PAM8302 amplifier.

Post-class assignment


⚛ Perform full-scale data taking runs, check that your data are valid and readable.
⚛ Perform whatever auxiliary measurements are necessary to calibrate your devices.
⚛ Run your data through your offline analysis.
⚛ Prepare a ten minute status report to present to the class about your field tests.

Week 8, conference with the professor + TAs


⚛ Discuss your status report, calibrations, tentative conclusions, and online/offline code progress.
⚛ Discuss possible modifications to your run plan, if it is warranted by what you found.

Week 8, in class


⚛ Spread over the class period, hear groups' reports on those two topics.
⚛ Ten minute status reports presented to the class, along with group discussions of calibrations, analysis techniques, and systematic uncertainties.
⚛ Continue refining your offline analysis and conclusions.
⚛ Select/assign groups for the following reports:
      ◊ How a BME680 measures humidity;
      ◊ How the PM2.5 particulates monitor works.

Post-class assignment


⚛ Try to finish your analysis and draw your preliminary conclusions.
⚛ Outline your project report paper. Your intended audience will be readers who are not familiar with Physics 398DLP.

Week 9, conference with the professor + TAs


⚛ Milestone 8: "Main data taking run has produced valid data, and has been plotted and analyzed."
⚛ Discuss your analysis, conclusions, and project report outline with us.

Week 9, in class


⚛ Spread over the class period, hear groups' reports on those two topics.
⚛ Write the first draft of your paper, discussing the details inside your group as you go: who writes which sections, and so forth.
⚛ Further refine your offline analysis and conclusions if appropriate.

Post-class assignment


⚛ Finish a substantial, nearly final draft of your project report.

Week 10, conference with the professor + TAs


⚛ Give us a progress report on your paper.

Week 10, in class


⚛ Milestone 9: "Nearly final draft of paper is completely finished." This is due at the start of class.
⚛ Peer-reading/evaluating/commenting/correcting of your drafts.
⚛ More work on paper and analysis as necessary.

Post-class assignment


⚛ Write your "final draft" of the paper. You should think of this as the ultimate, polished, final version.

Week 11, conference with the professor + TAs


⚛ Paper status

Week 11, in class


⚛ More analysis refinement and project report work.

Post-class assignment


⚛ Finish writing the "final draft" of the paper.

Week 12, conference with the professor + TAs


⚛ Paper status

Week 12, in class


⚛ Milestone 10: "Final version of paper is completely finished." This is due at the start of class.
⚛ Class discussion: How'd it go?
⚛ Peer-reading/evaluating/commenting/correcting of your project reports.

Post-class assignment


⚛ Begin rewriting your project report.

Week 13, conference with the professor + TAs


⚛ We'll discuss corrections/improvements/rewrites you should make to your paper.

Week 13, in class


⚛ Analysis tweaks and paper rewrites.

Post-class assignment


⚛ Finish rewriting your project report.
⚛ Create a PowerPoint presentation, ~20 minutes in length, describing your results to your classmates.

Week 14, conference with the professor + TAs


⚛ Paper and PPT discussions.

Week 14, in class


⚛ Milestone 11: "Rewritten paper and to-the-class PowerPoint presentation finished." This is due at the start of class.
⚛ PPT presentations by each group

Reading Day


⚛ Meet at GG's house for a Serious Pizza Party !