Gems of Wisdom
Selected and adapted from
several years of ME218 student's comments
General
Start by making a schedule for the project and
include any outside events like vacations, graduations, etc. to avoid surprises
later on.
Have plenty of spare parts ready to go in case
something blows at the last minute.
Jameco is not open on weekends, so don't
postpone your trip until Saturday - you will be sorely disappointed.
Keep circuit diagrams up to date as you make
changes.
Use a lab notebook so that all information is at one
place and so that your teammates can have easy access to it.
Take a lot of pictures as you progress.
Communicate well within your team so that some tasks
are not overlooked, while others are duplicated.
Make sure at least two people in your team understand
(or at least have an idea of) each component - mechanical, electrical,
software. It doesn't have to be the same two people, but it insures that if
someone's missing, that the team isn't stuck.
Keep on top of the project schedule.
Design issues
Do circuit calculations to make sure you have enough
(not excessive) voltage / current / power.
Thinking very carefully about your electrical design
and layout will save you lots of soldering time. By designing carefully, you'll
optimize locations of every component, and you'll end up making a lot less
solder joints, connectors, electrical boards, and corrections.
It's easy to make a design with bad ergonomics which
make it impossible for the user to perform the task, so prototype / try out the
user scenario yourself as early as possible.
Black objects left in the sun tend to melt any hot
glue that is exposed. This is detrimental to the project's structural
integrity. It is therefore wise to a) avoid hotglue or more realistically, b)
avoid leaving black hotglued objects in the full sun for extended periods of
time.
Mechanical hardware
Modularize as much as possible.
Modularize mechanical systems so that simpler parts
can be made earlier and used from the beginning of development.
Make sure critical components are accessible (i.e.
batteries, boards, DIP sockets, etc.) so you don't have to unscrew or
disassemble a lot of things when you need to test, power cycle, or
reset.
Hot glue down all soldered wire connections. You'll
lose a lot of time tracking down an error that may end up being a loose or
broken wire.
Circuitry
A nice pair of wire snips (flush cutters) and wire
strippers makes wirewrapping and circuit building in general much
easier.
Buy a good pair of wire strippers, preferably ones
that can strip 30AWG wire. Your fingers will thank you.
Build and test all of circuits and sensors on a
breadboard before you make them hard mounted on perfboard.
Isolate circuits onto individual perf-boards (rather
than having a giant perf-board with all of your circuits). Makes it much easier
to take them out to debug them.
Move to solder boards or wire wrap boards as soon as
you can. If you are developing simple hardware that you understand well, don't
be afraid to solder it on a board.
When moving circuits from breadboard to perfboard,
rather than dismantling your breadboards, leave your working breadboards intact
and buy new components and build entirely new circuits on the perfboard. That
way, if something goes wrong once everything is built, you will always have a
backup copy of your circuits on the breadboard that you know worked before you
integrated everything.
Use connectors for everything - makes it easy to
disassemble.
Make sure any diodes and transistors are oriented
correctly in the circuit or you will fry your voltage regulators.
Testing and troubleshooting
Test your design in the environment in which the
hardware will be used .
Always take the time to test on the actual
demonstration location.
Test circuits as they will be implemented in final
form, as well as fully integrated.
- Test all of the components separately before
integrating.
Just because two points on a circuit look like ground
when probed doesn't mean they are electrically connected.
If you are having intermittent problems (e.g. it
works only some of the time) check your connections - especially those
connecting your various circuits to a common ground.
Troubleshooting bad connections on a breadboard is a
waste of your time.
When you're tired and everything starts to fail don't
forget to check the batteries.
If you're tired and everything starts to fail and
it's not the battery consider going home and looking at again the next morning
rather than changing a lot of code. Often it is some small little change you
overlooked and are too tired to notice.
Software and debugging
Build and test the software in small manageable
pieces. If a lot of changes are made at once and the new program doesn't work,
it is very hard to isolate the problem without a lot of work.
Use debugging LEDs so you can toggle the bits and see
if you get into loops or states. This was really helpful when we were trying to
figure out what was wrong with our code.
Utilize 7-segment display or LCD display for
real-time debugging.
Test software modules individually before integrating
them all.
Try working during the day. (Seriously!). Debugging
is way easier with a clear head.
Last words
Have fun, it's a great class
Be friendly with other teams - you never know when
you're going to need help.
Bathe as frequently as possible; encourage others to
do so as well.
|