Delayed Feedback Makes for Difficult Troubleshooting


Looking at the first download of the washing machine usage data, I have found some problems: three of the five machines showed strange behavior: all hot or cold loads. That’s practically impossible and means something’s wrong.

Goddard Hall

5/11/2011 .. 5/17/2011
































There are several possibilities for things which would cause this kind of problem:

  1. Disconnected wire/broken wire or short
    This is easy to troubleshoot and fix. It is possible something came loose, and it would most handily explain the data error: if the hot wire
  2. Bad flowmeter
    without disconnecting the hose (hard to do), the flowmeter could either have an electrical fault or the meter wheel might not spin. Because I can’t easily run the machines, I can’t see what the problem is so easily. And this a difficult and/or expensive fix–I don’t have too many spares, the meters are $20 apiece, and the replacement requires some help from Hercules or the plumbing shop (due to liability issues).
  3. Hardware fault on the Arduino or Logshield
    I tested all of the Arduino+logshield dataloggers before deployment, and they passed testing for at least 24 hours of continuous use. It is possible that a fault developed, due to electrostatic discharge or other damage, but I think this is somewhat remote.
  4. Bad ground
    all of the flowmeters use a single ground plane—which would appear to work given that the problem is intermittent, but it could bear testing—some of the pins may have better connections than others. I’ll have to think about how to test this properly.
  5. Software fault
    The software should be good, considering the logging systems passed test. But I’ll rewrite the simulator to run through hot, warm, and cold loads to test the discriminator.

Lesson Learned

Building systems which don’t give real-time feedback are a problem (as one would expect) – getting all of the bugs out isn’t as easy as it should be, and this might be harder than it looks to perfect—which is the operative goal.


Datasurfer Surface Plot Tool

Corner View of surface plot


Datasurfer is a four-dimensional surface plot developed in Processing, for Introduction to Computational Media.  Datasurfer takes a two-dimensional spreadsheet (CSV) and translates values into a 3D surface, which can be manipulated by moving the viewpoint, or by shrinking or growing a two-dimensional window (in the case of the NYISO Grid Data, hours of the day/days of the year) of which blocks are plotted.  Moving the viewpoint changes the apparent representation of the data, allowing for a wider set of conclusions to be made–in this case, it is easy to see that there is substantial variation in the load both over the course of the year, and over the course of the day.


The processing sketch is based on a two-dimensional parsing algorithm from Jonathan Cousins and Nick Sears, and adapted with help from Zannah Marsh.  The interface buttons and sliders come from the spectacular plugin set ControlP5, and the 3-D manipulation is provided by PeasyCam (much easier than writing my own manipulation with the Processing Camera commands).  Of course, neither ControlP5 nor PeasyCam are perfect, but they do work quite well.  A special thanks is due to Andreas Schlegel, author of ControlP5, for modifying the library to allow for changing the slider edge width – right when I needed it at the Ebay Design Expo.

At the ITP show, this is being displayed on a giant touchscreen, which is really a lot of fun, but unfortunately is a little hard to manipulate due to being only single-touch.  Multitouch (which everyone loves on tablets, phones, and now laptops) is going to really extend the computing experience, much more than it has already.


As a programmable interface, there is nearly infinite ability for customization of the tool to different datasets–half the work of information visualization is setting up the tool in such a way as to yield valid conclusions and minimize artifacts.  One of the goals of this project is to build a real-time interface for data from a feed, such as a Tweet-A-Watt.

Special Thanks

Thanks to Jonathan Cousins and Nick Sears for a great fall introduction to information visualization and the seed of this project (and the start of the code), Zannah Marsh for the opportunity (need) to develop this for ICM, the Processing community for developing great plugins (ControlP5, PeasyCam), and of course ITP (specifically George Agudow and Red Burns).