Getting DOOM to run on a computer it was never meant to run on is a fun trope in the world of esoteric retro computers. By now we’ve seen it run on everything from old NES systems to microwaves, treadmills, and basically anything with a computer inside of it. What we don’t often see are the displays themselves being set up specifically to run the classic shooter. This build might run the game itself on ordinary hardware, but the impressive part is that it’s able to be displayed on this seven-segment display.
This build makes extensive use of multiplexers to drive enough seven-segment displays to use as a passable screen. There are 1152 seven segment digits arranged in a 48 by 24 array, powered by a network of daisy-chained MAX7219 chips. A Python script running on a Raspberry Pi correlates actual image data with the digit to be displayed on each of the segments, and the Raspberry Pi sends all of that information out to the screen. The final result is a display that’s fast enough and accurate enough to play DOOM in a truly unique way.
There is much more information available about this project on their project page, and they have made everything open source for those who wish to follow along as well. The project includes more than just the ability to play DOOM, too. There’s a built-in video player and a few arcade programs programmed specifically to make use of this display. Perhaps one day we will also see something like this ported to sixteen-segment displays instead of the more common seven-segment.
I love projects from the category “why would you do it? because we can!”. Very nice object and great execution!
+1
Impressive results.
How much current would these 7 segment displays take? How much power? Think it would be inefficient compared to a modern Computer Monitor. I think it is amazing to see this done; to see Doom in different ways. Maybe the next challenge for you is to use RGB leds for color.
I can do you one better: how much all those display cost? Last I checked, each display cost around $1.50, so in total there should be at least $1.5k worth of displays đź‘€
I can get a block of 4 segments for 1.25euro from a local shop here. Or $0.67 from china. So only like $150 for the segments in the cheapest option. And that’s without bulk discounts.
You think it would be the seven-segment digits that cost a bunch, but its actually the MAX7219s that add up quickly. Using name brand ones would be ~$10 a piece on DigiKey…but of course a nice deal on AliExpress dropped it to ~$2 piece ;)
Next iteration should be done using P10 panels or on a Christmas Megatree with RGB pixels.
Thank you for your comment. Your opinion is very important to us. Please do not hesitate to comment again.
Sincerely,
The Managament
And yet you decided to waste even more time typing that out? I think you would be better off not wasting time expounding your dislike for other people’s work and doing something you find useful with your non zero value time.
I personally think it’s great. Gonna cure cancer? Nope, but it doesn’t have to, it’s a display and does exactly what it’s supposed to do.
This is awesome, I literally just got in a bunch of 7 segment displays from another 7 segment matrix project I wanted to do !
All hail the new King of Time Wasted in an Entertaining Fashion™, Redditor u/christopolise!
It looks like this is using a fairly simple translation method of treating every 7seg as a pixel and using pixel value to drive the number of segments lit, i.e. direct pixel brightness to 7seg brightness and a 48×24 pixel display.
An alternative would be to render a much higher resolution source image, split that image into 48×24 tiles (e.g. 10×20 or whatever to match the actual 7seg aspect ratio), then for each tile determine what actual segment lines being lit would best approximate the contents of the tile. Similar to macroblock DCT but instead of the basis functions use the matrix of possible segment combinations. That would give a pseudo-vector display of greater clarity at the expense of variable brightness (though it would still end up being pretty close if the segments could be brightness controlled using the not-DCT coefficients).