Finally replaced the old display with a new touch display in my VF-1 inspired home cockpit panel.

The old display was salvaged from a laptop years ago and while it was working fine it also has a very bad viewing angle. I also got really tired of it’s glaring reflections so I experimented with an anti glare foil. This reduced the reflections a lot (worth every cent) but couldn’t help with the bad viewing angle, of course. I now had an idea how this could look though so I decided to buy into a replacement kit.

The new display is the N173HCE-E31, a 17.3" with a resolution of 1920x1080. The touch controller registeres as a USB HID pointer/mouse by ILITEK and is basically sitting on top of the display. The kit included a PCB, that was advertised as VS-RTD2556HC-V2 controller by VSDISPLAY but came without any data sheet and I have no idea who really made this.

Thing is this PCB runs very hot and the noted input voltage isn’t explicitly stated. An attached image suggested to use an USB PD power supply without 20V so I was looking for it’s datasheet to check if I was just holding it wrong. Picture me surprised but VSDISPLAY does not list this particular configuration in it’s datasheets. I contacted them via mail and they confirmed that this is not theirs. Theirs is apparently also strictly 5V/12V so that matches the picture I get.

Mine is equipped with the IC RTD2556VD that does not match the list of supported ICs. Theirs has 2556TE_R20.1 printed on the PCB. Mine has 2555TF_R30.1 printed on. It’s like 99% similar but differently routed. It also mentions E470791 JPX-D which seems to point to the PCB manufacturer Dongguan Jingweixin Circuit Co Ltd but that is where my GoogleFu left me. I did also find the very same pictures on other offers, each stating a completely different controller model 🤷

Anyway. I tried different configurations and while it works with 5V at ~2A I feel way more comfortable with 12V at ~0.8A on full brightness + blue color. I also attached a passive cooling block I had laying around and slapped a fan on top. Now it’s only “comfortable” warm to the touch after running for an hour.

Sadly I do not have any device with DP ALT providing more than 5V and the PCB will always switch down to 5V the moment the USB-C dedicated for the display signal is used as well, even when a proper USB PD power supply is attached on it’s dedicated power connector. I could only keep it at 12V with my VITURE USB-C XR charging adapter, which can indeed provide 12V and more via USB-C while still allowing DP-ALT + USB2. There went my plans to only have a single cable for all, DPPD and the USB2 lanes for the ILITEK pointer, because I really do not want to block this adapter all the time.

So now I have a dedicaded USB PD power supply at 12V connected, a HDMI connection for the display and an additional USB2 for the touchpanel pointer – and on top of that the little fan, that I simply connected to the micro USB2 socket on the PCB to provide it with 5V.

This also means that my Linux PC can not know that both, touch panel pointer and display, belong together. As a result all touch panel inputs were all over the place and not limited to a single display. Apparently KDE has an option in it’s graphical settings where this can be easily configured. Gnome does not [yet?] have such an option in it’s graphical settings. There is however a way to enforce the mapping of the touch panel in Gnome too! And while the real manufacturer for the controller of the new display is still a mystery to me I found the following snippet in my monitor configuration $HOME/.config/monitors.xml after plugging the controller in:

<monitorspec>
    <connector>HDMI-2</connector>
    <vendor>RTK</vendor>
    <product>0x2555</product>
    <serial>0x20230705</serial>
</monitorspec>

The touch panel is, according to lsusb, connected as ID 222a:0001 ILI Technology Corp. Multi-Touch Screen. Armed with that knowledge I can limit it’s input with gsettings to this specific display:

gsettings set org.gnome.desktop.peripherals.touchscreen:/org/gnome/desktop/peripherals/touchscreens/222a:0001/ output "['RTK', '0x2555', '0x20230705']"

Works like a charm but what a mess. I still wish I had a data sheet for this so if you know more kindly drop me a comment!

The last thing to fix was the already mentioned reflective glare. For this I went with a screen protector by BROTECT (that name still makes me laugh), that promises beside anti scratch also an anti glare effect without limiting the view angles (some foils do this to enhance privacy).

Attaching the foil was straight forward. The trick is to make sure that not a single dust particle is around during the process. To help with this I used an air humidifier to raise the humidity in the room before I even started. After that I removed the protective cover from the display and started slapping on the foil with the provided mounting card (yay, cardboard again). This was the very moment one of my curious cats decided to investigate my actions and jumped onto the table almost giving me a heart attack. The last thing I needed was cat hair all over the place and indeed after a lot of hissing I had to make good use of the also provided adhesive sticker to catch all dust particles in the last corner. Cats!

The end result is like night and day. I do no longer see any light sources or myself clearly reflected on the display. The touch panel is still accepting inputs just fine and the colours look very bright from any angle, especially with HDR enabled. This will also ease it’s cleaning because the cockpit panel is collecting dust like crazy due to the gradient of the panel. I usually use a vacuum cleaner for this and the foil will help a lot to avoid scratches.

Replacing the old display was also a task on it’s own. The old screws didn’t fit, of course, so I kinda had to build little adapters from leftover angle and wood pieces. Very ugly but good enough – this is just a toy after all 🤓

Ah yes and now that I have a touch panel I also have to rewrite my HUD app, of course 🙃

This uses my X4-SimPit extension for X4: Foundations, that sends ship telemetry via a socket to my node-red plumbing pipeline, which in turn forwards data to Websockets, SocketIO and MQTT. Various subscriber listen on the new messages to run blinken lights and my HUD app. I’m using the well known message format also used by Elite Dangerous so it’s compatible with that game as well.

Pick your poison: https://makertube.net/w/nUoG2ZPeAW1QhT3A2BXRrM / https://www.youtube.com/watch?v=wp1PkVhH9cc

Oh yeah… and on Linux PC 🤓

Let me know what you think!

X4-SimPit code (pending changes) is here: https://github.com/bekopharm/x4-simpit
The cockpit panel has a dedicated project page here: https://simpit.dev/

Until now I used OpenTrack with my DIY IR tracker or the Neuralnet tracker. I knew that my XR glasses feature IMU data though and the xr_driver of the Breezy Desktop project allows to access the data via IPC on Linux PC. So I did what Linux user do: I wrote a script to access the IMU data and forwarded it via UDP to OpenTrack:

Pick your poison to watch the video: https://www.youtube.com/watch?v=njuumLUvqrM / https://makertube.net/w/2bNyxJhdyydTeFq17onikv

This reminded me that I also wrote a proof of concept to implement the FaceTrackNoIR (or OpenTrack) protocol into FreeSpace 2 Open on Linux PC ( https://makertube.net/w/7VtfAjW7EiAUS5aiPwG7if ) so I gave it a spin to test the data bridge. That was smooth sailing!

The mod is Diaspora: Shattered Armistice, still awesome today: http://diaspora.hard-light.net/ (Warning: This may fuel a desire to re-watch the BSG series again 😀).

The bridge code can be found at https://github.com/bekopharm/xr_to_opentrack (pending changes).

It works with the Breezy GNOME xr_driver: https://github.com/wheaney/breezy-desktop (but the Vulkan one works probably too but that’s untested). It should also be compatible with other glasses that have IMU for Breezy available.

Update: hodasemi wrote a Rust connector based on the idea that works without Breezy: https://github.com/hodasemi/xr_to_opentrack_rs – comes with a systemd service file so it can run in the background. Once installed the only step left to do is fire up OpenTrack 🤘

I know most of you won’t care or see why this is of interest but I got another game, this time No Man’s Sky, working in (side-by-side) mode using [on Linux PC] 🤓

https://www.youtube.com/watch?v=_VGv_h097mI

Steam start parameters are a little bit different though, once ReShade was configured for Vulkan:

WINEDLLOVERRIDES="d3dcompiler_47=n;vulkan=n,b;vulkan-1=n,b"  gamescope -h 2160 -w 3840 -H 1080 -W 3840 --scaler stretch -f -e -- %command%

Apparently there is an open bug for ReShade and Vulkan via Proton but frankly I didn’t quite get the details – it just worked for me: https://github.com/kevinlekiller/reshade-steam-proton/issues/6 – YMMV.

As usual: Viture or XReal users can probably just press fullscreen after switching into SBS mode to watch this. Others may need an external player to sort it out – I sure love delivering to the absolute niche of the niche [of yet another niche] 🤷

I know most of you won’t care or see why this is of interest but I got another game, that I like a lot, working in (side-by-side) mode yesterday using [on Linux PC] 🤓

https://www.youtube.com/watch?v=tWnFRPkomzQ

Steam start parameters are a little bit different though, once ReShade was configured for DirectX11:

WINEDLLOVERRIDES="d3dcompiler_47=n;d3d11=n,b" gamescope -h 1080 -w 1920 -H 1080 -W 3840 --scaler stretch -f -e -- %command%

I’m considering to start an extra channel for the SBS stuff since this probably just annoys most people. In fact downvotes started to pile up but is it my fault that YT (or PeerTube for that matter) doesn’t support this in any sane way? I know about frame packed versions now but that only results in badly automated out of focus Anaglyph 3D videos nobody can enjoy.

So bear with me if I mix something up, this is all news to me and I’m still flabbergasted. I got myself some XR glasses mostly for watching movies and perhaps some gaming on the Steam Deck a while ago.

Now I learned about “SBS” (Side-By-Side) mode like ~3 days ago, that the glasses support. I tried this with the game Elite Dangerous first, since this has an SBS mode built in too, and was mind blown. My current favourite time stink is Ace Combat though so I started digging.

Turns out there is this Reshade tool that would forcefully enable such a mode for basically any game with the right shader. Several exist but the first I found, “SuperDepth3D.fx”, seems to do the trick. Enabling it split the 1920×1024 in half with two slightly different view ports, one for each eye. There are many options to fine tune this and I’m still fiddling with this to find the perfect settings but results look great already.

My glasses do Full SBS though and have a resolution of 3840×1024. I read somewhere that wide-screen is possible with more DLL shenanigans with Ace Combat 7 too but I run the game on a Linux PC anyway, where we utilise a tool named “gamescope”. This allows basically to configure a virtual display for each game and override the game resolution in various ways. It also has a stretch option, which is exactly what I needed to get the “compressed” SBS view from 1920 to 3840, where the aspect ratio would fit again. BTW: This also has FSR built in so any upscaling looks good enough too. I’m not entirely sure but I think there’s a similar tool on Windows called “Virtual Deskop”?

Anyway, I already managed to get my head tracker working by mapping the output to a virtual gamepad on the look-around axes before. I also found a mod that enables a wider FOV. Imagine my stupid grinning when everything fell into place: Full SBS with head tracking, a more sane FOV and yes, I jumped all the hoops to get my HOTAS and rudder pedal of my old ViperPit working (which is a different story because my devices are so old that I had to upgrade em to USB before, which involved some Arduinos, programming and soldering). I guess that makes me a member of multiple niches at once 🤓

And since I’m aware that nobody can “see” what I’m talking about, without having XR glasses or a VR headset (or a DIY VR Box for smart phones) on their own, have also an Anaglyph 3D render. This requires just some old school two coloured (red and cyan) glasses often made of paper, that many people still have around somewhere, to get an idea.

The colour of the sky? It’s perfect. A deep dark blue.

Update: There is now video footage: https://www.youtube.com/watch?v=NckLvP1HBGw

So… this is news to me, because I don’t have a headset, but I can set my Pro glasses into (side by side) mode by pressing the small button longer. Some games, like , can do this as well without fiddling around with Reshade. I didn’t really expect it but it just works. This way I even get 3D on foot, which is not supported for VR in Elite Dangerous Odyssey at all! Side by side Crosseye mode (right eye left, left eye right) though? Add some head tracking to the mix, which is totally possible, and I get a very nice VR-like experience even on foot in Elite Dangerous – and on Linux PC!

This is the SBS version that does REQUIRE VR/XR glasses and mebbe something like xr-video-player: https://www.youtube.com/watch?v=KEtRijojBx8

This is the MONO version that does NOT require VR/XR glasses: https://www.youtube.com/watch?v=bYPTk1vygM4

The FOV is somewhat cramped. No idea if this can be tweaked any further but I’ll fiddle with the settings on my next test. Mebbe this can be tweaked (or I use Desktop to zoom in somewhat).

Update: I got the aspect ratio somewhat under control. It’s not perfect but much better and an odd combination of window mode and resolution and upscaling, that somehow affects the HUD only but make no sense to me at all. At this point I think it’s simply a bug of Elite. It’s like the HUD doesn’t get the memo to scale up after the intro played. I’m also not sure if this is a side effect of gamescope but I can totally live with this result (though it does start to stutter somewhat on foot but recording this at the same time somewhat overwhelms my rig anyway). These are my gamescope settings with Steam:

SDL_VIDEODRIVER=x11 obs-gamecapture gamescope -h 1080 -w 3840 -H 1080 -W 3840 --max-scale 2 -f -e -- %command%

Max-scale is probably not needed but it was started with this so I won’t omit it now. The ingame settings are 1280×960 and windowed with _NO BORDER_. Every other mode broke the aspect ratio even more! That is also true for 1920×1024, which would have made _some_ sense to me at least, but this did also NOT work FOR ME. This results in a pixelated HUD which is worked around with upscaler INTERNAL or AMD CAS cranked to x2 – AMD FSR did NOT WORK. If someone could enlighten me on this: Bring it! YMMV.

Update2: Haha it works! https://www.reddit.com/r/EliteDangerous/comments/2o5j30/using_google_cardboard_or_equivalent_kit_as_a_vr/ had a lead: It suggests to double the vertical resolution to get a proper aspect ratio with SBS and shrink the resulting window again.

That’s easy with gamescope:

> gamescope -h 2160 -w 3840 -H 1080 -W 3840 –scaler stretch

e voila, perfect aspect ratio. Wonder if my GPU manages to keep this up though. May have to throw FSR into the mix.

🔥 Hell Yes! added UDP support for native under and I can finally talk about it 🤓 Yes! Yes! 🚀

🎥 I was to happy about it that I even did a recording while I had a bad cold and was hoarse just to show it off: https://makertube.net/w/wo4zAJiTFLeg8t2o93MLpL or https://www.youtube.com/watch?v=rgOkGwMShT0

✍ Took a while but it’s now in the open beta for 7.50 https://steamcommunity.com/games/392160/announcements/detail/4485117301459255318

It’s great to see another company embracing open standards and care for their niche gamers too ❤️

It has been a while that I tried . With the new Tracker plugin (AI haha) for we get head tracking without annoying IR LEDs or reflecting stripes just by reading the webcam video feed. This is apparently fast enough to try without a dedicated nowadays. And all that on a PC. Took some fiddling but the concept still works. What a time to be alive.

Demo: https://makertube.net/w/groS1wpAhP8XYE75vJwX32

HowTo: https://simpit.dev/systems/opentrack/