How I built the Stranger Things alphabet board with 3D printing, LEDs and a healthy dose of  geekiness.

My daughter is a hardcore Stranger Things fan. When I started thinking about a special gift for her, the idea arrived almost like a message flickering through Joyce Byers’ Christmas lights: build her the wall. That iconic scene — the hand-painted alphabet, the coloured bulbs blinking in code to communicate from the Upside Down — is one of the most recognisable images in the entire show. I had to recreate it.

Once the inspiration struck, I started searching online to see if anyone in the maker community had already modelled those distinctive bulbs in 3D.

They had not disappointed.

The bulbs and the alphabeth

I found a beautifully done set of 3D-printable Christmas bulbs that faithfully replicate the rounded, retro shape of the lights used on set: Stranger Things Lightbulbs

So, I printed quite a few of them, in various colors.

Searching a little further, I also found a full alphabet set: letters that reproduce exactly the jagged, unsettling font from the show, with all those ’80s horror-movie details that make them instantly recognisable: Stranger Things Alphabet

The frame and the background

With the models ready to print, I turned to the physical structure. I chose an IKEA RÖDALM frame in the 70×100 cm format — large enough to fit all 26 letters across three rows, with room for the lights. I fully disassembled it, removing the glass, the white passepartout and the backing board.

For the background I needed something that echoed the Byers’ wallpaper: that worn, floral texture typical of an ’80s American home. I found sheets of handmade marbled paper — with their golden veining, ochre blotches and dark red speckles — that came very close to the right atmosphere. I glued them directly onto the backing board, placing two sheets side by side to cover the entire surface.

The electronics: WS2811 LED strip

Once all the bulbs and letters were printed, came the most technical part: making the lights turn on, off and flicker independently, just like in the show. I used a strip of 26 WS2811 LEDs — one per letter of the alphabet. WS2811s are individually addressable: each bulb can have its own colour and its own timing, controlled through a single data wire.

The LEDs sit inside the 3D-printed bulbs, which diffuse the light softly and in colour, exactly like the ones in the series. The black cable connecting them runs along the top edge of the frame, hidden behind the border.

The software

The firmware — available on GitHub at github.com/stefanobertini/stranger-text — runs on an ESP32-C3 microcontroller and turns the board into a self-contained networked device. No app, no cloud, no external service: everything runs on the chip itself.

The web interface is served directly from the ESP32’s onboard flash (LittleFS) and consists of three pages reachable from any browser on the same network:

Main page
A textarea to compose a message, a send button, and a scrollable history of the last 50 messages — stored in the browser’s localStorage so it persists across sessions.
Settings page
A form to adjust all timing and blink parameters. Changes are saved persistently to the ESP32’s NVS flash — they survive power cycles.
WiFi page
Automatic network scan, credential input, and a reset button to return to Access Point mode.

How a message is displayed

When a message is sent, the board goes through a precise multi-stage pipeline designed to replicate the erratic, haunted behaviour of the lights in the show:

Random blink surge
Before writing begins, random groups of LEDs flash on and off rapidly — simulating the electrical surge effect from the show. The number of cycles, the number of LEDs lit per cycle, and the delay between cycles are all configurable.
Text normalisation
The input text is cleaned: accented characters are mapped to their base letter (è→E), lowercase is converted to uppercase, non-alphabetic characters are ignored. Spaces and newlines insert a timed pause.
Flicker per letter
Each letter gets 3–6 rapid flashes at random brightness before holding at full colour — then goes dark before the next letter lights up.

Configuring the timing

Every aspect of the display rhythm can be tuned from the Settings page. All values are expressed in milliseconds and use a min–max range rather than a fixed value — a random number is drawn within the range for each letter, making the writing feel organic and irregular rather than mechanical.

Parameter: Write Delay
Description: How long a letter LED stays on (on-time per letter)
Default: 450 – 550 ms

Parameter: Erase Delay
Description: Dark pause between one letter and the next
Default: 72 – 88 ms

Parameter: Space Delay
Description: Pause inserted for spaces and newlines
Default: 630 – 770 ms

Parameter: Blink Count
Description: Number of random blink cycles before writing starts
Default: 8 – 15 ms

Parameter: Leds per Blink
Description: Min/max LEDs lit simultaneously per blink cycle
Default: 1 – 6 leds

Parameter: Blink Delay
Description: Duration of each blink cycle
Default: 80 – 120 ms

Joining a WiFi network

Out of the box — or rather, straight after flashing — the ESP32 has no WiFi credentials stored. On every boot, it first attempts to connect to any saved network. If no credentials are found (or the connection times out after 15 seconds), it automatically falls back to Access Point mode, creating its own network.

Parameter: Network Name
Value: Stranger-Text

Parameter: Password
Value: UpsideDown

Parameter: Web UI
Value: http://192.168.4.1

The final result

The result is a living object that can light up and “speak” — somewhere between art, nostalgia and small electronic magic.