Tom's Main Menu

Physical Computing Home

Intro to Physical Computing Syllabus

Networked Objects

Sustainable Practices

blog

Resources

code, circuits, & construction

my del.icio.us links

 

BX-24 Troubleshooting

 
A few things to check if the stamp programming application won't recognize your microcontroller. These are tips gleaned from past experimentation and the BX-24 mailing list.

These notes assume you're using the Basicx programming environment, a standard 9-pin serial cable, and a BX-24 microcontroller. Also, it's wise to remove your BX-24 from any circuit you've built and check it on a bare prototyping board. If it works there, you know the problem is in your circuit, not the BX-24.

1. Power and ground: Are you putting the proper DC voltage in pin 24 (or 21, if you're putting in 5V)? is pin 23 grounded properly?

2. BX-24 voltage regulator: when you power up the stamp, do you get +5V out from pin 21? If not, the BX-24's onboard power regulator may be blown. I usually bypass the regulator with an external 5V DC regulator, model 7805, available from all electronics suppliers. Put power (+5-15V) from your power adaptor into the external regulator's Vin pin, ground from the power adaptor to the regulator's ground pin, and you should then have 5VDC between the ground pin and the regulator's Vout pin. See the diagram below

3. Serial programming cable properly connected?

Worthwhile also to check your prototyping board for shorts. We've seen the problem crop up where a screw in the prototyping board caused a short between power and ground.

When you've tried everything and still can't get the BX-24 to be recognized, contact NetMedia tech support. They're very helpful and understanding, and will arrange replacements for problem stamps.

4. The BX-24 won't respond to the programming environment.

This happens a lot when you write a program that uses commands which disable interrupts. The programming environment uses the BX-24's interrupt hardware to stop whatever program is running and download a new one. Some functions disable the interrupt to get very tight (microsecond-precise) timing. Pulseout is one such command. So if you have a program using a command that disables interrupts, and it's doing that many times a second, the programming environment will have trouble interrupting the program to download a new one (or a new version).

There's no surefire way around this; sometimes the rescue function will save it. Choose "rescue" from the "Download port" menu, then ground the reset pin (pin 22), then wait ten seconds and try to download your program again. This resets the program and gives you a short interval to download a new one. However, in tight loops with interrrupts disabled, it doesn't always work.

Sometimes removing the BX-24 from the circuit (pull it out of your board) and letting it sit for 15 minutes or so helps. I have no scientific explanation for this, but it's worked several times when all else has failed.