This Little Brick Tells the Time
ESP-01 + OLED + Micro Bricks + Mathy Weather
A quiet little time brick, living on my desk next to the PC.
Intro
I wanted a screen that doesn’t ping. Doesn’t glow with harsh blue light. Doesn’t ask me to swipe, tap, log in, or update firmware. Just a screen. One that quietly exists—next to my bed or near my computer—and tells the time. Maybe the weather. Maybe something absurd now and then.
So I built one:
A weather-aware micro display powered by an ESP-01
I had lying around from a failed project, enclosed in a toy-like case made of tiny “micro bricks.” It runs on USB-C
, uses a 0.91" OLED
, and animates live weather with nothing but math.
It’s dumb—in the best possible way.
The Stack
ESP-01 module: as tiny as a fingertip, but powerful enough for Wi-Fi and a display.
ESP-01 (ESP8266)
Leftover from another build that didn’t work out. Smallest Wi-Fi-capable microcontroller I had. Limited GPIO, just enough to get things going.
Close-up of the ESP8266 chip—the tiny brain making the magic happen.
0.91" OLED (SSD1306, 128x32)
High-contrast, no-nonsense monochrome display. Simple and elegant—just pixels.
AMS1117 LDO Regulator Module
5V
from USB-C
is dropped to 3.3V
using an AMS1117
module on a breakout board with caps. Keeps the ESP-01
safe and fed.
USB-C Power Socket
Because microUSB deserves to stay in the drawer.
Programming Setup
Programming harness with ESP-01, FT232RL, and a breadboard—cobbled together like all good experiments.
Before final assembly, everything had to be tested on a breadboard—because one wrong wire could fry the ESP or screen.
ESP-01, OLED, a sea of jumper wires. Code testing in its natural habitat.
Why I Made It
Most smart devices overcomplicate things. I wanted something ambient. Something that gives you just enough information—and then goes back to being silent.
Also, I love strange, philosophical games like The Stanley Parable, Antichamber, and Superliminal. So I gave the device a splash screen that greets you with:
“Do what you can’t.”
And occasionally, it drops cryptic, slightly surreal messages like:
"You are not here."
"It has always been raining."
"There is no button."
Because if you’re going to build a screen, why not let it be a little unhinged?
Building the Brick
The micro bricks enclosure. Note the Type-C opening and transparent bricks for ESP-01 LED glow.
Tiny “micro bricks” form a playful enclosure. The build includes a cutout for the USB-C
socket and clear bricks to let the ESP-01
’s onboard LED peek through.
There’s a yellow transparent brick on top, so I can sneak in a warm LED that glows gently at night. A couple of other transparent bricks around the case add to this soft-lit feel, almost like a sleepy sci-fi nightlight.
What It Does
- Displays the current time in a clean, centered font
- Shows the date in
DD.MM.YYYY
format - Pulls today’s weather for Kyiv from
OpenWeatherMap
- Cycles through four screens every 15 seconds:
- Random surreal quote
- Time
- Date
- Weather with icon and temperature
- Animates weather using math:
- Sun pulses
- Clouds drift
- Rain falls
- Lightning flashes in storms
- Reminds me to drink water every hour, on the hour
- Night mode from 23:00 to 07:00: screen shows the time only
- Gracefully handles Wi-Fi drops and API errors
In the Real World
The device in natural daylight, glowing softly with useful info.
At night, it becomes calm and ambient. No bright lights, just presence.
How It Works
~48KB sketch on the ESP-01
Libraries used:
ESP8266WiFi
NTPClient
ArduinoJson
Adafruit_GFX
Adafruit_SSD1306
I2C
OLED uses just 2 GPIOs (thanks, ESP-01)
millis()
handles screen switching—no blocking delays
Time synced via NTP
(Kyiv = UTC+3
)
On every new hour, a small “drink water” prompt appears
Night mode kicks in at 23:00 and ends at 07:00—screen shows the time only
Animated Weather Icons
No bitmaps. No sprites. Just math and pixels.
- Sun: pulsing via
sin(t / 200.0)
- Clouds: drifting with
fmod(t / 1000.0, 128)
- Rain: animated falling dots
- Thunderstorms: random lightning bolts with pixel zigzags
The animations are done in real-time using math functions—kind of like ASCII
art with sine waves and rectangles.
GitHub (Code + Wiring)
The code and schematic are here:
v2.0? Maybe.
The only thing I’d add is a slightly larger screen to give the visuals a bit more breathing room. Maybe support for a second city’s weather. But that's it.
Still no touchscreen. No voice assistant. No cloud syncing. Just quiet information, looping calmly forever.
Closing Thought
This project doesn't want to be smart. It wants to be quiet, useful, and just a little weird. Sometimes it tells you the time. Sometimes it shows rain. Sometimes it flashes lightning. Sometimes it whispers nonsense.
And that’s kind of enough.