* It seems to have worked so far (only one of the sensors in a separate thread, but more should just mean more cloning of the `Arc`). In my main function, I did the following: ```rust // Init ESP I2C Driver let i2c_driver = I2cDriver::new( peripherals.i2c0, peripherals.pins.gpio32, peripherals.pins.gpio33, &i2c_config, ) .unwrap(); let i2c_mutex: Arc>> = Arc::new(Mutex::new(i2c_driver)); let bsec_i2c = i2c_mutex.clone(); ``` Then I have a function for the thread that starts off as so: ```rust fn bsec_task(i2c_handle: Arc>>) { let i2c_driver = MutexDevice::new(&i2c_handle); let mut bsec = Bsec::new(i2c_driver, 25.0); ``` And everything seems to be working. I knew it was probably super simple and I was doing something wrong (basically I was trying to create the MutexDevice in the main function, not the other threads). Thanks everyone!