An 128x64 OLED display with a weird image on it, showing a mouse cursor, date and time in the bottom right corner, and a whole lot of presumably dithered dots

Making Your Own Technically-HDMI OLED Monitor

One day, [mitxela] got bored and decided to build his own HDMI monitor – the unconventional way. HDMI has a few high-speed differential pairs, but it also has an I2C interface used for detecting the monitor’s resolution and issuing commands like brightness control. In fact, I2C is the backbone for a lot of side channels like these – it’s also one of our preferred interfaces for connecting to cool sensors, and in this case, an OLED display!

[mitxela] describes his journey from start to end, with all the pitfalls and detours. Going through the pinout with a broken hence sacrificial HDMI cable in hand, he figured out how to probe the I2C lines with Linux command-line tools and used those to verify that the display was recognized on the HDMI-exposed I2C bus. Then, he turned to Python and wrote a short library for the display using the smbus bindings – and, after stumbling upon an FPS limitation caused by SMBus standard restrictions, rewrote his code to directly talk to the I2C device node, raising FPS from 2 to 5-10.

From there, question arose – what’s the best software route to take? He tried making a custom X modeline on the HDMI port the display was technically attached to, but that didn’t work out. In the end, he successfully employed the Linux capability called “virtual monitors”, and found out about an interesting peculiarity – there was no mouse cursor to be seen. Turns out, they’re typically hardware-accelerated and overlaid by our GPUs, but in [mitxela]’s case, the GPU was not involved, so he added cursor support to the picture forwarding code, too.

With partial refresh, the display could be redrawn even faster, but that’s where [mitxela] decided he’s reached a satisfactory conclusion to this journey. The write-up is a great read, and if videos are more your forte, he also made a video about it all – embedded below.

We first covered the ability to get I2C from display ports 14 years ago, and every now and then, this fun under-explored opportunity has been popping up in hackers’ projects. We’ve even seen ready-to-go breakouts for getting I2C out of VGA ports quickly. And if you go a bit further, with your I2C hacking skills, you can even strip HDCP!

We thank [sellicott] and [leo60228] for sharing this with us!

Continue reading “Making Your Own Technically-HDMI OLED Monitor”

Miniature Space Invaders game

Arduino And An OLED Make This Space Invaders Cabinet Tiny

For as simple as it appears now, Space Invaders was one machine from the Golden Age of video games that always seemed to have a long line waiting for a chance to lose a couple of quarters. And by way of celebrating the seminal game’s influence, [Nick Cranch] has executed what might just be the world’s smallest Space Invaders replica.

It appears that this started mainly as an exercise in what’s possible with what’s on hand, which included a couple of quite small OLED displays. For the build photos it looks like there’s an Arduino Nano running the show; [Nick] relates that the chosen hardware proved challenging, and that he had to hack the driver library to make it work. Once he got a working game, [Nick] didn’t rest on his laurels. Rather, he went the extra mile and built a miniature cabinet to house everything in.

The video quality below may be poor, but it’s more than enough to see how much work he put into detailing the cabinet. The graphics of the original US release of the game cabinet are accurately represented, right down to the art on the front glass. The cabinet itself is made from 1.5 mm plywood which he cut by hand. It even looks like he recreated the original scheme of cellophane overlays on the monochrome screen to add a little color to the game. Nice touch!

We really appreciate the attention to detail here, with our only quibble being no schematics or code being posted. Hopefully, we’ll see those later, but for now, this looks like a fun project and a nice trip down memory lane. But if you think it’s too small, no worries — we’ve got a much, much bigger version of the game too.

Continue reading “Arduino And An OLED Make This Space Invaders Cabinet Tiny”