Simple test

Ensure your device works with this simple test.

examples/mmc5983_simpletest.py
import time
from machine import Pin, I2C
from micropython_mmc5983 import MMC5983

i2c = I2C(1, sda=Pin(2), scl=Pin(3))  # Correct I2C pins for RP2040
mmc = MMC5983(i2c)

while True:
    magx, magy, magz = mmc.magnetic
    print(f"X: {magx:.2f}uT, Y: {magy:.2f}uT, Z: {magz:.2f}uT")
    time.sleep(0.5)
    temp = mmc.temperature
    print(f"Temperature {temp:.1f}°C")
    print()
    time.sleep(0.5)

Operation mode settings

Example showing the Operation mode setting

examples/mmc5983_operation_mode.py
import time
from machine import Pin, I2C
from micropython_mmc5983 import mmc5983

i2c = I2C(1, sda=Pin(2), scl=Pin(3))  # Correct I2C pins for RP2040
mmc = mmc5983.MMC5983(i2c)

mmc.operation_mode = mmc5983.CONTINUOUS

while True:
    for operation_mode in mmc5983.operation_mode_values:
        print("Current Operation mode setting: ", mmc.operation_mode)
        for _ in range(10):
            magx, magy, magz = mmc.magnetic
            print(f"X: {magx:.2f}uT, Y: {magy:.2f}uT, Z: {magz:.2f}uT")
            print()
            time.sleep(0.5)
        mmc.operation_mode = operation_mode

Continuous mode frequency settings

Example showing the Continuous mode frequency setting

examples/mmc5983_continuous_mode_frequency.py
import time
from machine import Pin, I2C
from micropython_mmc5983 import mmc5983

i2c = I2C(1, sda=Pin(2), scl=Pin(3))  # Correct I2C pins for RP2040
mmc = mmc5983.MMC5983(i2c)

mmc.continuous_mode_frequency = mmc5983.CM_20HZ

while True:
    for continuous_mode_frequency in mmc5983.continuous_mode_frequency_values:
        print(
            "Current Continuous mode frequency setting: ", mmc.continuous_mode_frequency
        )
        for _ in range(5):
            magx, magy, magz = mmc.magnetic
            print(f"X: {magx:.2f}uT, Y: {magy:.2f}uT, Z: {magz:.2f}uT")
            time.sleep(0.5)
        mmc.continuous_mode_frequency = continuous_mode_frequency

Continuous mode frequency settings

Example showing the Continuous mode frequency setting

examples/mmc5983_continuous_mode_frequency.py
import time
from machine import Pin, I2C
from micropython_mmc5983 import mmc5983

i2c = I2C(1, sda=Pin(2), scl=Pin(3))  # Correct I2C pins for RP2040
mmc = mmc5983.MMC5983(i2c)

mmc.continuous_mode_frequency = mmc5983.CM_20HZ

while True:
    for continuous_mode_frequency in mmc5983.continuous_mode_frequency_values:
        print(
            "Current Continuous mode frequency setting: ", mmc.continuous_mode_frequency
        )
        for _ in range(5):
            magx, magy, magz = mmc.magnetic
            print(f"X: {magx:.2f}uT, Y: {magy:.2f}uT, Z: {magz:.2f}uT")
            time.sleep(0.5)
        mmc.continuous_mode_frequency = continuous_mode_frequency

Bandwidth settings

Example showing the Bandwidth setting

examples/mmc5983_bandwidth.py
import time
from machine import Pin, I2C
from micropython_mmc5983 import mmc5983

i2c = I2C(1, sda=Pin(2), scl=Pin(3))  # Correct I2C pins for RP2040
mmc = mmc5983.MMC5983(i2c)

mmc.bandwidth = mmc5983.BW_400HZ

while True:
    for bandwidth in mmc5983.bandwidth_values:
        print("Current Bandwidth setting: ", mmc.bandwidth)
        for _ in range(10):
            magx, magy, magz = mmc.magnetic
            print(f"X: {magx:.2f}uT, Y: {magy:.2f}uT, Z: {magz:.2f}uT")
            print()
            time.sleep(0.5)
        mmc.bandwidth = bandwidth