Simple test

Ensure your device works with this simple test.

examples/bmm150_simpletest.py
import time
from machine import Pin, I2C
from micropython_bmm150 import bmm150

i2c = I2C(1, sda=Pin(2), scl=Pin(3))  # Correct I2C pins for RP2040
bmm = bmm150.BMM150(i2c)

while True:
    magx, magy, magz, _ = bmm.measurements
    print(f"x: {magx}uT, y: {magy}uT, z:{magz}uT")
    print()
    time.sleep(0.5)

Interrupt mode settings

Example showing the Interrupt mode setting

examples/bmm150_interrupt_mode.py
import time
from machine import Pin, I2C
from micropython_bmm150 import bmm150

i2c = I2C(1, sda=Pin(2), scl=Pin(3))  # Correct I2C pins for RP2040
bmm = bmm150.BMM150(i2c)

bmm.interrupt_mode = bmm150.INT_ENABLED
bmm.high_threshold = 100

while True:
    magx, magy, magz, _ = bmm.measurements
    print(f"x: {magx}uT, y: {magy}uT, z:{magz}uT")
    print(bmm.status_interrupt)
    print()
    time.sleep(0.5)

Interrupt mode settings

Example showing the Interrupt mode setting

examples/bmm150_interrupt_mode.py
import time
from machine import Pin, I2C
from micropython_bmm150 import bmm150

i2c = I2C(1, sda=Pin(2), scl=Pin(3))  # Correct I2C pins for RP2040
bmm = bmm150.BMM150(i2c)

bmm.interrupt_mode = bmm150.INT_ENABLED
bmm.high_threshold = 100

while True:
    magx, magy, magz, _ = bmm.measurements
    print(f"x: {magx}uT, y: {magy}uT, z:{magz}uT")
    print(bmm.status_interrupt)
    print()
    time.sleep(0.5)

Data rate settings

Example showing the Data rate setting

examples/bmm150_data_rate.py
import time
from machine import Pin, I2C
from micropython_bmm150 import bmm150

i2c = I2C(1, sda=Pin(2), scl=Pin(3))  # Correct I2C pins for RP2040
bmm = bmm150.BMM150(i2c)

bmm.data_rate = bmm150.RATE_2HZ

while True:
    for data_rate in bmm150.data_rate_values:
        print("Current Data rate setting: ", bmm.data_rate)
        for _ in range(10):
            magx, magy, magz = bmm.magnetic
            print("x:{:.2f}T, y:{:.2f}T, z:{:.2f}T".format(magx, magy, magz))
            print()
            time.sleep(0.5)
        bmm.data_rate = data_rate