Introduction

This article provides a practical guide for integrating an SBG Systems Ellipse INS with PixHawk-based autopilots. Whether you are using the PixHawk Mini or the Orange Cube, this document outlines the key steps for mechanical and electrical installation, PX4 firmware configuration, and Ellipse setup. Designed to complement existing resources on GitHub documentation, this guide aims to help users achieve a robust and efficient integration using QGroundControl for monitoring and configuration. It ensures optimal performance by detailing all necessary parameters and best practices for a reliable navigation setup.

Mechanical installation

In this article we use an Ellipse-N single antenna that will rely on magnetometers to provide yaw angle. Using magnetometers is really delicate because they are sensitive to electromagnetic environment, so it's important to take that into account during the mechanical installation.

Here are some recommendations to take into account for the mechanical installation;

  • It is really important that the INS is rigidly fixed to the autopilot and the antenna or antennas in case it's used as a INS.
  • Keep the antenna(s) as far apart as possible from any eventual electromagnetic disturbance.
  • Keep the antenna(s) as far as possible from propellers.
  • Ensure proper mounting of the INS to prevent vibration (by considering a dampening solution or suspensions).

USB-C/USB-3

Please keep the antenna(s) as far as possible from any device that includes a USB-3/USB-C connector, as it's known to be a source of perturbation.

Electrical integration

In these two examples we decided to connect the Ellipse to GPS1 port, but any other UART port can be used.

Orange cube

Requirements

  • An Orange Cube.
  • An Ellipse.
  • An open wire fischer cable for Ellipse.
  • A cable for GPS1 wiring.
  • A TTL/RS232 converter. For the installation below, we use a MAX3232.

Wiring diagram



PixHawk-mini

Requirements

  • A PixHawk-mini.
  • An Ellipse.
  • An open wire fischer cable for Ellipse.
  • A cable for GPS1 wiring

Wiring diagram


PX4 firmware configuration

  • Assign the correct serial port: SENS_SBG_CFG=<Serial Port> from these different values;
    • 0: Disabled
    • 101: TELEM 1
    • 102: TELEM 2
    • 201: GPS 1
    • 202: GPS 2.
nsh> param set SENS_SBG_CFG 201
  SENS_SBG_CFG: curr: 0 -> new: 201

In our installation we used port GPS1, so it's important to disable GPS_1_CONFIG.

  • Set the baud rate: SBG_BAUDRATE=<Desired Baudrate> from these values: 4800, 9600, 19200, 38400, 57600, 115200, 230400, 460800, 921600 bps.

nsh> param set SBG_BAUDRATE 921600
+ SBG_BAUDRATE: curr: 115200 -> new: 921600
  • Set the priority for each accelerometer and gyroscope, by setting the Ellipse as the primary IMU
    • -1: Uninitialized
    • 0: Disabled
    • 1: Min
    • 25: Low
    • 50: Medium (Default)
    • 75: High
    • 100: Max.
param set CAL_ACC3_PRIO 75
+ CAL_ACC3_PRIO: curr: 0 -> new: 75
nsh> param set CAL_GYRO3_PRIO 75
+ CAL_GYRO3_PRIO: curr: 0 -> new: 75

External IMU will be always the one with the higher value. Orange Cube for example contains 3 IMUs, listed from 0.

Disable PX4’s internal EKF2 estimator EKF2_EN if using the SBG INS for navigation.

nsh> param set EKF2_EN 0 
  EKF2_EN: curr: 1 -> new: 0

Configuration on QGC

Please note that on QGroundControl, it is possible to have some parameters missing, so the best thing to do is to search about it in the search field.

Ellipse configuration

The Ellipse with firmware V3, can be configured by different ways, with our own tools, via a GUI software (only available on Windows), or CLI. For more information please refer to this article Sensor configuration that will guide you on how to configure Ellipse using sbgCenter and RestAPI.

It is also possible to use it and configure it via our ROS2 driver.

It is important to configure some messages that the autopilot needs to fly correctly, such as:

  • imu_short: it's the IMU raw data and it should be configured at least at 200hz. 
    • Published on these uORB topics: sensor_accel, sensor_gyro.
  • ekf_mag: intensity of the electromagnetic field on x, y and z axis.
    • Published on sensor_mag.
  • ekf_quat: orientation expressed in quaternions.
    • Published on vehicle_attitude uORB topic.
  • ekf_nav: INS position and velocity, out of the EKF.
    • Published on vehicle_local_position and vehicle_global_position.
  • gps1_pos: GNSS position calculated by the receiver.
    • Published on sensor_gps.
  • gps1_vel: GNSS velocity calculated by the receiver.
    • Published on sensor_gps.
  • gps1_hdt: GNSS heading calculated between the primary antenna and the secondary (If you're using an Ellipse-D).
    • Published on sensor_gps.


During the configuration mak sure to proceed to a magnetic calibration. Please refer to our documentation on this topic to learn everything you need to know about this procedure.

Configuring Ellipse through PX4

Start by enabling the driver configuration SBG_CONFIGURATION_EN

param set SBG_CONFIGURE_EN 1
  SBG_CONFIGURE_EN: curr: 0 -> new: 1

You can upload a custom JSON configuration file with settings like sensor output frequency:

  • Place sbg_settings.json in /fs/microsd/etc/extras/
  • Apply settings dynamically using:
sbgecom start -f /fs/microsd/new_sbg_settings.json

Health monitoring

Once the installation and configuration is over, you can rely on various views proposed by QGroundControl.

Such as the number of satellites observed, horizontal view and 2D position.

QGC

And in MAVLink inspector you will find all the messages received.

If there is no data shown, you might want to check if the SBG driver is running or not.

nsh> sbgecom start
ERROR [sbgecom] Task already running
nsh> sbgecom status
Using port '/dev/ttyS2'
sbgecom: sample: 104794 events, 53847579us elapsed, 513.84us avg, min 11us max 4094us 516.086us rms
sbgecom: write: 12811 events, 175696us elapsed, 13.71us avg, min 9us max 122us 4.094us rms
sbgecom: errors: 0 events