Gems of Wisdom

General Approach

  • All Progress is Change. Not all Change is Progress.
  • Focus on the long-term vision.
  • Focus on meeting the bare minimum requirements first. Don't sink too much time on strategy. That said, the checkpoints do not necessarily reflect the best strategy for winning.
  • Caveat: the checkpoints are still a pretty good set of milestones towards what you should be accomplishing. Blowing through them without accomplishing them can mean you are way behind or that you are a visionary genius who doesn't need the constraints of the teaching team. The former is probably more likely.
  • Reuse past work. "All design is redesign." Saves on time.

Team Dynamics

  • Work-life balance is important. Don't neglect the other people that are important to you or your other needs.
  • Your teammates are good people, but sometimes you just need to be away from them. Go home and take a nap, go eat dinner with other friends or significant others, read a book, etc. You will get frustrated and it isn't their fault, but continuing to be around them doesn't always help.
  • Try not to have a conference at the same time as the 218 projects.

Structural Design

  • Prototype early to leave more space to pivot.
  • LASER Cutter access sucks. Plan accordingly.
  • Design for disassembly and troubleshooting.
  • A couple hours spent assembling a good mechanical prototype with soldered boards and motors fixed makes testing much smoother.

Electronic Design

  • Buy an extra set of batteries. Switch them out for fresh ones and charge them often.
  • Keep your ground and power Molex connectors consistent and standardized for integration troubleshooting.
  • Having a wire color scheme (e.g. red is always power and never a signal no matter what) makes it far less likely you blow up a circuit by plugging things in incorrectly. In addition, having different colors for different voltages would have been nice, is we had done it.
  • Having a central PDB with rails of Molex connectors was great, except when we had some loose connections and they took many, many hours to debug.
  • Encoders are super finnicky. They work great but take a lot of effort. We spent too much time trying to get a set to work right. When we got a new pair and re-soldered and re-installed them, they worked much better.
  • FUSES

Software Design

  • Get the communications stuff done early and then add other functionality.
  • Save a lot of time to test the communications between you and your team-mate; things that work when in isolation may not work when acting and reacting to someone else's system, code and logic (although ideally they should be robust to such things).
  • Don't have too many unnecessary for loops and other such time taking segments in the code; they affect the communication by delaying things but you will only see this in certain edge cases.
  • Be prepared to dump some cool functionality that you have put in if it breaks your code; a working basic system is more useful that a complicated but broken one.
  • Code in chunks and test regularly; else the debugging process can get very tedious.
  • Install MPLabX on your personal laptop so you can work even when not in the lab or if all the computers are taken in the lab.
  • We didn't yank the microUSB out of the Tiva...