Optimizing Message Parsing in the Depth Controller Web UI

While preparing for the next revision of the Depth Controller firmware, I found that the web interface would start to show significant lag when a large number of zones were changing.  Some profiling narrowed this down to the interface between the depth camera backend (written in C) and the web frontend (written in Ruby):

Solving libfreenect hangs in the Depth Controller - gdb saves the day

This is a technical and lengthy post explaining some of the work involved in the development of the Nitrogen Logic Depth Camera Controller.  You can follow my thought process and progression through the discovery of a bug, investigating its cause, and implementing a solution.  Executive summary: developer places tongue in cheek, heroically overcomes numerous obstacles, uses stress testing and gdb to find the cause of a bug, and ultimately fixes the problem.

The ideal ARM platform

The ideal ARM platform for a next-generation Nitrogen Logic controller would feature a fast CPU, a GPU with included drivers, reliable USB port(s), and gigabit Ethernet, ideally for ~$100 or less.  A GPU would allow implementation of features like data smoothing, rotatable zones, custom shaped zones, and more.

A vision for the future - From Kinect hack to bootstrapped startup

I have a vision for the future.  I have a vision of a world where technology becomes so robust, it disappears into the background.  A world in which automated systems control lights, climate, and media, anticipating your every need, becoming an effortless extension of your mind and body.  I envision a future in which technology respects its users' privacy while providing all the benefits imagined by science fiction writers since Jules Verne.  When the time was right, I embarked on a journey to share this vision with the world.

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.

Curiosity's View of Mars in Pseudocolor 3D

GIMP and I spent a little quality time with the earliest full-size images from the Curiosity rover on Mars (artistic license was taken; this is not how the Martian sky actually looks — I know it's not blue):

View on Mars from Curiosity's Hazcam

To view in 3D, zoom out using your browser's zoom feature, then look through your monitor (not cross-eyed) until the red dots align, or you start to see 3D, sort of like a random dot stereogram.

Documentation for Nitrogen Logic products

I've put some basic public documentation on the Nitrogen Logic web site.  If you have a Nitrogen Logic controller and want to make the most of it, or you'd like to know more about how the controllers work, check it out at nitrogenlogic.com/docs. More stuff may find its way onto the documentation pages in the future.