Thumbnail

BN-880 GPS Compass

by Beitian

Have your robot navigate using a GPS to waypoints and paths.

How to add the BN-880 GPS Compass robot skill

  1. Load the most recent release of ARC (Get ARC).
  2. Press the Project tab from the top menu bar in ARC.
  3. Press Add Robot Skill from the button ribbon bar in ARC.
  4. Choose the Navigation category tab.
  5. Press the BN-880 GPS Compass icon to add the robot skill to your project.

Don't have a robot yet?

Follow the Getting Started Guide to build a robot and use the BN-880 GPS Compass robot skill.

How to use the BN-880 GPS Compass robot skill

Use the Beitian BN-880 GPS/Compass sensor for autonomous navigation from predefined waypoints. View a map of the surrounding area to specify waypoints in real time. The robot can navigate between the waypoints using the combined GPS and Compass of the BN-880 sensor.

*Note: This robot skill does not use the ARC NMS (Navigation Messaging System). This is a standalone robot skill that will perform its navigation.

BN-880 Features


User-inserted image

Electrical Characteristics:
- Receiving Format: GPS, GLONASS,Galileo, BeiDou,QZSS and SBAS
- Receiving Channel: 72 Searching Channel
- Output Frequency: 1Hz-10Hz (default 1Hz)

Startup Time:
- Cold Start: avg26s
- Warm Start: avg25s
- Hot Start: avg3s

GPS Accuracy:
- Level Positioning Precision: 2m At Open Wind
- Speed Precision: 0.1 m/s (Without Aid)
- Acceleration Precision: 0.1 m/s (Without Aid)

Power consumption:
- DC Voltage 2.8v~6.0v (Typical:3.3v or 5.0v)
- Consumption: Capture 50mA@5V

Dimensions:
- Size:28mm x 28mm x 10mm
- Weight:10g


Main Display


User-inserted image



Map Cache


Because many robots lack internet connection or are unstable, this robot skill will cache the maps. The maps will be downloaded and cached locally as you use the robot skill with an internet connection. 


Arduino Required


This robot skill requires the BN-880 to be connected to an Arduino. The Arduino is connected to the ARC PC via a USB port. Because the sensor only uses six wires, the smallest form factor Arduino that supports a Serial1 and I2C can be used. We recommend an Arduino Pro Micro or similar.

The Arduino code must be edited to configure some settings. Specifically, you will need to set your 'Declination Angle,' which is the 'Error' of the magnetic field in your location. Instructions are provided to do that in the Arduino source code INO file. 


Wiring To Arduino


There are six wires to the Arduino from the BN-880. Review the datasheet for your Arduino and connect the following wires from the BN-880 to the Arduino.

User-inserted image

1) Connect the BN-880's SDA (pin 1) to the Arduino's I2C0 SDA pin
2) Connect the BN-880's GND (pin 2) to the Arduino's GND pin
3) Connect the BN-880's TX (pin 3) to the Arduino's RX1 pin
4) Connect the BN-880's RX (pin 4) to the Arduino's TX1 pin
5) Connect the BN-880's VCC (pin 5) to the Arduino's +3 or +5 pin
6) Connect the BN-880's SCL (pin 6) to the Arduino's I2C0 SCL pin


Download Arduino Code


Before programming the Arduino on the specified port, you must close the robot skill. This is because only one software can use the port at a time. 

Download synthiam_bn-880_firmware (Version 20221124).zip


Mounting The Sensor


Both the GPS and Compass sensor within the BN-880 are susceptible, and care needs to be taken to mount where there is low interference. Motors and electromagnetic interference will affect the compass. Shielding or above coverage will affect the GPS. Many robots have an arm that extends the BN-880 out from the robot or very high up away from the robot.

ARC Pro

Upgrade to ARC Pro

Get access to the latest features and updates with ARC Early Access edition. You'll have everything that's needed to unleash your robot's potential!

PRO
USA
#1   — Edited
I do have the BN-880 GPS

loaded the ARC zip file to my Arduino, compiled fine

Does this control work with a Arduino Uno?

I tried it to the ARC serial terminal, it connects

I just loaded some other scripts for the BN-880 GPS - works

I went back to load your firmware, all I get is an error, Compilation error: 'Serial1' was not declared in this scope
PRO
Synthiam
#2  
Read the part about "Arduino Required" in the manual above:)
PRO
Synthiam
#3  
Oh, should add that I don't think this robot skill is completed. I tried it, and it seems to be missing the ability to navigate. And I was unable to create waypoints, so maybe there's another version coming soon.
PRO
USA
#4   — Edited
I saw this 
Because the sensor only uses six wires, the smallest form factor Arduino that supports a Serial1 and I2C can be used. We recommend an Arduino Pro Micro or similar.

It compiles now but only connect to the ARC PC Serial terminal  - for a test 

says $GPGSV,2,1,06,04,,,19,05,,,j883 Magnetometer Test

13,23*42
$GLGSV,1,1,00*65
$GNGLL,,,,,003429.00,V,N*58
HMC5883 Magnetometer Test
PRO
Synthiam
#5  
Why would you use the serial terminal? This is a robot skill. What did you do to make it compile? It looks like you changed Serial1 to Serial0, expected it to work, and loaded the serial terminal for some reason.

This robot skill firmware only works with Arduino's that have Serial1. It says that in the manual
PRO
USA
#6   — Edited
Ok,
I received my Arduino Mega with the Serial1

It connected; I see the map.

User-inserted image



Waiting for another version coming as you stated above, thanks again
PRO
USA
#7  
Good morning

DJ, I know you are busy but

you said:
Oh, should add that I don't think this robot skill is completed. I tried it, and it seems to be missing the ability to navigate. And I was unable to create waypoints, so maybe there's another version coming soon.


Thanks, when you get time...
PRO
Synthiam
#8  
It's not my robot skill. The author will finish it when it's done i'm sure