[James] works from home. His office is filled with objects that can be described with adjectives such as, “expensive,” and, “breakable.” His home, however, is filled with professional object-breakers known as children. To keep these two worlds from colliding, he installed a keypad lock on his office door. The potential side-effect of accidentally training his children to be master safe-crackers aside, the system seems to work so far.
However, being a hacker, the tedium of entering a passcode soon grew too heavy for him. Refusing to be a techno-peasant, he set out to improve his lock. The first step was to reverse engineer the device. The lock is divided into two halves, one has a keypad and handle, the other actually operates the lock mechanism. They are connected with a few wires. He hooked an oscilloscope to the most likely looking candidates, and looked at the data. It was puzzling at first, until he realized one was a wake-up signal, and the other was the data. He then hooked the wires up to a Bluetooth-enabled Arduino, and pressed buttons until he had all the serial commands the door lock used.
After that it was a software game. He wrote code for his phone and the Arduino to try out different techniques and work out bugs. Once he had that sorted, he polished the app and code until he reached his goal. All of the code is available on his GitHub.
Finally, through his own hands, he elevated himself from techno-peasant to wizard. He need but wave his pocket oracle over the magic box in front of his wizard’s lair, and he will be permitted entry. His wizardly trinkets secure from the resident orcs, until they too begin their study of magic.