Have your robot navigate using a GPS to waypoints and paths.
How to add the BN-880 GPS Compass robot skill
- Load the most recent release of ARC (Get ARC).
- Press the Project tab from the top menu bar in ARC.
- Press Add Robot Skill from the button ribbon bar in ARC.
- Choose the Navigation category tab.
- 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

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

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.

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.
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
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
This robot skill firmware only works with Arduino's that have Serial1. It says that in the manual
I received my Arduino Mega with the Serial1
It connected; I see the map.
Waiting for another version coming as you stated above, thanks again
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...
A GPS can occasionally present an accurate value - at about 1 in 100 readings or so. It mainly jumps by a few meters per reading. GPS is not a suitable location sensor for most use cases. If your robot is going to be moving across a field or navigating down the street, it would be okay. Then you can combine a GPS with a SLAM.
So the idea would be to use the GPS to get your robot to an area. Then, use the SLAM The Better Navigator to fine-tune the navigation.