Thumbnail

BN-880 GPS Compass

by Beitian

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

Requires ARC v2 (Updated 11/24/2022) Hardware Info

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

ARC Pro is your gateway to a community of like-minded robot enthusiasts and professionals, all united by a passion for advanced robot programming.

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,2342 $GLGSV,1,1,0065 $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

#9  

EZ you're into all the good stuff! Will be waiting for it just like you.

PRO
Synthiam
#10  

I would like to see this skill completed as well. I'll have to check if I have one of these sensors with me to test it. But I think the plan was to have something similar to The Better Navigator. The resolution isn't high enough to work with a slam, though, which requires mm accuracy.

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.

#11  

As I'm getting deeper into these skill it is becoming more obvious that you really need a kick butt computer like a gaming computer to handle the workload of the camera/multiple cameras, lidars, multiple sensors etc. I have the skills working individually but if I combine them it gets bogged down. I have cm level precision GPS in mind with RTK for whenever you get the gps skill that I can have it talk to.

#12  

Checking in to see if there has been any headway with GPS with/without RTK working with ARC. I see these football field line drawing bots with cm accuracy and would like to make one.

#13  

By scrolling to the top of this document, you will find instructions for using this robot skill. There are also instructions to install the robot skill if you do not already have it installed. There is limited information on how to use the robot skill for your application of a football field drawing robot. It does not appear that this robot skill works with RTK, as I'm unfamiliar with it. This particular robot skill is limited to the features supported by the hardware.