Last June, the LVL1 hackerspace in Louisville, KY, held a 24-hour hackathon, where several teams stayed up all night, competing with each other to use an Arduino, a breadboard, as well as any components they could harvest from LVL1’s junkpile, to build the coolest project possible.
Joe Pugh and his fellow members Aaron Verdow, Tim Miller, Nick Sturtzel, and Jon Clark decided to build a 3D scanner. In a LVL1 blog post, Joe explained how the competition would work:
We had the weeks leading up to the event to look around the boneyard and think about what we thought we could make. We started with a list of things we wanted to make then limited that down to things we thought we had the parts to make. We tentatively settled on a 3D scanner. We knew we had all of the parts to make it but there was no guarantee that they would still be there the day of the hackathon as the boneyard was still being used normally by the hackerspace.
The parts the team found consisted of a car computer, an ATX power supply, a webcam, a barcode scanner, and an automated turntable, as well as the previously mentioned Arduino. The team loaded Debian Linux with Apache, PHP, and Python on it, with the latter used for image processing.
Of course, the software had to be done in 24 hours as well. Even worse, most of the coding took place later on in the night after the hardware had been completed.
e were sleep deprived and running on caffeine and nerd bliss by the time we dove into coding. What this lead to is code that follows no coding standards, very inefficient, and may possibly run in illogical circles chasing it’s own tail. Keep this in mind when you look at it and try to restrain yourself from yelling, crying, or losing faith in humanity before taking it out on the Internet.
Eventually the event came to a close and the team was left with a (mostly) functional 3D scanner.
Last week I interviewed team member Joe Pugh:
JB: How did you and your teammates divide roles?
JP: After we decided on a project and determined we had the key parts to make it happen, we discussed the things that needed to be done and everyone just claimed something to do. At first this worked, but after the first 6 hours, most of the scanner was physically built and the number of things to do fell off sharply. At that time we shrank down into a much smaller team. We went into the hackathon with more than one project in mind so Tim broke off to work on one of the other projects. Nick had a prior engagement and Jon got distracted by making a kilt glow like the sun. Aaron and I spent the remaining time programming, tweaking, and calibrating.
JB: What technical problems did you encounter?
JP: When trying to build a project from salvaged electronics everything is a technical problem. Half of the things in the boneyard are there because they are old, the other half are there because they are broken but someone thought they still had parts that could be used for something. The turn table and power supply fell into the latter category. The turntable had a burnt out DC motor in it that we had to pull and and replace with one scavenged from a printer a long time ago. The Computer, bar code scanner, and webcam are just old. The webcam was particularly bad. It was so bad that just asking for it to pull an image would sometimes give us only part of an image. To get around that we had to take 3 images and average them into one so that we could get an image reliably every time. This slowed the process of scanning down a lot.
JB: What sort of non-technical problems did you have — caffeination, I suppose?
JP: There was not much in the way of non-technical problems. Everyone was in high spirits. It was a really friendly competition and everyone wanted to see awesome things made so teams were helping each other out and just having a good time. The organizer of the event did an awesome job of keeping caffeine and dubstep on hand to keep everyone awake and “team kitchen” made breakfast, so we finished well fed.
JB: Tell us about the challenges you faced in finding the right parts.
JP: We went into the Hackathon with a few projects we would like to make in mind, and just had to see what we would be able to find the parts to make. We were lucky and found all the core parts needed to make a scanner. The small caveat was that we did not have a monitor of any sort in the boneyard. Aaron was not fazed by this at all, and before I even knew it was a problem, had plans to build the whole interface as a website that could be accessed by any device with a web browser. The only other component that I remember having a problem with was finding a good sized MOSFET to control the turntable. It was surprisingly hard to find one that could switch the current needed and I must have opened up a dozen things before I found them inside of portable battery back-ups.
JB: How happy are you you with the results given the time and material constraints?
JP: Happy would be an understatement. I am under no illusion about how poorly the scanner works, but for it coming together in 24 hours from junk we had laying around, I could not ask for more. Asking that it work at all seems ludicrous.
JB: What do you plan to do to improve the scanner now that the hackathon is over?
JP: The first thing is to abandon this project and start from scratch. We learned a lot from the hackathon but it was never expected to be a good scanner. It is a “junk in, junk out” situation. We have plans to start a new scanner from scratch using much higher quality parts and fresh code.
If you want to learn more about the scanner project, see Joe’s blog post and Github repo. Finally, click on the following links if you want to see pictures of the hackathon (day 1 day 2) and the scanner.