Twitterbot, part 0

Many hackerspaces have some form of notification system, allowing members to publicly announce that the space is welcoming guests. These systems take many different forms, but many boil down to one of two types of systems. The first is one with all the bells on, watching the space with motion sensors and people-detectors and automatically alerting interested parties that people are in the space! The other is effectively a simple switch inside the space and some local status indications, plus some simple scripting running on a machine somewhere to post to Twitter, or to update a website, or whatever.

Way, way, way back in the day, when dinosaurs roamed the Earth and i3Detroit still occupied its first home in Royal Oak, MI, we had such a system.

The initial plans for the system were spurred by HacDC’s doorman switch, a PIR motion detector just inside the door which posted periodically when motion was detected in the space. This was useful for members to see if others were around, but not really aimed at getting guests to the space.

i3Detroit decided (in the sense that any do-ocracy decides things: someone proposed the idea, no one objected, and batch scripts ensued) that a voluntary switch with a single-frame image would service two needs: 1) respect privacy (webcams tell the world that $whatsherface is alone in the space…) and 2) offer the world an ever-changing indication that i3Detroit was alive and vibrant.

Affectionately and simply dubbed the Twitterbot (or, for some reason on the wiki, the Welcome Switch), this system consisted of a toggle switch and LED in a 1-gang box. When the switch would change from the “closed” position to the “open” position, the system would post that the space was open to guests to Twitter and our website.

Revision 0 used a D-Link network camera, with an opto-isolated input and a relay output. The switch wired into the input, and the LED was run from the relay output. Every 30 seconds, a batch script running on a machine elsewhere in the universe requested the switch status from the D-Link. If the state had changed to “open”, the script asked the camera to take a picture.

The resulting picture would then be posted to Twitpic, and a message indicating that the space was open for guests would be posted to Twitter and to the website.

If the switch went to the “closed” state, a message was posted to Twitter and the website indicating the space was no longer open to guests.

If either post succeeded, the script then changed the LED state to match the switch state.

This led to a neat cultural thing: Whenever someone (or someones) would open the space for guests, they would tend to pose and make ridiculous faces. Soon, a box of silly hats found its way to the area where the Twitterbot lived, to add further festivity.

Revision 1.4 moved into the space, running a Perl script on an ancient desktop machine running Debian, largely to avoid the whole “HTTP GET requests into the space every 30 seconds” thing.

Revision 1.7 saw Twitter move to OAuth-only login. However, Twitpic still allowed posting using basic authentication, so the system posted a “closed” picture as well.

The system then lost the camera, as its owner wanted it back. The switch and LED were then wired up to an RS-485-connected IO expander. The IO expander in turn was routed via an RS-485-to-RS-232 adapter and an RS-232-to-USB adapter to the Debian box.

Twitpic then went to OAuth too, and the Twitter announcement itself disappeared. Soon, the poor Twitterbot was reduced to simply updating a WordPress widget, and swung freely from its Cat5 cable, alone among the myriad hardware that festoons the wall near our front door.

Old, sad Twitterbot.

Unloved, and barely used, the Twitterbot languished in silence for months, until one day…

Next time, in part 1 of the Twitterbot saga, we see our fearless adventurers solving problems and designing things, for the good of all mankind!

Or, you know, a showing-off of the redesign of the Twitterbot.

0 replies

Leave a Reply

Want to join the discussion?
Feel free to contribute!

Leave a Reply