My concern is the question whether the sensor is connected through a bus structure (similar to a PCIe crossbar type switch chip) that if one devices is reset some developers take the short cut by resetting the switch chip instead of resetting individual ports. I have been in those trenches with PCIe extenders and their switches and it impacts any activities on the bus resulting in uncontrolled device timeouts. Most developers will not go to the trouble of implementing downstream logic to do device port specific resets in favour. of a simpler switch reset. In the case of a switch reset you must also have implemented the recovery of each device connected through the crossbar to make sure the transfer completes. Is there someone who can discuss this design and see if that is truly the way the existing driver(s) have implemented their operation? I have included the storage structure dump for the Sensors to give an idea what I am talking about. It appears the queues for the sensors are attached through chip that functions as a switch node for multiple devices downstream from the node. _session ARSession? 0x000000010a3071f0 _imageSensor id 0x0 0x0000000000000000 [0] id _locationSensor ARRemoteLocationSensor? 0x0000000303d18d20 baseARRemoteSensor@0 ARRemoteSensor baseNSObject@0 NSObject _serverConnection ARServerConnection? 0x00000003026ff940 _serviceProxy id 0x0 0x0000000000000000 _running bool false _delegate id 0x0 0x0000000000000000 _replaySensor id 0x0 0x0000000000000000 _availableSensors __NSArrayM * 4 elements 0x0000000303f9b210 [0] ARParentImageSensor? 0x00000003018c9880 baseNSObject@0 NSObject _bufferPopulationMonitor id 0x0 0x0000000000000000 _captureQueue OS_dispatch_queue_serial? 0x0000000301de7900 _captureSessionNotificationsQueue OS_dispatch_queue_serial? 0x0000000301de5f80 _recordingMode bool false _running bool true _interrupted bool false _unrecoverable bool false _settings ARParentImageSensorSettings? 0x0000000303718460 _sensors __NSArrayM * @"4 elements" 0x0000000303d61b00 _delegate ARSession? 0x000000010a3071f0 _powerUsage unsigned long long 0 _captureSession AVCaptureMultiCamSession? 0x0000000303261460 _audioInput id 0x0 0x0000000000000000 _audioOutput id 0x0 0x0000000000000000 _audioConnection id 0x0 0x0000000000000000 [1] ARMotionSensor? 0x00000003026ff980 baseNSObject@0 NSObject _motionManager CMMotionManager? 0x00000003030f6fa0 _currentGyroData ARGyroscopeData? 0x0000000303d1aca0 _currentAccelerometerData ARAccelerometerData? 0x0000000303d1b330 _currentMagnetometerData id 0x0 0x0000000000000000 _requestMagnetometerData bool false _delegate ARSession? 0x000000010a3071f0 _interval double 0.01 [2] ARDeviceOrientationSensor? 0x00000003026ffa00 baseNSObject@0 NSObject _motionManager CMMotionManager? 0x00000003030f6fa0 _taskDeviceMotion OperationQueue? 0x0000000103f112f0 _previousCaptureEndingTimestamp double 164380.42998462502 _delegate ARSession? 0x000000010a3071f0 _worldAlignment long long 0 _interval double 0.01 [3] ARRemoteLocationSensor? 0x0000000303d18d20 baseARRemoteSensor@0 ARRemoteSensor baseNSObject@0 NSObject _serverConnection ARServerConnection? 0x00000003026ff940 _serviceProxy id 0x0 0x0000000000000000 _running bool false _delegate id 0x0 0x0000000000000000 _runningSensors unsigned long long 63 _pausedSensors unsigned long long 05