====== 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. * https://docs.px4.io/v1.11/en/gps_compass/rtk_gps_hex_hereplus * https://sccdn.sechitech.com/muginuav/uploads/2025/06/Herev2-User-Manual-1.pdf ===== 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. ===== 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 [[https://www.taoglas.com/product/cggbp-25-4-a-02-gpsglonassbeidou-patch-antenna-25mm-2/|Taoglas CGGBP.25.4.A.02]] 1" ceramic patch. ==== I2C devices ==== ^ Device Type ^ Part ^ Address ^ Misc ^ | Magnetometer | [[https://www.digikey.com/htmldatasheets/production/2044105/0/0/1/ak09916.html|AKM AK09916]] | 0x0C | | | Magnetometer | [[https://www.st.com/en/mems-and-sensors/lis3mdl.html|ST LIS3MDL]] | 0x1C | | | Magnetometer | [[https://mm.digikey.com/Volume0/opasdata/d220001/medias/docus/411/HMC5983_DS.pdf|Honeywell HMC5983]] | 0x1E | | | LED Driver | [[https://media.digikey.com/pdf/Data%20Sheets/Toshiba%20PDFs/TCA62724FMG(O,S,EL.pdf|Toshiba TCA62764]] | 0x55 | | | IMU | [[https://invensense.tdk.com/wp-content/uploads/2015/02/PS-MPU-9250A-01-v1.1.pdf|TDK MPU-9250]] | 0x71 | | | Barometer | [[https://www.te.com/usa-en/product-MS561101BA03-50.datasheet.pdf|TE MS5611]] | 0x77 | | ==== Sample Code ==== === TCA62724 ==== Solid purple, lowest brightness (still quite bright!) #include #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 }