Resistors on the RX and TX lines of the Arduino Pro?

So I was recently having a bunch of trouble with a Sparkfun XBEE shield... No surprise here. Attempting to program this device over the XBEE, or communicate with it AT ALL!

Upon hooking the oscilloscope to the serial lines, I noticed that it was never able to pull the line below... say 2 volts, but it was doing it fine on the Leonardo. Wasn't' that weird.... but then I realized that there are 1K resistors on pins 0 and 1... and ONLY on the pro. Needless to say, the 1K resistors on the level shifter circuit on the shield (which should have been 10K or more) was playing voltage divider with the 1K on the Arduino Pro. So clearly this is a problem with the Sparkfun board, but my question is this..

WHY does the Arduino Pro have 1K resistors on the TX and RX lines? (and not any other arduino including the Pro Mini?)

Am I missing something? Will I regret putting jumpers over these resistors in my project?


[quote author=Andy Baker link=topic=158496.msg1186906#msg1186906 date=1365121318] WHY does the Arduino Pro have 1K resistors on the TX and RX lines? (and not any other arduino including the Pro Mini?) [/quote] Your statement is not correct. All Arduinos with a USB to serial chip connected to pins 0 and 1 have the 1k resistors.

The pro mini and Leonard do not have an onboard USB to serial chip, so not need for isolation resistors.

Hi James,

With all due respect, I’m certain I am correct. I do see the RN4A and the RN4B 1K resistors on the Uno R3 schematic between the 328P and the 16U2 that you’re talking about, and perhaps it’s just a matter of me being unclear, but from the 328P and Arduino pins 0 and 1 (which are what we assume the shield would talk through) it’s a direct shot to the ATMEGA328P on the Uno, the Leonardo, the “Ethernet” and so forth to the main shield header pins 0 and 1. This is not the case on the Arduino Pro. On the Arduino Pro, R1 and R3 clearly are between PD0 and PD1 and the header pins 0 and 1 on the standard shield connector (on arduino shield pins 0-7) but curiously, there are NO resistors between PD0 and PD1 on the upload header (nearest the battery connector - the “FTDI” inline 6, NOT the 2x3 ISP) which is where I assume one would want them, (and where it would make them equivalent to the “Uno”) especially since the “FTDI” USB to TTL serial programmers that I’ve seen don’t incorporate resistors on their IO lines.

I think what we’re looking at here is a mix-up and a design flaw in the Arduino Pro when it was adapted from the Duemilanove (or whatever) . R1 and R3 are clearly visible in the photos of all Arduino pro boards. There is no question where and how they’re involved in the circuit. There’s a very good reason why this has gone unnoticed as well… This probably works fine on most 5V shields, but the fact that there are more and more 3.3V devices going around now mean more level shifters (which when executed in certain ways lead to trouble) and hence the inability to properly pull pins 0 and 1 all the way low

PLUS! What if I was driving a bunch of LEDs? The ones I’d attach to pin 0 and 1 would be a lot more dim.

Why, I ask?


I see your point.

[quote author=Andy Baker link=topic=158496.msg1187024#msg1187024 date=1365131903] Why, I ask?[/quote] Since Sparkfun designed (a long time ago), manufactures, and sells that board, you should probably asked them. As you'll see from their product page, a number of people have replaced those resistors with 0ohm resistors.

I guess it's a difference of protection goal between the arduino Pro board and a more standard arduino board like the UNO. On a Uno the USB serial chip is always present on board so there is a need to protect the serial chip from user wiring at all times from user connections that might be wired to the shield pins 0 and 1 to prevent the case where two output signals might be wired together. The Pro board does not have a on-board serial chip but rather allows one to be plugged into dedicated connector pins when desired, so the series resistors would still protect from the case where two external output signals might be connected together, one from the serial cable connection and one from user wiring to shield pins 0 and 1.

Both designs still allow for protection. But I agree that I would have wired the protection resistors from the AVR pins to the serial connection pins and allowed direct wiring from the AVR pins to shield pins 0 and 1, like with the more standard UNO.