Introduction: Hack-a-lock

About: Mobile and Web Developer, AngularJS and Rails focus, Aspiring to evolve and create the new modus operandi. Live to Die, Die to Live.

Intel's IoT Roadshow featuring Intel Galileo SDK
2014 September 20-21 Austin, TX

More information:

Project: "Hack-a-lock"

As part of Intel's Internet of Things (IoT) Roadshow showcasing Intel's IoT Developer Kit, which includes Intel Galileo Gen 2 board (similar to Arduino microcontroller), Grove starter kit (sensors and accessories), pre-loaded mini-SD card with software and dev environments, and more, my team developed a prototype to automatically determine the 3-number combination code to crack a Materlock combination lock.

Here are two perspectives of the held-together prototype (see pictures). Note the light detectors and the black disc with perforated holes to detect the dial position.

Joseph Tingsanchali @charnwoot

Daniel Cox @draycoxtx

Justin Lilly @Justin_Lilly_

Samuel Chang


People are forgetful creatures. In order to alleviate such an issue, especially when it comes to combination locks, we have devised a mechanical lock breaker for the common combination lock.


The hack-a-lock runs through an algorithm to determine the combination's unique code, 3 numbers ranging from 0 to 39, to unlock it. The algorithm works by determining a set of numbers to determine the third value in the combination code, then cycles through a predetermined set of arrays to find the first and second value in the combination code. This removes the need to brute force 64,000 combination codes and waste 2 weeks of your life. We have broken it down to within one hour to break such a lock.

We have made use of the following sensors: Light Sensor with LED output 360 degree servo LCD display. We custom-built an apparatus to hold a combination lock to test the tension of the shackle as it rotates through the combination's possible code. To determine what point to stop, we use optical detection (as light) through a rotary template attached to the knob of the lock. As the lock turns, it can detect its initial and final point of turning so that it can rotate to the next number. The mechanical build took 6-7 hrs to sketch and the programming and integration took 10-12 hrs to build.