Published using Google Docs
Project Starters
Updated automatically every 5 minutes

Project Starters

One of the key things we look for are students that take on projects and really expand on the project, or dive deep into the project.  If you feel that your application could use some help in that area, we encourage you to take on one of our project starters and really build on it.

All of the following projects are intended to be open-ended design problems, meaning you can start with just this project, then expand on it to do many different things.  Although these are written as specifications, feel free to modify the specifications to fit your interests.

SW - OOP Design/SW Architecture Design

Skills

  1. UML Modeling
  2. Python dataclass

Instructions

  1. Write a Python program with the following commands:
  1. start [datetime]
  1. Starts a timeslot.  If a datetime is provided, start the timeslot at the provided timeslot, otherwise start the timeslot at the current time.
  1. stop class [datetime]
  1. Stops the current timeslot and assigns that timeslot to the provided class.  If a datetime is provided, stops the timeslot at the provided timeslot, otherwise stops the timeslot at the current time.
  2. Class is a string that denotes a specific class (e.g. ECE100, CSE130, etc.).  This can either be predefined, or dynamically defined by the user.
  1. report [date]
  1. Prints out a report of the time spent on each class for the entire day.  If a date is provided, generate the report for that particular day, otherwise, generate the report for the current day.
  1. entries [date]
  1. Prints out the timeslots for the entire day.  If a date is provided, prints out the timeslots for that particular day, otherwise, prints out the timeslots for the current day.
  1. The Python program must store data in nonvolatile storage of some sort.  That is, the user must be able to restart the program and still be able to look up previous entries.  
  2. The Python program must be properly packaged using setup.py and setuptools
  3. The Python program must be maintained in a git repository.
  1. This does not need to be put onto GitHub.
  1. Bonus points ideas:
  1. Being able to start a timeslot, restart the program, and still be able to stop the timeslot.
  2. Graphical user interface
  3. Online database
  4. Unit tests
  5. UML class diagram detailing the class layout
  6. UML sequence diagram detailing the functional behavior of the 4 commands

MechE - CAD Design

Skills

  1. Reading mechanical drawings
  2. Fits and tolerances
  3. Fastener selection/sourcing
  4. 3D printing manufacturability

Instructions

  1. Download and install SolidWorks
  2. Design a part to do the following:
  1. Mount a Raspberry Pi 4 into the center of a NBF-32410 box.
  2. Provide cable routing for a 0.175 in diameter USB C cable coming into the box for the Raspberry Pi 4
  3. Be 3D printable from PLA
  4. Use metric 316 SS fasteners
  5. COTS BOM cost (not including RPi 4, NBF-32410, or USB C cable) not to exceed $50.
  6. PLA cost not to exceed $5
  1. Create the 3MF or STL files for the 3D printable part(s).
  2. Create the manufacturing drawing for the 3D printable part(s) denoting drilled holes.
  3. Create the modification drawing for the NBF-32410 box denoting drilled holes.
  4. Create the assembly drawing/procedure denoting how to modify and assemble the entire system.
  5. Bonus Point ideas:
  1. Simulation results demonstrating that the Pi 4 will be securely retained in the event of a 5g acceleration event in any direction.
  2. Parameterized model supporting:
  1. XYZ location of Pi 4
  1. Thermal simulation of Pi 4 under load inside box

EE - LED PCB Layout

Skills

  1. Sourcing components
  2. Reading datasheets
  3. Creating schematics
  4. PCB Layout
  5. Source Control

Instructions

  1. Download and install Autodesk EAGLE or Altium Designer
  2. Design a circuit to drive an IR LED from a 5V DC source and a 5V PWM signal.
  1. The inputs to this circuit are 5V power, 5V PWM that denotes how often the IR LED should be on.
  2. This circuit should drive the LED to be on when the PWM signal is on, off when the PWM signal is off, and varying with the pulse width of the PWM signal.
  3. The IR LED should have a viewing angle of at least 45 degrees.
  4. All components must be currently available from one of the following suppliers:
  1. Digikey
  2. Mouser
  3. Newark
  1. Components may be SMD or THT
  1. SMD components may not be smaller than 0603
  1. Design a PCB to accommodate this circuit
  1. The external interface to this board must be a 0.1” male header with the following pinout:
  1. SIGNAL
  2. 5V
  3. GND
  1. This PCB may not exceed 1.5 in x 1.5 in total size.
  2. This PCB must provide hardware mounting interfaces
  3. This PCB must provide the external interface on the “top” side of the board and the IR illuminator on the “bottom” side of the board.
  1. Deliver the following:
  1. Octopart BOM
  2. Clearly labeled schematic as a PDF
  3. PCB design as an Eagle/Altium project
  4. Analysis showing the relationship between PWM duty cycle and average current across the LED.
  1. Bonus point ideas:
  1. Adjustable gain on top of PWM control
  2. Parameterized design model (inputs are LED parameters, outputs are device/component values)
  3. Input impedance analysis

SYS - USB Cable Checker

Skills

  1. EE - PCB Layout
  2. SW - Embedded Software
  3. MechE - CAD

Instructions

  1. Design a system to do the following:
  1. The system must provide ports for at least the following cable types:
  1. USB A Male to USB 2.0 B Male
  2. USB A Male to USB 2.0 micro B Male
  3. USB A Male to USB mini B Male
  1. The system must be able to identify whether or not the cable is intact.
  2. The system must be wall-mountable or bench-mountable.
  1. Deliver the following:
  1. Octopart BOM
  2. Clearly labeled schematic as a PDF
  3. PCB design as an Eagle/Altium project
  4. CAD design as a SolidWorks project
  5. Any supporting software/firmware
  1. Bonus point ideas:
  1. Be able to differentiate between USB cables that are power only vs power + data
  2. Support USB 3.0 cables (USB 3.0 B Male, USB 3.0 micro B, USB C)
  3. Support verifying differential signal integrity
  4. Provide cable ID tracking

Embedded Systems - PWM Analyzer

Skills

  1. AVR Architecture
  2. Embedded system counters, timers, interrupts, GPIO, memory mapped peripherals

Instructions

  1. Write code to do the following:
  1. Take 0.5-5 kHz PWM at any duty cycle in on a pin of your choice
  2. On a pin of your choice, simultaneously output a PWM signal at the same frequency and duty cycle as the input signal
  1. Deliver the following:
  1. Code
  2. Picture of the oscilloscope and signal generator demonstrating operation
  1. Bonus point ideas:
  1. Output PWM only if the duty cycle is less than 50% high, otherwise output always high.