I need some help on the BN-880. The problem i am having is it isn't returning any info. I've changed everything and it didn't work. i think the RX and TX are working as it says it is but no GPS signal is read. I have even gone on a walk and tried it on my laptop with my GPS watch working
and still not working and i have run out of ideas of what it could be. PLZ help
Posting a link to the datasheet for the BN-880 would have been appreciated. All helpers are not familiar with it.
Posing schematics is the same.
For the future, please use copy and paste into the code tag window.
I couldn't find the exact data sheet for it but will send the most info i can. the library i used was tinyGPSpuls. here is the data help is much appreciated:
here is the code:
#include <TinyGPSPlus.h>
#include <SoftwareSerial.h>
/*
This sample sketch demonstrates the normal use of a TinyGPSPlus (TinyGPSPlus) object.
It requires the use of SoftwareSerial, and assumes that you have a
4800-baud serial GPS device hooked up on pins 4(rx) and 3(tx).
*/
static const int RXPin = 4, TXPin = 3;
static const uint32_t GPSBaud = 4800;
// The TinyGPSPlus object
TinyGPSPlus gps;
// The serial connection to the GPS device
SoftwareSerial ss(RXPin, TXPin);
void setup()
{
Serial.begin(115200);
ss.begin(GPSBaud);
Serial.println(F("DeviceExample.ino"));
Serial.println(F("A simple demonstration of TinyGPSPlus with an attached GPS module"));
Serial.print(F("Testing TinyGPSPlus library v. ")); Serial.println(TinyGPSPlus::libraryVersion());
Serial.println(F("by Mikal Hart"));
Serial.println();
}
void loop()
{
// This sketch displays information every time a new sentence is correctly encoded.
while (ss.available() > 0)
if (gps.encode(ss.read()))
displayInfo();
if (millis() > 5000 && gps.charsProcessed() < 10)
{
Serial.println(F("No GPS detected: check wiring."));
while(true);
}
}
void displayInfo()
{
Serial.print(F("Location: "));
if (gps.location.isValid())
{
Serial.print(gps.location.lat(), 6);
Serial.print(F(","));
Serial.print(gps.location.lng(), 6);
}
else
{
Serial.print(F("INVALID"));
}
Serial.print(F(" Date/Time: "));
if (gps.date.isValid())
{
Serial.print(gps.date.month());
Serial.print(F("/"));
Serial.print(gps.date.day());
Serial.print(F("/"));
Serial.print(gps.date.year());
}
else
{
Serial.print(F("INVALID"));
}
Serial.print(F(" "));
if (gps.time.isValid())
{
if (gps.time.hour() < 10) Serial.print(F("0"));
Serial.print(gps.time.hour());
Serial.print(F(":"));
if (gps.time.minute() < 10) Serial.print(F("0"));
Serial.print(gps.time.minute());
Serial.print(F(":"));
if (gps.time.second() < 10) Serial.print(F("0"));
Serial.print(gps.time.second());
Serial.print(F("."));
if (gps.time.centisecond() < 10) Serial.print(F("0"));
Serial.print(gps.time.centisecond());
}
else
{
Serial.print(F("INVALID"));
}
Serial.println();
}
Sorry... I was thinking this was your gps baud.... ignore my mistake.
Try 9600 (and maybe 4800) for this...
My reference is in the comments of this web page with the same "invalid" output:
https://dronebotworkshop.com/using-gps-modules/
For another GPS, the NEO6-M the info was 4800 baud but it is 9600 in reality. No idea how they can use inaccurate datasheets.
Make a new attempt and report.
im using the same code as him and have changed the baud and still isnt working i didnt think that would work as this bit of code says so
static const int RXPin = 4, TXPin = 3;
static const uint32_t GPSBaud = 4800;
// The TinyGPSPlus object
TinyGPSPlus gps;
// The serial connection to the GPS device
SoftwareSerial ss(RXPin, TXPin);
void setup()
{
Serial.begin(9600);
ss.begin(GPSBaud);
so i am completely lost. thanks for the support though
thank you all so much just changed it from 4800 to 9600 and worked. i dont know why any videos didnt mention that this will help so much with my bigger project.
Great! Thanks for telling. It's a mystery that more then one GPS circuit manufactorer use old and wrong data in their datasheets.
Did you read the latter quote below...???
Yes
Did You read reply #8?
Can the GPS antenna see satellites or just the ceiling in your workshop?
i'm not sure what you mean
I had trouble reading my BE-880 on my Arduino Uno. It turns out the latest BE-880 device I purchased uses a BAUD of 38400. Here's how I discovered it:
- Clear out the Arduino program space by uploading a New Sketch, this will install bare-bones code.
- Connect the TX line from the BE-880 (3rd wire on the connector, from the left) to pin 1 on the Arduino Uno board (marked TX -> 1).
- Set the Baud to 4800 on the Serial Monitor
- Look to see that your BE-880 Blue Tx LED is blinking, and that the Tx light on the Arduino board is also blinking at the same rate. Wait until the BE-880 red LED shows that it is fixed on some satellites.
- Verify that data is visible on the Serial Monitor even if it looks like garbage.
- Change the Baud rate on the Serial Monitor and try again. Eventually you will find the Baud rate that returns intelligible sentences. (mine was 38400)
- Try the FullExample.ino code (from the TinyGps++ library), making sure to set the Gps Baud rate to the value you just found.
- Make sure to reconnect the TX and RX pins as per the example code. Reset the Serial monitor to the Serial.begin(115200) baud value.
- The example should now work!!! You will get meaningful data assuming you are actually fixed to some satellites.
This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.



