Launching DOOM on a light bulb


DOOM has already played the piano and keyboard, on the pregnancy test (by the way, it was fake) and on a soldering iron, on an airplane, ATM, printer and oscilloscope.

It’s time for light bulbs.

imageInside the TRÅDFRI RGB GU10 (IKEA model: LED1923R5) light bulb, hackers from Next-Hack found Silicon lab’s MGM210L RF module with 108kb of RAM and ran DOOM on it. The hacker researchers had to sweat over optimizing the use of RAMbecause the original DOOM requires 4MB, but they were able to.

The module only has 1MB of internal flash, so the craftsmen have added an external SPI flash to store the WAD file that can be loaded with YMODEM. The processor has a 40-MHz Cortex M4 bulb.


Disassembled light bulb


Display: 1.8 “TFT 160 × 128 SPI


Iron block diagram


Currents diagram


Power Supply


Board prototype


Carrier board




Microcontroller mounted on a carrier board.


Complete system.


Features of the project:

  • Based on the beautiful Doomhack’s gba doom port with some Kippykip additions.
  • Supports full version of Doom Shareware WADS.
  • Complete Vanilla Render engine including Z-depth lighting. However, composite textures have a mipmap.
  • Implemented monster behavior and sound propagation.
  • Sound FX support.

Project limitations:

  • Music.
  • Demo playback due to incompatibility.
  • Full WAD DOOM Not tested.
  • Debugging required.
  • Multiplayer is not implemented.
  • Optimizing performance.
  • Cheats were not checked, probably with bugs.

Engineers recently made update in github repository and removed mip mapping on composite textures without sacrificing performance, so the graphics will be more detailed than what is shown in the demo video.

DOOM-challenge conditions:

  • Find a finished device that isn’t designed to play Doom or other games.
  • The device selected must have a microcontroller with reasonably limited processing power and / or memory to meet the minimum DOOM requirements (DOOM operates at an acceptable frame rate even at 486 @ 33MHz [1]equipped with 4MB RAM). As an example, we should exclude modern digital cameras, which have a system of several hundred MHz on a chip, with several tens of megabytes of RAM.
  • We must use exactly the microcontroller that is built into the selected device. Replacement is not possible. No additional microcontroller can be added. However, overclocking (for example, even if limited to only some peripherals or buses) is possible, provided we don’t need any cooling methods.
  • Additional flash memory or memory card can be added to store WAD files.
  • You can add a color display if the selected standard device does not have one. The resolution must be high enough to play Doom decently. For example, a 32×16 pixel screen is too small, but 128×64 may be sufficient. On the other hand, resolutions that are too high will certainly require a very powerful microcontroller, contrary to rule 2.
  • The input device can be anything, so additional electronics can be added for this purpose.
  • The power supply can be replaced if necessary.
  • We wanted the engine to be as close as possible to the original (vanilla) Doom shareware. Being able to play Episode 1 on map 1 of the shareware Doom (E1M1) is a minimum goal, even if we don’t hide the fact that we dreamed of being able to play the full shareware version with no restrictions on all maps.
  • There are no requirements for sound, but sound effects would really be a plus. If implemented, then there are no restrictions on the audio subsystem.
  • Multiplayer optional

Pregnancy test

Canon Proxima Printer






Ticket validator

iPod Mini


Apple Watch

MacBook Pro Touch Bar

Kodak DC260 Digital Camera from 1998

On keyboard

On the billboard

On e-book

By plane

Porsche 911


Soldering iron


How do you like that, AlexeyNadezhin?

zhovner, we are waiting for DOOM on FlipperZero.


Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *