A Smart Light Bulb Running Doom Is A Pretty Bright Idea

A light bulb might seem like an unlikely platform for gaming, but we’re living in the future now, so anything is possible. And with enough know-how, it turns out that an RGB light bulb can indeed be modified to run Doom.

[Ed note: The project pages and video got pulled right when this went to press. Nicola received a takedown notice.  We’ll let you know more when we do. The main link has been updated to the Wayback Machine.]

That’s not to say that the Ikea TRÅDFRI light bulb is the only thing [Nicola Wrachien] needed to accomplish the hack. But the bulb, specifically this addressable GU10 RGB LEB bulb, donated the most critical component, a Silicon Labs MGM210L wireless microcontroller, with enough processing power to run vanilla Doom. Added to the microcontroller was a TFT display, a controller made from a handful of buttons and a shift register, and a few odds and ends to stitch it all together. Some more memory was needed, though, so [Nicola] used an 8 MB QSPI flash memory and a couple of neat tricks to reduce latency and improve bandwidth. There are a lot of neat tricks with this one, but the coolest thing might just be that the whole footprint of the build isn’t that much bigger than the original bulb. Check out the surprisingly smooth gameplay in the video below.

This is a nice addition to the seemingly neverending “Will it Doom?” series. We’ve seen the classic game ported to everything from a GPS to a kitchen “bump bar” computer and even to an oscilloscope.

https://www.youtube.com/watch?v=7ybybf4tJWw

22 thoughts on “A Smart Light Bulb Running Doom Is A Pretty Bright Idea

    1. Since when is IKEA opposed to people hacking their products?

      Hackability is a major reason why many people pay IKEA’s crazy prices in the first place. I’d probably buy one of those lightbulbs just to recreate this project.

        1. Nice article. Especially the public statement ikea made after the cease and desist letter they sent, demanding the hand over of the domain. To quote:
          “It has of course never been our ambition to stop their webpage. On the contrary…”

  1. I think the reason for the take down might not be IKEA as people are speculating. But rather his place of work, which happens to be Silicon Labs.

    Maybe tearing down a customers product that contains your product doesn’t sit well with them.

    1. No, I analyzed the code, and seems 100% legit! Will try and replicate, just need to find that kind of lamp or a Silicon Labs development board (they are not that cheap though).

    1. Lol overflow, this made my day!

      However, a part the standard start-up code, some assembly is actually used. For instance, in spiFlashDual.c at line 321, a snippet is used to quickly read data (to keep the two SPI synchronized).
      It is also used on TryRunTics(), in d_client.c, to set the stack pointer to the end of the frame buffer (unused until the frame is actually rendered, i.e. outside TryRunTics()).

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.