r/steammachine • u/ehodapp • 12d ago
Discussion Got the JSAUX Pixel Matrix Faceplate this morning, took it apart, and made my own Decky plugin for it. This thing rules.
My JSAUX Pixel Matrix Faceplate (the 64x54 RGB one, not the e-ink one) showed up this morning, so naturally the first thing I did was take it apart. Turns out the "screen" is a little LED matrix behind a diffuser: 24 LED driver chips, a CH340 USB serial chip, a 2 MB flash chip, and a microcontroller with the markings sanded off the top. Board photos and the whole story of figuring it out are in the write-up, and the serial protocol is documented here.
After that I made a Decky add-on for it instead of installing their software. It shows the game you're playing (hero art with the logo), the Steam logo between games, a clock, or a glow that follows the light bar, and it turns the screen off when the Steam Machine sleeps. I leaned heavily on GabeCubeAura for this. Its source showed me how a Steam Machine Decky plugin should work, from figuring out which game is running to finding the artwork, and that's the only reason this came together so fast. Massive thanks to Alyenax, and if you don't have GabeCubeAura installed yet, go fix that.
Honestly, I love this thing now. It's kind of crazy how a little screwing around turned it into something so much cooler than their initial advertised features provided.
A few things I found along the way:
- Everything you send the panel gets written to its flash, even JSAUX's own once-a-second stopwatch. Whether that wears it out depends on firmware nobody can see yet, so my plugin only sends a picture when it actually changes.
- On the included USB-A cable, a bright white screen at full brightness pulls more power than the port gives. Mine browned out, got stuck rebooting, and knocked my Steam Controller dongle offline. My plugin caps brightness for really bright pictures.
- Their Decky plugin lists "OpenAI Codex" as its author and includes a screen that reads your OpenAI/Codex login tokens. Worth knowing before you install it, I've not messed with the official software beyond looking at how it worked. This is probably innocuous.
Right now everything I'm doing is limited by what I could figure out from the outside. I don't want to dangerously probe it, read the firmware straight off the chip, or go around the USB connection when JSAUX seems committed to open sourcing this and could post a GitHub link any day. In the meantime, it's sick as hell.
Here's the GitHub with my Decky plugin if you want to mess with it: https://github.com/hodapp/pixel-faceplate (install steps are at the top of the README).
A little about me: I'm old as dirt, I've got a lot of experience doing this shit, and I write a lot of custom ESP32 firmware for smart home stuff around my house. So it should be pretty solid, but consider this a very early proof of concept, tested only on my own Steam Machine. I'm sure it'll all get a lot cooler once JSAUX releases a way to update the firmware, because I don't love that everything has to be written to flash right now instead of going straight to the screen. It probably makes more sense for this to be folded into GabeCubeAura eventually but maybe once JSAUX reveals some more of its secrets so we're not just wasting flash write cycles constantly.
Oh, and if you're worried about airflow: two extra 6x2 mm magnets (or whatever you have handy that fits, I've printed tons of Gridfinity so I have a million of these) on each mount point give it about 4 mm more room to breathe.
5
u/ThatGuyWhoKnocks 12d ago
Got mine today and I look forward to trying your plugin out, great work :) also, I disagree with everyone saying the side-USB cable is ugly, it’s really not very noticeable.
6
u/Ok_TomorrowYes 12d ago
I’ve been absolutely addicted to Graveyard Keeper 2 since it came out
3
u/iclonethefirst 12d ago
How is it in comparison to the first one?
3
u/Ok_TomorrowYes 11d ago
People have differing opinions but I like it much much more. The story and tech tree is all woven together so you no longer feel like you are just researching random things. The map is also beautifully crafted with a much better flow and things are nice and close. And much less janky and runs better but still stutters a bit though
1
u/kipdjordy 12d ago
How is it and the first one? Thinking of picking it up to add to my monumentous backlog
1
u/ehodapp 12d ago
I've been loving GK2 but I think the move is to buy and play GK1 first. It goes on sale all the time and is a very finished / mature game with fun DLC. The sequel is very good, but it's a typical indie game launch in that there's a lot of rough edges that'll inevitably get fixed. By the time you beat GK1, GK2 will probably be totally locked in and on sale. You just need to discipline of r/patientgamers
3
u/Alyenax 512GB 11d ago
I’ve gone through a good part of your repo and there’s a ton of really useful stuff in there. The documentation is super detailed and I learned quite a bit just reading through it.I think there’s a lot of potential to do some really cool things with GabeCubeAura around this. Thanks for putting all of this together.
I’m really looking forward to trying your great plugin when I get the chance and seeing how far we can push the idea.
2
u/Doshin108 12d ago
They said 'the business wasnt open' when they tried to deliver and now I have to wait 3-7 days?
Never had any trouble from any carrier till today. :(
1
u/ThatGuyWhoKnocks 12d ago
Mine just chucked it at my door
2
u/Doshin108 12d ago
Oh it just showed up.. the shipping box was mangled and smashed but the inside box seems fine.
I got the e-ink one. Hype to hack it up.
2
1
u/ThatGuyWhoKnocks 11d ago
Yea, same, outside box look like it took a beating but inside box was fine
1
u/Doshin108 12d ago
Ya.. That's what every other delivery has ever done since I've lived here over the past 3 years.
2
u/zbro3 11d ago
Dude I'm not gonna lie, I think I'm gonna try to return my e-ink screen to get the pixel matrix because of what you have done. I e ink is cool but this is more what I want out of a faceplate
1
u/The-Radio-Man 9d ago
I’m doing that too. The e-ink is cool but the really slow refresh rates and transitions haven’t been great.
2
u/auto_exec 9d ago
Hey! Love the plugin, got it installed.
Just a quick question - seems like the bottom portion of most images is darkened (based on a quick review, I guess this is intentional to account for a logo overlay?)... on the majority of the images i've tried so far (e.g., chants of seenaar, dead as disco) it just makes the bottom half of the image unreadable and looks pretty off.
Any ideas if this is due to the specific images being used in these games? Or is there something I'm missing in my setup to address it?
1
u/TabloidA 8d ago
I get this too!
1
u/auto_exec 7d ago
In case you haven't seen - a new 0.2.1 release is up (https://github.com/hodapp/pixel-faceplate/releases/tag/v0.2.1) and includes several new options about the handling of art and logo.. including whether or not to use a logo, and/or add the dim band behind it... also has the ability to set the screen style per game, which is great!
Thanks u/ehodapp for the awesome update!
2
u/Timeerased 6d ago
New release is AWESOME, finally fixed the dim light and now we can manipulate logos, have profiles for games, thats really cool. One last thing is I just CAN'T use gifs, every gif I try to throw at it, nothing appears (jpg and pngs are fine). But the rest is WAY better than JSAUX (which also has a lot of bugs like not showing playtime)
4
1
1
1
u/Poro_Actor GabeCube Enjoyer 12d ago
i’m wondering if that’s why my screen went dim eventually before rebooting. Good work can’t wait to check it out.
1
u/tannerwastaken 12d ago
Holy shit! Will you be working on this more? I think you sold me a Pixel Matrix!
7
u/ehodapp 12d ago
Yeah, but I'm kind of stuck until one of 4 things happens, roughly from least to most effort on my end:
JSAUX posts their code to GitHub, including the firmware and how to flash it.
JSAUX responds to my email with answers to my questions. I got an out-of-office reply saying they'll be gone or slow until 10/9.
I get bored enough to start probing for how to flash it myself. The problem is that blindly sending commands is a real good way to soft-lock it or accidentally wipe the firmware.
I buy the right-size chip clip on Amazon and dump the flash chip directly to see what I can learn from it.
What really sucks is that they sanded the top off the main chip. This would be so much easier if I could pull the specs for exactly what they're using instead of guessing. Right now the main limitation is that everything the screen shows has to be sent as a GIF and gets written to flash on the faceplate first, so anything live is slow (about 5 fps at best) and has a clear flash as the screen redraws. Artwork works really well because it happens while the game loads, so you never notice the latency, and it's just one write per game, so you're not thrashing the write cycles. With a tiny bit more info we could draw to the screen directly, which would unlock something like 20–30 fps for audio visualization and a bunch of other cool shit.
1
u/tannerwastaken 12d ago
Amazing! Well I hope you’re able to do that - I know I’d certainly enjoy it!
1
1
u/schM0ggi 12d ago
Deep respect for you, sir. Will observe everything in the next days/week. Maybe it's actually worth buying one of these.
1
1
u/RubiksCuban305 12d ago
Dude I tried it and it’s amazing. Thanks for the clean instructions. You are a saint.
1
u/Grizzled_progressive 11d ago
Absolutely sold me on this product, it already looks enticing with the stats but with displayed art it really comes alive. Can’t wait to get it in and try out your plugin 😁
1
u/Aggravating_Plan11 11d ago
Would be awesome if we could get the thing to display game info like health or a live map or in game scoreboards or something.
1
1
1
u/RetrOnline 11d ago
Oh man, I really want this Pixel Matrix Plate for my Steam Machine too. One of the things holding me back right now, though, is that the USB C port is on the left side.
Can the plate simply be rotated 180 degrees and snapped back on that way, so the USB C port ends up on the right side instead?
The only issue then would be the lack of an option to rotate the display itself, at least in the JSAUX software right now. If display rotation were possible, I’d honestly order one right away.
I absolutely love the idea behind it, and I’m especially glad there are creative people like you still coming up with cool stuff like this.
And yeah, when it comes to data transfer and especially power requirements, having a wired USB C connection there definitely makes sense.
And did I understand that correctly? Can the display actually be made even brighter, as long as it isn’t limited by the available power (for example, with a separate external power source)?
1
u/CalcProgrammer1 11d ago
I just got mine, I'm glad you've already done the hard work of reverse engineering the protocol. I wanted to add this to OpenRGB, but the lack of a software streaming mode REALLY sucks. Having to upload everything as static or fixed-frame GIFs is really dumb. I'm not sure why so many RGB products only support saving to flash memory, which is slow and wears out with rapid updates. Just give us a raw pixel pipe in a future firmware JSAUX, please, let us just drive the thing directly from software so that we can do smooth animations without destroying the flash memory.
1
u/Particular-View-3567 9d ago
It seems your app doesnt work with the latest decky (or steamos) and decky says it needs to be updated :(
1
u/Particular-View-3567 9d ago
nevermind I didnt uninstall the jsaux one. But then had an issue where the lower part of the screen is way more dim on artworks. I'll wait for a new release
1
1
u/mfinsmi1 9d ago
are you keeping your faceplate powered on even when the console is alseep? or are you powering down in decky before powering down the console? do you think leaving the faceplate on 24/7 cud cause issues?
2
u/ehodapp 9d ago
The addon has settings for turning it off when you turn the Steam Machine off. These LED matrices should be good for 50k+ hours of full bright operation before they start to dim, I’m not sure how worried I’d be about making sure it looks good 7 years from now. Feel free to fork and make it behave however you want though.
1
u/v1k0d3n 9d ago
Ha! I didn’t even realize the same thing for the E-Ink display and wrote my own plugin. JSAUX is scraping user auth tokens for AI clients (Codex specifically) and then capturing the last 20 conversations - and I took issue with that, esp since their client software needs to be installed manually (outside of Decky) and required sudo privs (while also writing a systemd unit and udev rules). It was way too sus for me…esp since they don’t provide their source code (at least that I’m aware of).
So I wrote a completely transparent alternative. I wrote it in Golang so that way it wouldn’t run into python dependency issues like I had with their software. You can find it here, for anyone is interested. https://github.com/v1k0d3n/monoink
1
u/Timeerased 8d ago
just a question that applies to the official app too : where does the weather info come from ? Don't they need your coordinates ?
2
u/v1k0d3n 8d ago
They capture it by reading your public IP address by curling a url (https://ipwho.is). I can’t stand apps that call outbound like that. So when I created my app, I’m allowing the user to add their own location (city, zip code, etc). The user should have the option to set things like this…and if an app goes outbound for data, it should be upfront with users about where it’s calling, why, and what data is being used. My app uses the same weather reporting service (open-meteo.com), but the user can set the weather location to whatever they want (so it works even if you want to use a VPN).
1
u/RacingGun 9d ago
I wonder if it could work with something like this: https://apolloautomation.com/products/m-1-led-matrix
The size is a little off to make a good front plate, but still might be cool to have similar functionality (showing game art and such)
1
u/TabloidA 9d ago
Just got mine and love the software! Do you think you'd be able to add something to have different screens depending on the account being used?
1
1
u/Timeerased 8d ago
This would be perfect if the lower part of the screen wasnt dimmer when showing the art of the games. It looks real bad on many games (blood of dawnwalker, galactic racer...). I'd rather have a dimmer look on 100% of the screen, than bright above, dim below.
Also weirdly every GIF I tried doesnt work, only png/jpgs
1
u/Comfortable-Emu-2352 8d ago
The artwork doesn’t show for non-steam games, while GabeCubeAura does recognise those
Is it a known issue ? Thanks a lot for your work, so much potential !!
1
1
1
u/Chief_Economist 6d ago
Installed. Great work dude. I might play around with your repo and see if I can help any.
1
u/Efficiently-Simple 4d ago
This looks amazing and I’m gonna have a tinker with mine with your plug in tomorrow. In the meantime I’m just using the software it came with but for some reason it’s dimming automatically not sure what’s happening. Brightness is on 100% but when I boot up games it goes darker? Not sure if you could shed any light on as to why?
1
u/frostforgesauna 5h ago
Non-Steam games added to library with SteamGridDB images AND games with launchers (Witcher 3 Remastered) did not show the artwork and logo.
Fixed that with in a quick Claude fork.
Also added cats as a standby image - https://github.com/kjamert/pixel-faceplate/releases
0
0
-7
u/headphonesXX 12d ago
tl;dr its a half-baked product, like what everyone says. and the side usb port is absolutely ugly af
17
u/ehodapp 12d ago
tl;dr it's a really cool product that just needed a couple hours of dev work to make a cool plugin. Pricing is pretty good too, after looking at what's in there it'd be hard to get this done for much cheaper. Unassembled components would be like $60ish before you even get into whatever PCBWay would charge.
6
u/St4va 12d ago
half full glass person right here
13
u/ehodapp 12d ago
Man that's been everything to do with Valve hardware lately, it's nuts. I got my Steam Frame last week and it rules, you head over to that subreddit and it's like Gabe is personally killing everyone's puppy. I'm not sure if there's some coordinated astroturfing going on, if this is just reddit being reddit, or what.
3
u/St4va 12d ago
That’s the internet in general. Nothing will ever be like the old vBulletin message boards.
Regarding coordination, maybe, but it’s also incredibly easy for even a single person to manipulate posts and upvotes using bots and AI.
Finally, costs are rising rapidly, normalization of chaos, social media influencers, and AI is starting to take over entry-level jobs. People are unhappy, and things are going to get worse.
Anyway, I love my steam machine. Keep having fun.
-1
u/headphonesXX 12d ago
i read the parts list from valve diy version was around 90-100 but at least didnt have an ugly usb port on sticking out bc of the internal battery
9
u/ehodapp 12d ago
If I were designing this I'd have gone the JSAUX route, and JSAUX actually made the same call: their e-ink faceplate has a battery and Bluetooth, and the LED matrix one is USB powered. An LED matrix can pull up to 3.5 W, so a battery the size of the one in their e-ink model would last maybe half an hour. Battery works for e-ink because it barely draws anything, but the trade-off is the screen flashes on every refresh.
For eventual real-time streaming to the display, USB beats Bluetooth by a mile. Once I get that figured out it's going to get really cool.






15
u/rezendes 12d ago edited 9d ago
They should make one that’s an actual led matrix
edit I guess it is an LED matrix, I was misled by a reviewer.