Why Connecting Hardware with the Web is So Neat
Eli Fatsi, Former Development Director
While hardware projects alone can stand out, they do so even more when they're connected.
We just wrapped up development on Lightwalk, an interactive art installation living at Abilene Christian University in Abilene, Texas. For a number of reasons, this has been one of the most interesting projects I've ever worked on. There is the obvious wow factor of the installation itself, but we also developed a whole suite of dev tools running behind the scenes that not only keep the installation running, but also enable engagement from ACU students in multiple ways. It's this tie between hardware and software that makes the project truly shine, it's taking art and making it sm-art, it's the internet of things but it's actually interesting, and it's what I'm going to be talking about today.
So what are "dev tools" anyway? Short for "developer tools", the system we built to power the Lightwalk installation provides a couple of critical services:
- Allow students to choose the effects and colors on the installation
- Allow students to create new effects
- Provide health metrics and historical data of devices in the field
Let's take a look at each of these items more closely.
The Power of Interaction
The hardware packed into waterproof boxes buried under the ground offer motion detection as one layer of interaction. If motion is detected anywhere along the path, the entire installation knows about it. What it does with that information however, is up to the students. There is a list of effects that students can choose from, and options for customization within each effect.
So if you're Joe Smith walking down the path and want to see your favorite shade of teal following you around, that power is available in your pocket. The microcontrollers running the installation are all produced by Particle, which come with wifi capabilities out of the box. In practice, that means we can take a form submission, serialize it down to a small string of characters, and send it to the installation all within a matter of seconds.
Student engagement was an important aspect of the project, but we didn't want to stop at allowing basic interactions with the installation. For the more programmatically-inclined students at ACU, they have the power to make the installation as cool as their imaginations allow.
The dev tools allow the students to create and modify as many effects as they'd like, assuming they're familiar with C++ (the language running on the field devices). Behind the scenes, the dev tools take those effects and do a handful of things in order to deploy them to the field.
There's an isolated set of firmware code that actually runs on the field devices. The dev tools append all the created effects to that firmware, and write some glue code (yes, code is writing more code) to ensure that the effects fit in nicely and play well with the larger application. In a separate thread, all of the UI data each effect is created with is assembled, and used to generate usable form elements for the public front end.
Thanks again to the wifi capabilities of the Particle microcontrollers, the dev tools also handle mass deployment to the 30+ tiny computers buried underneath the installation. Once a new batch of effects are deployed to the installation, the front end is updated to line up and everything is ready to go.
Metrics and Data
Making pretty lights do fun things is neat, but it is an inevitability that parts of the installation will fail eventually. In order to provide the ACU team with all the tools they need to make things right again, the dev tools provide a nice dashboard displaying the current health status of each device. There are a few diagnostic actions available from the dashboard as well providing the user with in-depth control of the devices from the comfort of their chair.
Since every device is buried below a foot of crushed granite and dirt, the ability to assess problems and send updates remotely is mission critical to the long term success of this project.
That about sums it up. In true indieweb fashion, there are plans in place for building up the dev tools to bigger and better places: full installation simulators, trend analysis on collected data, panini making. But for now, the tooling serves its original purpose in connecting top of the line hardware with cutting edge software that Viget's been fostering for years.