Sometimes all you need for a D1 Mini-based project is a simple interface with a small display and a few input buttons, which is precisely what you get with Radomir Dopieralski’s D1 Mini UI Shield. Of course, there are a ton of other display shields on the market compatible with the ESP8266 module, but none with six user-programmable buttons in a tiny form factor.
“If your display comes with a touchscreen and you are ready to handle the complexity in code, then great. Otherwise, you need to add a bunch of buttons, a joystick, an encoder, or some other way of selecting options. And since at that point you have run out of GPIO pins on your D1 Mini, you also need some kind of GPIO expander. And then you have to put it in some box to attach the buttons to, and it all gets complicated quickly.”
As mentioned earlier, the D1 Mini UI Shield is an SSD1306 OLED display module (128 X 64) combined with a stripped-down version of Radomir’s D1 Mini X-Pad Shield, which features eight programmable buttons, instead of the six found on the smaller version.
The display is larger than the original, and uses SPI pins, while the buttons are read over I2C, with both denouncing and buffering. Radomir included a mini speaker as well, which can be used for audio alerts or low-quality output. Radomir offers a complete walkthrough of his build, along with the files needed to replicate his build on his Hackaday page.