diff --git a/src/omv/main.c b/src/omv/main.c index f4f011b4d..c67422507 100644 --- a/src/omv/main.c +++ b/src/omv/main.c @@ -70,6 +70,7 @@ #include "py_lcd.h" #include "py_fir.h" #include "py_tv.h" +#include "py_imu.h" #include "framebuffer.h" @@ -495,6 +496,9 @@ soft_reset: // mounting the file-system to log errors (if any). if (first_soft_reset) { sensor_init_ret = sensor_init(); + #if MICROPY_PY_IMU + if ((!sensor_init_ret) && (sensor_get_id() == OV7690_ID)) py_imu_init(); + #endif // MICROPY_PY_IMU } mod_network_init(); diff --git a/src/omv/py/py_imu.c b/src/omv/py/py_imu.c index 4c945a571..bc5f130a3 100644 --- a/src/omv/py/py_imu.c +++ b/src/omv/py/py_imu.c @@ -275,4 +275,4 @@ float py_imu_pitch_rotation() return py_imu_get_pitch(); } -#endif //MICROPY_PY_IMU +#endif // MICROPY_PY_IMU diff --git a/src/omv/py/py_sensor.c b/src/omv/py/py_sensor.c index 41b998029..8b420f7a1 100644 --- a/src/omv/py/py_sensor.c +++ b/src/omv/py/py_sensor.c @@ -70,7 +70,7 @@ static mp_obj_t py_sensor_snapshot(uint n_args, const mp_obj_t *args, mp_map_t * sensor_set_transpose(true); } } -#endif //MICROPY_PY_IMU +#endif // MICROPY_PY_IMU mp_obj_t image = py_image(0, 0, 0, 0); diff --git a/src/omv/sensor.c b/src/omv/sensor.c index 3ba67367c..4e34e3053 100644 --- a/src/omv/sensor.c +++ b/src/omv/sensor.c @@ -433,7 +433,11 @@ int sensor_reset() sensor.hmirror = false; sensor.vflip = false; sensor.transpose = false; + #if MICROPY_PY_IMU + sensor.auto_rotation = sensor.chip_id == OV7690_ID; + #else sensor.auto_rotation = false; + #endif // MICROPY_PY_IMU sensor.vsync_gpio = NULL; // Reset default color palette.