Due serial coms not working with serial monitor not open

Hey guys,

I am trying to have my computer talk to an arduino due with serial communication over the native USB port. The problem I am having however is that the arduino only seems to respond when the (arduino) serial monitor is open (and you are using IT to send data). As soon as I try to send data from another source it just does not respond.

I have written this small program that should have the arduino print "grr" when any serial data is available to it.

void setup()
{
  SerialUSB.begin(9600);
}
void loop()
{
  if (SerialUSB.available())
  {
    SerialUSB.read();
    SerialUSB.println("grr");
  }
}

This works fine when I type anything into the arduino IDE's serial monitor. However once I close the serial monitor and send the arduino data from any other source, it does not respond at all. I am using a program called 'Device monitoring studio' to track the serial communication that is happening on the COM line to troubleshoot this, and indeed the due is not sending any data to my computer when the arduino serial window is closed.

I have been using a c# winforms app to send serial data to the arduino, and show any data received in a text box.

The due seems to respond just fine when talking to the PROGRAMMING port from external serial coms. However the programming port is ~300x slower than the native port from some benchmarking I have done so it may be a necessity that I use the native port.

I have used two different arduino dues and the same is true for both of them.

Does anyone know what could be causing this? Does the native USB have some sort of behind the scenes initializing data that is exchanged when the IDE's serial monitor is open? Does it have a different configuration in terms of maybe stop bits, parity, etc that the arduino serial monitor just takes care of behind the scenes?

Is anyone able to write a sketch that the due will respond to when sent serial data via the native port?

Any input will save my skin. Thank you!