Winter Quarter 2008 Course Announcement:

ENGR110/210: Perspectives in Assistive Technology

with Professor Drew Nelson
and David L. Jaffe, MS
Winter Quarter, Tuesdays 4:15pm - 5:05pm
Location: Meyer Forum (Meyer Library, Room 124)

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.


Updated 05/02/2008

Back to Homepage

back to homepage