Gems of Wisdom
General Approach
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
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
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
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
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...