This tutorial demonstrates the use of the onboard BMI088 Inertial Measurement Unit (IMU) available on the VEGA ARIES IoT Board. The BMI088 is a high-performance 6-axis motion sensor that combines a 3-axis accelerometer and a 3-axis gyroscope, enabling accurate motion sensing, orientation tracking, vibration monitoring and navigation applications.

Aries IoT v2.0 Board

The ARIES IoT is a fully indigenous and a “Made in India” product to get started with basic microprocessor programming and embedded systems. This board is built upon a RISC-V ISA compliant VEGA Processor with easy-to-use hardware and software. For more details about ARIES IoT boards please refer to the ARIES development boards and Ecosystem.

BMI088 Sensor

The BMI088 is a low-noise, high-precision 6-axis IMU consisting of:

  • 3-axis Accelerometer for measuring linear acceleration along the X, Y, and Z axes.
  • 3-axis Gyroscope for measuring angular velocity around the X, Y, and Z axes.
  • Integrated temperature sensor for monitoring device temperature.
  • SPI communication interface for high-speed sensor data transfer.
  • Excellent vibration robustness and temperature stability.

The accelerometer measures acceleration in units of meters per second squared (m/s²), while the gyroscope measures rotational motion in radians per second (rad/s). These features make the BMI088 suitable for robotics, drones, industrial automation, motion analysis and IoT applications.

Prerequisites

  • Windows 10 or above/Ubuntu 20.04 LTS or above
  • Arduino IDE
  • VEGA ARIES Board support package

Components Required

  • ARIES IoT v2.0 Board
  • USB type C cable

Circuit Diagram

No external connections required to test this code. You can directly connect Aries IoT board through USB and upload the program.

Libraries

Arduino libraries are an extension of the standard Arduino API and consists of thousands of libraries, both official and contributed by the community. Libraries simplifies the use of complex codes. Every version of Arduino IDE has a library manager for installing Arduino software libraries. The libraries required for this projects are

VEGA_BMI088 (Version 1.0.0)

To install the libraries directly from library manager required for this project:

Go to Tools -> Manage Libraries -> and search with the library names mentioned above

Click on Install

Procedure

Setup VEGA Ecosystem

Download and install Arduino IDE 2.3.10

Once installed Open Arduino IDE

Open File->Preferences, Add below JSON in “Additional Boards Manager URL”, Press OK

https://gitlab.com/riscv-vega/vega-arduino/-/raw/main/package_vega_index.json

Open Tools->Boards->Board manager, Search for “vega”

Install “VEGA ARIES Boards” with latest version

Select ARIES IoT Board from Tools -> Board -> VEGA Processor: ARIES Boards -> ARIES IoT

Check your ARIES board whether the BOOT SEL pin is shorted using a jumper or not

If
BOOT-SEL jumper (J12) is shorted :
Select Tools -> Upload method -> VEGA FLASHER
Else
Select Tools -> Upload method -> VEGA XMODEM

Here the BOOT SEL pin is shorted, so we have selected VEGA FLASHER from Upload method

Also select appropriate port from Tools -> Port -> COM* (ARIES Board) for windows and dev/tty/USB*(Aries Board) for ubuntu

Now, Open Files -> Examples -Under Examples for ARIES IoT -> VEGA_ARIES_IoT -> BMI088 -> BMI088Test

Finally Upload the code to ARIES IoT board

Output

After successfully uploading the code to the ARIES IoT board and opening the Serial Monitor at 115200 baud,the BMI088 sensor continuously displays acceleration values along the X, Y, and Z axes, angular velocity values along the X, Y, and Z axes and the sensor temperature. When the board is placed on a stationary flat surface, the X-axis and Y-axis acceleration values remain close to 0 m/s², the Z-axis acceleration value remains close to −9.81 m/s² due to Earth’s gravitational acceleration, the gyroscope values remain near 0 rad/s indicating no rotational motion, and the temperature reading corresponds to the ambient sensor temperature.

When the board is tilted or rotated, the acceleration values shift across the corresponding axes based on the board’s orientation, and the gyroscope values change to reflect the angular velocity of the motion, enabling real-time detection of movement, tilt, and rotational changes.

Leave a Reply

Your email address will not be published. Required fields are marked *