GPS BN-880 using Arduino for GN&C project

Hello,

I am trying to get hands on the GPS BN-880 module by connecting it to my arduino UNO as it is mentionned in this blog (see the picture Arduino connexion):

I've got the blue flashing on the module, indicating that it is sending data to my arduino UNO. I also got the red flashing indicating that some satellites are detected. Unfortunately, as you can see on the picture Serial Monitor, when I am using the library TinyGPSplusplus, No data is displayed, only '****' asterisks and the Chars RX.

If anyone have an idea how to solve this, it would be great.
Thanks a lot for any answer.

Edit: I must precise that the red flashing sometimes disapears.


The first guess is the baudrate. The NEO6-M manual says 4800 baud but the circuit runs at 9600!

You will get points if You extract useful facts and post them here. Plowing through blogs or tutorials is, in general, not attractive to helpers.
But, try the baud rate change!

Oops. The screenshot tells TinyGPSplus, not TinyGPS++! They are quite different!

Thanks for your answer ! I've already played with the baud rate (I've tryed every baud rate present). And as for the mentioned library, sorry, it's just that I've tryed both TinyGPSplusplus (same results in the Serial Monitor) and also I went to the TinyGPSplus to see if I get the same problem (and it is the case unfortunately).

Your maybe assuming the GPS has a location fix, and it may not have.

Try this program, it will display the actual output from the GPS, and post it on here, there will be clues as to what the problem is.

#define RXpin 3              //this is the pin that the Arduino will use to receive data from the GPS
#define TXpin 2              //this is the pin that the Arduino can use to send data (commands) to the GPS - not used

#include <SoftwareSerial.h>

SoftwareSerial GPS(RXpin, TXpin);

void loop()
{
  while (GPS.available())
  {
    Serial.write(GPS.read());
  }
}


void setup()
{
  GPS.begin(9600);
  Serial.begin(115200);
  Serial.println("26A_GPS_Echo_SoftwareSerial Starting");
}

Be sure the RXpin and TXpin and GPS.begin() baud rate are correct for your setup.

Big Hint: Post the text of the code you are using, screen shots can be difficult to read.

No offence but swapping Tx/Rx....... More then one member hás tripped on that....

Thanks a lot srnet, I tried your code and I think I was careful about the TX and RX connexions. After compiling the script into the arduino, I have some information on the Serial Monitor. I can seen that when I am moving the GPS, the information varies indeed. For my information, what did you mean by "Your maybe assuming the GPS has a location fix" ? Like in the code I used, it was like if I've fixed the position ?

As you asked, here's what I've got on the Serial Monitor (or see the screenshot):
Serial Monitor GPS mobile

$GNVTG,,,,,,,,,N*2E

$GNGGA,192212.00,,,,,0,00,99.99,,,,,,*73

$GNGSA,A,1,,,,,,,,,,,,,99.99,99.99,99.99*2E

$GNGSA,A,1,,,,,,,,,,,,,99.99,99.99,99.99*2E

$GPGSV,1,1,02,25,,,17,32,,,23*7A

What would be the next step according to you ?
Thanks again !

I understand thanks ! But I've checked that too I think.

The GPS is reporting very weak satellite signals.

If its doing that when it outdoors with a good view of the sky the either the GPS is faulty or its antenna is faulty.

1 Like

Yes I see, I was moving back to the TinyGPSplusplus algorithm to give it a try again by specifying a baud rate GPSbaud of 9600 instead of the 4800 initially specified and it worked for the TIME identification ==> not for the LOCATION. I can see that the red flashing detecting the satellites does not flash anymore so I think no satellite are detected maybe.

I see no antenna on the picture posted. Check it up, OP!

It is working finally, the GPS detects 4 satellites ! Thanks for yout help guys, indeed the problem was the GPSBaudrate variable of the TinyGPSplusplus algorithms settled to 4800. I settled it to 9600 and it's working now (when satellites are detected).
Thanks again !

Great!
Congrats finding it out!
Thanks for telling.

Hello everyone, I wanted to follow up on this thread. I am having the same issue that op had, where I am only getting asterisks symbols in my serial monitor. I found this thread when looking for a solution, I am also using TinyGPSPlus like op and am using one of the provided examples from that library, and I changed the baud rate for the gps from 4800 to 9600 as recommended, but still no luck this is what my output looks like now, I can see the checksum now unlike before but I still only see asterisks for everything else. I also tried the code provided by user srnet but I dont see any display from that either, I have attached a screenshot of the output below, as well as pictures of my connections. While testing I was outside and had a clear sky with no real obstructions but I was still near my house a bit I dont know if that may affect it

Hello Diego !
I remeber that the Baud rate worked for me, I imagine you tested every rate ?
However, I remember that it can take a while before detecting any satellites. Can you see a red blink on your GPS ? The red blink indicates that satellites are detected, and you shall observe some measurements instead of the *****. If you only have the blue blink it means that satellites are not yet detected, but the GPS can exchange data to the arduino.
The first time I connected my GPS to the arduino, it took maybe 10-15min to detect the satellites and obtain the red flashing.

I hope that it helps.

The code in post #4 is the most basic code for reading a GPS, it should produce some recognisable output regardless of whether the GPS is indoors or out or which LEDs are blinking or not.

If there is no output on the serial monitor, you either have it wired wrong, the GPS baud rate is not correct, the GPS is faulty or the Arduino is faulty.

You need to get the basic code working first.

Hi thank u for responding, I only tested for 9600 baud and 115200 baud, im going to test different baud rates in the serial monitor and see if that helps. I did see the red light flashing, but I will try to leave it running for longer to see if that helps as well. Thank you for your help!

Hi thanks for responding, I did see that op had output from that program even tho I am not. I am going to look over my wiring again, and test with different baud rates. The idea of the gps module being faulty did cross my mind, I am a bit scared of that, I am going to test the Arduino to ensure that it works fine and that it is not the issue. I am going to keep testing to see if I can get that code working. Thank you for your help!

I found that switching the Rx and Tx pins gave me output in the serial monitor, it was still just random characters but I found on a product page for the gps module that a baud rate of 38400 is recommended so I switched the baud rate to that and now I am getting good readings now. Thank you guys for your help!

I also spent a lot of time getting a working speed (38400) with Beitan BK-880. I still get a good number of checksum fails, but at least enough valid data. @sudo_diegobernal - what is URL of spec you found. Mine says from 9600baud.
I noticed an unspecfied NMEA message type (TXT) eg
$GNTXT,01,01,02,HW UBX 9 00190000*12 - looks like ID data