Simple test

Ensure your device works with this simple test.

examples/icg20660_simpletest.py
import time
from machine import Pin, I2C
from micropython_icg20660 import icg20660

i2c = I2C(1, sda=Pin(2), scl=Pin(3))  # Correct I2C pins for RP2040
icg = icg20660.ICG20660(i2c)

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

Gyro dlpf mode settings

Example showing the Gyro dlpf mode setting

examples/icg20660_gyro_dlpf_mode.py
import time
from machine import Pin, I2C
from micropython_icg20660 import icg20660

i2c = I2C(1, sda=Pin(2), scl=Pin(3))  # Correct I2C pins for RP2040
icg = icg20660.ICG20660(i2c)

icg.gyro_dlpf_mode = icg20660.GYRO_DLPF_ENABLED

while True:
    for gyro_dlpf_mode in icg20660.gyro_dlpf_mode_values:
        print("Current Gyro dlpf mode setting: ", icg.gyro_dlpf_mode)
        for _ in range(10):
            gyrox, gyroy, gyroz = icg.gyro
            print(f"x:{gyrox:.2f}°/s, y:{gyroy:.2f}°/s, z{gyroz:.2f}°/s")
            print()
            time.sleep(0.5)
        icg.gyro_dlpf_mode = gyro_dlpf_mode

Dlpf configuration settings

Example showing the Dlpf configuration setting

examples/icg20660_dlpf_configuration.py
import time
from machine import Pin, I2C
from micropython_icg20660 import icg20660

i2c = I2C(1, sda=Pin(2), scl=Pin(3))  # Correct I2C pins for RP2040
icg = icg20660.ICG20660(i2c)

icg.gyro_dlpf_mode = icg20660.GYRO_DLPF_ENABLED
icg.gyro_dlpf_configuration = icg20660.DLPF_CFG_0

while True:
    for dlpf_configuration in icg20660.gyro_dlpf_configuration_values:
        print("Current Dlpf configuration setting: ", icg.dlpf_configuration)
        for _ in range(10):
            gyrox, gyroy, gyroz = icg.gyro
            print(f"x:{gyrox:.2f}°/s, y:{gyroy:.2f}°/s, z{gyroz:.2f}°/s")
            print()
            time.sleep(0.5)
        icg.gyro_dlpf_configuration = dlpf_configuration

Gyro full scale settings

Example showing the Gyro full scale setting

examples/icg20660_gyro_full_scale.py
import time
from machine import Pin, I2C
from micropython_icg20660 import icg20660

i2c = I2C(1, sda=Pin(2), scl=Pin(3))  # Correct I2C pins for RP2040
icg = icg20660.ICG20660(i2c)

icg.gyro_full_scale = icg20660.FS_125_DPS

while True:
    for gyro_full_scale in icg20660.gyro_full_scale_values:
        print("Current Gyro full scale setting: ", icg.gyro_full_scale)
        for _ in range(10):
            gyrox, gyroy, gyroz = icg.gyro
            print(f"x:{gyrox:.2f}°/s, y:{gyroy:.2f}°/s, z{gyroz:.2f}°/s")
            print()
            time.sleep(0.5)
        icg.gyro_full_scale = gyro_full_scale

Acceleration range settings

Example showing the Acceleration range setting

examples/icg20660_acceleration_range.py
import time
from machine import Pin, I2C
from micropython_icg20660 import icg20660

i2c = I2C(1, sda=Pin(2), scl=Pin(3))  # Correct I2C pins for RP2040
icg = icg20660.ICG20660(i2c)

icg.acceleration_range = icg20660.RANGE_8G

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