Skip to content

IR projector does not turn off on exit.  #385

Description

@ofTheo

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_register call in freenect_stop_depth or 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.

Activity

  1. ofTheo commented on Apr 23, 2014

    @ofTheo
    ContributorAuthor

    Hmm if I add:

    write_register(dev, 0x0115, 0x00); // stop depth stream
    write_register(dev, 0x0117, 0x00); // stop depth stream
    

    To 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.

  2. piedar commented on Jul 15, 2014

    @piedar
    Contributor

    Did you find a reliable fix?

  3. ofTheo commented on Jul 15, 2014

    @ofTheo
    ContributorAuthor

    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 )

  4. ofTheo commented on Sep 4, 2014

    @ofTheo
    ContributorAuthor

    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.

  5. ofTheo commented on Sep 5, 2014

    @ofTheo
    ContributorAuthor

    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

  6. added this to the v0.6.0 milestone on Feb 12, 2015
  7. modified the milestones: v0.6.0, v0.6.1 on Nov 22, 2016
  8. sener07 commented on Oct 8, 2017

    @sener07

    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.

  9. piedar commented on Oct 9, 2017

    @piedar
    Contributor

    @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.

  10. sener07 commented on Oct 10, 2017

    @sener07
  11. piedar commented on Oct 10, 2017

    @piedar
    Contributor

    @sener07 Looks like the keepalive workaround is failing due to missing firmware. I'm going to look at improving that situation soon (#408).

  12. sener07 commented on Oct 10, 2017

    @sener07
  13. karthikvishwanath96 commented on Sep 25, 2019

    @karthikvishwanath96

    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.

  14. modified the milestones: v0.6.1, v0.6.2 on Mar 19, 2020
  15. modified the milestones: v0.6.2, v0.6.3 on May 10, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions