Download PDF
Download page Digital interfaces.
Digital interfaces
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.
| Baudrate | Real Baudrate | Deviation |
|---|---|---|
| 115200 | 115274 | -0.06% |
| 230400 | 230548 | -0.06% |
| 460800 | 459770 | +0.22% |
| 921600 | 919540 | +0.22% |
| 1000000 | 1000000 | +0.00% |
| 1500000 | 1509434 | -0.63% |
| 1843200 | 1860465 | -0.94% |
| 2000000 | 2000000 | +0.00% |
| 2764800 | 2758621 | +0.22% |
| 3000000 | 2962963 | +1.23% |
| 3500000 | 3478261 | +0.62% |
| 4000000 | 4000000 | +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.
Main message: IMU_SHORT
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 Identifier | Type | Description |
|---|---|---|
SBG_ECOM_LOG_IMU_SHORT (44) | Periodic | Returns high resolution and compact delta angles, delta velocities, temperature, status and timestamp information. |
SBG_ECOM_LOG_IMU_SHORT description
The information below is extracted from the Firmware documentation to give you a quick overview of this message.
| Field | Description | Unit | Format | Size | Offset |
|---|---|---|---|---|---|
| TIME_STAMP | Time since sensor is powered up | µs | uint32 | 4 | 0 |
| IMU_STATUS | IMU status (see IMU_STATUS) | - | uint16 | 2 | 4 |
| ACCELERATION_X | Acceleration along the X axis in the body frame (in LSB). | m/s² | int32 | 4 | 6 |
| ACCELERATION_Y | Acceleration along the Y axis in the body frame (in LSB). | m/s² | int32 | 4 | 10 |
| ACCELERATION_Z | Acceleration along the Z axis in the body frame (in LSB). | m/s² | int32 | 4 | 14 |
| RATE_X | Rotation rate along the X axis in the body frame (in LSB). | rad/s | int32 | 4 | 18 |
| RATE_Y | Rotation rate along the Y axis in the body frame (in LSB). | rad/s | int32 | 4 | 22 |
| RATE_Z | Rotation rate along the Z axis in the body frame (in LSB). | rad/s | int32 | 4 | 26 |
| TEMPERATURE | IMU internal average temperature (in LSB). | °C | int16 | 2 | 30 |
IMU_STATUS Definition
Status used to know if sensors are working correctly and are in their measurement range.
| Bit | Name | Description |
|---|---|---|
| 0 (LSB) | SBG_ECOM_IMU_COM_OK | Set if communication with the IMU is working properly. |
| 1 | SBG_ECOM_IMU_STATUS_BIT | Set if the IMU passes internal BIT, including calibration and CPU checks. |
| 2 | SBG_ECOM_IMU_ACCEL_X_BIT | Set if the X-axis accelerometer passes PBIT and CBIT. |
| 3 | SBG_ECOM_IMU_ACCEL_Y_BIT | Set if the Y-axis accelerometer passes PBIT and CBIT. |
| 4 | SBG_ECOM_IMU_ACCEL_Z_BIT | Set if the Z-axis accelerometer passes PBIT and CBIT. |
| 5 | SBG_ECOM_IMU_GYRO_X_BIT | Set if the X-axis gyroscope passes PBIT and CBIT. |
| 6 | SBG_ECOM_IMU_GYRO_Y_BIT | Set if the Y-axis gyroscope passes PBIT and CBIT. |
| 7 | SBG_ECOM_IMU_GYRO_Z_BIT | Set if the Z-axis gyroscope passes PBIT and CBIT. |
| 8 | SBG_ECOM_IMU_ACCELS_IN_RANGE | Set if all accelerometers are operating within the specified range. |
| 9 | SBG_ECOM_IMU_GYROS_IN_RANGE | Set if all gyroscopes are operating within the specified range. |
| 10 | SBG_ECOM_IMU_GYROS_USE_HIGH_SCALE | Set if the high scale scale factor is being used for rotation rates. |
Additional messages
The following messages are supported by some or all of the Pulse IMUs. For the full specification of the message, please check the Firmware documentation.
| Log Identifier | Type | IMU Supported | Description |
|---|---|---|---|
SBG_ECOM_LOG_MAG (04) | Periodic | Pulse-40 OEM v2 | Provides magnetometer data. Note that the associated accelerometer data is the same source as SBG_ECOM_LOG_IMU_SHORT but decimated for the sampling rate associated to the SBG_ECOM_LOG_MAG message |
SBG_ECOM_LOG_DIAG (48) | Event | All Pulse IMUs | Emit 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. |
| Periodic | All Pulse IMUs | This message provides the raw output of the IMU’s built-in Fast Fourier Transform (FFT) engine. |
| Periodic | All Pulse IMUs | This message provides a synthetic summary of the FFT output, offering key vibration indicators derived from the accelerometer signal. |
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.
| Command | Description |
|---|---|
| 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
Please read the How To Articles section to get examples on how to use the sbgInsRestApi to configure the Pulse IMU