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.
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 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_DIAG (48) | Event | 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. |
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 | Type |
---|---|---|
TIME_STAMP | Time since sensor is powered up in µs | uint32 (4) |
IMU_STATUS | IMU Status bitmask | uint16 (2) |
DELTA_VEL_X | X axis delta velocity – Scaling 1048576 LSB for 1 m.s-2 | int32 (4) |
DELTA_VEL_Y | Y axis delta velocity – Scaling 1048576 LSB for 1 m.s-2 | int32 (4) |
DELTA_VEL_Z | Z axis delta velocity – Scaling 1048576 LSB for 1 m.s-2 | int32 (4) |
DELTA_ANGLE_X | X axis delta angle – Scaling 67108864 LSB for 1 rad.s-1 | int32 (4) |
DELTA_ANGLE_Y | Y axis delta angle – Scaling 67108864 LSB for 1 rad.s-1 | int32 (4) |
DELTA_ANGLE_Z | Z axis delta angle – Scaling 67108864 LSB for 1 rad.s-1 | int32 (4) |
TEMPERATURE | IMU Temperature – Scaling 256 LSB for 1°C | int16 (2) |
IMU_STATUS Definition
Status used to know if sensors are working correctly and are in their measurement range.
Bit (LSB) | Name | Description |
---|---|---|
0 | SBG_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. |
1 | SBG_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. |
2 | SBG_ECOM_IMU_ACCEL_X_BIT | Set to 1 if accelerometer X passes Built In Test |
3 | SBG_ECOM_IMU_ACCEL_Y_BIT | Set to 1 if accelerometer Y passes Built In Test |
4 | SBG_ECOM_IMU_ACCEL_Z_BIT | Set to 1 if accelerometer Z passes Built In Test |
5 | SBG_ECOM_IMU_GYRO_X_BIT | Set to 1 if gyroscope X passes Built In Test |
6 | SBG_ECOM_IMU_GYRO_Y_BIT | Set to 1 if gyroscope Y passes Built In Test |
7 | SBG_ECOM_IMU_GYRO_Z_BIT | Set to 1 if gyroscope Z passes Built In Test |
8 | SBG_ECOM_IMU_ACCELS_IN_RANGE | Set to 1 if all accelerometer axis are within operating range |
9 | SBG_ECOM_IMU_GYROS_IN_RANGE | Set 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.
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.
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 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:
|
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.