You Can Play ‘Doom’ On an IKEA Lamp

One of Ikea’s smart light bulbs has just enough computing power to rip and tear through hell.

Ikea’s TRÅDFRI LED is a basic light bulb with fancy smart home features. It costs about $20. You can dim it or program it to take on any color you’d like. Such features mean it’s got a rudimentary computer inside to control its systems, and. iIf it has a computer, it can play Doom.


The folks at next-hack were inspired by a recent viral news story that claimed you could play Doom on a home pregnancy test. You can’t, but it got the people at next-hack thinking. “We wanted to challenge ourselves once more, this time by bringing our contribution to the list of unusual things Doom has been ported to,” they said in a blog post.

To make the challenge interesting, they set some rules. “The chosen device should have a microcontroller with reasonably limited computing power and/or memory, with respect to vanilla DOOM’s minimum requirements,” and “we must use exactly the microcontroller embedded on the chosen device. No replacement is possible. No additional microcontroller can be added.”

The team at next-hack poured over different devices looking for the perfect underpowered microcontroller. “By chance we stumbled across the IKEA TRÅDFRI Zigbee lamps, and to our surprise we found they sported a powerful 40-MHz Cortex M4 based RF module, but with only 32 kB of RAM,” they said.

The team pulled the bulb open, made some adjustments, and got Doom running on a beautiful cheap little 160x128 screen. The lighting module is very basic, it only has 108 kB of RAM and 1MB of internal storage. To load Doom’s levels, next-hack attached some flash memory. The controller is a bit of PCB strung together with 330-Ohm series resistors.

The final product is messy and beautiful and it runs Doom. Running Doom on devices that shouldn’t run Doom is a time honored hacker tradition. The open source shooter is famously portable, running on everything from a billboard truck, a toaster, an old Zune, and—now—a lightbulb.