Thursday, April 21, 2011

A nice little diversion...

Just when I thought I had my spring projects planed out, I met a group of local "maker" types at a group called FAMiLab. The people at FAMiLab run the geek spectrum from "makers" to networking guys, artists, etc. I went to meet them a few weeks ago since they have a reprap and while I was there, they were discussing the Great Global Hackerspace Challenge (GGHC) sponsored by element14. I'm not a huge fan of the term "Hackerspace" since the general public still thinks that "hacking" is an illegal act, but the wikipedia definition for Hackerspace captures the right spirit:

hackerspace or hackspace (also referred to as a hacklabmakerspace or creative space) is a location where people with common interests, usually in computerstechnologyscience or digital or electronic art can meet, socialise and/or collaborate. A hackerspace can be viewed as an open community labs incorporating elements of machine shopsworkshops and/or studios where hackers can come together to share resources and knowledge to build and make things.

I started brainstorming with the FAMiLab group one night on their project for the GGHC, and well, now I'm part of the team.

There are ~30 worldwide hackerspaces entering projects. The primary requirements for the project are:

  • Supports education
  • Uses a microcontroller
  • Uses a portable power source
There are some other judging criteria that include:
  • Reproducibility
  • Cost of the design
  • Documentation
  • Creativity
Three semi-finalists will be closen the week of May 2nd, and then these three semi-finalists get to present their device to a panel of celebrity judges at...Maker Faire :)

Rather than explain what it is here, check out the new website (its a work-in-progress) at

We also now have a git repo, and some slideware here.

I'll use the space below to capture some of the things I've learned on this project:
1) Writing Arduino Libraries

  • This seems very simple, but it will test your C++ skills. Specifically the Wire library uses callbacks, and doing the callbacks into member functions of my library
  • #includes - they don't work in libraries in the Arduino build environment. Why is beyond me, but they don't work. Your end sketch must have your library includes AND any includes that your library needs as well.
  • Your library code must be in ../[arduino-ide-folder]/libraries to be compiled and included. This makes working using a source repository like git a little more complicated. I used windows symlinks to create a folder under libraries that pointed to my rep library folder.
2) Git - I know about version control, but rarely work on software with others. It is pretty awesome to be able to work on shared source without having to email and play the "did you make changes" game.

3) ...more to come

No comments: