Forwarding serial communication between two hardware serials (Mega 2560)?

Tx and Rx can be confusing indeed because it's ambiguous. I rather use Txo (transmit output) and Rxi (receive input).

But I can't help you with the right pins in your setup. Connecting a Rxi to another Rxi is no problem. But a Txo to a Txo can give you a short.

So, like I said, start by echoing to the PC (without BlueTooth bs). What I would do is:

  • Only cut a single data line (yellow or green)
  • Display end to Rx2
  • Controller end to Rx3
  • Run a program like:
void setup() {
  Serial2.begin(9600);    // Display DP-C18 @TX16 RX17
  Serial3.begin(9600);    // Bafang Ultra Motor @TX14 RX15
  Serial.begin(115200); //Computer, fast :)
}

void loop() {
  readDisplay();
  readController();
}

void readController() {
  if (Serial3.available()) {
    Serial.print("C/3: ")
    Serial.println(Serial3.read());
  }
}

void readDisplay()  {
  if (Serial2.available()) {
    Serial.print("D/2: ")
    Serial.println(Serial2.read());
  }
}

Now you should only see data on Serial2 or on Serial3. The one you see data on is connected right (aka the Arduino Rxi is connected to the device Txo).