Selected and adapted
from several years of ME218 student's comments
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
Keep circuit diagrams up to date as you
Use a lab notebook so that all
information is at one place and so that your teammates can have easy access to
Take a lot of pictures as you
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
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
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.
Modularize as much as
Modularize mechanical systems so that
simpler parts can be made earlier and used from the beginning of
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
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.
A nice pair of wire snips (flush cutters)
and wire strippers makes wirewrapping and circuit building in general much
Buy a good pair of wire strippers,
preferably ones that can strip 30AWG wire. Your fingers will thank
Build and test all of circuits and
sensors on a breadboard before you make them hard mounted on
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
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
Just because two points on a circuit look
like ground when probed doesn't mean they are electrically
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
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.
Have fun, it's a great
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.