Lockpicking contest system
Rumble Challenge Lock Picking Contest System and Drinking Game
I wanted to build a decent contesting rig for a lock picking village a couple of us are hosting at DerbyCon in September 2011. I've seen the rig the TOOOL folks inherited and use for Defcon, it's very nice but starting to get dated. Firstly, I wanted to come up with something new to jam up pickers during the contest. For this contest I wanted to add a "vibration obstacle" to the challenge. Six contestants compete head-to-head on deadbolt's mounted on lock stands. Each lock stand has a vibration motor attached to the back which is activated intermittently throughout the contest. Second, I wanted a larger presence for the contest- namely a much larger display for what's going on. Lock picking is like hacking in that the actual nut and bolts is rather boring to watch, despite what they show in the movies. The control unit will be based on an Arduino and transmits data to a receiver+laptop connected to a projector. The projector will show the clock and players who have opened their locks so far (along with their individual times). I wanted to build a huge 7-segment timer display, but the cost was too high and I didn't have time to complete that, so a projector will make things "large" and potentially more interesting.
Pics or it didn't happen! First I mocked-up a vibration motor to a lock stand to see if it would be enough to actually interfere with picking. The first tests were very promising, so I went ahead and geared the project up to full speed.
Where the bolt slides out and contacts the 1"x2" plank is a small lever switch embedded into the wood. I used hot glue to embed the switches into the plank, a hole is drilled to the rear where the wires are ran. I carved a channel down the plank to hide the wires under the plexiglass which will be added soon to cover the area around the bolt.
Drinking Game Mode
Another motivation for building this was to have a nice drinking game; a switch on top selects one of three modes including drinking mode. I incorporated a formerly-battery powered aquarium pump into the case for dispensing liquids. It was intended to be powered by 1.5V, I run it at 5V via a 7805 regulator and a huge heat sink. The air is pumped into a sealed carboy which contains the liquid, a copper pipe transfers liquid pumped out of the carboy into a manifold and on to the shot glasses. Of course our locksport group already has logo'ed shot glasses so this was a natural extension to the system.
The drinking game mode works like this: Each time a lock is picked open all players get a shot. Each shot consumed by players still in the game gets a shot bonus (including the person who caused the shot to be dispensed). When the shot is dispensed the clock stops and all players must remove their pick from the lock - tensioners may stay in the lock. Shots are consumed, and then the GO! button is pressed on the box to resume the clock. The shot bonus scoring is setup so that the last person to get their lock open has a chance to get the best score since they can potentially get all 6 shot bonuses. Players who have already opened their locks will still get shots dispensed, but no points are awarded for consumption.
I used an Arduino to prototype the circuit. It's so simple to get an ATMega running on perfboard that I don't waste real Arduino's in my final circuits, just put a socket in there and swap chips when you are done with the code. It transmits lock open-events to a receiver (connected to a PC connected to a projector) as well as dispenses shots in drinking-game-mode :-). The controller has an LCD display so it could operate stand-alone, however I'm more interested in using some cheap RF boards to transmit events to the projector system. I was able to get the code written while I was waiting for parts to ship from SparkFun and Jameco. While the RF system worked great at first, it seems that the motors were causing some occaisonal interference so for the final design I added an FTDI header and used a SparkFun FTDI breakout board for USB connectivity. It's a simple code change to switch from RF to Serial output for communication with the Processing app. For the RF receiver I just used an Arduino+SparkFun proto-shield and receiver board, I didn't have time to build a permanent circuit which was just as well.
This schematic is merely a suggestion, the only reason I used various pins was because they were free. There are probably a lot of ways to do this better, this is just the way I built it. Some gotchas, the Arduino pins have to be translated to ATMega328 pins, that's usually documented below. The air-pump should run at 1.5V but I'm running it at 5V. You will need a large heat-sink on your power regulator if you do this. I tested the motor before going with this setup, it draws between 300mA and 400mA at 5V which is well within the regulators 1A max. Also, you may enjoy adding things like a reset switch.
The last component of Rumble Challenge is something to make a nice visualization of how the contest is progressing on the projector. The receiver will feed raw data to a tty on the PC, an application written in Processing will make for a simple visualization system on a projector. Fellow Bloominglabs member Steve wrote up a very nice app which does just this for the project.
I've got more work to do on the Arduino and Processing code yet for it to be presentable.
The first run of the game was during DerbyCon 2011 at LVL1's party. We setup the system in full drinking-game-mode with Malibu Rum as the potion of choice. Many thanks for the awesome folks at LVL1 for letting us run the game at their space (hotel rules prohibited drinking in the lock picking village at DerbyCon).
On Saturday we ran the Rumble Challenge in non-drinking mode to satisfy hotel requirements, lots of fun was still had: