Hi all,
Well done Heltec for bringing this fantastic board !
I’m lovin’ it.
I’m trying to get the Air530 to baud at 115200 or even higher for quicker data transfer.
I am managing this occasionally by modifying the :: GPS_Air530.cpp :: begin() function
The supplied begin function assumes the GPS module to be always starting at 9600 baud by default.
Here’s the code I added:
GPSSerial.println(""); // this is a newline just in case
delay(50);
String cmd1 = calchecksum("$PGKC149,0,115200");
sendcmd(cmd1);
delay(50);
String cmd2 = calchecksum("$PGKC147,115200");
sendcmd(cmd2);
delay(50);
GPSSerial.end();
GPSSerial.begin(115200);
As you note, I am successfully using the checksum function.
Now,
What I observe, is that this function is sometimes successful at bringing up the GPS to 115200 baud.
But other times, depending on the board state ( whether its powered by a battery, or else if I’m just flashing new code ) the GPS will not receive the instructions. Reasons…
( The GPS would be perhaps at 57600 baud from a previous change in code, for example )
( as far as I have observed this GPS module is incapable to autobaud )
This could also be a hardware issue on the board, as when I’ve tried to completely switch off the GPS module by GPIO14, even with the module turned off, the GPS module would still not boot at the default 9600 baud after restarting. Perhaps its receiving residual voltage through the UART2 RX high link to the MCU…
So my question, is :
what’s the best practice in addressing the GPS module to reliably communicate with it and give it new instructions ?
As far as I can see,
- the Air530 is not autobauding, and,
- the Luat Air530_GPS_User_Booklet.V1.7.pdf suggest that this module even goes up to 921600 baud, which luckily, the Cubecell MCU supports on its Serial1 (tested)
Any pointers would be highly appreciated !.