Software Serial Two Port Recieve with GPS and Xbee

Ah, thanks PaulS, that triggered a memory for me and I went back to the Arduiniana nss documentation and I think I understand now.

So, whereas with a single serial source the incoming data gets buffered (is that the right word?) and it'll sit there until the loop comes around to it again, with two sources the buffer gets emptied when you switch to listening to a different device, so the signal only gets heard if it arrives during the time when the arduino is explicitly listening to it.

So, I need to repeat my broadcast at a frequency that's shorter than the amount of time I'm listening. For example I changed the code to

XbeeSerial.listen();
  Serial.println("listening to xbee"); 
    for (unsigned long start = millis(); millis() - start < 3000;)
  {
    } 
  // get any incoming data from xbee:
  if (XbeeSerial.available() > 0) {
    Serial.print("Xbee data:  "); 
    // read a byte
    inByte = XbeeSerial.read();
    Serial.println(inByte); 
  }

  else {
    Serial.println("Xbee data not available"); 
  }

And prodded at the number keys at about 1Hz. This seems to work. (Think I'm going to need another Arduino on the broadcasting end, though!)

Thanks for pointing me in the right direction!