# Here 4 Manual

## Here 4 **High Precision Dual-band RTK Navigation**

## Overview

Here 4 is a professional High Precision Dual-band RTK Navigation module. It supports multiple GNSS options such as BeiDou, Galileo, GLONASS, GPS, QZSS.

The Here 4 utilizes advanced algorithms and multi-frequency DGNSS signals to quickly achieve an RTK Fix within seconds. This results in highly reliable positioning at an accuracy within centimeters.

The Here 4 goes beyond being a simple GNSS module. It combines flight control and navigation functionalities into a single device. With 8 PWM or BDSHOT outputs, an RCIN, Hotshoe, and camera trigger, it offers a self-contained solution for accurate mapping and precise control capabilities.

## Features

1. Equipped with u-blox F9P, a professional high precision Dual-band RTK navigation module.
2. Powerful processing performance provided by a built-in STM32H7 chip. It offers real-time processing and data optimization, and Unmanned Industry standard AP\_Periph Firmware.
3. The tailor-made Dual-band antenna from Taoglas supports L1and L5 frequencies. It features high gain, high sensitivity, and high stability.
4. Here 4 provides built-in Drone-ID feature.\
   \***Blue version supports Drone-ID**
5. Here 4 uses multi-frequency DGNSS signals with advanced algorithms. This allows fast convergence to an RTK Fix, achieving more reliable and stable centimeter level positioning.
6. The Here 4 module is 16 x 68mm and 60g.
7. LED embedded with ProfiLEDs. Built-in multiple display modes for notification or navigation signals. Display modes can be selected according to specific scenarios via parameters or onboard Lua Scripting.
8. CAN FD, real time, and high transmission rate.
9. Built-in IMU. Through future firmware updates, Here 4 can achieve tightly coupled DGNSS-INS-fusing solutions.

## Specifications

| Features                    |                                                                                                                       |
| --------------------------- | --------------------------------------------------------------------------------------------------------------------- |
| GNSS module                 | NEO-F9P                                                                                                               |
| Processor                   | STM32H757                                                                                                             |
| IMU sensor                  | ICM42688+RM3100                                                                                                       |
| Barometer                   | MS5611                                                                                                                |
| Communication Protocol      | DroneCAN 8Mbit/s                                                                                                      |
| Receiver type               | Dual-band GNSS high precision receiver                                                                                |
| GNSS systems                | GPS, GLONASS, Galileo and BeiDou + SBAS and QZSS                                                                      |
| Satellite bands             | B1I, B2a, E1B/C, E5a, L1C/A, L1OF, L5                                                                                 |
| Maximum GNSS systems        | 4                                                                                                                     |
| Navigation update rate（RTK） | up to 20 Hz                                                                                                           |
| Positioning accuracy        | 0.01 m + 1 ppm CEP                                                                                                    |
| Maximum speed               | 500 m/s                                                                                                               |
| Convergence time（RTK）       | < 10 sec                                                                                                              |
| Acquisition                 | <p>Cold starts 25s<br>Aided start 2s<br>Hot start 2s</p>                                                              |
| Sensitivity                 | <p>Tracking & Navigation: –167 dBm<br>Cold starts: –148 dBm<br>Hot starts: –157 dBm</p><p>Reacquisition: –160 dBm</p> |
| Antenna                     | Dual band antenna                                                                                                     |
| Protocols                   | NMEA、UBX binary、RTCM 3.3、SPARTN 2.0.1                                                                                 |
| Anti-spoofing               | Advanced anti-spoofing algorithms                                                                                     |

## Pinout with Case

<figure><img src="https://3175993181-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LUhw7cdLeWVORgnTA3i%2Fuploads%2FaAt9vMxsXXSxs2Q2yPco%2F-can-debug-20230616-3.png?alt=media&#x26;token=88e5b2f1-aad7-4def-91d1-08be0810d1e0" alt=""><figcaption></figcaption></figure>

<table><thead><tr><th width="245">Parameter</th><th>Description</th></tr></thead><tbody><tr><td>CAN</td><td>Two (current firmware only supports one CAN port where the cable color is green, blue, white, and grey)</td></tr><tr><td>Working Temperature</td><td>-40 °C to +85 °C</td></tr><tr><td>Size</td><td>16 x 68 mm</td></tr><tr><td>Weight</td><td>60g (with cable)</td></tr></tbody></table>

Here 4 can enable the flight controller function when connected to a breakout board. For details on how to set up the flight controller, refer to the following link: <https://docs.cubepilot.org/user-guides/here-4/here-4-manual#id-8.-installing-ardupilot-on-here4>

<figure><img src="https://3175993181-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LUhw7cdLeWVORgnTA3i%2Fuploads%2FxSkYa7PYRhKVkt77sbaq%2Fbreakoutboard-1696904167977-7.png?alt=media&#x26;token=bf929ea1-41e9-4d3e-98fb-a0a72bdd66a8" alt=""><figcaption></figcaption></figure>

### **Power**

| PIN | Name |
| --- | ---- |
| 1   | 5V   |
| 2   | 5V   |
| 3   | NC   |
| 4   | NC   |
| 5   | GND  |
| 6   | GND  |

### **CPPM / S.BUS / SERVO SYSTEM**

| PIN | Name    |
| --- | ------- |
| 1   | RC\_IN  |
| 2   | PWM 8   |
| 3   | PWM 7   |
| 4   | PWM 6   |
| 5   | PWM 5   |
| 6   | PWM 4   |
| 7   | PWM 3   |
| 8   | PWM 2   |
| 9   | PWM 1   |
| 10  | PPS     |
| 11  | HOTSHOE |

### **11 Pin in**

| PIN | Name    |
| --- | ------- |
| 1   | PWM 8   |
| 2   | PWM 7   |
| 3   | PWM 6   |
| 4   | PWM 5   |
| 5   | PWM 4   |
| 6   | PWM 3   |
| 7   | PWM 2   |
| 8   | PWM 1   |
| 9   | RC\_IN  |
| 10  | HOTSHOE |
| 11  | PPS     |

### **10 Pin in**

| PIN | Name     |
| --- | -------- |
| 1   | 5V       |
| 2   | CAN1\_H  |
| 3   | CAN1\_L  |
| 4   | CAN2\_H  |
| 5   | CAN2\_L  |
| 6   | GPS\_TX  |
| 7   | GPS\_RX  |
| 8   | I2C\_SCL |
| 9   | I2C\_SDA |
| 10  | GND      |

### **CAN**

| PIN | Name   |
| --- | ------ |
| 1   | 5V     |
| 2   | CAN\_H |
| 3   | CAN\_L |
| 4   | GND    |

### **UART**

| PIN | Name     |
| --- | -------- |
| 1   | 5V       |
| 2   | GPS\_TX  |
| 3   | GPS\_RX  |
| 4   | I2C\_SCL |
| 5   | I2C\_SDA |
| 6   | GND      |

{% hint style="danger" %}
The UART pinout shown above applies when using Here 4 as a GPS unit, with the pin labels indicating connections to a flight controller.

When using Here 4 as a flight controller, the pinout changes: GPS\_TX becomes UART\_RX, and GPS\_RX becomes UART\_TX. Ensure that you make the necessary adjustments, which will most likely involve crossing the RX and TX wires when connecting peripherals to Here 4 as a flight controller.
{% endhint %}

## Pinout without Case

<figure><img src="https://3175993181-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LUhw7cdLeWVORgnTA3i%2Fuploads%2Fs7TAAchY1f3FM3o897wq%2Fimage.png?alt=media&#x26;token=33da9bd0-91ed-4dab-b7cc-53bfceb1dec2" alt="" width="563"><figcaption></figcaption></figure>

### Connector 1

| Pin Number | Definition |
| ---------- | ---------- |
| 1          | 5V\_IN     |
| 2          | CAN1\_H    |
| 3          | CAN1\_L    |
| 4          | CAN2\_H    |
| 5          | CAN2\_L    |
| 6          | SERIAL\_RX |
| 7          | SERIAL\_TX |
| 8          | I2C\_SCL   |
| 9          | I2C\_SDA   |
| 10         | GND        |

### Connector 2

| Pin Number | Definition        |
| ---------- | ----------------- |
| 1          | PWM8 Input/Output |
| 2          | PWM7 Input/Output |
| 3          | PWM6 Input/Output |
| 4          | PWM5 Input/Output |
| 5          | PWM4 Input/Output |
| 6          | PWM3 Input/Output |
| 7          | PWM2 Input/Output |
| 8          | PWM1 Input/Output |
| 9          | RC input          |
| 10         | Hotshoe signal    |
| 11         | PPS signal        |

### Dimensions

<figure><img src="https://3175993181-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LUhw7cdLeWVORgnTA3i%2Fuploads%2Fbez8k64nFuGpgOApVIe2%2Fimage.png?alt=media&#x26;token=13d63a2d-6657-4922-a415-3d42ad1f0a50" alt="" width="563"><figcaption></figcaption></figure>

## User Manual

## 1. For use with Ardupilot:

Connect the 4pin CAN cable from Here 4 to CAN1 or CAN2 on flight control.

**（Note: Current firmware only supports CAN1-green、blue、white、grey）**

Power the flight control and connect it to Mission Planner.

Go to **Config - Full Parameter** List page and modify the following parameters:

**CAN\_D1\_PROTOCOL: 1**

**CAN\_D2\_PROTOCOL: 1**

**CAN\_P1\_DRIVER: 1**

**CAN\_P2\_DRIVER: 1**

**GPS\_TYPE: 9**

**NTF\_LED\_TYPES: 231**

Once completed, click **Write Params**.

CAN function should be enabled after rebooting the autopilot.

### **Compass Setting**

**There is no safety switch. Safety switch can be disabled by modifying BRD\_SAFETYENABLE to 0. Another option is to connect to an external safety switch to GPS1 port.**

When using Cube orange+, compasses are ordered on the bottom. External CAN compass is selected by default.

<figure><img src="https://3175993181-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LUhw7cdLeWVORgnTA3i%2Fuploads%2FD5tY74YSVj6hW9UHeUh5%2F20230616154405.jpg?alt=media&#x26;token=bf7845f4-3ab1-4eb6-b9ba-0dd0e2e9f79b" alt=""><figcaption></figcaption></figure>

Select the compasses by using the default setting (generally default setting is fine) and click "Start" to calibrate compasses.

<figure><img src="https://3175993181-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LUhw7cdLeWVORgnTA3i%2Fuploads%2FTXnwCqDndNYAPasK8MjZ%2Fcompass-start-en.png?alt=media&#x26;token=3701b2b8-8efa-4020-b875-23d30ef1ab9e" alt=""><figcaption></figcaption></figure>

## 2. Using with PX4:

By the time of this writing, PX4 v1.13 is being used. \
\***Please make sure that you are using the most recent stable release of PX4 firmware.**

Install PX4 firmware. Connect the 4pin CAN cable to CAN1 or CAN2 port

Connect to autopilot through GCS. Modify the parameter ***UAVCAN\_ENABLE*** to ***Sensors Automatic*** Conﬁg and reboot the autopilot.

<figure><img src="https://3175993181-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LUhw7cdLeWVORgnTA3i%2Fuploads%2FB0eaThZAHq9A4LiPWYlF%2F6MYH6245MLZ%7BL(J4D15QZPE.png?alt=media&#x26;token=ffe3c8ac-ffc5-49de-88a1-0e4acd5fb133" alt=""><figcaption></figcaption></figure>

## 3. Firmware update

{% hint style="info" %}
Latest firmware releases along with notes are available here <https://github.com/CubePilot/GNSSPeriph-release/releases> . Ensure that your units are running latest firmware for safe operation.
{% endhint %}

Update procedures are shown as the following when there are any future firmware updates.

Mission Planner must be updated to the following or later version to have the new feature available:

<figure><img src="https://3175993181-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LUhw7cdLeWVORgnTA3i%2Fuploads%2FQtfx9kTA4vHY3LnhmKS3%2F0.png?alt=media&#x26;token=6379a3bb-24cc-46ee-ab7e-54055b3f6b3f" alt=""><figcaption></figcaption></figure>

Connect the 4pin CAN cable from CAN port on Here 4 to CAN1 on the autopilot.

Connect the autopilot to Mission Planner and go to the UAVCAN screen. Click SLCan Mode CAN1 to load CAN GPS status.

<figure><img src="https://3175993181-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LUhw7cdLeWVORgnTA3i%2Fuploads%2FCt8fympEEngAMcWlj3UK%2Fslcan-en.png?alt=media&#x26;token=f6ce8e4b-a07d-459a-a202-8211a1ab73a2" alt=""><figcaption></figcaption></figure>

Click Menu > Update to check if there are any firmware updates for Here 4

<figure><img src="https://3175993181-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LUhw7cdLeWVORgnTA3i%2Fuploads%2FaVt4Rp5P3k8qelh0lGx7%2Fupgrade0-en.png?alt=media&#x26;token=3a86e358-ce68-4229-b367-6f37b0b221ba" alt=""><figcaption></figcaption></figure>

Click the Update button. A window will pop up and ask if you want to search the internet for updates. Click ***Yes***.

<figure><img src="https://3175993181-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LUhw7cdLeWVORgnTA3i%2Fuploads%2F9dgWbTG5LmtJbtRI29ru%2Fupgrade-en.png?alt=media&#x26;token=3f59e5f3-e56f-452d-9918-9f9c1b5806ba" alt=""><figcaption></figcaption></figure>

Wait for the firmware update to complete. Confirm the change in ***SW*** Version. If the update was successful, reboot the Here 4.

<mark style="color:$warning;">**If update gets stuck at SOFTWARE UPDATE:**</mark> When updating from version [1.15.6 and earlier](https://github.com/CubePilot/GNSSPeriph-release/releases), restarting the Here4 may be required before updating. If the Update message box is stuck at SOFTWARE UPDATE with no progress change:

* Cancel the update
* Restart the Here4
* After restarting, confirm the unit is in mode MAINTENANCE then attempt the update again

This is resolved in version 1.15.7 and above.

## 4.Cube\_ID setting

For the set up procedure, please check\
<https://docs.cubepilot.org/user-guides/cube-id/cube-id>.

## 5.RTK Use Operation

### 1. Base/Rover Survey by Mission Planner

This part of the tutorial uses Mission Planner ground software and Arducopter-4.3.5 flight firmware for operating instructions. RTK mode requires a base station. The following tutorial Uses "Here+" base stations as an example. Users can also use other u-blox M8P/F9P base stations (such as HerePro, etc.), or use the local wireless RTK correction service.

**Prepare Before use：**

To use Here 4 on a UXV, you need the following hardware： Computer, telemetry modules, Here 4 , Here+Base Antenna, Here+Base, Tripod(Stand).

<figure><img src="https://3175993181-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LUhw7cdLeWVORgnTA3i%2Fuploads%2FBxff4LVqXIZtxugfnN3Z%2FHere4-rtk-wiring-EN-20230614-1.jpg?alt=media&#x26;token=834c9db1-1f3f-436f-8ad6-1e0e857da14a" alt=""><figcaption></figcaption></figure>

**Before use, please make sure that the hardware connection is correct:**

**Ground side:** Connect the base antenna to the base station, then connect the base station module to the computer through the USB port; The Telemetry module should be connected to another USB port of the same computer.&#x20;

**UXV side:** Connect Here 4 to CAN interface, and telemetry module to the TELEM interface on flight control.

<figure><img src="https://3175993181-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LUhw7cdLeWVORgnTA3i%2Fuploads%2F4vUpGfEaJRujRdW9XBSA%2Frtk0real.jpg?alt=media&#x26;token=73ed287a-e10b-457e-af5d-b8fa8b605ec3" alt=""><figcaption></figcaption></figure>

#### **Antenna Placing**

**Placing the RTK Antenna is very important for getting precise RTK positioning**

Normal GPS positioning, only requires you to place the device near a window and it will provide you a GPS location over a period of time. But that's not enough for RTK. For the working environment of RTK, there are special requirements on antenna placement, which are much more stricter than GPS.

The best environment for the base and rover antenna is a clear view of the sky that is 30 degrees above the horizon. RTK antenna can be elevated but ensure that there are no obstacles around, such as buildings, trees, cars, and etc

**Examples of bad environments:** indoors, urban areas, forests, or near the ground.

**Examples of good environments:** Open spaces, peak of a mountain, roof of a building.

Do not place the antenna near electronic devices, as high power electronic devices in close proximity may affect the radio frequency noise of the GPS signal. Examples are mobile phone base stations, high voltage transformers, etc.

Please place the base station in an outdoor environment with sufficient sky coverage to obtain a good satellite signal.

Place the base station on a stable and elevated platform, such as a tripod.

<figure><img src="https://3175993181-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LUhw7cdLeWVORgnTA3i%2Fuploads%2FZZk82pHz7JxYHI7wdS4m%2Frtk1real.jpg?alt=media&#x26;token=266be9ef-f46f-4b18-9275-469ad03d0af7" alt=""><figcaption></figcaption></figure>

**Base Module Setting using Mission Planner**

Start with a base module setup first. During the base station setup, the rover and the UXV do not need to be turned on.

Open the Mission Planner ground station software on your computer and go to the "initial setup → Optional Hardware → RTK/GPS Inject". You will see the following page:

<figure><img src="https://3175993181-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LUhw7cdLeWVORgnTA3i%2Fuploads%2FsLM7uSM5jt7mDLPSc6me%2Frtk2real.jpg?alt=media&#x26;token=a662bc48-efee-419a-9311-154a17ddbb31" alt=""><figcaption></figcaption></figure>

Select the correct base module com port in the top left corner and click ‘connect’. In the SurveyIn Acc section, enter the absolute geographic accuracy that you expect your Here+ base station to achieve. In the Time column, enter the minimum survey time you expect. Click on Restart, the ground station will transfer the data you have entered to the base module, the base module will start a new round of surveying. You will see the following page:

<figure><img src="https://3175993181-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LUhw7cdLeWVORgnTA3i%2Fuploads%2FUX2Z9PlWqUMlnTpbMRrM%2Frtk0real1.jpg?alt=media&#x26;token=a5e8c039-caf7-49b5-ba0d-0b3b2665a567" alt=""><figcaption></figcaption></figure>

During the survey process, the right box will show the current survey status:

**The Position is invalid:** The base station has not yet reached a valid location;

**In Progress:** The survey is still in progress;

**Duration:** The number of seconds that the current surveying task has been executed;

**Observation:** the number of observations acquired;

**Current Acc:** Absolute geographic accuracy that the current base station can achieve;

**The Green bar** at the lower part of the Mission Planner page shows the current satellites being detected and the signal strength related to each satellite. At least eight or more satellite signals need to be guaranteed to exceed the red line (Only when the satellite signal exceeds the red line,  the effective number of satellites have been connected).

The base station needs a certain amount of time to meet the accuracy requirements of your input. Testing shows that in an open area without sky coverage, the base station will achieve the absolute accuracy of 2m within a few minutes; to reach the absolute accuracy of less than 30cm takes about an hour; to reach the absolute accuracy of 10cm takes a few hours.

It should be noted that the absolute geographic accuracy of the base station here will affect the absolute geographic accuracy of the rover module without affecting the relative accuracy between the base station and rover. If your application does not require UXV with high absolute geographic accuracy, you do not need to set the base station's precision too high, which helps to avoid a longer survey time.

Even if the accuracy of the base station is 1.5 to 2 m, the position accuracy of the rover module relative to the base station can still reach the centimeter level.

After the survey is complete, the Mission Planner will display the following page:

<figure><img src="https://3175993181-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LUhw7cdLeWVORgnTA3i%2Fuploads%2F7dIV3YgHXmsEjgu8kwWi%2Frtk0real11.jpg?alt=media&#x26;token=3804f156-598b-4cd6-84d2-1c0ee96a7ef5" alt=""><figcaption></figcaption></figure>

In the RTCM box it shows that the base status indicator is green and both GPS and Glonass satellite systems are green (if you want to change the satellite system, refer to the following section). The box on the right says "Position is valid".

To store the current location in Mission Planner: Click "Save Current Pos", enter a name in the dialogue box, and click "OK". As shown below, you can see your saved location in the list. Click the "Use" button for the location you saved. The base station will enter the fixed mode and the status will show "Using FixedLLA". In the future, if you set the base station in the same location, you do not need to conduct the survey again, just click the "Use" button that corresponds to the location you have saved.

<figure><img src="https://3175993181-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LUhw7cdLeWVORgnTA3i%2Fuploads%2FlqQdU5cjGZzHN8q5MEbp%2Frtk0real12.jpg?alt=media&#x26;token=038d9b12-0e14-4953-bcd9-c0b9505b38b9" alt=""><figcaption></figcaption></figure>

**Rover Module and Flight Controller Setup**

Once the base station is established, you can activate the UXV. By utilizing the same telemetry module to connect with Mission Planner, the base station data will be transmitted through the telemetry module to the Here4 rover module on the UXV. On the main page of Mission Planner, you will be able to observe the current GPS status, which will be indicated as either RTK Float, RTK Fixed, or 3D RTK. These indications signify that the UXV's positioning has entered the RTK mode. RTK Float represents a floating-point solution, while RTK Fixed represents a fixed solution. RTK Fixed mode offers higher accuracy but requires a stronger signal strength. The term "3D RTK" is a comprehensive reference to both RTK Float and RTK Fixed in the Mission Planner interface.

<figure><img src="https://3175993181-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LUhw7cdLeWVORgnTA3i%2Fuploads%2F2gN8Dyu5psKpnjVFkYqc%2Frtk0real13.jpg?alt=media&#x26;token=2fcc91da-fddf-42d8-855f-7bd99ff3ca84" alt=""><figcaption></figcaption></figure>

### **2. Single Base to Multiple Rovers**

There are 2 methods to do this:

1.)Use 1 telemetry to multiple telemetry broadcasting ;

or

2.)Use multiple 1 to 1 telemetry modules with USB hub

Ground station configuration: connect all telemetry modules to the computer via USB hub. Open Mission Planner to locate the base then connect it with flight controllers. Select AUTO connecting as shown below. All recognized flight controllers on the ports will be connected. You may select the UXV from the dropdown list below:

<figure><img src="https://3175993181-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LUhw7cdLeWVORgnTA3i%2Fuploads%2FyYv29zV0jLg6NbIlCv7w%2Frtk0real14.jpg?alt=media&#x26;token=357a164f-c50b-4bfa-98b0-d941a00bc3f6" alt=""><figcaption></figcaption></figure>

If you connected the UXVs with 1 telemetry module, they should share the same COM port:

## 6. U-Center Firmware Update

{% hint style="danger" %}
Please do not update your Here4 Ublox firmware if you purchased your unit after 7th December 2023 before consulting your reseller. The firmware on new Here4s have our customised firmware which adds support for Moving Baseline, firmware from ublox website do not support that feature. Updating the firmware will drop Moving Baseline support from your units and you will not be able to revert back to production firmware with Moving Baseline support. To verify version please follow the steps here: [#steps-to-verify-ublox-firmware-version](#steps-to-verify-ublox-firmware-version "mention")
{% endhint %}

{% hint style="info" %}
Ensure that you have the latest firmware on Here4 before this process. Please follow [#3.-firmware-update](#3.-firmware-update "mention") to update the firmware.
{% endhint %}

Latest NEO F9P L1L5 firmware can be found here under Firmware Update section. <https://www.u-blox.com/en/product/neo-f9p-module?legacy=Current#Documentation-&-resources>&#x20;

1. Inside DroneCAN/UAVCAN config page of Mission Planner. Select Menu and Check

{% hint style="info" %}
If the following option is not visible in Mission Planner, then update Mission Planner to latest Beta from Help menu.
{% endhint %}

<figure><img src="https://3175993181-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LUhw7cdLeWVORgnTA3i%2Fuploads%2FbaQ4MnGQt9zFczJ6KvRQ%2Fimage.png?alt=media&#x26;token=b3d56690-fc22-4e65-98e5-309751ebee43" alt=""><figcaption></figcaption></figure>

2. Select port for u-Center to connect on.

<figure><img src="https://3175993181-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LUhw7cdLeWVORgnTA3i%2Fuploads%2FteAQaYWVRROdAwb2C4RX%2Fimage.png?alt=media&#x26;token=ae1b1059-aa14-4b4c-9bff-c6630b18a601" alt=""><figcaption></figcaption></figure>

3. Select baudrate to set for ublox communication.

<figure><img src="https://3175993181-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LUhw7cdLeWVORgnTA3i%2Fuploads%2FZ1pX888cifg61dlw1Kly%2Fimage.png?alt=media&#x26;token=84cc5552-d0c7-4ba5-8022-356730c8a1a8" alt=""><figcaption></figcaption></figure>

4. Open u-center (Ensure that its version 22.07+). Under connections select Network connections > New.

<figure><img src="https://3175993181-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LUhw7cdLeWVORgnTA3i%2Fuploads%2Fpcb4uuaXVRkMDXKcrgo9%2Fimage.png?alt=media&#x26;token=ebc30ce8-ab9a-41f9-bb07-425b1e092abc" alt=""><figcaption></figcaption></figure>

5. Set url to tcp\://127.0.0.1:500.

<figure><img src="https://3175993181-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LUhw7cdLeWVORgnTA3i%2Fuploads%2Fv9msiWmkMIVeswKZyQ09%2Fimage.png?alt=media&#x26;token=ab5cf283-445a-4734-a42f-85c140d7dec9" alt=""><figcaption></figcaption></figure>

6. Select Tools>Firmware Update Utility. Select the downloaded firmware from ublox website in the tool. Ensure that baudrate is same as set in Mission Planner. And Options are correctly selected as shown below. And then click GO.

<figure><img src="https://3175993181-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LUhw7cdLeWVORgnTA3i%2Fuploads%2FK5zXZqZpdkb0oLbqgGAD%2Fimage.png?alt=media&#x26;token=f621926d-70f3-40b0-8c36-6fe99732f8a1" alt=""><figcaption></figcaption></figure>

## 7. Moving baseline

<figure><img src="https://3175993181-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LUhw7cdLeWVORgnTA3i%2Fuploads%2FmGWHGFlOSwX6GuopSMZX%2FHere4%20Moving%20Baseline-R.jpg?alt=media&#x26;token=4c43f103-43e4-4a8d-b584-4cab7a91ea66" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
Please note that early Here4 units (Pre December 2023 Production Here4 Black and Alpha Here4 Blue Units) do not support Moving Baseline. If you have such units and require this feature you will need to contact your reseller. To check if your unit has Moving Baseline support please follow the steps below.
{% endhint %}

#### Steps to verify Ublox Firmware version

<figure><img src="https://3175993181-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LUhw7cdLeWVORgnTA3i%2Fuploads%2FElhXEHyfBinSRnZm5sfi%2FMovingBaselineFirmwareCheck.png?alt=media&#x26;token=b045fc24-ad9a-4b96-a8f8-4873dc12a1de" alt=""><figcaption></figcaption></figure>

* Connect Here4 Units as shown above and ensure the firmware running on them is atleast v1.13.
* Connect CubeOrange to the Mission Planner and Open DroneCAN/UAVCAN window.
* Reboot the Here4 units, and wait for few seconds until the message as shown below appears.
* The firmware supporting Moving Baseline has firmware hash: u-blox 1 HW: 00190000 SW: EXT CORE 1.00 **(49f616)**

<figure><img src="https://3175993181-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LUhw7cdLeWVORgnTA3i%2Fuploads%2FXr3LI9P5rgoH78AUWv60%2FMovingBaselineFirmwareCheck2.png?alt=media&#x26;token=1cfd4b87-e8db-4109-bc20-9928353bd244" alt=""><figcaption></figcaption></figure>

Once all settings and versions are confirmed, set following parameters for Moving Baseline on Ardupilot:<br>

* [GPS\_TYPE](https://ardupilot.org/copter/docs/parameters.html#gps-type) = 22 (“DroneCAN moving baseline base”)
* [GPS\_TYPE2](https://ardupilot.org/copter/docs/parameters.html#gps-type2) = 23 (“DroneCAN moving baseline rover”)
* [GPS\_AUTO\_CONFIG](https://ardupilot.org/copter/docs/parameters.html#gps-auto-config) = 2 (AutoConfig DroneCAN)
* [GPS\_AUTO\_SWITCH](https://ardupilot.org/copter/docs/parameters.html#gps-auto-switch) = 1
* Set the [GPS\_POS1\_X](https://ardupilot.org/copter/docs/parameters.html#gps-pos1-x)/Y/Z and [GPS\_POS2\_X](https://ardupilot.org/copter/docs/parameters.html#gps-pos2-x)/Y/Z parameters for the GPS antennas (see [Sensor Position Offset are here](https://ardupilot.org/copter/docs/common-sensor-offset-compensation.html#common-sensor-offset-compensation)). You must establish the relative positions of each GPS location on the vehicle with respect the vehicle’s motion.
* [GPS1\_CAN\_OVRIDE](https://ardupilot.org/copter/docs/parameters.html#gps1-can-ovride) (Base NODEID) and [GPS2\_CAN\_OVRIDE](https://ardupilot.org/copter/docs/parameters.html#gps2-can-ovride) (Rover NODEID) determine which physical DroneCAN GPS is used for GPS1 and GPS2. These are automatically populated at boot from the detected addresses, which are also shown in [GPS\_CAN\_NODEID1](https://ardupilot.org/copter/docs/parameters.html#gps-can-nodeid1) and [GPS\_CAN\_NODEID2](https://ardupilot.org/copter/docs/parameters.html#gps-can-nodeid2), but can be overriden, if needed. You will need to determine which physical CAN GPS is assigned as GPS1 and GPS2 in order to setup the position offsets (see [Sensor Position Offset are here](https://ardupilot.org/copter/docs/common-sensor-offset-compensation.html#common-sensor-offset-compensation))

## 8. Installing Ardupilot on Here4

* You will require following components to upgrade Here4 to be Flight Controller

  * Cube : For updating the bootloader on Here4 unit.
  * Serial to USB connection: For talking to Here4 module over telemetry and updating firmware.
  * Here4 Splitter board: For wiring IO pins in usable form

* ### Step 1: Updating Here4 Bootloader:
  * Connect Here4 to a Cube configured to operate over CAN bus.
  * Follow the steps here to update Here4 to latest release [Firmware Update](#id-3.-firmware-update).
  * After update, open parameters pane for Here4 Unit.
  * Search parameter `FLASH_BOOTLOADER` , set the parameter to 1
  * Then click `Refresh Params`, check if the parameter auto resetted to 0, confirming successful update.

<figure><img src="https://3175993181-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LUhw7cdLeWVORgnTA3i%2Fuploads%2FPXYsOnvo9tPr2FU5zcfD%2FUpdate%20Bootloader%20Here4.png?alt=media&#x26;token=cbd5fef2-550e-42f4-a2e3-9618f0ad6da1" alt=""><figcaption></figcaption></figure>

* ### Step2: Updating to Here4 FC firmware

  * Connect GPS\_TX and GPS\_RX pins, Vcc and Gnd to Serial to USB converter, which after update will be swapped in reference and become SERIAL0\_RX and SERIAL0\_TX , refer to the note below [Uart Pinout ](#uart)for description on why.
  * Disconnect all connected flight controller like Cube from the system.
  * Open Setup > Install Firmware page on Mission Planner.
  * Plug in Here4 vis Serial to USB converter, and wait for Mission Planner to detect board type **1043** , as shown bellow. If not detected make sure you have Here4 powered and RX/TX correctly connected.

<figure><img src="https://3175993181-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LUhw7cdLeWVORgnTA3i%2Fuploads%2Frh8u6wPr3Qy2uYjKTwPr%2FBootloader%20Update%20State.png?alt=media&#x26;token=fdb5b329-5061-4d60-b028-f74286b6be0f" alt=""><figcaption></figcaption></figure>

* After detection you can move to select the Ardupilot version to update and wait for firmare flash to finish. Refer [Pinout](#pinout) for splitter board for connections.
