Serial Communication stops when battery powered

i'm trying to transmit serial data via pin1 (TX). i've verified this works just fine when the arduino is powered via USB. however, when i power the arduino with a fresh 9v battery, TX stops (the TX light no longer blinks!) while other parts of the program (a blinking LED for example) seem to be running fine. any thoughts/help?

i've already tried a 10k pull up/down on RX and it didn't do anything.

i'm using a new Arduino Duemilanove Atmega328.

What are you connecting pin 1 to? Did you remember a common ground from the Arduino to whatever it is?

pin 1 is going to an RF Link Transmitter - 434MHz. but even if i disconnect pin 1, it still doesn't blink that it's sending data.

and yep, common ground definitely is there.

i have several arduino Duemilanove's and their all doing the same thing. :(

Do you have decoupling caps?

If you start transmitting without them, the battery is unable to provide all of the current to power the radio and the Arduino.

Try adding caps, then see what happens.

Also, try using an external voltage regulator for the radio, and set it up like this:

+9v---100uF cap---Regulator---10uF cap---+5v | | | |_________|____| | GND

the TX light on the arduino is driven from the USB chip, not directly from the TX pin of the AVR. I would think that "no usb connection" means "no blinking tx light", even if serial IO is working just fine...

I just noticed that behavior with my duemilanove while troubleshooting my serial connection. When the usb is plugged, the TX/RX of the AVR are non functionning?

I am having problem with my serial port not using USB. is there an easy way to test if the TX/RX pins of the AVR are working properly since I cannot rely on the TX/RX light?

As westfw points out, the TX/RX LEDs are a function of the FTDI chip; they are not directly connected to the TX/RX lines. I wouldn't count on them unless using the USB interface (or do some work with the FTDI datasheet and Arduino schematic to verify one way or the other).


For testing purposes, you can put an LED between pin 1 and GND (preferably with resistor) and see if it blinks (the LED may interfere with operation of whatever you’re trying to talk to, but if it blinks you’ll know the serial port is still working…)

uhm doesnt seem to work without a resistor...

I placed a reistor/led from pin 1 to gnd, solid led. I am having trouble with downloading a program( never finishes),
“L” led flashes twice the “TX” led flashes continually at a high rare. I was able to get a sample program downloaded the first time, after that nothing. I am powering the board with +9V from a power supply and connected to the usb for programming.

I installed the led prior to opening the program. The led blinked two times when I opened the program. I pushed the reset button and the led flashed. I waited about 4 seconds and tried to download a program. The led flashe a couple of times and then stayed solid, TX light continually flashing.

I placed a reistor/led from pin 1 to gnd, solid led. I am having trouble with downloading a program( never finishes),

I am not surprised that pin receives data from the USB port to program the processor. You are blocking this signal with the resistor and LED.

So I did some experiments as well... 1) On my mac/arduino setup, not only does the TX light not flash when the arduino is battery powered, the TX LED doesn't even flash when the "Serial monitor" is not open. 2) My "add an LED to the TX pin directly" logic was backwards - to see flash when transmitting, connect the LED with its cathod on TX and its anode on +5V. (for ease of connection, I just used another output pin set to HIGH.) (ON pulses are much easier to see than "off" pulses.) 3) lower bitrates make for longer flashes. 4) It seems to work fine - even though the built-in TX led does not flash, the TX pin does cause flashes on the LED.

If you look at the schematic you will see that the TX and RX LEDs are controlled by the GPIO pins of the USB to serial bridge chip. That means the flashing of them has nothing to do with serial data going too or from the processor but is driven by the COM port driver in the host PC. I suspect that this is just a cosmetic part of the driver and not related to actual data at all.

Any ideas on why I am unable to upload a program to the board?

Any ideas on why I am unable to upload a program to the board?

Sure. Like grumpy said, an LED on the TX line can interfere with the serial com back to the PC, so the PC doesn't see the bits that say "yes, your upload is working." I think I avoided this by using a white LED, but the better solution is not to put the LED there till after the program has uploaded.