CubeCell GPS HTCC-AB02S - Higher Baud Rate for Air530

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,

  1. the Air530 is not autobauding, and,
  2. 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 !.

Hi Pacikku,
We updated the GPS_Air530 library today. Now you can easily use Air530.begin(baudrate) to set the gps baudrate at the begin. It may takes few seconds to dectect last baudrate and then set the new baudrate as you wanted. I hope that helpful, you can have try update GPS_Air530 library from git.

More, it seems 921600 is not work well, the BER performance seems to be high

1 Like

Hello @Supporter.
Thanks for the work you put into this.
Its a very clever implementation !!

Out of my 10 Cubecell GPS boards, none will connect at standard bauds of 230400, 250000 or 256000
(Yes, I modified your code to explore )
However its reliable on 460800 .

Therefore, I’ve updated the baud list to:

uint32_t bauds[]={9600,19200,38400,57600,115200,460800,921600};

and the Air530 seems happy at 460800.

Thanks Again !