mastodontech.de ist einer von vielen unabhängigen Mastodon-Servern, mit dem du dich im Fediverse beteiligen kannst.
Offen für alle (über 16) und bereitgestellt von Markus'Blog

Serverstatistik:

1,5 Tsd.
aktive Profile

#homecockpit

1 Beitrag1 Beteiligte*r0 Beiträge heute

VFD segment displays in HTML/CSS for my SimPit

So I dunno if you know what a #VFD (https://en.wikipedia.org/wiki/Vacuum_fluorescent_display) is but I’m a sucker for these – at least virtually.

Games like #RebelGalaxyOutlaw perfected the look and this is where I want to go with my #Arwes HUD app for my #EliteDangerous / #X4Foundations home cockpit too.

The segment displays are heavily inspired by #AugmentedUI project (https://augmented-ui.com/) where I’ll borrow some more elements. Learned the neat fake scan lines from there too. And yes the 8 segment display works by shifting bits under the hood 🤓 This isn’t really needed for an app but I have plans to add some real segment displays eventually (I do have a whole box full with these!) so I wanted to know how to implement this anyway.

Video from an earlier stage in the development demos the scan line effect.

The bars are configured with parameters in size, count, percent, colours and thresholds 😁 I also added a random chance of 5% to shift the hue a little bit because just as in real life nothing is perfect.

And yes they are fully themed so switching the colour theme also affects the virtual VFDs.

I’m also going to replace the older horizontal bars, that look way too boring in comparison.

It’s still very early but I hope to get some rad animations going too. See https://www.hudsandguis.com/home/2022/retro-digital-dashboards to get an idea in which direction this is going 🤓

See the dedicated project page https://SimPit.dev for more details on this #Macross #VF1 inspired #cockpit panel.

https://beko.famkos.net/2025/05/04/vfd-segment-displays-in-html-css-for-my-simpit/

Quick demo time: I got a touch display 17.3″ that will replace my rather old one in my VF-1 inspired cockpit panel.

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

Mostly because of the bad viewing angle. I’m not a huge fan of touch but sometimes it is really useful and if I already spend money why not go the extra mile 🤓

https://beko.famkos.net/2025/05/01/15629759/

#Arduino#arwes#homeCockpit

Updated simpit.dev/ - home of the #Space #PewPew #SimPit inspired by a #VF1 Valkyrie cockpit (#Macross)

That's a glorified #DIY joystick controller with an LCD ('MFD') and plenty of #RGB for my #Linux PC

Newest additions are my #XR sheniagans (and some notes on #Breezy and the usage of #IMU data as #headtracker), the games #AceCombat and #XWVM (#XWing / #TIEFighter) and a bunch of videos were updated.

Best viewed WITH an ad-blocker and patience (slow af).

Livestream recording: Space – Pew Pew – Playing X-Wing with XWVM Alpha again in my Macross SimPit

Played #XWVM (closed) Alpha with my #Macross inspired #SimPit. I’m simply in awe that I can replay missions from #XWing (or #TIEFighter) with more modern graphics and modern interface devices again. I spent _so many_ hours playing these #StarWars games as a kid.

This is the heavily cut VOD of the live stream over at @bekopharm@live.famkos.net (pick your poison):

https://makertube.net/w/r1LRrqDWnhw4wRk92uNfzo /
https://www.youtube.com/watch?v=9T2jxqT_5sU

This time I play with the native Linux version and my X52 Pro joystick (which means I actually have a chance of hitting stuff too). The following missions were played:

Historical Mission 2 / Wingmen Are Important
Historical Mission 3 / Sattelites Near Coruscant
Historical Mission 4 / Beating The Odds
OP 1: Destroy Imperial Convoy (Uncut)
OP 2: Reconnaissance Mission (Uncut)
OP 3: Fly Point During Evacuation (Uncut)
OP 4: Protect Medical Frigate (Uncut)

XWVM is not an official product from Lucasfilm Ltd. or Disney. It is not endorsed or authorized by either. It is a fan recreation of the game engine used to play X-Wing and TIE Fighter for the sake of accessibility and requires the original game assets to work.

Kudos to the XWVM team, they are doing a stellar job here.

The dedicated project website for the Macross inspired SimPit is https://simpit.dev

https://beko.famkos.net/2025/04/07/livestream-recording-space-pew-pew-playing-x-wing-with-xwvm-alpha-again-in-my-macross-simpit/

Parsing the Elite Dangerous Journal

I gave in and changed my event forwarding method in node-red for the Elite Dangerous Journal. This file is updated on various in-game events but in a way that makes it difficult to get new events only since last update. Another problem is that it’s not really a valid JSON file because it has one JSON per line but it’s not a valid JSON array. This is why it has to be parsed line by line and mashed together by event type (name) again to get the latest data for each event type per dump. Each event has it’s own timestamp by set by the game. The latest timestamp is now saved on the special flow const so node-red keeps the value in the “global” memory of the current flow:

msg.payload.event = "Journal";let newJournalTimestamp = flow.lastJournalTimestamp;Object.keys(msg.payload).forEach((key) => {  if (msg.payload[key].timestamp) {    const keyTimestamp = new Date(msg.payload[key].timestamp).getTime();    if (!flow.lastJournalTimestamp || flow.lastJournalTimestamp < keyTimestamp) {      // this entry is new - keep it. MULTIPLE events may have the      //  same timestamp so wait with reassigning so we don't skip      //  em or get the latest a 2nd time if nothing else changes.      // update the next latest timestamp if this is newer      if(!newJournalTimestamp || newJournalTimestamp < keyTimestamp) {        newJournalTimestamp = keyTimestamp;      }    } else {      // lastJournalTimestamp is newer, skip this      msg.payload[key] = null;    }  }});// make sure this is a valid date for the next timeflow.lastJournalTimestamp = newJournalTimestamp || new Date().getTime();// remove all nulled events from the payloadmsg.payload = Object.fromEntries(  Object.entries(msg.payload).filter(([_, p]) => p !== null));msg.payload.timestamp = new Date(flow.lastJournalTimestamp);return { payload: msg.payload };

So I do now keep track of the last read timestamp and reject every event that is older than the last read keeping the Journal dump smaller. This way I don’t have to try to keep track of the “latest” event to drag data from. Refuelling e.g. can happen from whopping 4 (or more) different events and it’s painful to compare all and check which one is the latest to keep track of the real current fuel levels for each tank.

Downside is I won’t get a full set of data for the current session any more if I have to reload my HUD app. This could be mitigated by using MQTT though where I could simply persist each event topic. That is already implemented and I can choose between SocketIO or MQTT in my app anyway.

https://beko.famkos.net/2025/03/29/parsing-the-elite-dangerous-journal/

Showing off new features for my home cockpit: Priority alerts, sounds and more status indicators

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: github.com/bekopharm/x4-simpit
The cockpit panel has a dedicated project page here: simpit.dev/

https://beko.famkos.net/2025/03/12/showing-off-new-features-for-my-home-cockpit-priority-alerts-sounds-and-more-status-indicators/

Worked for ~3h on my #X4Foundations ship telemetry extension live on stream. Has been a while that I worked on my #SimPit code. Took a while until I had an idea again what is what but in in the end I got Boost status/recharge mapped to what is usually the FSD status in #EliteDangerous and I now have a flare count in the Loadout event (it just doesn't update yet when dispensed, that's another event I haven't implemented yet). Very happy with the result :-)

Ace Combat 7 with FULL SBS on PC? And head tracking? Hell yes :D

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 to 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.

This content is licensed under a Creative Commons Attribution 4.0 International license.

https://beko.famkos.net/2025/01/21/ace-combat-7-with-full-sbs-on-pc-and-head-tracking-hell-yes-d/

#AceCombat#AR#gamescope