project build log

4 square

A modular desk display where every screen is yours to configure.

Type desk gadget
Date April 2026
Status complete
Source oled2x2x
Finished 4 square build on a desk

finished build · 4× SSD1306 OLEDs in custom 3D-printed enclosure

what is this?

Four 128×64 OLED screens, each independently programmable. Runs on an Adafruit Feather ESP32-S3 with WiFi, NTP time sync, battery gauge, and a temperature sensor, all housed in a custom 3D-printed enclosure.

Every screen is a “widget” slot. Swap them out in config, no code changes needed. If it’s a number, a word, or an icon, it fits on a screen.


  1. Prototype

    protoboard and first enclosure prints

    • Four OLED carrier boards and the ESP32 before wiring
    • Two protoboards wired together, held over the desk
    • First enclosure face with the four OLEDs showing test patterns
    • prototype wiring: protoboard mux breakout with 4× OLEDs on jumper wires
      02 · prototype stage · protoboard mux breakout · 4× OLEDs on jumper wires · testing before enclosure
  2. V0

    3D-printed enclosure

    • 4 square V0, the original 3D-printed build, finished
    • 01 · 5-part enclosure · display faceplate · display mount (×2) · back panel · lid
  3. V1

    Custom PCB, finished build

    • 4 square V1 with the lid off, showing the custom PCB
    • 4 square V1 finished, clock face
    • 4 square V1 finished, stock ticker screen
    • 4 square V1, front, showing the clock face
    • 4 square V1 on the desk
    • 4 square in the dark, OLEDs glowing

people want small, intentional desk objects

Succulents, Lego sets, mechanical keyboards: people curate their personal spaces carefully. There’s no good answer for a small, useful, customizable display object that’s also genuinely functional. This fills that niche: it looks cool, tells you things you actually care about, and reflects who you are.

  • Succulent
  • Lego set
  • Mechanical keyboard

fully customizable 2×2 layout

Each of the four screens is independently assigned a widget. Swap them in config, no code changes needed.

Every screen is independently programmable. If it’s a number, a word, or an icon, it fits on a screen.

5-part 3D-printed housing

Designed in Fusion 360. The enclosure splits into a display faceplate, two display mounts, a back panel, and a snap-fit lid: everything replaceable and remixable.


components

Adafruit Feather ESP32-S3
SSD1306 0.96" OLED
TCA9548A I2C Mux
SHT40 Temp/Humidity
LiPo 2500mAh battery

build your own. it’s fully open source.

Everything is open source. Fork it, swap out screens, change the layout, add new data sources, and make it yours.

github.com/partypancake8/oled2x2x →