@@ -1027,12 +1027,6 @@ void pinGnssUartTask(void *pvParameters)
1027
1027
if (settings.printTaskStartStop )
1028
1028
systemPrintln (" Task pinGnssUartTask started" );
1029
1029
1030
- if (productVariant == RTK_TORCH)
1031
- {
1032
- // Override user setting. Required because beginGnssUart() is called before beginBoard().
1033
- settings.dataPortBaud = 115200 ;
1034
- }
1035
-
1036
1030
if (serialGNSS == nullptr )
1037
1031
serialGNSS = new HardwareSerial (2 ); // Use UART2 on the ESP32 for communication with the GNSS module
1038
1032
@@ -1042,9 +1036,24 @@ void pinGnssUartTask(void *pvParameters)
1042
1036
if (pin_GnssUart_RX == -1 || pin_GnssUart_TX == -1 )
1043
1037
reportFatalError (" Illegal UART pin assignment." );
1044
1038
1045
- serialGNSS->begin (settings.dataPortBaud , SERIAL_8N1, pin_GnssUart_RX,
1046
- pin_GnssUart_TX); // Start UART on platform depedent pins for SPP. The GNSS will be configured
1047
- // to output NMEA over its UART at the same rate.
1039
+ uint32_t platformGnssCommunicationRate =
1040
+ settings.dataPortBaud ; // Default to 230400bps for ZED. This limits GNSS fixes at 4Hz but allows SD buffer to be
1041
+ // reduced to 6k.
1042
+
1043
+ if (productVariant == RTK_TORCH)
1044
+ {
1045
+ // Override user setting. Required because beginGnssUart() is called before beginBoard().
1046
+ platformGnssCommunicationRate = 115200 ;
1047
+ }
1048
+ else if (productVariant == RTK_POSTCARD)
1049
+ {
1050
+ // LG290P communicates at 460800bps.
1051
+ platformGnssCommunicationRate = 115200 * 4 ;
1052
+ }
1053
+
1054
+ serialGNSS->begin (platformGnssCommunicationRate, SERIAL_8N1, pin_GnssUart_RX,
1055
+ pin_GnssUart_TX); // Start UART on platform dependent pins for SPP. The GNSS will be
1056
+ // configured to output NMEA over its UART at the same rate.
1048
1057
1049
1058
// Reduce threshold value above which RX FIFO full interrupt is generated
1050
1059
// Allows more time between when the UART interrupt occurs and when the FIFO buffer overruns
0 commit comments