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.
Video unavailable and link to hackaday.io is broken. Shame as I was quite interested in this…
The write-up on the main site is also gone, but is archived here:
https://web.archive.org/web/20210615035229/https://next-hack.com/index.php/2021/06/12/lets-port-doom-to-an-ikea-tradfri-lamp/
Shame the project has been taken down, the write up is actually pretty good.
Quite a takedown. Now it’s gone from web.archive.org as well. :(
“Planned power outage”?
The archive link was broken, you had to pick an older snapshot. I’m sure it will work when it returns.
here’s an alternative archive.
https://archive.is/JguQH
Taken down so soon after it was put up? Wonder if it got slashdotted? But then why would the video get pulled? Generating too much traffic?
Bummer. It was still live last night when I scheduled the story.
Over on Reddit, the OP states that he got a request to take down all public posts about this project. I’ve reached out to him for comment, but haven’t heard back yet.
Maybe IKEA lawyers didn’t like it? Would be ridiculous if so but very possible
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.
Well, there was this, back in 2014. But they recanted, AFAIK.
https://www.sfgate.com/homeandgarden/article/Site-that-brought-us-Texas-Ikea-cat-playground-5576633.php
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…”
mmmmm it could be shark lawyers of Ikea menaced them and they take all down
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.
This action will affect every users feeling about the products.
It will not increase sales by kill sales.
That seems silly. But it wouldn’t be the first time that the suits couldn’t take a joke…
Maybe it was fake, and it’s been taken down to avoid being exposed as such?
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).
I think the problem is that it is all written in C, and IKEA said “some assembly required”.
this pun got my out loud chuckle of approval
:-D :-D :-D !!!
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()).