Saturday, January 25, 2014

The Roommate Antipattern

(editor's note: this is an old post that was in my drafts folder that I only published now. That is why it appears like I don't know how to do math if you consider the dates versus the sine curve.)

Mitch Altman, the inventor of TV-B-Gone and a person some refer to as 'the Johnny Appleseed of the hackerspace movement' gave a talk at the 24th Chaos Communication Conference about 'hackerspace patterns'. It's a helpful lessons-learned guide for groups wanting to take the plunge and start their own.

There are a couple of worrisome cautionary patterns in the list. One that stands out is 'The Sine Curve Pattern':

Peak enthusiasm at a hackerspace has the form of a sine curve with a cycle duration of four years. Keep the hackerspace running, even if the feel-good-factor is temporarily on holidays. Chances are your space will be awesome again in two years. Don’t give up! Maybe an exciting new member will knock on your door tomorrow.

Having started in 2009 (official in 2010, but still) this put us in the trough of the pattern, at 3/2*PI. Over the summer things were pretty slow and admittedly I got kind of worried, but then I remembered that because it was summer a sizable part of the population of our college town was gone. Many people were off on vacations, too. By Fall we were back to having workshops and events and I'd be trying to simultaneously listen to 3 or 4 conversations at once at Public Meetings on Wednesdays again. We did experience some challenges, but things are definitely headed back up now (in accordance with the wisdom of Altman). Still, let's talk about it.

First, we had a new member join in the winter. He was a pretty interesting guy who talked about possibly hosting a glass-blowing workshop. Generally, he seemed like a cool guy and people enjoyed talking to him. He was an artistic type, which I particularly liked as I am very big on the intersection of art and technology. However, we were to find out it would be more accurate to say he presented himself as an artistic type. Those of us who kind of idealize artists at times are prone to making these kinds of identification errors. That was not really the problem, though. We want to be a welcoming environment and there's a social element to the place for sure, and it is true that a bullshitter can be fun to be around if he is an entertaining bullshitter. The problem can, as it turns out, be found in Altman's Design Patterns. This one is the Roommate Anti-Pattern.

You need a space for meetings and as a lab, to store and work on materials for projects. In order to minimize rent or out of sympathy, you think it’s great when someone lives in your space. But somehow it doesn’t work, as you cannot use the lab anymore.

We had actually anticipated this, and one of our few rules is 'don't live at the space' (the others are 'don't be on fire' and 'be excellent to each other'). So this doesn't quite fit the pattern, because nobody thought, 'this is great'. This didn't happen overnight. Gradually we noticed the individual increasingly settling in. He would emerge from the shower in the middle of a C Programming class. He would watch youTube videos and grumble when people were having a workshop. His RV was parked at the space around the clock (irritating both our landlord and our neighbors). One morning I stopped by and noticed an extension cord running out our back door and into the door of his RV. Utility bills went up. Way up. As far as anyone could tell, most of what was happening was beer was being drunk and TV was being watched (TV! What would Mitch do?) It was not an incubator of great works of art.

We discussed this with him a couple of times, but it got to the point where we were just going to have to go our separate ways. This was problematic in part because with a consensus organization, you can never get a consensus to kick a person out. There was much discussion within the group, and there was unanimous (-1) support for the idea that we needed to part ways. We decided on a rule to vote to put a person on probation, followed by a vote a month later on whether to keep the member.

As sometimes happens with these kinds of things, I think eventually the message got through that membership is not free rent. This guy's behavior fell well outside of 'being excellent to each other', and for a month or so there was some tension as we tried to sort out what to do. Eventually the individual came to agree that the situation wasn't working out and that his behavior was not what our space is about, and more importantly I think he realized we weren't really buying his bullshit anymore, and he left. It was not a happy series of events, but in the end we had gotten out of the Roommate Anti-Pattern, and everyone (-1) seemed to think things were handled well. We overcame it and moved on.

Back in Action with Beagle Bone Black Experiments

Hey Folks, I have been away a long time. I once read advice about writing a letter, and the first thing the guy said was 'never start by apologizing for not writing'. So, no apologies for not writing. Instead, thanks for stopping by.

As we may or may not know, I am active with Bloomington, IN's hackerspace, Bloominglabs. I handle the social media and promotional stuff and am on the board. Sometimes I even hack or make things.

Recently we started a hackable thermostat project. We got the 'minimally viable' bit up and running, so for example if we have a meeting at 7, I remotely kick the heat on at 6. Also I can see what the temperature is remotely.

We experienced some heartache recently, however, when it got below zero and we forgot to think about the fact that the laser cutter has an exhaust running directly outside, letting the cold air into the laser cutter, far from the temperature sensor I installed, freezing the water used to cool it, breaking the tube. As LaserDan put it, we learned nothing from the destruction of the first Death Star.

So anyhow, back to the thermostat. Right now it's an Arduino with an Ethernet shield. We ran the cable across the space, so it's pretty awkward. Also the Arduino has pretty limited power, so we decided we are going to run things on the Beagle Bone Black.

So far, so good. I have various sensors running in my house including temperature. I tried using the DHT22, however the code I found SUUUUUUCCCKKKKKKEEEDDDD, the reason being the timing was way off. On our friendly Arduino, we can be assured, especially if we turn off interrupts (as is done in the handy library from the adafruit people) that our program is the only one running. On the BeagleBoneBlack with Ubuntu, no such luck. Some people claimed to get it to work, but nobody was happy with it. I got it to give me readings, but with more errors than good readings.

Now I could have gone down this rabbit hole forever, but as luck had it I also had a ds18b20 with the one wire protocol. This was (relatively) easy to set up, and way more reliable, as detailed here. Sometimes you just have to let go and move on.

I'll try to post more frequently on here about my experiments, Beagle Bone Black and otherwise, especially about things I get stuck on and then solve. Hopefully somebody else will benefit. But if life takes me elsewhere and I don't post as much, well, no regrets and I'm not sorry.

(I think I've covered myself from the sad 'HEY I'LL POST A BUNCH MORE' blog that hasn't had a new post for 10 years now.)

Friday, February 3, 2012

The Sheeva Plug and tiny computers in general

Ever since Bloominglabs hackerspace actually became a space in the physical sense, we wanted to put together an RFID access system for our space. After some experimentation and false starts, we came across 23b Shop’s open-access-control system, which essentially is the largest Arduino shield you’ve ever seen. It handles such matters as storing user tags in EEPROM, unlocking electric strikes via relays, and a bunch of other stuff. In the Open Source sense, it does what it does out of the box, plus it does anything you decide to add to it, should you follow the advice of American poet laureate Henry Rollins - ‘Don’t think about it, do it!’

Among other things, visits (and alarms and sensors being set off) are logged to the serial port. So if you connect it to a server via a USB cable, you can do all sorts of things with this info. In arclight of 23b Shop’s case, he used a very small, low power (5W) ‘plug computer’ called the SheevaPlug as a server, installed ArmedSlack on it, and set up some scripts to mail people when somebody is at the space (or an alarm goes off).

As an Arduino fan I like really small computers, and I generally like things that provide ‘the right amount of power for the job’. For example, I think it’s dopey to drive a Hummer not only because it’s a stupid car that wastes gas and generally stinks up the place with pollution, but also because from an engineering standpoint, using all that gas to move a 200 pound individual from point a to point b seems like the stupidest and least elegant fucking thing ever. Sorry for the language.

So I ordered a SheevaPlug from Globalscale technologies for $99 (the low price is another thing I liked), and not long after that it arrived. I immediately was a bit disappointed that it came with Jaunty Jackalope, so any attempts to install anything or update anything were for naught, because Jaunty Jackalope is no longer supported. I’m not sure why they felt like this was the thing to do. It was pretty clear now why arclight had installed another distribution.

I ended up going with Debian instead of ArmedSlack, because I like Debian and it seemed like the thing to do. It ended up being a good choice in part because I used this guide, and the guy (Martin) who wrote it was extremely responsive and helpful with some questions I had about the process. I created a filesystem and installed Debian on an 8GB SD card, and I was on my way, or so I thought. After a couple of days, the thing just died. A bit of forum searching turned up some frustration people had involving the power supply, including some not very flattering critiques of the soldering technique of the manufacturers. I returned the Plug asking for a replacement, and after a somewhat frustrating couple of weeks, I received my repaired SheevaPlug, with Jaunty Jackalope helpfully installed.

This was a couple of months ago. While I was waiting for my SheevaPlug to be fixed, we set up a server running Fedora in what we’ve decided is the server room at Bloominglabs. Since the RFID system sits on top of the rack the server is housed in, we set up the monitoring system on that server, along with a bot in our irc channel that helpfully welcomes people with small talk about ‘that local sports team’ and so on.

I ended up using the Sheeva plug for some experiments w/ sending info from sensors to Pachube. It’s been running fine for over a month now, and it’s nice to have a server I can leave running around the clock that doesn’t use much power or make annoying fan noises. I do have a problem where when I reboot, it doesn’t always recognize the SD Card, but for now I’ve attributed that to a crummy SD card and moved on. The Sheeva plug is worth checking out if you want to see what plug computing is about. Needless to say my experience was not optimal, but to their credit GlobalScale sorted out my problem with minimal fuss or hassle.

By the way, if you haven’t heard about it, the Raspberry Pi project is in a similar vein and looks VERY interesting. It’s an ARM/Linux box for $25! My initial feeling is that although they’ve already started manufacturing them, it will be very hard to get a hold of one for some time, but this is one of those things I’d be happy to be wrong about.

Saturday, December 31, 2011

Bloominglabs 2011 in review, Part II


We were involved in a couple of other events the past year in addition to the Workshops I mentioned last time and our Open House. The big ones being another BugBot workshop at Wonderlab, the 4th of July parade, and the Indy Mini Maker Faire.

Bugbots at Wonderlab

The Bugbot workshop was a bit of a step up for us. Our previous workshop was part of the Metal Mayhem Robot Day, but this one the workshop was the main event at Wonderlab, one of our favorite Bloomington institutions and one we look up to as a big success story in going from an idea to a very real and very cool place. Several people and their kids came out for this, and we had some valuable help from Wonderlab people in addition to the Bloominglabs members that came out for it. Many bugbots were built, and then when head to head (kind of) in the Bugbot arena. I've done this workshop a few times and am still impressed by how something so simple manages to navigate around and keep going for so long with obstacles and other bots in its way.

4th Of July Parade

This one was a bit funny, as while we were smart enough to start pretty early brainstorming for it (months ahead), we kind of fell short of our grand vision when the day rolled around. There were plans including a 'human bugbot', an infrared LED sign that could only be seen thru a digital camera (you can see how this would work using a TV remote), and a circuit bent band. Some of these grand plans fell victim to proof of concept research (LEDs in full sunlight? Maybe not.), others to the fact that we all have jobs and/or school or what not, or other projects drew us in (about which, more shortly).

Enough suggested projects came through that we went ahead with the float - we had smoke cannons that were suggested and put together by Jenett and some others, Joe brought his guitar he had built himself and played it (alas there was no circuit bent band - the Steel Band behind us didn't know about the bullet they'd dodged there), and we had Twinkie cannons although we were not allowed to use them (the idea at one point made me think of Homer Simpson firing a shotgun outside the bowling alley as a 'promotion', so I wasn't entirely surprised by this). The big project and feature of the float was the Straandbeest. While as is often the case, this proved to be way more complicated than anticipated, I also saw it as a model of future projects I hope to see more of in Bloominglabs' future.

Charlie suggested the idea, and then rather than sit back and congratulate himself on his mental and verbal work and waiting for the project to spontaneously organize and implement itself, he and Ross dug in heavily to researching and prototyping and making the thing happen. Toward the end, some 'build days' were organized where everybody could pitch in, and even if we were just drilling holes or sawing or hammering, the feeling of everybody pitching in to make it happen was a great thing I hope we see more of in 2012. As I said, it turned out to be far more complicated than anticipated, and installing motors and a drive system to make the thing walk around didn't happen in time for the parade, but all the structural parts including the walking motion were in place.

The parade itself was great fun and helped us get the word out to the community that we existed, and in 2012 we'll see if we can pull off something on a grander scale.

Indianapolis Mini-Maker Faire

Indiana is doing well for itself this year in the Maker department. There were two Maker Faires in 2011, this one in Indianapolis, and one in Fort Wayne. Rex had the idea of putting together a Bloominglabs booth at the Indiana Mini-Maker Faire, and more importantly he put considerable effort and energy into making it happen, along with several other members. I kind of lamed out and wasn't part of the booth, but I did make it to the Maker Faire and was quite impressed with the booth and the Faire itself. Rex brought several robots and soldering stations, and showed how he designs and etches circuit boards, and Jay brought many Arduinos and laptops for people to play with. Jonathan helped out all-around as did Rex's son and wife and others.


A hackerspace is nothing without some cool projects. Well, that's not entirely true, it's a fun place to hang out and talk to really interesting people and have beer and pizza, but you can do that at Geek Dinners, too, and hackerspaces are all about doing things. At any given time people are working on individual projects - soldering together and playing with shields and Arduino kits, trying out ideas for bigger projects, and so on, but we do same bigger scale projects, too.

RFID Access System

This project took some time to get fully operational, but it's in place at the new space and is pretty cool. After some initial prototypes that ran into some interference problems, we ended up putting together and installing the Open Access Control kit the good people at Shop 23b have released to the hackerspace world in the open source spirit. Being open source it is nicely hackable and customizable, and I'm working on a database-backed app that lets you manage and track users beyond the RFID tag values (0x324153 for example) stored in the EEPROM. There are also all kinds of cool things you can do with logging and tracking people's comings and goings, you can add sensors and alarms to the board - it's nicely open ended in the 'we can always add another cool thing to it' way of the Open Source and Open Hardware world.

Reverse Geocache

In what was probably not a highlight of 2011 for Bloominglabs, we were approached by the TEDxBloomington people to do a collaboration with the Geocaching community on a Toybox project. Initial enthusiasm about the project kind of ran into reality and some other factors including the fact that people were already pretty into 4th of July projects, the project idea was kind of open ended to the point where we weren't sure if our ideas were really appropriate to the vision of the project, and the fact that for whatever reason, the Bloominglabs and Geocache crews never really gelled, and the always important matter of funding and money.

I did have a couple ideas I got jazzed about and plowed ahead with. One involved labelling Geocache boxes with a phone number or QR code so people could log their visits vocally or by text using the Twilio API. I put the code for the prototype together over a weekend, but at that point things kind of fizzled. I did try the idea with easter eggs I left in the park near our house on Easter, but either my daughter and I did too well hiding the eggs, or people are afraid to call numbers found in eggs left by strangers in the woods, or both. I may try some other variant of this (maybe a proper geocache) in the future.

The other idea was for a Reverse Geocache (trademarked by Mikal Hart). I dug into this and put considerable effort and not inconsiderable money into it (the GPS unit alone was $60). In the end it was successful and I let some people play with it at the Open House (I really need to do a write up on it), but by the end of the project it was so much 'my baby' that I began in engineer fashion thinking of all the things that could go wrong if I released it into the wild (people dropping it, or trying to pry it open and destroying the lock, or other damage intentional or unintentional) and was by the end not about to let it go for the funding that was available at the time. That and none of the other boxes getting fully completed made this less than a high point for the group, but we learned a lot from the experience. I ended up pretty happy w/ the results and the people who've seen it and played with it like it, though.

IR Harp

The IR Harp is an ongoing project led by Jenett. This one's based on a project on the Cornell EE website, and I wrote about it in an earlier post. Ultimately it is to be a part of 'True Dungeon', as an interactive puzzle, and it is a really cool project that's been fun to watch take shape.

A high point of the past year for us was having the 'Rumble Challenge' combo lock picking and drinking game which was part of the FOOLs lockpicking village at Louisville's Derbycon featured in hack-a-day. dosman was the lead on this one (he also made a really cool fireworks control panel and other cool projects over the course of the year). I made some very modest contributions in the form of a Processing based scoreboard that communicated w/ the lockpicking stations via serial port communication. This one was great fun to demo - the rumbling is VERY loud and it makes quite an impression.

That's it (but not all of it) for now

This post has exceeded the usual preferred blogpost length. I've left a lot out, I'm sure, and I'm happy about that as it's because more happened in the past year than is easy to summarize. Our main goal for the new year is to do even more, especially in terms of big projects and we hope to draw in more interesting and interested people of all levels of skill and knowledge (serious about this - teaching people and bringing them into the making/hacking fold is a big part of what we do, and one of the most fun things besides).

Among other things I need to post more in the blog and elsewhere (we're on the usual social media things, Twitter and Facebook, and we've got our wiki/website). Hope to meet some new people next year at our Wednesday 7pm meetings. Happy 2012 to all!

Monday, December 26, 2011

2011 at Bloominglabs Part I

A lot happened at Bloominglabs over the past year. It was a better year for us than 2010, which in turn was better than 2009. Hopefully this trend continues. I'll try to sum it up for you here. This is not meant to be like a holiday 'Danny Jr. got a job at Wal-Mart in the summer' family update letter, but one of those magazine 'a look back at 2011' issues, so here we go.

The Big Move
In 2010 we moved out of the basement and into a shared space with The Collaboration Room. We continued to meet and work there for the first half of the year, moving to our grand new much bigger (1000 sq ft) space in early July. We had an Open House late in July that was pretty well attended, and aside from the location being less ideal than the Collaboration Room's (we got spoiled being downtown in walking or biking distance of many members' homes) it has been really great to have a good HQ with room for workshops and our ever-growing collection of tools. Sadly the Collaboration Room is no longer in existence and currently the space is one of many commercial spaces around town that's empty. I know the owners have to make money, but in our search we did find that a lot of commercial spaces are pretty pricey even with a lot of them vacant, and they aren't exactly making money w/ nobody in them.

Fortunately there are plenty of people in Bloomington determined enough to make cool things happen not to be discouraged by that, and I'm not just saying, 'yay for us' here, I'm thinking of other Bloomington institutions for creative types like The Bloomington Print Collective and The Paper Crane Gallery, too.

Our workshops started out with a Contact Microphone Workshop conducted by the rock/circuit bending band CMKT4 at Russian Recording (yet another cool Bloomington organization) in February. This brought out some new people and worked out really well - much fun was had with soldering irons and hot glue, and the band gave a performance while we waited for the plasti-dip coating the mics to dry. Joe S. was the main organizer/coordinator/flyer maker for this one, and a fine job he did.

Jay S., who does training on Kuali Software professionally, put together and conducted a super-slick and professional Intro to Arduino Workshop that went beyond the standard blinky lights to temperature sensors and other applications. We're hoping to get Jay to host this one again in 2012.

Jenett T. conducted a two-part workshop on AVR programming for those who wanted to go deeper into the AVR toolchain. This is one of the classic Bloominglabs workshops, in fact it's one of the first things we did when we started meeting. It was a fun workshop - as with the Arduino workshop, once people got things up and running, they really got into changing the code to try out their ideas.

We had a visit from Catarina Mota that I mentioned in my previous blog post at the end of November. She talked about materials like conductive threads, fabric, and paint, quantum tunneling composites, all kinds of cool stuff, with of course several projects she'd made that demonstrated their use. One of the fun things I learned in this workshop was that there's a site that caters to people who want more fashionable versions of the fabled tinfoil hats that's a great source of conductive material. It's:

In mid-December we held our second 'Holiday Mini-Workshops'. Mid December is not really a great time to schedule things in Bloomington, but we had a good turnout, and people brought along their kids. The most popular activity, as at last year, was making molds of pretty much anything people could think of with the vacuum former, and using the molds to make soap. Two new molds added to the collection were a Blackberry phone mold and a Buddha figurine (the mold was only good for one use due to the Buddha figurines' lack of convexity).

In Part II:

Cool events and projects of 2011

Wednesday, December 14, 2011

Quick 'n' Easy Polyphony for the Arduino

Bloominglabs was lucky enough to have Catarina Mota of OpenMaterials, NYCResistor, ITP, and more visit our space last month to give us a demo on open materials - conductive threads and fabrics, materials for modeling parts (e.g., Sugru), quantum tunneling composites, conductive paint - it was very cool and we came away from it inspired to make projects using the things she showed us.

Catarina is partially known as co-creator of the Jeltone Jello piano, which she brought to show us. Later during a health food stop a few of us made at the local Denny’s (the first time I’d eaten at one in at least 15 years) the subject of polyphony using the Arduino came up. Jennet, one of Bloominglabs’ founders, has been working on an IR harp based on a project some students did at Cornell. The site is a great resource of project ideas, and the projects are very well documented.

Anyhow, the code for the IR Harp was written for the ATMega644, and as the user plucks the strings, the notes ring out in some sweet sounding (for 8 bit) chords. This gave us the idea that it could definitely be done, although of course it would require something more than the Tone library.

I took a look at the code to see about porting it. Fortunately the Atmega328 the Arduino Uno is built around has pretty much the same registers and so on as the ATMega644, the main differences being the 644 has a lot more pins, and twice the memory.

I had an AD5330 DAC I had played w/ before, inspired by this tutorial over at Sparkfun, so I decided to use that.

To convert the code, I first switched over from using Timer0 to Timer2. Timer0 is used for millis() on the Arduino, so if you try to compile the code w/ Timer0, it will error out. I also had to add the code to accomadate my DAC (adapting for others shouldn’t be too tricky), and fiddled around a bit with which pins are used for what. I stuck with using the ‘PORT’ approach to I/O instead of the Arduino functions, b/c as we know they are way faster, and generally you want an interrupt routine to do its thing as fast as possible and get out.

Another change was to have a function to load the different waveforms on the fly as needed. These were all being loaded up front, and like I said, the 328 has only half the memory. Also, the waveforms are calculated, so you do not need to store a table.

The demo code goes thru all the waveforms, plucking out the same chord for each. Feel free to use it for whatever instrument you want. Maybe an Arduino-based 8bit clock tower/carillon. Why not?

Thursday, March 4, 2010

The Collaboration Room in Bloomington: You and Your Thoughts are Welcome

When last we left our heroes from the Bloomington hackerspace, they were working on robotic cats, robotic robots, game controllers, laser harps, 3-D printers, and blinky microcontroller projects in member and laser harp designer Jenette's basement. Fun was had, knowledge was shared, beer was consumed, and Nerf battles were waged.

A month or so ago, we were alerted to the existence of The Collaboration Room, a fairly new place in town that makes the very cool town of Bloomington even cooler. It's a house on 214 N Rogers Street where artists and other collaborators can gather to work on projects. I visited a couple of weeks ago during a Friday night session (these are held every Friday from 5-8pm) with my daughter. We met Matthew and Matisse, and in no time we were contributing to prints that had been started by previous visitors. After doing that for a bit Matthew taught my daughter how to make prints with brayers, barens (new terminology to both of us) and colorful ink. Matthew is a good teacher who works well with kids, so it was not surprising to find out he works for the Boys and Girl's Club of Bloomington.

Some other members of the hackerspace dropped by, so we talked about what hackerspace was about and what we'd been up to, and were graciously invited to have meetings at the Collaboration Room Tuesday nights. It seems to be working out very well, as the 2 groups have the same goal of working on creative projects with people with a variety of skills and different levels of expertise. At the first meeting, the collaborative spirit overtook us, and we put aside individual projects to work on a robotic (servo powered flapping wings) parrot we were determined to put together that night. It was not unlike a reality show challenge, only our opponents were the clock and boredom, both of whom we defeated.

A few days later, some of us went to the Collaboration Room's first benefit at the Bishop. This featured a performance art work involving a guy mowing a small indoor lawn and several local bands. People were invited to participate in the Collaboration Room's Red Circle Animation project (I drew a red unicycle). Prints, including two my daughter and I had worked on, were on the wall for sale. I bought the one my daughter had worked on, so now she has sold work.

Matisse runs an animation workshop on Saturday Morning. Spaces are very limited, so interested parents should contact Matisse via the website. At the first session, we watched some animated works made by previous kids for inspiration. One involved a pair of Gwar/Transformer hybrid characters in a guitar battle. After that, no time was wasted, and the kids dove right in to making clay characters and choosing or making sets for their works. By the end of the session, they had made 3 cartoons.

While The Collaboration Room is very kid-friendly, it is a place for all ages. It's very much about inclusiveness and being accessible to anybody with a desire to participate in a constructive way. As they say, 'everybody brings something to the table'. Matthew has pointed out that Bloomington's Wonderlab (a science museum for kids) started out as a small operation run by a small but very enthusiastic and energetic core of volunteers. Bloomington's community radio station, WFHB, started out that way too. I would love to see The Collaboration Room reach the same level of success the Wonderlab and WFHB have enjoyed. If you live in Bloomington and are interested, go to a Friday Night open session, volunteer your talents and teach a workshop, or donate some art supplies.

Related Links: