@@ -288,14 +288,14 @@ void gnssFirmwareBeginUpdate()
288
288
// and display have all been initialized. But, importantly, the UARTs have not yet been started.
289
289
// This makes our job much easier...
290
290
291
- // NOTE: X20P may expect a baud rate change during the update. We may need to force 9600 baud. TODO
291
+ // NOTE: QGNSS firmware update fails on LG290P due, I think, to QGNSS doing some kind of autobaud
292
+ // detection at the start of the update. I think the delays introduced by serialGNSS->write(Serial.read())
293
+ // and Serial.write(serialGNSS->read()) cause the failure, but I'm not sure.
294
+ // It seems that LG290P needs a dedicated hardware link from USB to GNSS UART for a successful update.
295
+ // This will be added in the next rev of the Flex motherboard.
292
296
293
- // TODO TODO TODO TODO TODO TODO TODO TODO TODO TODO TODO TODO TODO TODO TODO TODO TODO TODO TODO TODO
294
- //
295
- // This current does not work on LG290P. I suspect QGNSS is doing a baud rate change at the start of
296
- // the update. I need to get a logic analyzer on there to be sure.
297
- //
298
- // TODO TODO TODO TODO TODO TODO TODO TODO TODO TODO TODO TODO TODO TODO TODO TODO TODO TODO TODO TODO
297
+ // NOTE: X20P will expect a baud rate change during the update, unless we force 9600 baud.
298
+ // The dedicated hardware link will make X20P firmware updates easy.
299
299
300
300
// Flag that we are in direct connect mode. Button task will gnssFirmwareRemoveUpdate and exit
301
301
inDirectConnectMode = true ;
@@ -332,18 +332,6 @@ void gnssFirmwareBeginUpdate()
332
332
// This is OK for Flex too. We're using the main GNSS pins.
333
333
serialGNSS->begin (serialBaud, SERIAL_8N1, pin_GnssUart_RX, pin_GnssUart_TX);
334
334
335
- // // On Flex with the LG290P, it may be wise to disable message output on UART1 first?
336
- // if ((productVariant == RTK_FLEX) && present.gnss_lg290p)
337
- // {
338
- // // GNSS has not been begun, so we need to send the command manually
339
- // serialGNSS->println("$PQTMCFGPROT,W,1,1,00000000,00000000*38");
340
- // delay(100);
341
- // serialGNSS->println("$PQTMCFGPROT,W,1,1,00000000,00000000*38");
342
- // delay(100);
343
- // while (serialGNSS->available())
344
- // serialGNSS->read(); // Soak up any residual messages
345
- // }
346
-
347
335
// Echo everything to/from GNSS
348
336
while (1 )
349
337
{
0 commit comments