mar1ash

ukr | eng

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.

A photo of the finished weather brick on a desk

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.

Close-up of an ESP-01 module

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 on the ESP-01 module

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 breadboard

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 and OLED connected with jumper wires on a breadboard

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 with USB-C cutout

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.

Top lid of the micro bricks enclosure with a yellow transparent brick

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

Time Brick in action

In the Real World

The finished device in natural daylight

The device in natural daylight, glowing softly with useful info.

The finished device at night, glowing softly

At night, it becomes calm and ambient. No bright lights, just presence.

How It Works

~48KB sketch on the ESP-01

Libraries used:

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.

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:

github

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.