Meet the World's First Lock Picking Robot

Move over Lock Picking Lawyer; this completely homemade robot can automatically pick locks with minimal human intervention.

How do locks work?

When trying to securely store items, most people turn to some type of box in conjunction with a padlock that holds it closed and prevents the items within from being stolen or damaged. Unlike more complex mechanisms such as cylinders, barrels, and, combination locks, the ubiquitous padlock typically relies on a series of pins that are set at different heights and prevent the inner latch from turning, thus only allowing the correct key to open the lock. However, they are also vulnerable to picking, as a simple tensioner and pick can be used together to align the pins without needing the key.

After looking around the internet and not finding anything similar to a lock picking robot, the YouTuber and maker who goes by Sparks and Code decided to make one of his own from the ground-up.

Electronic components

At a very basic level, the robot's design is a CNC machine that consists of several stepper motors all working together within a 3D-printed rig. To the side is an ESP32 in the common Arduino Uno form factor that had a CNC shield attached to its top. From here, three DRV8825 stepper motor drivers were used to control the stepper motors, and a series of microswitches act as end stops to let the robot know when the 'zero' position has been reached.

The tensioning system

Picking a Master Lock 3 padlock relies on the two aforementioned techniques: tensioning and picking. A single stepper motor turns the tensioning arm via a string attached to the stepper's drive wheel and the end of lever. From here, a load cell measures the force being applied to the lock to ensure even and adequate force is present.

Designing the pick mechanism

Unlike the tensioning portion of the robot, the picking system ended up being quite a lot more complex. The idea was to take a pair of stepper motors with linear rods stuck to the ends of motor's shaft. When combined with a hex nut inside of a moveable sled, the circular motion of the motor is transformed into linear motion. By moving each side independently, the lock pick at the end of the assembly can move forwards, backwards, tilt upwards, and tilt downwards, but this presented a few challenges along the way.

Some minor changes

One frequent problem ended up being that the linear sliders would often get stuck when trying to move, and this was solved by adding centering posts at the end of each linear rod to prevent sagging/wobbling. Secondly, a lot of time was spent writing a kinematics engine in order to position the pick in the exact spot to adjust a single pin, but Sparks and Code realized that he only needed the robot to drag the pick across the pins under tension in order to release the lock, thus simplifying the process dramatically.

Picking a lock

The firmware for this project is written entirely in MicroPython, hence why an ESP32 was used. As seen in the demonstration video, the robot, named "Pin", is able to successfully pick the target lock. In the future, Sparks and Code hopes to build an improved version, which is able to pick locks that feature anti-picking mechanisms. For more information about the project and to see the code, you can visit its GitHub repository here.


gatoninja236

IoT, web, and embedded systems enthusiast. Contact me for product reviews or custom project requests.

Latest Articles