Simple test

Ensure your device works with this simple test.

examples/bmi270_simpletest.py
import time
from machine import Pin, I2C
from micropython_bmi270 import bmi270

i2c = I2C(1, sda=Pin(2), scl=Pin(3))  # Correct I2C pins for RP2040
bmi = bmi270.BMI270(i2c)

while True:
    accx, accy, accz = bmi.acceleration
    print(f"x:{accx:.2f}m/s2, y:{accy:.2f}m/s2, z{accz:.2f}m/s2")
    time.sleep(0.5)
    gyrox, gyroy, gyroz = bmi.gyro
    print("x:{:.2f}°/s, y:{:.2f}°/s, z{:.2f}°/s".format(gyrox, gyroy, gyroz))
    time.sleep(0.5)

Acceleration range settings

Example showing the Acceleration range setting

examples/bmi270_acceleration_range.py
import time
from machine import Pin, I2C
from micropython_bmi270 import bmi270

i2c = I2C(1, sda=Pin(2), scl=Pin(3))  # Correct I2C pins for RP2040
bmi = bmi270.BMI270(i2c)

bmi.acceleration_range = bmi270.ACCEL_RANGE_8G

while True:
    for acceleration_range in bmi270.acceleration_range_values:
        print("Current Acceleration range setting: ", bmi.acceleration_range)
        for _ in range(10):
            accx, accy, accz = bmi.acceleration
            print("x:{:.2f}m/s2, y:{:.2f}m/s2, z:{:.2f}m/s2".format(accx, accy, accz))
            print()
            time.sleep(0.5)
        bmi.acceleration_range = acceleration_range

Acceleration operation mode settings

Example showing the Acceleration operation mode setting

examples/bmi270_acceleration_operation_mode.py
import time
from machine import Pin, I2C
from micropython_bmi270 import bmi270

i2c = I2C(1, sda=Pin(2), scl=Pin(3))  # Correct I2C pins for RP2040
bmi = bmi270.BMI270(i2c)

bmi.acceleration_operation_mode = bmi270.ACCELERATOR_ENABLED

while True:
    for acceleration_operation_mode in bmi270.acceleration_operation_mode_values:
        print(
            "Current Acceleration operation mode setting: ",
            bmi.acceleration_operation_mode,
        )
        for _ in range(10):
            accx, accy, accz = bmi.acceleration
            print("x:{:.2f}m/s2, y:{:.2f}m/s2, z:{:.2f}m/s2".format(accx, accy, accz))
            print()
            time.sleep(0.5)
        bmi.acceleration_operation_mode = acceleration_operation_mode

Gyro range settings

Example showing the Gyro range setting

examples/bmi270_gyro_range.py
import time
from machine import Pin, I2C
from micropython_bmi270 import bmi270

i2c = I2C(1, sda=Pin(2), scl=Pin(3))  # Correct I2C pins for RP2040
bmi = bmi270.BMI270(i2c)

bmi.gyro_range = bmi270.GYRO_RANGE_125

while True:
    for gyro_range in bmi270.gyro_range_values:
        print("Current Gyro range setting: ", bmi.gyro_range)
        for _ in range(10):
            gyrox, gyroy, gyroz = bmi.gyro
            print("x:{:.2f}°/s, y:{:.2f}°/s, z:{:.2f}°/s".format(gyrox, gyroy, gyroz))
            print()
            time.sleep(0.5)
        bmi.gyro_range = gyro_range