Repository navigation
IR projector does not turn off on exit. #385
Description
Activity
Hmm if I add:
write_register(dev, 0x0115, 0x00); // stop depth stream write_register(dev, 0x0117, 0x00); // stop depth streamTo
freenect_stop_depth(freenect_device *dev)The IR projector turns off and works as expected.
However I can't get the depth stream to start on next launch without unplugging the device.I tried setting the two registers back to their default values - but this doesn't seem to make a difference.
Did you find a reliable fix?
nothing usable yet!
I am able to turn it off, but the register does much more harm than good ( need to power cycle kinect to get it to respond to commands after that )pinging @zarvox - do you happen to have a log of K4W shutdown?
I think we probably just need an extra write_register call to get the IR projector to turn off.Okay, things I have noticed so far.
- tilting the device programmatically disables programatic control of the IR projector
- the IR projector works fine for turning on and off even with audio firmware being uploaded, but we lose control as soon as the first call to freenect_set_tilt_degs_alt happens in tilt.c
- the command to start and stop the depth stream, still works but the projector stays on ( i.e.: the depth steam stops coming in but the projector stays on ). When the device has not been tilted, the projector is coupled to the start/stop depth steam calls.
- reading the camera register values shows no difference in values between audio fw upload and no upload, tilting and no tilting, startup and shutdown. This implies that the call to tilt the device is not disabling the projector control via a register value.
- so if a value is being changed it would probably be in the audio device
- the current libfreenect is not able to read/write register values to the audio device so I can't currently tell if any values are changing.
what would be really helpful to figuring this issue out is either
- the ability to read the audio device registry
- a dump of the K4W shutdown process, where they must be sending some command to turn off the IR projector
ping @zarvox @piedar @JoshBlake
Hi, i am trying to use kinect model 1517 but i am having some problems, can i ask you which steps did you followed installing kinect ? Also my error is may be you know something.
$ freenect-glview
Kinect camera test
Number of devices found: 1
Found sibling device [same parent]
Failed to set the LED of K4W or 1473 device: -1
Found sibling device [same parent]
Could not open device: -1
Could not open device
Thank you.@sener07
freenect-glviewdemands the MOTOR device, which needs AUDIO on that model. Audio is a pain to make work; if you don't need it tryfreenect-camtestinstead and use only CAMERA in your own program.- Yes i dont need an audio on my project but i tried your suggest but still not working $ freenect-camtest gives me this output Found sibling device [same parent] Failed to set the LED of K4W or 1473 device: -1 [Stream 70] Negotiated packet size 1920 Failed to submit isochronous transfer 0: -1 Failed to submit isochronous transfer 1: -1 Failed to submit isochronous transfer 2: -1 Failed to submit isochronous transfer 3: -1 Failed to submit isochronous transfer 4: -1 Failed to submit isochronous transfer 5: -1 Failed to submit isochronous transfer 6: -1 Failed to submit isochronous transfer 7: -1 Failed to submit isochronous transfer 8: -1 Failed to submit isochronous transfer 9: -1 Failed to submit isochronous transfer 10: -1 Failed to submit isochronous transfer 11: -1 Failed to submit isochronous transfer 12: -1 Failed to submit isochronous transfer 13: -1 Failed to submit isochronous transfer 14: -1 Failed to submit isochronous transfer 15: -1 write_register: 0x0105 <= 0x00 write_register: 0x0006 <= 0x00 write_register: 0x0012 <= 0x03 write_register: 0x0013 <= 0x01 write_register: 0x0014 <= 0x1e write_register: 0x0006 <= 0x02 write_register: 0x0017 <= 0x00 [Stream 80] Negotiated packet size 1920 Failed to submit isochronous transfer 0: -1 Failed to submit isochronous transfer 1: -1 Failed to submit isochronous transfer 2: -1 Failed to submit isochronous transfer 3: -1 Failed to submit isochronous transfer 4: -1 Failed to submit isochronous transfer 5: -1 Failed to submit isochronous transfer 6: -1 Failed to submit isochronous transfer 7: -1 Failed to submit isochronous transfer 8: -1 Failed to submit isochronous transfer 9: -1 Failed to submit isochronous transfer 10: -1 Failed to submit isochronous transfer 11: -1 Failed to submit isochronous transfer 12: -1 Failed to submit isochronous transfer 13: -1 Failed to submit isochronous transfer 14: -1 Failed to submit isochronous transfer 15: -1 write_register: 0x000c <= 0x00 write_register: 0x000d <= 0x01 write_register: 0x000e <= 0x1e write_register: 0x0005 <= 0x01 write_register: 0x0047 <= 0x00 9 Eki 2017 Pzt, saat 17:27 tarihinde piedar <notifications@github.com> şunu yazdı:…@sener07 <https://github.com/sener07> freenect-glview demands the MOTOR device, which needs AUDIO on that model. Audio is a pain to make work; if you don't need it try freenect-camtest instead and use only CAMERA in your own program. — You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub <#385 (comment)>, or mute the thread <https://github.com/notifications/unsubscribe-auth/AZC_e6Y45CBo0bgZ7vkvNZhiVw8IhZK3ks5sqi0-gaJpZM4B08N1> .
- Thank you very much, and i am also have the model 1517 maybe the problem is because of the model but i didnt find a version for this model 11 Eki 2017 Çar, saat 01:17 tarihinde piedar <notifications@github.com> şunu yazdı:…@sener07 <https://github.com/sener07> Looks like the keepalive workaround is failing due to missing firmware. I'm going to look at improving that situation soon (#408 <#408>). — You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub <#385 (comment)>, or mute the thread <https://github.com/notifications/unsubscribe-auth/AZC_eweCiesZlViofL5LcciZ8Kr9uqd5ks5sq-z1gaJpZM4B08N1> .
I know it's been a while since this issue was opened and active. But gonna give it a shot because it's partially related. Currently I have a Kinect model 1414, and I want to switch on and switch off the IR projector completely in a reasonably fast pace. But for now, just switching it on and off is my goal. The reason behind is that I have another IR projector of different wavelength and I don't want that to be interfered with. So is there any way I can switch off and on the IR projector only? Any sort of help would be heavily appreciated. @piedar @ofTheo
EDIT: It would be helpful, if by any chance, you could tell me how to call or pass the commands to control the projector.
This is specifically for the Kinect 1473 and K4W device.
Pinging @zarvox as he figured out the motor control for these devices.
If you tilt the device at any point while it is running on exit the IR projector does not turn off.
I think this is related to a 'feature' of the newer Kinects where the IR projector turns off temporarily while the device is tilting. When the device has got to its tilt angle the projector turns back on.
I have no idea why the newer Kinects turn off the projector while tilting but this is how it behaves with the K4W tools / SDK and I have seen it described by MSFT devs as intended behavior ( see: http://social.msdn.microsoft.com/Forums/en-US/47a87396-3740-4037-93e9-cb3cf65fbeef/depth-camera-not-responding-when-i-tilt-the-motor-in-kinectfusion-sample?forum=kinectsdknuiapi )
Anyway my theory is that once you tilt the Kinect the audio device takes control of the IR projector so that on exit stopping the depth stream does not also stop the IR projector.
I have confirmed this hunch by calling freenect_stop_depth while the app is running. If the device has not been tilted the depth image stops coming in and the projector turns off, however if it has been tilted the depth image stops but the projector stays on.
My guess is that we might either need an additional
write_registercall infreenect_stop_depthor send some sort of command to the audio device to get it to turn off the projector.A usb log of a K4W shutdown could be useful in that regard.