Front Door Display


Let’s make a tiny display for stuff you check right before leaving home!

I keep forgetting to turn off my alarm as I leave home, and then scrambling to turn it off1. Even if I do remember to turn it off, I’m never quite sure that I did, so I take my phone out, open the appropriate app, and check. It would be super convenient if I had a little indicator near the door, so I (or anyone else leaving) could check more quickly. A single red LED would technically do the job… but wouldn’t be wife-approved.

I love tiny OLED displays. Let’s use one of those! I got an ESP8266 with an onboard OLED display, and thanks to ESPhome, having a display of the alarm status is easy enough. There’s still plenty of room on the display, so I figured I can add a couple of other things I quickly check before leaving home: Weather and tram times. I used the Edit Undo font and some Material Icons for a bit of styling. I ended up having to mess with exact spacing a lot until I was happy with it; it would be super helpful if there were a simulator like wokwi for ESPHome to iterate on this more quickly!

The resulting device without a case

Next step is to create a case for it. This is necessary both for wife-approval and for cleaner mounting to the wall. I use Onshape for this, as it’s both free and parametric - that is, I can change numbers later to adjust the design without fully re-doing it; and if there’s one thing I’ve learned about designing for 3D printing, is that it takes a few iterations to get it right: Print, learn that it almost works, adjust, repeat.

Iterating on the case design in Onshape

With this design, I got some nice shadow lines. I had originally planned to use screws, but it turned out to be fairly annoying: While the PCB does have holes for mounting screws, there isn’t a lot of room for nuts; it ended up being simpler to make a fully plastic snap-fit design. Snap-fit, especially with 3D printing, is an even worse source of trial-and-error iterations, as there seems to be a fine line between “doesn’t snap” and “snaps off altogether”, especially with smaller designs.

It doesn’t help that I’m using a somewhat older Ultimaker 5 printer with PLA material; I know there are more modern and robust printers, but the Ultimaker 5 is maintained by experts at our maker room, which only allows PLA, and I figured it should be doable. Thankfully, I was right! I’m really happy with the final result, and it’s proving to be at-a-glance useful every day.

Final result

  1. The alarm app has added a feature, after I created the device described in this post, to turn it off if any indoors motion is detected at the appropriate time, mostly solving this issue. ↩︎