Table of Contents

Here+ RTK Rover/Base Kit

This is a GNSS base/rover receiver set that was intended to be paired with UAVs using the Pixhawk flight controller. It is based on the NEO-M8P-0/2 which is capable of dual-constellation single band RTK. The base station is a GNSS only, and required a separate telemetry radio. The rover includes the GNSS as well as I2C modules for IMU, mag, and barometric pressure.

Base

U-Blox NEO-M8P-2 with a USB port and exposed pins for UART1 Rx/Tx/GND. SMA for antenna. The -2 variant of the M8P can be used as an RTK base or rover, sending or receiving RTCM corrections.

<photo>

Rover

The rover hardware includes a GNSS + antenna and six I2C devices. It has an eight pin JST-GH connector which is externally accessible by way of a cable passthrough in the case which carries the UART and I2C to the flight controller. It also has a four pin connector (also JST-GH) for USB, though only data is carried on this connector, power must be applied via the larger connector.

The Here+ v1 rover differs significantly from the 2/3/4 in that the sensors are connected to the I2C bus directly, and the module does not support the CAN protocol. In the 2/3/4, the sensors are connected to an STM32 which can either emulate I2C devices, or provide the data on a CAN bus. For the purposes of tinkering/hacking, having the hardware exposed directly via their own I2C interfaces has some advantages.

8 Pin JST-GH Pinout

Pin Color Use Notes
1 Purple Vcc 5v or 3v3
2 Blue GNSS Rx
3 Green GNSS Tx
4 Yellow I2C SCL
5 Orange I2C SDA
6 Red Safety Button untested
7 Brown Button LED Pull low to illuminate
8 Black Ground

GNSS

The rover's GNSS is a U-Blox NEO-M8P-0. It is accessible via UART1 on the eight pin connector, and USB on the four pin connector (it uses the same as the base unit.) Note: the USB connector does not supply power to the rover or the GNSS module, voltage must be separately applied to pin 1 of the eight pin connector.

The GNSS antenna is a Taoglas CGGBP.25.4.A.02 1“ ceramic patch.

I2C devices

Device Type Part Address Misc
Magnetometer AKM AK09916 0x0C
Magnetometer ST LIS3MDL 0x1C
Magnetometer Honeywell HMC5983 0x1E
LED Driver Toshiba TCA62764 0x55
IMU TDK MPU-9250 0x71
Barometer TE MS5611 0x77

Sample Code

TCA62724

Solid purple, lowest brightness (still quite bright!)

TCA62724_Purple.ino
#include <Wire.h>
 
#define TCA62724_ADDR   0x55
#define SDA_PIN         10
#define SCL_PIN         9
 
void setup() {
    Wire.begin(SDA_PIN, SCL_PIN);
    delay(10);
 
    // Enable the LED driver
    Wire.beginTransmission(TCA62724_ADDR);
    Wire.write(0x84);  // Enable register
    Wire.write(0x03);  // Turn on
    Wire.endTransmission();
 
    // Set Purple: Red=1, Green=0, Blue=1 (lowest brightness)
    Wire.beginTransmission(TCA62724_ADDR);
    Wire.write(0x81);  // Blue register
    Wire.write(1);     // Blue = 1
    Wire.write(0x82);  // Green register
    Wire.write(0);     // Green = 0
    Wire.write(0x83);  // Red register
    Wire.write(1);     // Red = 1
    Wire.endTransmission();
}
 
void loop() {
    // Nothing - LED stays purple
}