Back to SF Tech Week

    Shoes Off, Dirtbag.

    I don’t want to track dirt and germs through my house. I’m building a little device that reminds me to take my shoes off with shoe memes and audio. For now, it’s a bench prototype I trigger myself.

    Hardware and software

    • ESP32
    • ESP-IDF + PlatformIO
    • Python + FFmpeg
    • Kling AI
    • Cloudflare Workers
    • GitHub

    I use ESP-IDF and PlatformIO for the firmware, and Python with FFmpeg to prepare the media. Three six-second Kling AI loops are now normal scenes in the 32-scene catalog. The separate Arc Core screen is a special mode. The bench device reads its scenes from two microSD cards and chooses its own random order, without Wi-Fi. I keep the code and build notes on GitHub .

    Shoes Off, Dirtbag comic badge with a dirty sneaker and cartoon germs

    A reminder at the front door

    I pictured opening the door, walking in, and hearing something tell me to take my shoes off. The old YouTube video “Shoes” gave me the idea for the audio.

    I started collecting shoe memes and making scenes with audio and visuals. The bench device shuffles the scenes when I trigger it, so I get a different reaction. I want it to stay funny after I’ve heard it a few times.

    Detecting which way I’m walking

    I considered a pressure mat that anyone could step on, or an infrared beam across the doorway. I also thought about NFC tags in my shoes, but I still need to work out the reader setup and placement.

    I hadn’t accounted for leaving the house. A single trigger would remind me to take my shoes off on the way out, too. I plan to use two infrared sensors and check the order I pass them.

    Entering: sensor 1 → sensor 2 → play a reminder

    Leaving: sensor 2 → sensor 1 → stay quiet

    I still need to build and test this doorway setup.

    Taking it to Tech Week

    I’m building this for Hack Alcatraz with Cloudflare and Kling AI on October 5, 2026, during SF Tech Week. We’ll cruise around Alcatraz and show each other what we’ve made.

    The organizers asked us to ‘build something fun before you come, then show it off on the boat.’ They want experiments that make people laugh, small tools, and things we built to see if they would work. Each demo gets one or two minutes.

    A shoe-meme reminder fits that brief. I can explain the problem, press the Bluetooth pedal, and play a scene within that slot. I’m working on a lapel display and a pocket unit so I can move around the boat and demonstrate it without opening a laptop.

    They also offer bonus points for using Cloudflare or Kling AI. I’ve used both. Three six-second Kling AI loops are installed as scenes S030 through S032. My Cloudflare Workers and Static Assets service, the Chaos Director , is live and serves a versioned starter ZIP for two cards, a catalog API, and repeatable playlist previews for planning. The starter uses original geometric test screens and synthesized tones, not third-party performance clips. Its files and checksums are validated, but I haven’t played that public starter on the hardware yet. The preview playlist is not a file the device imports; the device randomizes its own order.

    The prototype

    Updated September 27, 2026

    Assembled Shoes Off, Dirtbag device on my desk, with a glowing purple display and speaker, wired breadboard, power bank, and STRICH foot pedal
    The assembled setup on my desk: screen, light halo, speaker, breadboard, power bank, and Bluetooth foot pedal.
    Close-up of the round Shoes Off, Dirtbag screen, purple light halo, and speaker
    Screen, lights, and sound. A closer look at the display and speaker in the desk photo.
    Close-up of the breadboard with its circuit boards, bundled wires, and green and blue pushbuttons
    The control board. The wired breadboard and two buttons, shown in detail from the same photo.

    The current build

    I’ve connected the round display, speaker, local buttons, and Bluetooth pedal on the breadboard. All 32 normal scenes are installed and have run on the physical bench, including the three Kling AI scenes. In a recorded full-catalog timing test, all 1,055 normal frames appeared. I watched the endings and confirmed they were correct. Thirty-one scenes finished 10 ms over target and one finished 58 ms over. Frame starts still vary, so I’m not claiming perfect audio and video sync.

    Slow playback came from SD image reads taking about 372 ms. Direct reads at a tested 16 MHz brought that down to about 95 ms. I tried 20 MHz, but it failed, so I stayed at 16 MHz. The LEDs now send complete frames and time their chases by elapsed time.

    What I’m testing next

    The right pedal’s Mode 5 software cycles through a QR screen, silent Arc Core, and home. I still need to finish physical acceptance of that newest cycle. The pocket and lapel mounts, diffuser approval, battery life, and endurance tests are also ahead. After the wearable, I’ll build and test the doorway sensors for automatic direction detection.

    The parts, labeled

    These color diagrams show the updated component locations, with a short explanation of each part. The wires are left out so the parts are easy to see. Open either image to read it at full size.

    Color diagram of the main control board, labeling the pushbuttons, resistor, microSD card reader, DFPlayer Mini, ESP32 microcontroller, USB-C port, and breadboard
    Main control board. The buttons, memory card reader, sound player, and small computer that run the device.
    Color front and back diagrams of the wearable, labeling the GC9A01 LCD display, LED diffuser, Circuit Playground Express, speaker, and two-AAA battery pack
    Screen, lights, and sound. Front and back views of the wearable, including the two-AAA battery pack that powers the light board.

    Earlier on the workbench

    Early electronics bench test with breadboard, ESP32, round blue display, buttons, and Circuit Playground Express board
    An early bench test in September 2026, under the original name, Shoes Chaos Box.
    Circuit Playground Express board still in its original packaging
    The Circuit Playground Express board before I unpacked it.

    Try a caption

    These sample captions run in your browser.

    SHOES OFF, DIRTBAG

    Practicing on my own problem

    I’m doing this for practice. I define what the device should do, connect the parts, work with coding agents, and test what actually happens on the bench. Then I revise from what I can measure, not just from what the code says should happen.

    The SD card slowdown was one example. Seeing the delay led me to test direct reads at different speeds instead of assuming the first playback was good enough. The full-catalog test also showed me the endings were right while frame-start timing still needed attention.

    I can carry that habit into another project: make the behavior clear, watch it run, and change what the evidence says to change.

    Code and build notes

    I’m keeping the code, wiring notes, and build decisions in the GitHub repo so I can use them again. The getting started guide explains the setup, and the test notes record what I checked. The Chaos Director library is live and serves the original starter files and playlist previews. The starter download is live, and the card setup is covered in the getting started guide.

    For a similar project, I can give my coding agents the repo as a reference for how I connected the parts and handled the inputs. I won’t have to reconstruct the process from memory.