Please find in this section all details about the PULSE serial interface, supported output messages and configuration commands.

The PULSE implements the low level sbgECom protocol to output data and to send/read the device configuration. The sbgECom protocol is common to all SBG Systems INS and products to offer a unified developer experience.

The device configuration itself relies on the sbgInsRestApi that comes on top of the sbgECom protocol.

Serial Interface

The PULSE features one full duplex serial interface also called UART (Universal Asynchronous Receiver Transmitter). This serial interface is used to configure the device but also to output IMU data at up to 2 kHz.

The serial interface uses by default a baudrate of 921600 bps but it can be changed easily by the user from 115200 to up to 4 Mbit/s.

Supported Baudrates

Please find below the list of all baudrates available for the PULSE. As for any device, there is a deviation between the requested baudrate and the real baudare. A deviation below 1% is generally considered to be acceptable.

BaudrateReal BaudrateDeviation
115200115274-0.06%
230400230548-0.06%
460800459770+0.22%
921600919540+0.22%
10000001000000+0.00%
15000001509434-0.63%
18432001860465-0.94%
20000002000000+0.00%
27648002758621+0.22%
30000002962963+1.23%
35000003478261+0.62%
40000004000000+0.00%

Evaluation Board Limitations

The PULSE-40 evaluation board only supports baudrate up to 3 Mbit/s. For higher baudrates, you have to use specific hardware able to support these high speed signals.

sbgECom Binary Protocol

The sbgECom binary protocol is SBG Systems' proprietary protocol used to output binary messages and send/receive configuration commands. All SBG Systems products share this protocol to ease developer's life.

A well documented and open source (MIT) C library is available and hosted on GitHub to quickly integrate this binary protocol in the host application.

You can find the full sbgECom protocol definition in the Firmware documentation page and the sbgECom C library documentation in the dedicated support center Binary protocol Library (sbgECom) page.

Supported Messages

The PULSE supports only a subset of output messages compared to other SBG Systems products such as full Inertial Navigation Systems. Please find below, the list of supported sbgECom binary logs that can be output by the PULSE.

Log IdentifierTypeDescription
SBG_ECOM_LOG_IMU_SHORT (44) PeriodicReturns high resolution and compact delta angles, delta velocities, temperature, status and timestamp information.
SBG_ECOM_LOG_DIAG (48)EventEmit a log each time a diagnostic message is produced by the unit. This log is mostly used for advanced troubleshooting by SBG Systems support team.

SBG_ECOM_LOG_IMU_SHORT description

The information below is extracted from the Firmware documentation to give you a quick overview of this message.

FieldDescriptionType
TIME_STAMPTime since sensor is powered up in µsuint32 (4)
IMU_STATUSIMU Status bitmaskuint16 (2)
DELTA_VEL_XX axis delta velocity – Scaling 1048576 LSB for 1 m.s-2int32 (4)
DELTA_VEL_YY axis delta velocity – Scaling 1048576 LSB for 1 m.s-2int32 (4)
DELTA_VEL_ZZ axis delta velocity – Scaling 1048576 LSB for 1 m.s-2int32 (4)
DELTA_ANGLE_XX axis delta angle – Scaling 67108864 LSB for 1 rad.s-1int32 (4)
DELTA_ANGLE_YY axis delta angle – Scaling 67108864 LSB for 1 rad.s-1int32 (4)
DELTA_ANGLE_ZZ axis delta angle – Scaling 67108864 LSB for 1 rad.s-1int32 (4)
TEMPERATUREIMU Temperature – Scaling 256 LSB for 1°Cint16 (2)

IMU_STATUS Definition

Status used to know if sensors are working correctly and are in their measurement range.

Bit (LSB)NameDescription
0SBG_ECOM_IMU_COM_OK

Set to 1 if the communication with the IMU is ok.

If the IMU Tx is saturated, this bit is set to zero.

1SBG_ECOM_IMU_STATUS_BIT

Set to 1 if internal IMU passes Built In Test (Calibration, CPU, RAM).

If an invalid external clock is provided this bit is also set to zero.

2SBG_ECOM_IMU_ACCEL_X_BITSet to 1 if accelerometer X passes Built In Test
3SBG_ECOM_IMU_ACCEL_Y_BITSet to 1 if accelerometer Y passes Built In Test
4SBG_ECOM_IMU_ACCEL_Z_BITSet to 1 if accelerometer Z passes Built In Test
5SBG_ECOM_IMU_GYRO_X_BITSet to 1 if gyroscope X passes Built In Test
6SBG_ECOM_IMU_GYRO_Y_BITSet to 1 if gyroscope Y passes Built In Test
7SBG_ECOM_IMU_GYRO_Z_BITSet to 1 if gyroscope Z passes Built In Test
8SBG_ECOM_IMU_ACCELS_IN_RANGESet to 1 if all accelerometer axis are within operating range
9SBG_ECOM_IMU_GYROS_IN_RANGESet to 1 if all gyroscope axis are within operating range

Supported Commands

The PULSE implements all the needed sbgECom commands to fully support the sbgInsRestApi specification.

The sbgInsRestApi relies on REST API concepts that comes from the HTTP/Ethernet protocols. However, the sbgECom provides two commands used to encapsulate and replicate HTTP GET and POST methods over a standard serial interface.

CommandDescription

SBG_ECOM_CMD_API_GET (46)

Command equivalent to the HTTP GET method for a REST API. It is used to retrieve a configuration or read a resource such as the device device identification.
SBG_ECOM_CMD_API_POST (47)Command equivalent to the HTTP POST method for a REST API. It is used to update a configuration or execute an action.

sbgInsRestApi Specifications

The sbgInsRestApi relies on standard REST API specification to offer a powerful and easy to use programming interface to configure Inertial Measurement Units (IMU) and even full featured Inertial Navigation Systems (INS).

This REST API is fully documented on the dedicated Configuration API (sbgInsRestApi) support center page.

The PULSE is an IMU and supports only a small subset of this API compared to a full INS. Please find below the list of supported settings, commands and resources that can be fetched.

Supported Settings

The table below lists all the paths that can be used to retrieve or change the PULSE settings. All settings path accept both the GET and POST methods. The GET method is used to read the current device configuration and the POST is used to update this configuration.

Path
/api/v1/settings

Base path to retrieve or change the device settings with only one command.

/api/v1/settings/events/eventInA

Enable and configure the event input signal A such as detection edge.

/api/v1/settings/events/eventOutA

Enable and configure the event out signal A such as period, duration and edge.

/api/v1/settings/output/comA/messages/diag

You can enable advanced diagnostic messages if SBG Systems ask you to do so.

/api/v1/settings/output/comA/messages/imuShort

Define the output period for the main PULSE output message containing timestamp, status, delta angles, delta velocities and temperature data.

/api/v1/settings/ports/comA

Configure the only PULSE UART, serial port interface. You can change the baudrate for instance.

/api/v1/settings/clock/source

Change the source from none to eventInA to use external clock synchronizations modes.

You will have to configure correctly Event In A and provide a stable input clock singal on this pin.

/api/v1/settings/clock/mode

If an input clock source has been selected, select how the clock should behave:

  • direct: The main sampling/output loop is directly triggered by an external clock. This external clock should thus be provided at the nominal sampling loop frequency.
  • scaled: The input clock signal is scaled to drive the main sampling/output loop. This mode is perfect to synchronize a high frequency loop (200 Hz for example) to a PPS signal (Pulse Per Second) generated by a GNSS.

Event Signal

The PULSE has one single event input/output signal A. If should enable the eventInA or eventOutA exclusively.

Settings Save

When the user changes a settings, it is immediately applied unless the PULSE returns a needReboot indication. However, the settings have to be saved to be applied on the next reboot.

Supported Commands

The sbgInsRestApi is not only used to configure easily the PULSE but also to execute actions such as issuing a software reboot. The commands only support the POST method.

Path
/api/v1/settings/default

Issue this command to restore the PULSE to default settings.

/api/v1/settings/save

Issue this command to save the current PULSE settings in FLASH memory and keep them for next power cycle.

/api/v1/system/reboot

Send this command to immediately issue a software reboot.

Supported Resources

The same API is also used to query the device identification. Only the GET method can be used on resources.

Path
/api/v1/info

Retrieve the device serial number, hardware code, revision, firmware version

Please read the How To Articles section to get examples on how to configure the PULSE.