So you can upload. Which means that the uart connected to the usb chip works.
Start simpler. Connect 18 and 19; nothing else connected except for the PC.
void setup()
{
Serial.begin(9600);
Serial1.begin(9600);
}
void loop()
{
// if something available from the PC
if(Serial.available() > 0)
{
// send it to serial 1
Serial1.write(Serial.read());
}
// if something available on serial 1
if(Serial1.available() > 0)
{
// send it to PC
Serial.write(Serial1.read());
}
}
The above should echo what you enter in serial monitor.
Not compiled, not tested.
Compiled and tested on a Leonardo; should behave the same on a Mega.