I’ve just run into the same issue with the Fez Hydra, was about to create a new post but found this one.
I have 4 UARTs that I open:
void InitUARTs()
{
_rockwellComPort = new Serial(GetSocket(6), 115200, Serial.SerialParity.None, Serial.SerialStopBits.One, 8, Serial.HardwareFlowControl.NotRequired, null);
_bluetoothComPort = new Serial(GetSocket(7), 115200, Serial.SerialParity.None, Serial.SerialStopBits.One, 8, Serial.HardwareFlowControl.NotRequired, null);
_pcComPort = new Serial(GetSocket(5), 115200, Serial.SerialParity.None, Serial.SerialStopBits.One, 8, Serial.HardwareFlowControl.NotRequired, null);
_telemetryComPort = new Serial(GetSocket(4), 115200, Serial.SerialParity.None, Serial.SerialStopBits.One, 8, Serial.HardwareFlowControl.NotRequired, null);
_rockwellComPort.Open();
_bluetoothComPort.Open();
_pcComPort.Open();
_telemetryComPort.Open();
_pcComPort.DataReceived += new Serial.DataReceivedEventHandler(_pcComPort_DataReceived);
_bluetoothComPort.DataReceived += new Serial.DataReceivedEventHandler(_bluetoothComPort_DataReceived);
_telemetryComPort.DataReceived += new Serial.DataReceivedEventHandler(_telemetryComPort_DataReceived);
}
I also setup a digital input with an interrupt handler.
void SetupDigitalInputs()
{
Gadgeteer.Socket socket3 = GetSocket(3);
_eventMarkerInput = new InterruptInput(socket3, GT.Socket.Pin.Three, GlitchFilterMode.On, ResistorMode.PullUp, InterruptMode.FallingEdge, null);
_eventMarkerInput.Interrupt += new InterruptInput.InterruptEventHandler(EventMarkerInterrupt);
}
What I’ve just noticed is that if I have the Bluetooth module physically plugged into socket 7 then the interrupt on socket 3 pin 3 doesn’t fire. I can still read the state of the digital pin but the interrupt doesn’t fire.
If I simply unplug the Bluetooth module, but leave the code in to create a Serial object for socket 7 and call Open on it then the interrupt on socket 3 pin 3 does fire.
So it looks like there is also some similiar constraint on the Fez Hydra?
Thanks