@@ -39,7 +39,10 @@ void btReadTask(void *e)
3939                    {
4040                        //  Ignore this escape character, passing along to output
4141                        if  (USE_I2C_GNSS)
42-                             serialGNSS.write (incoming);
42+                         {
43+                             //  serialGNSS.write(incoming);
44+                             theGNSS.pushRawData (&incoming, 1 );
45+                         }
4346                        else 
4447                            theGNSS.pushRawData (&incoming, 1 );
4548                    }
@@ -50,7 +53,11 @@ void btReadTask(void *e)
5053                    while  (btEscapeCharsReceived-- > 0 )
5154                    {
5255                        if  (USE_I2C_GNSS)
53-                             serialGNSS.write (btEscapeCharacter);
56+                         {
57+                             //  serialGNSS.write(btEscapeCharacter);
58+                             uint8_t  escChar = btEscapeCharacter;
59+                             theGNSS.pushRawData (&escChar, 1 );
60+                         }
5461                        else 
5562                        {
5663                            uint8_t  escChar = btEscapeCharacter;
@@ -61,7 +68,12 @@ void btReadTask(void *e)
6168                    //  Pass byte to GNSS receiver or to system
6269                    //  TODO - control if this RTCM source should be listened to or not
6370                    if  (USE_I2C_GNSS)
64-                         serialGNSS.write (incoming);
71+                     {
72+                         //  UART RX can be corrupted by UART TX
73+                         //  See issue: https://github.com/sparkfun/SparkFun_RTK_Firmware/issues/469
74+                         //  serialGNSS.write(incoming);
75+                         theGNSS.pushRawData (&incoming, 1 );
76+                     }
6577                    else 
6678                        theGNSS.pushRawData (&incoming, 1 );
6779
0 commit comments