Batman Dialer Project #1
2024 August 21

I want to build a security combination lock out device hidden inside of a statue bust of a later to be determined character1. I want to extend this project to do many different features and be a sort of entertaining puzzle for people to play with. To do that I’ve decided to start a series of blog posts describing my thought process through this, the inspiration, and how I built it. Hopefully you enjoy my description of the process and you find some interest or learn something new from this.

An AI generated mock up of what I plan to build
roughly.

The Inspiration

I was house/condo shopping down in Philly, and saw the most amazing loft condo. It was literally “Bruce Wayne’s Bachelor Pad,” which I have since crossed off the list due to many reasons. Anyways my friend and I start talking about Batman and how to make this unit amazing and we get to the idea of a hidden button that does something interesting. He was thinking a button that opens a compartment containing a rotary phone, which you dial and tell a secret password. I’ve decided why not combine them into one.

A rotary dial is an interesting piece for this system. It’s an interesting shape and looks cool. It’s retro chic. It also doesn’t seem to require many inputs on the microcontroller.

The Project Plan

I plan on using a Raspberry Pi Pico W with MicroPython. It’s a relatively powerful microcontroller with good availability in my area at micro center. The modern successor to Arduino. There’s good community support and seems to be quite popular after the defcon badge. They also have a lot of ram, and WiFi built in to do other cool integrations like counting up incorrect code entries or extending it to do some other interaction2.

I want to use an analog rotary dialer, and found one relatively cheaply on eBay. They seem to be difficult to source without the rest of the phone. The photos below are from the eBay listing I bought front. The wires will be figured out later.

Rotary Dial Front Rotary Dial Back

I’ll also need to find some kind of furniture side table with a door that I can add a solenoid lock to. This can be found later towards the end of the project.

I plan on getting the bust statue mocked up by a freelancer and asking a friend to 3d print it.

I also want it to detect what bottle I pull out of the locked compartment and potentially make jokes about it. I should definitely include a speaker3 that I can play sounds on.

I’ll also need to learn how to layout a PCB and get one made up by one of the popular providers.

The Code

The code will be developed in micropython and will protect any secrets with ansible-vault to allow keeping them in one place. I will have a build and setup script to copy the build products to my board.

I will host it using AWS Lambda and DynamoDB to provide persistence. I plan on implementing the services using golang and handling any deployments using terraform instead of my typical cloudformation based approach. This will allow me to experiment with new IaaS tools.

I plan on hosting all source code publicly using GitHub where anyone can contribute and join me in this project.

Data Models

I will need to log any events sent up to the server. I will also need to provide a list of secret codes to the device to go try or define a function for when the code is valid. Since I want to validate the model of the environment for my device I will setup some kind of server side interface to handle the overall state of it.

This will require being able to query events in recent history and playing them back to build an internal model of the world.

Wrapping Up

I’ll share updates on how this project is going on a roughly monthly schedule. I have parts arriving soonish from many different sources. I’ll share everything I learn in the course of this as a series of blog posts. Hopefully you found my thought process on this interesting, and I’ve set the stage for a successful project.

Please note you’ll be able to see any other posts in this series using the batman-statue-dialer or the below tag.

  1. I’m debating between Athena, Da Vinci, or some possibly obscure Futurama reference. 

  2. Downloading scripts of actions or a voice driven puzzle. The sky is the limit here if I include networking now. There’s so many geek culture jokes I could do with this or extend it without updating the code on the board 

  3. Check out this adafruit article. 


Remember you can also subscribe using RSS at the top of the page!

Share this on → Mastodon Twitter LinkedIn Reddit

A selected list of related posts that you might enjoy:

*****
Written by Henry J Schmale on 2024 August 21
Hit Counter