What has happened to this RX pin ?

i have just discovered that the RX pin on my original UNO Rev. 3 is not functioning 100%

  1. when i upload sketches, both RX ad TX LEDs flicker.

  2. when i run the Blink sketch on pin 0 (ie. RX) - an external LED will blink accdly, but the RX LED (on the board) does nothing. (not that i know if it should do anything.)

  3. when i run the Blink sketch on pin 1 (ie. TX) - an external LED will blink accdly, meanwhile the TX LED (on the board) does flash very briefly when the LED changes from on(HIGH) to off(LOW).

  4. i also checked what was going on on the “other pin”; in (2) ie.RX-blinking, i switched the jumper to see what TX was doing - the LED lit very dimly; while, for (3) ie.TX-blinking, switching the jumper to RX - the LED was lit on all the time, at what seems to be the same brightness as when it was connected to the “blinking pin”.

  5. i tested multiple-Serial communication with a Bluetooth HC-05 module using this SoftwareSerial code

#include <SoftwareSerial.h>

SoftwareSerial mySerial(2, 3); // RX, TX

void setup()  
{
  // Open serial communications and wait for port to open:
  Serial.begin(9600);
  Serial.println("Goodnight moon!");

  // set the data rate for the SoftwareSerial port
  mySerial.begin(9600);
  mySerial.println("Hello, world?");
}

void loop() // run over and over
{
  if (mySerial.available())
    Serial.write(mySerial.read());
  if (Serial.available())
    mySerial.write(Serial.read());
}

nothing appeared on the Serial Monitor after “Goodnight moon!”, but whatever was typed and ‘Sent’, did appear on the Bluetooth Terminal.

meaning “receiving” (ie. the RX pin… or the connection to the 16U2 ?) has an issue.

further info; when testing the blink sketches earlier, the case of (3) - the TX (on board) LED actually blinked in sync with the connected LED - but testing it again, to confirm the situation, it seems to have “gotten worse”(?) - only flashing briefly (on the falling edge ?).

can anybody confirm what has likely happened to the RX pin - is it permanently out of commission as far as Serial communication is required ?

is there a possible remedy to this situation ?

Thanks.

The LEDs are driven by the USB/serial chip in response to USB activity, so they won't do anything
unless a something on the host computer is talking to it.

MarkT:
The LEDs are driven by the USB/serial chip in response to USB activity, so they won't do anything
unless a something on the host computer is talking to it.

i see, so all those "symptoms" i outlined above do NOT indicate any problem with the RX pin ?

then i have to trouble-shoot the Bluetooth connection instead.

This:
Serial.begin() is for your serial monitor connected to your Arduino… (nothing more/else)…

mySerial.begin() is for setting up a software serial connection to communicate with another device (such as your as BT module)…

You will NOT see this information in the serial monitor! (why would you? its sent to a different device…whatever is connected to your software serial pins you declared)

It doesnt look (to me) like you have ANY problems… (outside of understanding)… things are behaving as “I” would expect them to.

xl97:
You will NOT see this information in the serial monitor! (why would you? ...

because of this ?

  if (mySerial.available())
    Serial.write(mySerial.read());

I believe that would output the serial data coming FROM your BT device.
If your BT device was sending some information TO you… yes… then that would parse it and display it in the serial monitor.

You asked why you didnt see this:

mySerial.begin(9600);
mySerial.println(“Hello, world?”);

in the serial monitor… and my response was that you wouldnt because it was not sent to the serial monitor… it was sent to the BT device…

If I sent you a letter… with some information in it…
How would you possibly know I also sent a letter to someone else? (you wouldnt… you would only know about the info I sent you).

xl97:
You asked why you didnt see this:

mySerial.begin(9600);
mySerial.println("Hello, world?");

i did NOT !

xl97:
I believe that would output the serial data coming FROM your BT device.
If your BT device was sending some information TO you.. yes.. then that would parse it and display it in the serial monitor.

did you even read the code ?
that is exactly what is supposed to happen.

Sorry I guess I took this comment as you were surprised and asking why it did not:

"nothing appeared on the Serial Monitor after “Goodnight moon!”

Thats how it reads to me.

BabyGeezer:

  1. when i upload sketches, both RX ad TX LEDs flicker.

The 16U2 is responsible for the flashing of the R and TX leds (as mentioned in the first reply).

BabyGeezer:
2) when i run the Blink sketch on pin 0 (ie. RX) - an external LED will blink accdly, but the RX LED (on the board) does nothing. (not that i know if it should do anything.)

See (1) :wink:

BabyGeezer:
3) when i run the Blink sketch on pin 1 (ie. TX) - an external LED will blink accdly, meanwhile the TX LED (on the board) does flash very briefly when the LED changes from on(HIGH) to off(LOW).

Again, see (1). Probably because the 16U2 sees the transition from high to low as a startbit.

BabyGeezer:
4) i also checked what was going on on the “other pin”; in (2) ie.RX-blinking, i switched the jumper to see what TX was doing - the LED lit very dimly; while, for (3) ie.TX-blinking, switching the jumper to RX - the LED was lit on all the time, at what seems to be the same brightness as when it was connected to the “blinking pin”.

You will have to explain that in more detail.

BabyGeezer:
5) i tested multiple-Serial communication with a Bluetooth HC-05 module using this SoftwareSerial code

#include <SoftwareSerial.h>

SoftwareSerial mySerial(2, 3); // RX, TX

void setup() 
{
  // Open serial communications and wait for port to open:
  Serial.begin(9600);
  Serial.println(“Goodnight moon!”);

// set the data rate for the SoftwareSerial port
  mySerial.begin(9600);
  mySerial.println(“Hello, world?”);
}

void loop() // run over and over
{
  if (mySerial.available())
    Serial.write(mySerial.read());
  if (Serial.available())
    mySerial.write(Serial.read());
}




nothing appeared on the Serial Monitor after "Goodnight moon!", but whatever was typed and 'Sent', *did* appear on the Bluetooth Terminal.

Maybe a stupid question but did you indeed send something from the bluetooth terminal? ( :wink: ) I suggest that you use the led on pin 13 for debugging the mySerial. E.g. switch it on when data is available and off when no data is available.

sterretje:
The 16U2 is responsible for the flashing of the R and TX leds (as mentioned in the first reply).

okay then, so those LEDs have nothing to do with whether pin 0 or pin 1 as (pinMode)OUTPUT are being written HIGH or LOW.

sterretje:
You will have to explain that in more detail.

when LED on pin 0 is blinking HIGH/LOW, i momentarily remove the jumper (from pin 0) to pin 1 (to see "what the other 'one' is doing") - and vice versa.

in this case, i'm sure there is some relation to the RX/TX (pins/lines?; maybe not the on board LEDs) since the sketch is NOT doing anything to the "other" pins, ie. D1 when writing to D0 and D0 when writing to D1.

but, as you say, it's being handled by the 16U2 so there's no connection to the sketch whatsoever.

sterretje:
Maybe a stupid question but did you indeed send something from the bluetooth terminal? ( :wink: )

yes i did.

xl97:
Sorry I guess I took this comment as you were surprised and asking why it did not:

"nothing appeared on the Serial Monitor after "Goodnight moon!"

Thats how it reads to me.

i guess i should have explained what the code did/does/is for ?

testing send & receive from both terminals and seeing if they do infact receive/send accordingly.

so, the sentence made explicit, would read; "nothing appeared on the Serial Monitor after "Goodnight moon!" , ie. whatever was sent from the other end - the BT Terminal"