DEBUGGING A STAMP BOARD
Debugging your Stamp board
"Help, my &$#!!@$ Stamp board
"Help, I'm getting 'Check power supply' errors"
"Help, I'm getting erratic results!!"
"Help, my computer can't talk to the Stamp board!!!"
"What do I do?!!"
The key to debugging is to follow a logical procedure and to isolate the problem
which could be with your circuit, with your program or with your Stamp board.
Here are some things to try. Read through this entire document. Also, see the
pictures at the end to help understand some of the procedures. A
different document describes how to
debug the older Stamp Rev. D board.
- Disconnect everything including cable and battery and anything you have
connected to the pins. This way you can determine if the fault lies with the
Stamp board or with your circuit.
- Measure battery voltage with your DVM. If less than 7V, get a new battery.
- Connect battery to Stamp. Within 4 seconds, measure the battery voltage.
If 0V, you have a short circuit somewhere. Disconnect the battery immediately
and see if you can find the short.
- Connect the battery. Measure the voltage between +5V (Vdd) and GND (Vss).
It should be between 4.95 and 5.05 volts. If not, check your battery voltage
(and that you have plugged in your battery). If the battery is OK and if you
have nothing plugged into the Stamp and the +5V pin does not read +5V, you
have a dead voltage regulator on your Stamp board. Bring the board in for
a swap, but you will have to pay for the new board (see price on the contract).
- Plug in the programming cable to the Stamp and to the PC. Check that the
Stamp is still at +5V.
- Fire up stampw.exe on your PC.
- Write a one-line program. (The single command "END" is fine.
Download to the Stamp. If you get a "Check power supply", or a COM port error,
check (1) battery plugged in, (2) stamp cable plugged in securely at both
ends, (3) battery voltage is good, (4) +5V pin on Stamp is good. If still
getting a download error, try using another cable to see if that is the problem.
If not, try using another computer (if you are at the UofM, use the computers
outside of MechE 380) to confirm the problem is not with your computer.
- If you can't get the Stamp to turn on an LED, try holding your LED and
resistor against the +5 and GND of your Stamp board. The LED and 330 ohm resistor
should be in series. Try the LED in both orientations.
- If you can't get the Stamp to drive outputs (LED's, motors), unhook your
circuit from the Stamp pins. Write the following program:
loop: toggle 0 : pause 2000 : goto loop
Measure the voltage at P0 (red DVM lead on P0, black lead on Vss) after downloading.
Pin should alternate between +5V and 0V every two seconds. If not, try it
with a different pin and implement your LED flasher with any pin that works.
- If you can't get your Stamp to recognize inputs, see the "Understanding
the Stamp DEBUG command" section of this document.
- If your program doesn't start cleanly when you connect your battery, try
connecting the battery in a single, firm motion. If the battery rattles around
in the contacts, it can cause your Stamp to start someplace other than at
the beginning. Also, try putting a "PAUSE 1000" as the first line
in your program if you are getting erratic startup behavior.
- If you get "Expected a direction, address symbol, or instruction...." or
similar message, it means you have an error in your program. Find and correct.
- If you can't get your computer to talk to the stamp board and if your board
and cable work on other computers, then the problem is probably with your
computer talking to the serial port. The message you may get is something
like "BASIC Stamp II not found on any COM port", or the message may be some
variant of "Check power supply." Try this:
- Check that your Com ) port is working properly. ("Com port" means the
same as "serial port".) In Windows, Start menu > Right click on My Computer
> Properties > Hardware > Device Manger. (This is how it works under WindowsXP;
other versions of Windows may have a slightly different way of getting
to the Device Manager.) In the Device Manager window, double click on
Ports (COM&LPT). There should be at least one Com port listed and this
this is the Com port number your stamp is plugged into. Right click on
the Com port > Properties. Confirm that there is a "This device is working
properly" message in the Device status window. If not, there is something
wrong with your Com port.
- If you are using a USB-to-serial adapter cable and it is installed properly,
you should get a COM port listed in the device manager with a note
that the port is associated with the UCB adapter. That is the COM
port to use. If no COM port is listed, there
is something wrong with the way the adapter is installed.
- In the Stamp editor, select Edit > Preferences > Editor Operation tab.
Pull down the menu in the Default Com Port box and select the Com port
number for your computer. If your Com port does not show up in this box,
click on the box with the three dots to the right of the Default Com Port
pulldown menu and add your Com port to the Com # box.
- Also, look at document on setting up a Stamp serial port (PDF)
- If your computer has no serial port (true for some newer laptops), then
you need to purchase a USB-to-serial converter converter.
- You can also go to the Parallax web site and download the
latest version of the Stamp editor.
- You can try booting up the computer in SAFE mode (see your Windows help
file, or type "Windows SAFE mode" into Google) then running the Stamp editor.
This will let you see if other drivers are locking up the port.
- You can try running your board with the computers in ME 308. This will tell
you if the problem is with your board or with your computer. See the note
running the stamp editor on the ME308 computers for details.
- The *only* way to confirm that you have a bad Stamp board: Strip board of
*all* wires and components Dead stamps have one of 2 behaviors. First behavior
is the +5 supply is blown. Confirm (did you clean the board of all components?)
by measuring voltage between Vss and Vdd with a good battery. If the battery
voltage while plugged in is good and there is not +5 at Vdd, the power supply
is gone. Second behavior is no download. The only way to confirm this is to
have the suspected dead board and a known good board side by side. Confirm
download with the good board. Then using the cable and battery from the good
board, confirm the dead board has a valid +5 and cannot download. After you
have confirmed the board is bad is when you can contact a staff member about
doing a swap.
- It is highly unlikely that you have a bad Stamp board. They pretty much
never break even though it may be the first thing you suspect. Moral? When
debugging, what's wrong is generally not the obvious.
- Ask a friend.
- Ask one of the course staff.
- Bring your Stamp to office hours for a debug session.
Understanding the Stamp DEBUG command
The DEBUG command is a great way to see what is going on in your
program while it runs. Inserting a few strategically placed DEBUG
statements in your program during the testing phase does wonders in
helping track down bugs. Read about DEBUG in the Stamp Guide.
programming cable attached to the PC and the PC running stampw.exe,
DEBUG will print the value of its argument on the PC screen. Try out
the following program while your switch is connected to P4. Watch
what happens to the printed value of P4 when you press and release
If you are not detecting switch changes on the PC screen,
disconnect your switch from the Stamp pin and try connecting the pin
directly to +5 (Vdd) and then to GND (Vss) as shown in the picture
below. If state changes on P4 are not being recognized, try with
If the changes are still not being recognized, then it's your switch
circuit. Measure the voltage at the pin with your DVM. It should go
from +5V to 0V when you press the switch. If not, perhaps the wires
are not connected to your switch terminals. Try directly touching the
wires to each other. Or, perhaps your switch is faulty or needs a
wiggle. Disconnect the wires from the switch and use the beeper
function of your DVM to check for switch continuity.
If the debug screen is giving erratic results, randomly changing
between 0 and 1, it's because you have an open circuit somewhere. Pins
with nothing connected will randomly change their state
' Debug demo program (wkd 07-nov-02)
OUTPUT 0 ' LED
INPUT 4 ' switch
debug dec in4 ' print status of switch
pause 250 ' so the text doesn't fly by too fast
Remember DEBUG when you are deep into developing and testing code for your robot.
It can be a lifesaver for figuring out if the problem is with your circuit or
with your program.
Here are some pictures which might help you understand the debugging
process. The pictures show the older Stamp Rev. D board, but you get
|Figure 1: Using the voltmeter to check if the battery is good.
||Figure 2: Checking if the +5V supply on the Stamp board is good. Note
that the black lead of the voltmeter is on the battery (-) terminal which
is easier to find.
|Figure 3: Using the voltmeter to see if pin1 is putting out 0 and 5
volts in response to a Stamp program which toggles pin 1.
||Figure 4: Using a jumper wire to set Pin4 high and low by jumpering
Pin4 to GND (shown here) then to +5. Be careful not to touch two pins at
once with one side of the wire. .