diff --git a/src/main/fc/fc_msp.c b/src/main/fc/fc_msp.c index d00984f2d85..b241c0df69b 100644 --- a/src/main/fc/fc_msp.c +++ b/src/main/fc/fc_msp.c @@ -223,7 +223,13 @@ static void mspSerialPassthroughFn(serialPort_t *serialPort) { serialPort_t *passthroughPort = mspFindPassthroughSerialPort(); if (passthroughPort && serialPort) { - serialPassthrough(passthroughPort, serialPort, NULL, NULL); + // The port the request came in on goes first, as it does in the CLI. Both of the + // things serialPassthrough() does for whoever opened the session are done for its + // first port only: the +++ that ends the session is looked for there, and a USB + // host's line coding is mirrored onto the other port from there. Passed the other + // way round, a session opened over MSP could not be closed and could not raise the + // rate of the port it opened, which is what an SRXL2 ESC negotiates up to 400000 + serialPassthrough(serialPort, passthroughPort, NULL, NULL); } }