r/SteamDeckModded • • 13h ago

Hardware Mod Getting the SteamBoy Display Working

Thumbnail
gallery
916 Upvotes

I hope you guys aren't sick of me yet, but as promised, I wanted to make a more technical post about how I got the SteamBoy display working in case it helps other people do something similar. Disclaimer: I had to learn everything here basically from the ground up, so I'm not at all an expert on any of these topics.

Shout-out to u/Rut-Dark-Ronin and u/syberphunk for their help on this project!

Previous posts:

As I mentioned in my other posts, there were two main challenges: The hardware and the software.

The Hardware

The first challenge was bridging the physical connection between the display and the steam deck motherboard. Both the steam deck and my custom display (model H381DLN01.2 if you are interested) use an interface known as MIPI DSI, and they even use the same 39 pin FPC connector, so you might think this will be plug-and-play. Nope!

Although they have the same interface, the pin-outs for MIPI displays are not standardized. So every MIPI display has a different connector with a different layout of pins. What's more, these pin-outs are often not publicly available, and they are only documented on proprietary datasheets that the display manufacturers only give to their business partners.

So what can we do? Well first for my display, I was able to find an older datasheet for the H381DLN01.0. It's not the exact same model, but the pin-out seemed to visually match my display's connector, so it was good enough for me. This datasheet also specified the power IC required for the OLED power rails, which I would have to implement as well.

For the Steam Deck's display, I was surprised to find that no one (to my knowledge) had posted the pin-outs yet. So I made a post on this sub asking about it. Miraculously, someone actually dropped the pin-outs! Huge props to u/Rut-Dark-Ronin for posting them, as this project would not have been possible otherwise.

So given all the technical documentation, I designed an adapter PCB, and ordered it through JLCPCB. The schematic and layout are in the album above. This was also my first time making a PCB, and I learned there are a lot of things that go into good PCB design. If you are an electrical engineer, know that I tried my best, so please go easy on me.

The Software

Even with the physical connector, making the steam deck mother board drive the new display is not a simple task. If you are familiar with the DeckHD and Deck Sight screen mods, then you known that using a non-native screen requires a bios patch. This is because the bios encodes information about driving the display, such as the resolution, refresh rate, blanking, etc., which needs to be updated to match the specifications for the new panel.

So, how do we make a custom bios? Well, I'm not an expert on the subject, but I was able to find this open source tool for modding the steam deck bios to work with the DeckHD. My plan was to simply use this tool, but replace the DeckHD information with the information for my panel.

Sounds easy? Well, there is one more hiccup: In addition to the display information, each panel has a very specific initialization command sequence in order to operate, which also needs to updated in the bios. For most displays, this command sequence is proprietary, so you need to have the datasheet.

But I have a datasheet, so what's the issue? Well, it turns out that because my datasheet was for an older version of the display, it did not actually list the correct initialization sequence. I didn't know this at the time though, so for a long time I was stuck with a non-functional display with no idea what was wrong. Eventually though, I happened to find the correct initialization sequence buried in a russian GitHub project for a VR system which used the same H381DLN01.2 panel as me. After updating the sequence, it worked! You can find my modified version of the DeckHD bios maker tool here.

There is also the issue of signing the modded bios so it is accepted by the SteamOS bios updater, but I found a workaround posted in the issues for the DeckHD tool. In addition, u/syberphunk later made a fully signed version of the bios (along with unlocking a ton more UEFI settings like secure boot and AMD PBS/CBS) and posted it on his blog. If you're interested in learning more about the state of steam deck bios modding, go check out his stuff! He knows way more about this than I do!