Sadly @beegee that does not have the desired effect
On another issue
this board has Tx1 (Serial1) connected to Rx0 (Serial2).
The messages being sent to Serial1 are
char x_OSANA[] = "$OSANA,01,+00308,+00538,-99999,-99999,04487,00002,00002,00003,0000,00000";
char x_OSSWO[] = "$OSSWO,01,Q,123,003.78,M,00";
char x_OSVSB[] = "$OSVSB,01,12535,12543,12545,00000,-00033,+00083,-00033";
char x_OSGP1[] = "$OSGP1,01,0111.46394,N,10347.42926,E,09,20.428";
This routine is used to read the data from Serial2 (which is the input for the output from Serial1) …
bool messageIsComplete = false;
if(Serial2.available() > 0 && !messageIsComplete)
{
char c;
Serial2.readBytes(&c, 1);
if(c != '$')
{
x_RXData[message_index] = c;
++message_index;
}
else
{
messageIsComplete = true;
}
}
// we've got the whole message, so send it.
if(messageIsComplete)
{
// send it
Serial.println(x_RXData);
// clear buffer
memset(x_RXData, char(0), 1024);
x_RXData[0] = '$';
// reset index
message_index = 1;
}
but it never yields any result; however on another board (on your side of the world at the moment) it works as expected -I can actually check the routine working locally by swapping the reading from Serial2 to Serial1 because I have a GPS module attached which, as we discovered recently, floods Serial1 with GPS data and this routine correctly outputs all of those data.
The only difference between those two boards is that my board (which doesn’t work as expected) has the RAK4631 core and the other board (which does work as expected) has the RAK4631(L) core.