Color camera support, ambient light detection added to Depth Camera Controller

Hello everyone!  I've added full-color video image support to the Nitrogen Logic Depth Camera Controller firmware, as well as ambient light detection within zones.  The controller's web interface now includes a Video tab, with ~2fps color video from the camera (browsers that lack WebGL support will show a black-and-white Bayer-encoded image).  So far, ambient light support is only available through the text-based interface on TCP/IP port 14308.

Video support has been a long time coming, mostly due to potential privacy concerns.  To help mitigate privacy issues, this firmware version makes use of the Kinect camera's LED to indicate whether images are being captured.  If the LED is green, the system is in standard control mode.  If the LED is yellow or red, depth or video images are being accessed, either through the web interface on port 8089 or through the low-level backend on port 14308.  If this is insufficient, future versions may add access control.

Support for ambient light sensing in the Automation Controller and xAP interfaces is on the way.  Existing customers should contact Nitrogen Logic to receive this firmware update.

Finally, I will be announcing an important change to the Nitrogen Logic product lineup in the near future.


new in build 20

  • Video image support:
    • Ability to retrieve raw Bayer images from the controller backend on port 14308.
      help
      ...
      getbright - Asynchronously returns the approximate brightness within each zone.
      getvideo - Grabs a single video image.
      ...
    • Ability to retrieve PNG-compressed Bayer images from the web interface on port 8089, at [controller-name.local]/video.png.
    • Ability to view full-color, demosaiced images in the Video tab of the web interface (browsers that do not support WebGL will see the raw Bayer image).
  • Ambient light sensing:
    • Non-photometric brightness for each zone is available from the controller backend on port 14308.

      Example with lights off:
      getbright
      OK - Requested brightness for each zone
      BRIGHT - bright=4 name="Captains_Chair"
      BRIGHT - bright=3 name="Projector"
      BRIGHT - bright=4 name="Office_Door"
      BRIGHT - bright=4 name="Theater"
      BRIGHT - bright=4 name="Theater2"
      BRIGHT - bright=4 name="Theater3"
      BRIGHT - bright=5 name="Stairs"
      BRIGHT - bright=4 name="Laundry"
      BRIGHT - bright=4 name="Touchscreen"
      BRIGHT - bright=4 name="Theater_Bright"
      BRIGHT - bright=4 name="xAP_Stress"
      BRIGHT - bright=3 name="Lightbright"
      Example with lights on:
      getbright
      OK - Requested brightness for each zone
      BRIGHT - bright=398 name="Captains_Chair"
      BRIGHT - bright=378 name="Projector"
      BRIGHT - bright=557 name="Office_Door"
      BRIGHT - bright=420 name="Theater"
      BRIGHT - bright=400 name="Theater2"
      BRIGHT - bright=240 name="Theater3"
      BRIGHT - bright=240 name="Stairs"
      BRIGHT - bright=221 name="Laundry"
      BRIGHT - bright=392 name="Touchscreen"
      BRIGHT - bright=480 name="Theater_Bright"
      BRIGHT - bright=376 name="xAP_Stress"
      BRIGHT - bright=643 name="Lightbright"
  • Kinect LED indicates image capture mode:
    • Green indicates normal zone detection mode.
    • Yellow indicates depth images are being accessed.
    • Red indicates video images are being accessed.